Armazenamento de imagens em larga escala

Provavelmente, estarei envolvido em um projeto em que um componente importante é um armazenamento para um grande número de arquivos (neste caso, imagens, mas deve funcionar apenas como um armazenamento de arquivos).

Espera-se que o número de arquivos recebidos seja de cerca de 500.000 por semana (média de cerca de 100 Kb cada), atingindo um pico de cerca de 100.000 arquivos por dia e 5 por segundo. Espera-se que o número total de arquivos atinja dezenas de milhões antes de atingir um equilíbrio em que os arquivos estão sendo expirados por vários motivos na taxa de entrada.

Portanto, preciso de um sistema que possa armazenar cerca de 5 arquivos por segundo nos horários de pico, enquanto lê cerca de 4 e exclui 4 a qualquer momento.

Minha idéia inicial é que um sistema de arquivos NTFS simples, com um serviço simples de armazenamento, validade e leitura, seja realmente suficiente. Eu poderia imaginar o serviço criando subpastas para cada ano, mês, dia e hora para manter o número de arquivos por pasta no mínimo e permitir a expiração manual, caso necessário.

Uma grande solução NTFS foi discutidaaqui, mas ainda posso usar alguns conselhos sobre quais problemas esperar ao criar um armazenamento com as especificações mencionadas, quais problemas de manutenção esperar e quais alternativas existem. De preferência, gostaria de evitar um armazenamento distribuído, se possível e prático.

editar

Obrigado por todos os comentários e sugestões. Mais algumas informações de bônus sobre o projeto:

Este não é um aplicativo da Web em que as imagens são fornecidas pelos usuários finais. Sem divulgar muito, já que está na fase de contrato, é mais na categoria de controle de qualidade. Pense na planta de produção com correia transportadora e sensores. Não é um controle de qualidade tradicional, pois o valor do produto depende inteiramente do funcionamento do banco de dados de imagem e metadados.

As imagens são acessadas 99% por um aplicativo autônomo na ordem primeiro a entrar, mas o acesso aleatório por um aplicativo de usuário também ocorrerá. Imagens com mais de um dia servem principalmente para fins de arquivo, embora esse objetivo também seja muito importante.

A expiração das imagens segue regras complexas por vários motivos, mas em alguma data todas as imagens devem ser excluídas. As regras de exclusão seguem a lógica de negócios dependente dos metadados e das interações do usuário.

Haverá tempo de inatividade a cada dia, onde a manutenção poderá ser realizada.

De preferência, o armazenamento de arquivos não precisará comunicar o local da imagem de volta ao servidor de metadados. O local da imagem deve ser deduzido exclusivamente dos metadados, possivelmente através de um banco de dados de mapeamento, se for escolhido algum tipo de hash ou sistema distribuído.

Então, minhas perguntas são:

Quais tecnologias farão um trabalho robusto?Quais tecnologias terão os menores custos de implementação?Quais tecnologias serão mais fáceis de manter pelo departamento de TI do cliente?Quais são os riscos para uma determinada tecnologia nessa escala (dados de 5 a 20 TB, 10 a 100 milhões de arquivos)?

questionAnswers(3)

yourAnswerToTheQuestion