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

35

Somos uma pequena empresa que edita vídeos, entre outras coisas, e precisa de um local para manter cópias de backup de grandes arquivos de mídia e facilitar o compartilhamento.

Eu tenho uma caixa configurada com o Ubuntu Server e unidades de 4 x 500 GB. Atualmente, eles estão 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. Há 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 diferentes quantidades de espaço livre e dados duplicados (para backup). É confuso agora e que só vai piorar uma vez que existem vários servidores. ("o projeto está em sever2 em share4" etc)

Portanto, preciso de uma maneira de combinar discos rígidos de forma a evitar a perda completa de dados com a falha de uma única unidade e, assim, os usuários verão apenas um único compartilhamento em cada servidor. Eu fiz o software linux RAID5 e tive uma experiência ruim com ele, mas tentaria 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 discos rígidos que são convenientes para meus usuários?


Editar: O objetivo aqui é basicamente criar servidores que contenham um número arbitrário de discos rígidos, mas limitem a complexidade da perspectiva do usuário final. (ou seja, 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 agrupo 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 pude evitar isso novamente, mas fiquei com a sensação de que estava adicionando um ponto adicional desnecessário de falha ao sistema.

Eu não usei o RAID10, mas estamos usando hardware comum e a maioria das unidades de dados por caixa está praticamente fixa em 6. Temos muitas unidades de 500 GB e 1,5 TB é bem 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 na unidade. Se uma configuração LVM (sem distribuição) pudesse lidar com uma única unidade com falha e soltar apenas os arquivos que tivessem uma porção armazenada nessa unidade (e a maioria dos arquivos armazenados em uma única unidade), poderíamos até conviver com isso.

Mas, desde que eu tenha que aprender algo totalmente novo, é possível que eu vá até o ZFS. Ao contrário do LVM, no entanto, eu também teria que alterar 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 importo muito com isso.

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

privatehuff
fonte
4
O ZFS é realmente considerado apenas uma opção estável de produção pronta no Solaris / OpenSolaris (embora algumas pessoas argumentem mesmo com a disponibilidade).
Christopher Cashell
6
Outra observação sobre LVM. . . pare de pensar nisso em termos de redundância e falha no disco. O LVM nunca deve saber sobre falhas de disco, porque deve ser tratado em um nível inferior (RAID). O LVM oferece a capacidade de gerenciar e particionar seus discos de maneira mais limpa e flexível, mas não adiciona redundância e lida com uma falha de disco da mesma maneira que uma partição não LVM (explode).
Christopher Cashell

Respostas:

28

LVM é realmente bastante usado. Basicamente, o LVM fica acima da camada de hardware (driver). Ele não adiciona redundância ou maior confiabilidade (depende do sistema de armazenamento subjacente para lidar com a confiabilidade). Em vez disso, fornece muita flexibilidade e recursos adicionais. O LVM nunca deve ver um disco desaparecer ou falhar, porque a falha no disco deve ser tratada pelo RAID (seja software ou hardware). Se você perder um disco e não puder continuar operando (reconstruir o RAID, etc), deverá fazer backups. Nunca é necessário tentar recuperar dados de uma matriz incompleta (se houver, é necessário reavaliar todo o design).

Entre as coisas que você obtém com o LVM estão a capacidade de aumentar e reduzir facilmente partições / sistemas de arquivos, a capacidade de alocar dinamicamente novas partições, a capacidade de capturar instantaneamente as partições existentes e montar as capturas como partições somente leitura ou graváveis. Os instantâneos podem ser incrivelmente úteis, principalmente para itens como backups.

Pessoalmente, uso o LVM para todas as partições (exceto / boot) em todas as caixas que eu construo, e venho fazendo isso nos últimos 4 anos. Lidar com caixas não LVM'ed é uma grande dor quando você deseja adicionar ou modificar o layout do disco. Se você estiver usando Linux, você definitivamente quer usar o LVM. [Nota: O 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 preços de disco 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 casado com o Ubuntu (o que eu normalmente recomendaria) ou se a caixa estiver executando outras tarefas, você pode querer dar uma olhada no OpenFiler . Ele transforma sua caixa em um dispositivo de armazenamento com uma interface da web e manipula todo o RAID / LVM / etc para você e permite exportar o armazenamento como SMB, NFS, iSCSI, etc. Pequena configuração.

Christopher Cashell
fonte
2
Eu segundo a sugestão do OpenFiler. Parece que nunca se pode acompanhar a quantidade de espaço em disco necessário, e separar o servidor dos dados pode tornar a experiência do usuário final e o gerenciamento muito mais fáceis e melhores. Há uma razão pela qual a Netapp foi tão bem-sucedida. Eu sugeriria seguir esse modelo.
Pcapademic 29/05/2009
1
Eu tinha procurado brevemente o freeNAS .. algum motivo para escolher o OpenFiler?
Privatehuff
Quando comecei a brincar com eles há alguns anos, o OpenFiler parecia mais estável, mais funcional, tinha melhor suporte ao driver e estava em desenvolvimento mais ativo. Eu decidi tentar e funcionou muito bem para mim. Sinceramente, não olhei para o FreeNAS desde então. Pode ser que o FreeNAS tenha alcançado o OpenFiler, mas eu não sei.
Christopher Cashell
Eu tenho usado o FreeNAS para SMB e iSCSI alvo e tem sido brilhante, nunca perdeu uma batida. Por outro lado, eu não avaliaram Openfiler, então eu não tenho idéia de como ele se compara
Mark Henderson
13

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

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

Wijnand
fonte
"Novo" significou principalmente para mim, e apenas que eu não tenho ouvido falar sobre isso e brincado com isso há anos etc. Mas, então, eu preciso estar executando o OpenSolaris para usar o ZFS?
Privatehuff
Ouvi dizer que há algum suporte em outros unixes, para o ZFS.
237 Brad Brad
1
Se você precisa do ZFS, precisa do OpenSolaris. As implementações no linux são feitas através do espaço do usuário e, como resultado, estão sujeitas a sobrecarga de desempenho e políticas de cache conflitantes.
Jldugger #
3
O suporte ao ZFS em outros sistemas operacionais não possui uma funcionalidade grave. E realmente, o OpenSolaris é um sistema operacional muito bom, mas por favor, use o verdadeiro OpenSolaris. zfs set sharesmb = na integração muito boa com backup / compartilhamento1.
Wijnand
9

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 "Eu posso recriá-lo, mas isso levaria um tempo e as pessoas reclamariam", você quer RAID 6 ou mais provável RAID 1/10.

Se a resposta for "Ninguém faz nenhum trabalho enquanto eu o recrio e garanto que está perfeita", você quer o ZFS / Raid-Z

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

user2108
fonte
1
"Se a resposta for" Ninguém faz nenhum trabalho enquanto eu o recrio e certifique-se de que seja perfeito ", você quer o ZFS / Raid-Z" Esta declaração mostra que você não sabe nada sobre o ZFS ou RAID em geral. Todo sistema que envolve tentativas de redundância de bloco sofre impactos no desempenho durante a reconstrução.
27411 jharley
Eu estava buscando mais a importância dos dados do que as características relativas de desempenho. A degradação durante a reconstrução também é importante, é claro, mas não é o que eu estava abordando.
User2108 27/05/09
Como o RAID-Z ou RAIDZ2 fornece melhor redundância que o RAID6? Ambos lidam com dois discos com falha em uma matriz, no máximo. O RAID10 também lida com um segundo disco com falha não tão bom quanto o RAID6, porque você precisa que o disco correto falhe, e não o restante. O desempenho é muito melhor com o RAID10 do que com o RAID6. Nota: O Linux 2.6.30 saiu e permite migrar do RAID1 -> RAID5 <-> RAID6 == grandiosidade!
serverhorror
5

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

O desempenho do RAID de software geralmente é melhor que o RAID de hardware nos benchmarks, no entanto, a veiculação de arquivos e o RAID de software consomem muita CPU e competem pelos seus processadores enquanto trabalham. Minha experiência mostra que, a menos que você use sistemas duplos de quatro núcleos, o RAID de hardware configurado corretamente será melhor que o RAID de software.

Bons controladores de hardware com bom suporte ao Linux:

  • Areca
  • 3Ware
  • a nova série Adaptec (as antigas são slooooow)
  • LSI MegaRAID
wazoox
fonte
2
eu vou gritar nas placas 3ware, elas são más, especialmente a 9650se e a 9690se, usaram os dois tipos de placas com até 16 unidades na 9650se, nenhum problema real e bom produto estável.
4

RAID NÃO é como LVM. Você pode usar o RAID para criar partições com 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 RAID sobre LVM ou ZFS (o ZFS pode funcionar tanto com RAID quanto com LVM). Na minha opinião, o ZFS funciona melhor que o LVM, mas:

  • somente no Solaris 10/11 / OpenSOlaris, você não pode usá-lo no linux
  • ZFS é gerenciamento de disco e sistema de arquivos, o LVM permite usar qualquer sistema de arquivos que você precisa

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

Paul Rudnitskiy
fonte
1
O ZFS está disponível no FreeBSD 7.x e no Nexenta.
27411 jharley
4

Dê uma olhada no que a Nexenta e o OpenSolaris estão oferecendo e acho que você ficará muito satisfeito com o que pode obter por nada. Há rumores de que os próximos lançamentos do OpenFiler também usarão a porta ZFS do FreeBSD (no entanto, eles estão bastante atrasados ​​do ponto de vista dos recursos).

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

jharley
fonte
Tradicionalmente, o RAID de hardware não tem um desempenho tão bom quanto o RAID de software - normalmente ele tem uma vantagem apenas quando há várias gravações que o controlador dedicado pode duplicar (ou seja, não precisa passar pelo barramento PCI), ou seja, o RAID 1. Existem outras preocupações com RAID de hardware, por exemplo, a qualidade e a incapacidade do firmware de ser (facilmente) atualizada. Por fim, adiciona outro ponto de falha. Por esses motivos, costumo evitar RAID de hardware. Dito isto, pelas mesmas razões, não brinquei com as novas opções de RAID de hardware! :)
Brian M. Caça
2

