Software para um storage array escalável, confiável e multi-TB?

1

Recentemente, peguei um monte de hardware para criar um novo servidor de mídia doméstico. Quando totalmente configurado, ele terá 20 unidades SATA-II de 1 TB hotplugáveis sendo executadas em um sistema Linux. Até hoje, usei RAID5 e RAID6 (não em conjunto) em servidores menores, abrangendo até oito drives, mas estou pensando se ainda é uma boa ideia.

Mais especificamente, eu terei seis placas SATA no sistema - quatro placas PCI com quatro portas SATA cada e duas placas PCI-Express x1 com duas portas SATA cada. (Este hardware não é totalmente certo ainda - como um aparte, deixe-me saber se eu posso melhorar. Esses slots são os únicos disponíveis na placa-mãe atual.)

Estou procurando principalmente sugestões sobre qual sistema de software de baixo nível (RAID, LVM, uma combinação, algo totalmente diferente) devo usar para implementar esse sistema. Requisitos:

  • Deve ser escalonável até as 20 unidades - estou começando com quatro e trabalhando para cima (provavelmente uma ou duas unidades de cada vez) para a capacidade total. / li>
  • Ele precisa ser executado no Gentoo Linux - eu sou muito flexível quanto ao software que uso, mas não ao ponto de trocar todo o sistema operacional por ele.
  • Tem que ser confiável o suficiente para sofrer perdas de drive - pelo menos dois dos vinte a qualquer momento. O servidor estará a algumas centenas de quilômetros de distância de mim a maior parte do tempo, e não consigo colocar ninguém lá para trocar as unidades assim que elas vão mal, então ele precisa ser capaz de viver com uma unidade ou duas um pouco. Bônus se uma placa controladora inteira falhar e a matriz permanecer ativa.
  • Tem que ter capacidade razoável - eu gostaria de pelo menos 15TB, dos 20, realmente disponíveis para armazenamento de dados (em oposição à paridade de RAID ou similar). Mais capacidade, desde que não sacrifique muita integridade, é melhor.
  • Ele precisa apresentar um único sistema de arquivos unificado ao OS - 20 unidades separadas de 1TB, todas com sistemas de arquivos separados e montados separadamente, não será gerenciável (mesmo ignorando o fato de uma falha na unidade esse tipo de configuração destruiria um terabyte de dados).

Tenha em mente ao fazer sugestões de que não me importo de colocar um bom volume de trabalho nisso - não há necessidade de configuração fácil ou instantânea, desde que funcione e seja confiável no futuro. Sugestões sobre o sistema de arquivos para a camada em cima dele também seriam bem-vindas. Atualmente estou usando o JFS, porque ele parece ter um bom desempenho e é expansível enquanto montado read-write, mas se houver uma melhoria que eu possa fazer, estou aberto a ele.

    
por Tim 16.10.2009 / 07:47

4 respostas

3

Eu iria com (finalmente) dois arrays RAID6 de 9 discos, com duas hot spares (já que você estará a uma certa distância do hardware, você quer minimizar a janela de oportunidade para mais discos falharem) no software Linux RAID, com o LVM no topo. O LVM permite aumentar facilmente o armazenamento, unificar vários arrays RAID em um único grupo de volumes e oferece flexibilidade na alocação de armazenamento (se você tiver um sistema de arquivos adequado no topo que permita o redimensionamento online).

O RAID de software do Linux permite adicionar mais discos a um array existente facilmente, o que satisfaz sua necessidade de adicionar discos lentamente ao longo do tempo.

    
por 16.10.2009 / 07:53
2

Em algum momento, a confiabilidade do resto da máquina será menor que a dos discos.

Como você afirma que este é um "servidor de mídia doméstico", estou assumindo que você usará peças de nível de consumidor. Os discos podem falhar, mas em algum momento o resto da máquina pode falhar também.

Se você quiser que ele seja confiável, use fontes de alimentação redundantes (no entanto, 20 discos precisarão de um pouco de energia) no mínimo. Eu não sei quão confiáveis são todos esses cartões SATA, eu acho que eles provavelmente não falharão muito.

Além disso, você vai querer a RAM ECC, caso contrário, a quantidade de dados que você está enviando significa erros de dados quase garantidos mais cedo ou mais tarde.

Na minha experiência, placas-mãe falham ocasionalmente, mas fontes de alimentação com bastante frequência.

    
por 16.10.2009 / 08:52
1

Se você é definitivo no Linux, então olhe para o ZFS-FUSE, mas se você for mais flexível, considere o NexentaStor, é o kernel do Solaris com mais userland do Debian (Debian) feito como um dispositivo de armazenamento de arquivos.

Em um ano ou dois, o BTRFS pode ser interessante, mas ainda não.

Se você ainda quiser um sistema de arquivos unificado, sua outra opção seria o LVM apresentar um único PV baseado em dois conjuntos RAID6 e usar o XFS além disso.

Também no momento, os acionamentos de 1.5TB parecem ser o melhor ponto na curva de preço / desempenho (aqui na Austrália, pelo menos)

    
por 16.10.2009 / 08:16
0

Você está basicamente descrevendo o Tahoe com um invólucro do FUSE (embora o Tahoe também seja distribuído e seguro de maneiras que seriam um exagero para suas necessidades). Tahoe é um pouco difícil de configurar e não a coisa mais rápida por aí, mas é basicamente a direção que você deve procurar. Você pode configurar o Tahoe (ou um sistema similar como XtreemFS , que eu não tenho nenhuma experiência com) para qualquer nível de redundância com o qual você esteja confortável. Eu configuraria com um nó Tahoe por unidade na máquina. Em seguida, configure-o para que um arquivo colocado no Tahoe FS seja dividido em 20 partes, de modo que possa ser recuperado com qualquer 15 delas. Isso lhe daria um pouco menos do que os 15 TB de 20 que você quer, mas poderia sobreviver a cinco falhas de drive simultâneas. Se você for menos conservador, poderá obter mais capacidade com um pouco mais de risco.

IMO, a outra grande vantagem do Tahoe é que ele configura você para expandir para uma configuração verdadeiramente distribuída. Como outros apontaram, você pode ter 20 unidades, mas ainda há muitos pontos únicos de falha em uma configuração com apenas um chassi. Com o Tahoe, você pode expandi-lo com segurança para toda a criação.

    
por 16.10.2009 / 18:32