Servidor de arquivos - Configuração de armazenamento: RAID vs LVM vs ZFS mais alguma coisa…?

30

Somos uma pequena empresa que faz edição de vídeo, entre outras coisas, e precisa de um local para manter cópias de backup de grandes arquivos de mídia e facilitar compartilhá-los.

Eu tenho uma caixa configurada com o Ubuntu Server e 4 x 500 GB. Eles estão atualmente configurados com o Samba como quatro pastas compartilhadas que as estações de trabalho Mac / Windows podem ver bem, mas eu quero uma solução melhor. Existem duas razões principais para isso:

  1. 500 GB não é grande o suficiente (alguns projetos são maiores)
  2. É complicado gerenciar a configuração atual, porque os discos rígidos individuais têm quantidades diferentes de espaço livre e dados duplicados (para backup). É confuso agora e isso só vai piorar quando houver vários servidores. ("o projeto está em sever2 em share4" etc)
Portanto, eu preciso de uma maneira de combinar discos rígidos de forma a evitar a perda de dados completa com a falha de uma única unidade, e assim os usuários veem apenas um único compartilhamento em cada servidor. Eu fiz o software linux RAID5 e tive uma experiência ruim com isso, mas tentei novamente. O LVM parece ok, mas parece que ninguém o usa. O ZFS parece interessante, mas é relativamente "novo".

Qual é a maneira mais eficiente e menos arriscada de combinar os HDDs que são convenientes para meus usuários?

Edit: O objetivo aqui é basicamente criar servidores que contenham um número arbitrário de discos rígidos, mas que limitem a complexidade da perspectiva do usuário final. (por exemplo, eles veem uma "pasta" por servidor) O backup de dados não é um problema aqui, mas como cada solução responde à falha de hardware é uma preocupação séria. É por isso que eu participo RAID, LVM, ZFS e quem sabe o quê juntos.

Minha experiência anterior com RAID5 também estava em uma caixa do Ubuntu Server e havia um conjunto complicado e improvável de circunstâncias que levaram à perda completa de dados. Eu poderia evitar isso novamente, mas fiquei com a sensação de que estava adicionando um ponto adicional desnecessário de falha no sistema.

Eu não usei o RAID10, mas estamos em um hardware comum e a maioria das unidades de dados por caixa está praticamente fixa em 6. Temos um grande número de unidades de 500 GB e 1,5 TB é muito pequeno. (Ainda uma opção para pelo menos um servidor, no entanto)

Não tenho experiência com o LVM e li relatórios conflitantes sobre como ele lida com falhas de unidade. Se uma configuração LVM (não distribuída) puder manipular uma única unidade com falha e só soltar qualquer arquivo que tenha uma parte armazenada nessa unidade (e armazenado a maioria dos arquivos em uma única unidade), poderíamos até mesmo viver com isso.

Mas, desde que eu tenha que aprender algo totalmente novo, eu posso ir até o ZFS. Ao contrário do LVM, porém, eu também teria que mudar meu sistema operacional (?) Para aumentar a distância entre onde estou e onde quero estar. Eu usei uma versão do solaris na uni e não me importaria muito, no entanto.

Do outro lado, no espectro de TI, acho que também posso explorar o FreeNAS e / ou o Openfiler, mas isso não resolve o problema de como combinar unidades de disco.

    
por privatehuff 27.05.2009 / 20:04

14 respostas

24

O LVM é bastante usado. Basicamente, o LVM fica acima da camada de hardware (driver). Não adiciona redundância nem aumenta a confiabilidade (depende do sistema de armazenamento subjacente para lidar com a confiabilidade). Em vez disso, fornece muita flexibilidade adicional e recursos adicionais. O LVM nunca deve ver um disco desaparecer ou falhar, porque a falha do disco deve ser manipulada pelo RAID (seja software ou hardware). Se você perder um disco e não puder continuar operando (reconstruir o RAID, etc), então você deve estar indo para backups. Tentar recuperar dados de um array incompleto nunca deve ser necessário (se for, você precisa reavaliar todo o seu design).

Entre as coisas que você obtém com o LVM estão a capacidade de aumentar e diminuir facilmente as partições / sistemas de arquivos, a capacidade de alocar dinamicamente novas partições, a capacidade de capturar partições existentes e montá-las como partições somente leitura ou graváveis. Instantâneos podem ser incrivelmente úteis, especialmente para coisas como backups.