RAID vs LVM não é realmente uma boa comparação, eles executam funções separadas e são frequentemente 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 redimensionar facilmente e para tirar instantâneos.

Zoredache
fonte
2

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

Na minha configuração, executei um servidor 3U executando Linux com matrizes RAID6 de hardware externo anexadas a ele. 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 expandi-lo à medida que o projeto crescia. Quando o projeto foi concluído, eu podia arquivar o trabalho em fita e diminuir o volume lógico. Isso retornaria esse espaço ao grupo de volumes onde seria realocado para o (s) próximo (s) projeto (s).

Essa 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, para que você tivesse espaço suficiente para realizar seu trabalho, mas não alocá-lo em excesso e acabar perdendo espaço. Nosso farm de renderização era capaz de gerar muitos TBs de dados por dia e, se você não prestasse muita atenção a isso, ficaria sem espaço com pressa. Acabei configurando alguns scripts que monitoravam as tendências no espaço disponível nos volumes lógicos e as aumentavam automaticamente. Mesmo com isso em torno de 80 volumes lógicos, havia muito espaço não utilizado amarrado em todos os volumes lógicos. Eu já sugeri o segundo problema .... O LVM não Realmente faça provisionamento thin e o XFS permite apenas o crescimento de um sistema de arquivos. Portanto, a alocação excessiva de espaço em um volume lógico pode adicionar muito espaço inutilizável.

