A abstração de hardware é suficiente para uma grande quantidade de arquivos?

3

O aplicativo da web em que estou trabalhando será usado para fazer o upload / download de grandes quantidades / quantidades de arquivos de tamanho menor. Estou vendo arquivos próximos de 1B com tamanho total de > 10Pb. Atualmente, estou lutando para decidir a arquitetura escalonável que suportaria esses valores. E aqui está a minha pergunta - existe uma maneira de construir algum tipo de armazenamento que seria visto por um servidor Windows como uma enorme unidade de armazenamento de rede (10pb e acima), para que eu possa gravar todos os arquivos em subpastas dessa unidade virtual? E como isso funcionaria?

Neste momento, estou tentando entender se isso é possível, ou se preciso implementar o sharding em nível de software - gravar arquivos em unidades diferentes com base em alguma chave.

Sou um desenvolvedor, não um administrador de sistemas, por isso peço desculpas se for uma pergunta ingênua e agradeço antecipadamente por ter paciência em me explicar coisas possivelmente triviais.

Andrey

    
por Andrey 02.09.2010 / 22:00

4 respostas

2

como um servidor de arquivos 'normal, mas enorme':

com uma biblioteca em nível de aplicativo semelhante a um arquivo:

valor-chave genérico:

por 02.09.2010 / 23:28
1

Veja como Backblaze está armazenando seus dados. Muito boa leitura e eles têm um blog sobre as novas unidades de 3 TB. Isso provavelmente não responderá à pergunta sobre o sistema de arquivos. Não tenho certeza de como o Backblaze faz a estrutura do arquivo. Mas boa informação, no entanto.

    
por 02.09.2010 / 23:58
1

Antes de continuar procurando, você precisa decidir um pouco mais exatamente que tipo de semântica você precisa. Por exemplo, você diz que eles são arquivos - você precisa da semântica do arquivo POSIX (principalmente preocupada com a consistência e o bloqueio) neles no armazenamento? ou a consistência eventual de vários datastores distribuídos é suficiente? Quais são seus requisitos de E / S: quanto acesso simultâneo? Quais são os seus requisitos de redundância? Além disso, que tipo de hardware você vai usar? Matrizes de 10Pb não crescem em árvores e apenas gerenciá-las é um trabalho em tempo integral - tanto hardware significa que a falha é um evento normal, portanto, consertos e substituições constantes são necessários.

Do que você disse "aplicativo da web ... armazenando arquivos ..." Acho que um OpenStack ou S3 tipo de solução deve fazer você. Como você é um desenvolvedor em sua maioria, sugiro que você queira realmente usar a amazon ou o Rackspace ou quem quer que seja seu provedor a menos que você queira entrar no negócio de gerenciamento de hardware.

    
por 03.09.2010 / 05:14
0

Atualmente, você pode considerar o HDFS e o ecossistema geral do Hadoop.

    
por 29.06.2012 / 19:05