Pessoalmente, eu uso o LVM para cada partição (exceto / boot) em cada caixa que eu construo, e tenho feito isso nos últimos 4 anos. Lidar com caixas não-LVM é uma grande dor quando você quer adicionar ou modificar seu layout de disco. Se você está usando Linux, você definitivamente quer usar o LVM. [Nota: Este material acima no LVM foi atualizado para explicar melhor o que é e como se encaixa na equação de armazenamento.]

Quanto ao RAID, eu não faço servidores sem invasão. Com os preços dos discos tão baratos quanto eles, eu usaria RAID1 ou RAID10. Mais rápido, mais simples e muito mais robusto.

Honestamente, a menos que você esteja ligado ao Ubuntu (o que eu normalmente recomendaria), ou se a caixa estiver realizando outras tarefas, você pode querer olhar para OpenFiler . Ele transforma sua caixa em um dispositivo de armazenamento com uma interface da web e manipulará todo o RAID / LVM / etc para você e permitirá que você exporte o armazenamento como SMB, NFS, iSCSI, etc. Configuração lenta e simples.

    
por 27.05.2009 / 20:21
10

O ZFS é realmente confiável e com certeza facilita muito o gerenciamento de armazenamento. Como bônus: o smb é integrado ao ZFS no OpenSolaris e lida muito bem com o Raid. Aguarde alguns dias, baixe a versão 2009.6 lançada e experimente uma máquina de teste. Tenho certeza que você vai adorar o ZFS.

E sobre o seu comentário ZFS é novo: não é muito novo!

    
por 27.05.2009 / 20:09
8

A questão central é: "Qual a importância desses dados?"

Se a resposta for "Eu posso recriá-lo facilmente", você quer o RAID5, possivelmente com o LVM em cima, para simplificar o gerenciamento.

Se a resposta for "Posso recriá-lo, mas demoraria um pouco e as pessoas se queixariam", você quer o RAID 6 ou, mais provavelmente, o RAID 1/10.

Se a resposta for "Ninguém faz nenhum trabalho enquanto eu o recrio e me certifico de que ele é perfeito", você quer o ZFS / Raid-Z

Note que você sempre pode recriá-lo. O RAID não é um backup.

    
por 27.05.2009 / 20:35
5

Para conectar muitas unidades no mesmo chassi, um controlador RAID de hardware é a melhor ferramenta. Ele fornecerá muitos conectores SATA para seus drives, redundância via RAID-5 ou preferencialmente RAID-6, e may também proporcionará melhor desempenho.

O desempenho do software RAID costuma ser melhor do que o RAID de hardware em benchmarks, no entanto, a exibição de arquivos e o RAID de software exigem bastante CPU e competem pelos processadores durante o trabalho. Minha experiência mostra que, a menos que você use sistemas com quatro núcleos, o RAID de hardware configurado adequadamente irá derrotar o software RAID.

bons controladores de hardware com bom suporte a linux:

  • Areca
  • 3Ware
  • a nova série Adaptec (os antigos são slooooow)
  • LSI MegaRAID
por 24.06.2009 / 22:15
4

O RAID NÃO é como o LVM. Você pode usar o RAID para fazer partições de tolerância a falhas, mas o LVM é usado para facilitar o particionamento de disco e a edição do sistema de arquivos. Você pode usar o RAID sobre o LVM ou o ZFS (o ZFS pode funcionar tanto no RAID quanto no LVM). Na minha opinião, o ZFS funciona melhor que o LVM, mas:

  • apenas no Solaris 10/11 / OpenSOlaris, você não pode usá-lo do linux
  • O ZFS é um sistema de gerenciamento de disco e de arquivos, o LVM permite usar qualquer sistema de arquivos necessário

No Ubuntu eu prefiro usar o RAID5 MD com o LVM.

    
por 27.05.2009 / 20:23
4

Veja o que a Nexenta e o OpenSolaris estão oferecendo e acho que você ficará muito satisfeito com o que pode conseguir por nada. Há rumores de que os próximos lançamentos do OpenFiler também usarão a porta ZFS do FreeBSD (apesar de estarem muito atrás de uma perspectiva de recurso).

Dito isto, tento evitar fazer RAID5, RAID6 ou RAID50 em software e prefiro usar controladores de hardware para descarregar todo o trabalho XOR. O RAID1 e o RAID10 no software Linux funcionam muito bem, e a partir daí eu coloco o LVM em cima deles para permitir mais flexibilidade no que é feito com os blocos que tenho após a redundância em vigor. RAID + LVM + XFS é minha configuração favorita do Linux, mas eu levaria o ZFS a qualquer momento.

    
por 27.05.2009 / 20:45
2