Tudo isso foi configurado há cerca de 5 anos e, se eu o estivesse configurando hoje, usaria o OpenSolaris e o ZFS. O principal motivo é 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 minuciosamente os tamanhos dos volumes individuais. O ZFS possui alguns outros recursos muito interessantes que o tornam uma escolha melhor, mas há outras questões sobre a falha do servidor que entram nessa questão.

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

3dinfluence
fonte
2

Algumas coisas a considerar se você permanecer no Linux:

  • Pense também no sistema de arquivos. Seu exemplo de 4x 500 GB é 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 tempo do fsck pode ser enorme. Crie vários sistemas de arquivos menores, em vez de um grande.
  • Como você mencionou os dados de vídeo: o ext3 lida com arquivos grandes de maneira ineficiente, pois precisará criar blocos de metadados indiretos, duplos e indiretos e triplos e indiretos para armazenar os dados de arquivos grandes e você pagará o preço. Atualmente, o ext4 suporta extensões e lida com isso muito melhor. Mas então, é bastante novo e, por exemplo, o Red Hat Enterprise Linux 5 ainda não o suporta. (Algumas distribuições Enterprise suportam alternativas como XFS).
  • Se houver corrupção de dados em qualquer bloco de dados, será difícil perceber isso nos sistemas de arquivos Linux. O ZFS, por outro lado, soma todos os metadados e dados e também verifica a soma de verificação sempre que os dados são lidos no disco. (Há também uma limpeza em segundo plano)
  • 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 do ZFS RAID-Z depende da quantidade de dados reais no disco com falha, porque apenas os blocos usados serão copiados / reconstruídos em um disco de substituição.
  • Deseja capturar instantaneamente seus sistemas de arquivos? Os instantâneos LVM nem se comparam aos instantâneos instantâneos do ZFS. Este último também pode ser facilmente exposto aos usuários finais, por exemplo, para restaurações fáceis.
  • Use RAID6 (RAID-Z2) e não apenas RAID5 (RAID-Z) com discos grandes (> 500 GB), porque é provável que outro disco falhe durante a reconstrução.
