Não sou um ninja do sistema de arquivos distribuídos, mas depois de consolidar o maior número de unidades possível em poucas máquinas, tentei usar o iSCSI para conectar a maior parte das máquinas a uma máquina principal. Lá, eu poderia consolidar as coisas em um armazenamento tolerante a falhas. De preferência, tolerante a falhas dentro de uma máquina (se uma unidade sair) e entre máquinas (se uma máquina inteira estiver desligada).
Pessoalmente, eu gosto do ZFS. Nesse caso, a compilação na compactação, desduplicação e tolerância a falhas seria útil. No entanto, tenho certeza de que existem muitas outras maneiras de compactar os dados, tornando-os tolerantes a falhas.
Gostaria de ter uma solução de arquivos distribuídos chave na mão para recomendar, eu sei que isso é realmente desagradável, mas espero que aponte você na direção certa.
Edit: Ainda sou novo no ZFS e configurando o iSCSI, mas lembrei-me de ver um vídeo da Sun na Alemanha, onde eles mostravam a tolerância a falhas do ZFS. Eles conectaram três hubs USB a um computador e colocaram quatro unidades flash em cada hub. Para impedir que qualquer hub desmonte o pool de armazenamento, eles criaram um volume RAIDz que consiste em uma unidade flash de cada hub. Em seguida, eles distribuem os quatro volumes ZFS RAIDz juntos. Dessa forma, apenas quatro flash drives foram usados para paridade. Em seguida, é claro, o hub desconectado e que degradava cada zpool, mas todos os dados estavam disponíveis. Nessa configuração, até quatro unidades podem ser perdidas, mas apenas se duas não estiverem no mesmo pool.
Se essa configuração fosse usada com a unidade bruta de cada caixa, isso preservaria mais unidades para dados e não para paridade. Ouvi dizer que o FreeNAS pode (ou seria capaz de) compartilhar unidades de maneira "bruta" via iSCSI, então presumo que o Linux possa fazer o mesmo. Como eu disse, ainda estou aprendendo, mas esse método alternativo seria menos dispendioso do ponto de vista da paridade de unidade do que minha sugestão anterior. Obviamente, ele usaria o ZFS, que eu não sei se seria aceitável. Eu sei que geralmente é melhor manter o que você sabe se precisará construir / manter / reparar alguma coisa, a menos que seja uma experiência de aprendizado.
Espero que isso seja melhor.
Edit: Pesquisei e encontrei o vídeo sobre o qual falei. A parte em que eles explicam a propagação da unidade flash USB pelos hubs começa em 2m10s. O vídeo é para demonstrar o servidor de armazenamento "Thumper" (X4500) e como distribuir os discos pelos controladores. Se você tiver uma falha no controlador do disco rígido, seus dados ainda serão bons. (Pessoalmente, acho que este é apenas um vídeo de nerds se divertindo. Eu gostaria de ter uma caixa Thumper, mas minha esposa não gostaria que eu passasse um palete pela casa.: D Essa é uma caixa grande.)
Edit: Lembrei-me de encontrar um sistema de arquivos distribuído chamado OpenAFS . Eu não tinha tentado, só tinha lido um pouco sobre isso. Talvez outros saibam como ele lida com o mundo real.