RAID vs LVM não é realmente uma boa comparação, eles desempenham funções separadas e são freqüentemente usados juntos. O RAID é usado para redundância de unidade, o LVM pode ser usado para dividir seu dispositivo RAID em volumes lógicos, é usado para redimensionamento fácil e para tirar fotos instantâneas.

    
por 27.05.2009 / 20:09
2

Eu corri o servidor de arquivos para uma empresa / situação muito semelhante. Basicamente, um departamento gráfico de 3 pessoas com 30TB de armazenamento e o orçamento apertado de uma pequena empresa. Nossos projetos típicos foram de 0,5 TB a 6 TB. E o servidor de arquivos estava exibindo um farm de renderização de tamanho considerável, que poderia realmente bater nele.

Na minha configuração, executei um servidor 3U executando Linux com arrays RAID6 de hardware externo conectados a ele. Eu gerenciei os volumes físicos e lógicos com o LVM e executei o sistema de arquivos XFS. O que eu faria é criar um volume lógico para cada projeto e depois expandi-lo à medida que o projeto crescesse. Quando o projeto foi feito, eu poderia arquivar o trabalho em fita e afastar o volume lógico. Isso retornaria esse espaço de volta ao grupo de volume, onde ele seria realocado para o (s) próximo (s) projeto (s).

Esta foi uma maneira muito limpa de utilizar nosso armazenamento, mas há duas desvantagens nessa abordagem. Você acaba tendo que microgerenciar os tamanhos dos volumes lógicos tentando equilibrar a quantidade de espaço alocado para um volume lógico, de modo que você tivesse espaço suficiente para fazer o seu trabalho, mas sem sobrecarregá-lo e acabar perdendo espaço. Nosso farm de renderização era capaz de gerar muitos TB's de dados por dia e, se você não prestasse muita atenção a isso, ficaria sem espaço com pressa. Eu eventualmente configurei alguns scripts que monitoravam as tendências no espaço disponível nos volumes lógicos e os cultivavam automaticamente. Mesmo com isso no lugar com 80 ou mais Volumes Lógicos, havia muito espaço não utilizado amarrado em todos os volumes lógicos. Eu já indiquei o segundo problema ... O LVM não faz realmente o thin provisioning e o XFS só permite que você desenvolva um sistema de arquivos. Portanto, a alocação excessiva de espaço para um volume lógico pode adicionar muito espaço inutilizável.

Tudo isso foi configurado há cerca de 5 anos e, se eu fosse configurá-lo hoje, usaria o OpenSolaris e o ZFS. A principal razão é que a abordagem de armazenamento em pool do ZFS significa menos gerenciamento de volume. Você ainda pode separar cada projeto em seu próprio sistema de arquivos, mas sem precisar gerenciar os tamanhos dos volumes individuais. O ZFS tem alguns outros recursos muito interessantes que o tornam uma escolha melhor, mas há outras questões sobre o serverfault que afetam isso.

Na minha opinião, o ZFS é simplesmente a melhor solução gratuita disponível atualmente.

    
por 24.06.2009 / 22:40
1

Use o utilitário "mdadm" para criar um array RAID-5 de suas unidades.

Isso fornece a redundância de que você precisa, portanto, se uma unidade ficar inativa, você pode substituí-la sem perda de dados e também permite o uso de 3 das 4 unidades.

Também recomendo que você crie um volume LVM na parte superior do RAID, para particionar o espaço conforme necessário.

    
por 27.05.2009 / 20:09
1

Você pode querer dar uma olhada no AFS. Isso lhe dará alguma medida de disponibilidade (você pode acessar esses arquivos dentro e fora de sua rede) e redundância (arquivos podem ser replicados). Para um fluxo de trabalho em que você abre um arquivo, trabalha nele por algum tempo e depois o salva, isso seria melhor (do ponto de vista da rede) do que o NFS, pelo menos o NFS mais antigo.

    
por 28.05.2009 / 00:11
1

Como a outra resposta diz, o LVM é amplamente usado e pode combinar vários discos em um único "grupo de volume" que se parece com um grande dispositivo de bloco. Vale lembrar, porém, que isso aumenta sua probabilidade de falha - basta um disco falhar em um grupo de volumes para remover todo o sistema de arquivos, e se você tiver quatro discos unidos, isso é quatro vezes mais provável. Melhor usar o LVM em cima de um RAID1 ou similar para atenuar isso. O RAID de software Linux é bastante adequado para isso, embora o RAID de hardware possa ser mais conveniente.

    
por 29.05.2009 / 18:56
1