Knweiss
fonte
Excelentes pontos que eu não tinha considerado sobre ext3. O Ext4 ainda é um pouco novo para o meu sangue, mas o XFS deve ser suportado pelo servidor Ubuntu que estou usando, você o recomenda?
privatehuff
1

Use o utilitário "mdadm" para criar uma matriz RAID-5 a partir de suas unidades.

Isso fornece a redundância necessária, portanto, se uma unidade ficar inoperante, você poderá substituí-la sem perda de dados e também usar 3 das 4 unidades.

Também recomendo que você crie um volume LVM sobre o RAID, para poder particionar o espaço conforme necessário.

ph.
fonte
1

Você pode dar uma olhada no AFS. Isso fornecerá algumas medidas de disponibilidade (você pode acessar esses arquivos dentro e fora da rede) e redundância (os arquivos podem ser replicados). Para um fluxo de trabalho em que você abre um arquivo, trabalhe nele por algum tempo e salve-o, isso seria melhor (do ponto de vista da rede) que o NFS, pelo menos o NFS mais antigo.

Chris
fonte
1

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

Dan
fonte
Sua declaração "leva apenas um disco para falhar em um grupo de volumes para remover todo o sistema de arquivos" depende muito de como você cria e usa os volumes lógicos no grupo de volumes. Se você criar apenas um único volume lógico, preenchendo todo o grupo de volumes, o que você diz é verdadeiro. É inteiramente possível, e dependendo dos requisitos do sistema de arquivos, mesmo recomendado, criar vários volumes lógicos em um único grupo de volumes.
pgs
1

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

Como o RAID-Z ou RAIDZ2 fornece melhor redundância que o RAID6?

O ZFS tem soma de verificação em todos os lugares

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

James
fonte
0

Por que você não usa um disco ou cartão SSD para ter o servidor do sistema para inicializar e os 500 GB como apenas armazenamento. Use um disco de 500 GB e, quando estiver cheio, troque-o manualmente. Você pode fazer o backup posteriormente 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 poderá sofrer danos se você usá-lo 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 antecipando 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 não precisar 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 ligado, corre o risco de ser danificado por apenas deixá-lo ligado? Estúpido ou não?). Se você quiser mais dados de dados, use uma configuração RAID para isso, acho que é uma boa escolha, mas nunca confie em uma configuração de computador. O backup deve ser feito sempre manualmente com uma pessoa (o administrador da rede ou 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 deles. Um disco desligado e bem salvo (em um local fresco e sem umidade) é um meio de armazenamento confiável. Se você quiser mais dados de dados, use uma configuração RAID para isso, acho que é uma boa escolha, mas nunca confie em uma configuração de computador. O backup deve ser feito sempre manualmente com uma pessoa (o administrador da rede ou 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 deles. Um disco desligado e bem salvo (em um local fresco e sem umidade) é um meio de armazenamento confiável. Se você quiser mais dados de dados, use uma configuração RAID para isso, acho que é uma boa escolha, mas nunca confie em uma configuração de computador. O backup deve ser feito sempre manualmente com uma pessoa (o administrador da rede ou 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 deles. Um disco desligado e bem salvo (em um local fresco e sem umidade) é um meio de armazenamento confiável. Mas você sempre precisará de um meio de armazenamento confiável e um disco em execução não é um deles. Um disco desligado e bem salvo (em um local fresco e sem umidade) é um meio de armazenamento confiável. Mas você sempre precisará de um meio de armazenamento confiável e um disco em execução não é um deles. Um disco desligado e bem salvo (em um local fresco e sem umidade) é um meio de armazenamento confiável.


fonte