Algumas coisas a considerar se você permanecer no Linux:

  • Pense no sistema de arquivos também. Seu exemplo de 4x 500GB é sobre a maior capacidade que eu recomendaria com boa consciência para ext3. Eu não recomendo criar sistemas de arquivos ext3 muito maiores porque, por exemplo O fsck time pode ser enorme. Crie vários arquivos menores em vez de um grande sistema de arquivos.
  • Como você mencionou dados de vídeo: o ext3 lida com arquivos grandes ineficientemente porque terá que criar blocos de metadados indiretos, duplos indiretos e triplos indiretos para armazenar os dados de arquivos grandes e você pague o preço. Atualmente, o ext4 suporta extensões e manipula isso muito melhor. Mas então, é bastante novo e por ex. O Red Hat Enterprise Linux 5 não suporta ainda. (Algumas distribuições corporativas suportarão alternativas como XFS).
  • Se houver corrupção de dados em qualquer bloco de dados, será difícil perceber isso nos sistemas de arquivos Linux. Por outro lado, o ZFS checksums todos os dados e de metadados e também verifica a soma de verificação sempre que os dados são lidos do disco. (Há também esfregar fundo)
  • O tempo de reconstrução do RAID no Linux é proporcional ao tamanho do disco porque a camada RAID não conhece o conteúdo do sistema de arquivos (camada). O tempo de reconstrução RAID-Z do ZFS depende da quantidade de dados reais no disco com falha porque somente os blocos usados serão copiados / reconstruídos em um disco de substituição.
  • Deseja snapshot seus sistemas de arquivos? Os instantâneos do LVM nem sequer se comparam aos instantâneos instantâneos do ZFS. Este último também pode ser facilmente exposto aos utilizadores finais, e. para restaurações fáceis.
  • Use o RAID6 (RAID-Z2) e não apenas o RAID5 (RAID-Z) com discos grandes (> 500 GB) porque provavelmente outro disco falhará durante a reconstrução.
por 24.06.2009 / 23:49
1

Desculpe, isso seria um comentário, mas eu não tenho o representante ...

How does RAID-Z or RAIDZ2 provide better redundancy than RAID6?

O ZFS tem soma de verificação em qualquer lugar

Sobre a pergunta original. Quaisquer que sejam os dados eu usaria 2 paridade ativa por 10 discos. Eu usaria o cartão RAID de boa qualidade os 3ware são excelentes. Pessoalmente eu uso hardware RAID com backup de bateria. LVM só assim você pode migrar os dados facilmente no final da vida do hardware. XFS como o sistema de arquivos.

    
por 24.06.2009 / 22:31
0

Por que você não usa um disco ou cartão SSD para que o servidor do sistema seja inicializado e os 500 GB como armazenamento único. Use um disco de 500GB e quando ele estiver cheio, troque-o manualmente. Você pode fazer o backup mais tarde em outro computador com calma. Porque enquanto o disco rígido está girando (girando) ele pode ser danificado. De qualquer forma, se você conectar todos os discos ao mesmo tempo, todos estão girando e podem sofrer danos se você usá-los ou não. A probabilidade de falha aumenta quando você tem mais discos ativados. Use um por vez e troque-o quando estiver cheio ou em um período de tempo prevendo uma falha (use também o recurso SMART para se livrar disso). Use um disco de transporte ou use algum adaptador de disco SCSI / SATA externo para que você não precise desmontar o servidor do computador toda vez que trocar um disco. Essa é a forma mais segura e confiável. O uso do RAID é mais caro e você acaba desperdiçando alguns discos (porque você o deixa em risco de ser danificado por apenas deixá-lo ligado? Estúpido ou não?). Se você quiser mais datatroughtput, então usar uma configuração RAID para isso é uma boa escolha, mas nunca confie em uma configuração de computador. O backup deve ser feito sempre manualmente com uma pessoa (a rede ou o administrador do servidor). Esse é um dos trabalhos de um administrador. Você pode usar fitas, DVD, BlueRay ou outros discos para fazer o backup. Mas você sempre precisará de um meio de armazenamento confiável e um disco em execução não é um. Um disco desligado e bem guardado (em local fresco e livre de umidade) é um meio de armazenamento confiável.

    
por 10.05.2010 / 04:26