Práticas recomendadas do ZFS com RAID de hardware

30

Se houver algum hardware de nível servidor disponível, é aconselhável executar o ZFS em cima de um RAID1 baseado em hardware ou algo assim? Deve-se desligar o RAID baseado em hardware e executar o ZFS em um mirrorou outro raidz zpool?

Com a funcionalidade RAID de hardware desativada, os controladores SATA2 e SAS baseados em RAID de hardware têm mais ou menos probabilidade de ocultar erros de leitura e gravação do que os controladores RAID que não são de hardware?

Em termos de servidores não personalizáveis, se houver uma situação em que um controlador RAID de hardware seja efetivamente neutro em termos de custo (ou até reduz o custo da oferta de servidor pré-criada, pois sua presença aumenta a probabilidade da empresa de hospedagem fornecer IPMI complementar) acesso), deve ser evitado? Mas deveria ser procurado?

cnst
fonte
2
@ShaneMadden, as perguntas são semelhantes, no entanto, minha pergunta já vem da perspectiva de um ataque de hardware ser ruim em termos de zfs, e estou perguntando o quão ruim é; Além disso, considere que a resposta aceita para sua pergunta vinculada não aborda minha pergunta; minha pergunta é mais parecida com a pergunta que você vinculou.
CNST
"ZFS em cima do espelhamento de hardware ou apenas espelhar no ZFS?" e esta pergunta são dois tópicos diferentes. Esse outro tópico tem escopo mais estreito que este tópico.
Stefan Lasiewski
@whwhite, você já não perguntou isso?
CNST
@ CNST Bem, não há resposta marcada, e as pessoas continuam votando na minha resposta. Portanto, seria bom haver algum fechamento para a questão colocada. ( Que é a coisa responsável a fazer )
ewwhite

Respostas:

17

A idéia com o ZFS é informar ao máximo possível como os discos estão se comportando. Então, do pior para o melhor:

  • Invasão de hardware (o ZFS não tem absolutamente nenhuma pista sobre o hardware real),
  • Modo JBOD (o problema é mais sobre qualquer expansor em potencial: menos largura de banda),
  • O modo HBA é o ideal (o ZFS sabe tudo sobre os discos)

Como o ZFS é bastante paranóico em relação ao hardware, quanto menos oculto houver, mais ele poderá lidar com quaisquer problemas de hardware. E, como apontado por Sammitch , as configurações do RAID Controller e o ZFS podem ser muito difíceis de restaurar ou reconfigurar quando falham (ou seja, falha de hardware).

Sobre a questão do hardware padronizado com algum controlador RAID de hardware, apenas tome cuidado para que o controlador de hardware tenha um modo de passagem real ou JBOD.

Ouki
fonte
10
Também vale a pena notar que, se você estiver usando HW RAID e seu controlador morrer [acontece mais do que você pensaria], se você não conseguir uma substituição idêntica ou totalmente compatível, estará pronto. Por outro lado, se você forneceu os discos brutos ao ZFS, poderá conectá-los a qualquer controlador em qualquer máquina e o ZFS poderá reconstruir a matriz e continuar como se nada tivesse acontecido.
Sammitch
1
Servidores de ponta geralmente têm controladores RAID integrados. Por exemplo, nunca tive que substituir um controlador em um sistema HP ou Dell.
ewwhite
2
Esta resposta não responde a nada. Ele expressa apenas a opinião tendenciosa de que o fornecedor do hardware do servidor e o programador do ZFS fizeram um trabalho melhor do que o fornecedor do controlador RAID e o programador do firmware RAID. A comunidade FreeNAS está cheia de caras que mataram seus Zpools com memória de servidor com defeito ou fontes de alimentação inadequadas. A chance de algo grande falhar é maior do que algo pequeno.
ceving
14

P. Se houver algum hardware de servidor disponível, é aconselhável executar o ZFS sobre um RAID1 baseado em hardware ou algo assim?

R. É altamente preferível executar o ZFS diretamente no disco e não usar qualquer forma de RAID no meio. Se um sistema que exige efetivamente o uso da placa RAID impede ou não o uso do ZFS tem mais a ver com os OUTROS benefícios do ZFS do que com a resiliência de dados. Simplesmente, se houver um cartão RAID subjacente responsável por fornecer um único LUN ao ZFS, o ZFS não melhorará a resiliência dos dados. Se o seu único motivo para usar o ZFS em primeiro lugar é o aprimoramento da resiliência de dados, você perdeu todos os motivos para usá-lo. No entanto, o ZFS também fornece ARC / L2ARC, compactação, snapshots, clones e várias outras melhorias que você também pode desejar e, nesse caso, talvez ainda seja o seu sistema de arquivos preferido.

P. Deve-se desligar o RAID baseado em hardware e executar o ZFS em um espelho ou em um zpool raidz?

R. Sim, se possível. Algumas placas RAID permitem o modo de passagem. Se houver, é a coisa preferida a fazer.

P. Com a funcionalidade RAID de hardware desativada, os controladores SATA2 e SAS baseados em RAID de hardware têm mais ou menos probabilidade de ocultar erros de leitura e gravação do que os controladores RAID que não são de hardware?

R. Isso depende totalmente da placa RAID em questão. Você precisará examinar o manual ou entrar em contato com o fabricante / fornecedor da placa RAID para descobrir. Alguns sim, sim, especialmente se 'desativar' a funcionalidade RAID na verdade não a desativar completamente.

P. Em termos de servidores não personalizáveis, se houver uma situação em que um controlador RAID de hardware é efetivamente neutro em termos de custo (ou até reduz o custo da oferta de servidor pré-criada, pois sua presença aumenta a probabilidade da empresa de hospedagem fornecer acesso complementar à IPMI), deveria ser evitado? Mas deveria ser procurado?

R. Essa é a mesma pergunta que a sua primeira. Novamente - se seu único desejo de usar o ZFS é uma melhoria na resiliência de dados, e a plataforma de hardware escolhida exige que uma placa RAID forneça um único LUN para ZFS (ou vários LUNs, mas você tem uma faixa do ZFS), então você está fazendo nada para melhorar a resiliência dos dados e, portanto, sua escolha do ZFS pode não ser apropriada. Se, no entanto, você encontrar algum dos outros recursos do ZFS úteis, ele ainda pode ser.

Quero acrescentar uma preocupação adicional - as respostas acima se baseiam na idéia de que o uso de uma placa RAID de hardware sob o ZFS não prejudica o ZFS além de remover sua capacidade de melhorar a resiliência dos dados. A verdade é que é mais uma área cinzenta. Existem vários ajustes e suposições no ZFS que não necessariamente funcionam tão bem quando entregues LUNs de vários discos em vez de discos brutos. A maior parte disso pode ser negada com o ajuste adequado, mas, fora da caixa, você não será tão eficiente no ZFS em cima de grandes RAUN LUNs como teria sido em cima de eixos individuais.

Além disso, existem algumas evidências que sugerem que a maneira muito diferente pela qual o ZFS conversa com os LUNs, em oposição aos sistemas de arquivos mais tradicionais, geralmente invoca caminhos de código no controlador RAID e cargas de trabalho com as quais eles não estão acostumados, o que pode levar a esquisitices. O mais notável é que você provavelmente estará fazendo um favor a si próprio, desativando totalmente a funcionalidade ZIL em qualquer pool que você colocar sobre um único LUN, se você também não estiver fornecendo um dispositivo de log separado, embora, é claro, eu recomendo que você Forneça ao pool um dispositivo de log bruto separado (que não seja um LUN da placa RAID, se possível).

Nex7
fonte
9

Eu executo o ZFS sobre as configurações de RAID HP ProLiant Smart Array com bastante frequência.

Por quê?

  • Porque eu gosto do ZFS para partições de dados, não para partições de inicialização.
  • Porque a inicialização do Linux e do ZFS provavelmente não é suficientemente infalível para mim no momento.
  • Como os controladores HP RAID não permitem a passagem de dispositivos RAW . Configurar vários volumes RAID 0 não é o mesmo que discos RAW.
  • Como os backplanes do servidor normalmente não são flexíveis o suficiente para dedicar compartimentos de unidade a um controlador específico ou dividir tarefas entre dois controladores. Atualmente, você vê as configurações de 8 e 16 compartimentos com mais frequência. Nem sempre é suficiente para segmentar como as coisas devem ser.
  • Mas ainda gosto dos recursos de gerenciamento de volume do ZFS. O zpool me permite organizar as coisas dinamicamente e aproveitar ao máximo o espaço em disco disponível.
  • Compressão, ARC e L2ARC são características incríveis!
  • Uma configuração do ZFS projetada adequadamente no RAID de hardware ainda dá bons avisos e alertas de falha, mas supera a solução somente de hardware.

Um exemplo:

Configuração do controlador RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

bloquear lista de dispositivos

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

configuração zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

detalhe do zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

listagem do sistema de arquivos zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -
ewwhite
fonte
Portanto, com relação à pergunta encerrada à qual você se vinculou, é necessário dizer que, se eu quiser usar o ZFS, é melhor evitar, por exemplo, o Dell PERC H200 e o HP P410? Eles ainda não têm como desativar o modo de invasão de hardware, seja RAID0 ou RAID1?
CNST
Portanto, parece que o dell.com/learn/us/en/04/campaigns/dell-raid-controllers afirma que o H200 "suporta não-RAID", embora h18004.www1.hp.com/products/servers/proliantstorage/ … Não está totalmente claro se a funcionalidade de invasão do P410 pode ou não ser desativada.
CNST
@cnst Você não pode desativar a funcionalidade RAID de um HP Smart Array P410.
ewwhite
Ainda está correto? Você está dizendo que não há ZFS executando perigoso no ataque de hardware?
esparsa
Corrigir. Não é perigoso.
ewwhite 24/11
5

Normalmente, você nunca deve executar o ZFS em cima de discos configurados em uma matriz RAID. Observe que o ZFS não precisa ser executado no modo RAID. Você pode apenas usar discos individuais. No entanto, praticamente 99% das pessoas executam o ZFS para a parte RAID dele. Você pode simplesmente executar seus discos no modo listrado, mas esse é um mau uso do ZFS. Como outros pôsteres disseram, o ZFS quer saber muito sobre o hardware. O ZFS deve ser conectado apenas a uma placa RAID que possa ser configurada no modo JBOD ou, de preferência, conectada a um HBA. Salte para o canal IRC Freenode #openindiana; qualquer um dos especialistas em ZFS no canal dirá a mesma coisa. Peça ao seu provedor de hospedagem que forneça o modo JBOD se ele não fornecer um HBA.

chris
fonte
1
Sim, eu concordo. Mas também é uma questão do que está disponível em estoque com a configuração que se encaixa na conta e nas especificações. Se um servidor tiver uma ótima CPU, muita RAM ECC, grande largura de banda e bastante, mas precisar vir com um RAID baseado em hardware, pode não ser econômico procurar alternativas, que podem ser várias vezes mais caras, devido a estar em uma categoria diferente ou assim, ou faltando alguns da empresa apresenta como o ECC RAM etc.
CNST
2

Resumindo: o uso de RAID abaixo do ZFS simplesmente mata a ideia de usar o ZFS. Por quê? - Porque foi projetado para funcionar em discos puros, não em RAIDs.

poige
fonte
1
Não necessariamente. E se eu me importar mais com a flexibilidade do gerenciamento de volumes do que com a otimização disponível, ter acesso bruto a dispositivos físicos. O ZFS funciona muito bem para o meu caso de uso.
ewwhite
3
@branco, bem, alguém pode andar de bicicleta andando perto dela, dizendo que gosta de andar e adora bicicletas em geral, mas a verdade é que as bicicletas são feitas para serem usadas. )
poige
2

Para todos vocês ... O ZFS sobre qualquer Raid é uma DOR total e é feito apenas por pessoas MAD! ... como usar o ZFS com memória não ECC.

Com amostras, você entenderá melhor:

  • ZFS sobre Raid1, um disco mudou um pouco quando não foi desligado ... forçar tudo o que você sabe, o ZFS sofrerá algum dano ou não dependendo do disco lido (o controlador Raid não viu esse bit alterado e acha que os dois discos estão OK ) ... se a falha estiver na parte VDEV ... todo o ZPOOL perde todos os seus dados para sempre.
  • No ZFS sobre Raid0, um disco mudou um pouco quando não foi desligado ... remova tudo o que você sabe (o controlador Raid não viu esse bit alterado e acha que os dois discos estão OK) ... O ZFS verá esse dano, mas se o fail está na parte VDEV ... o ZPOOL inteiro perde todos os seus dados para sempre.

Onde o ZFS é bom, é na detecção de bits que mudaram quando o disco estava sem energia (os controladores RAID não podem fazer isso), também quando algo muda sem ser solicitado, etc.

É o mesmo problema que quando um bit em um módulo RAM muda espontaneamente sem ser solicitado a ... se a memória é ECC, a memória se corrige; caso contrário, esses dados foram alterados, para que os dados sejam enviados para os discos modificados; forçar que a mudança não esteja na parte UDEV, se a falha estiver na parte VDEV ... todo o ZPOOL perde todos os seus dados para sempre.

Essa é uma fraqueza no ZFS ... VDEVs falha implica que todos os dados sejam perdidos para sempre.

A incursão por hardware e a incursão por software não podem detectar alterações espontâneas de bits, elas não possuem somas de verificação, o pior nos níveis Raid1 (mirros), lêem nem todas as partes e as comparam, supõem que todas as partes terão sempre os mesmos dados, SEMPRE (sempre digo) em voz alta) O Raid supõe que os dados não foram alterados por nenhuma outra coisa / maneira ... mas os discos (como memória) são propensos a alterações espontâneas de bits.

Nunca use um ZFS em uma RAM que não seja ECC e nunca use ZFS em discos invadidos, deixe o ZFS ver todos os discos, não adicione uma camada que possa arruinar seu VDEV e POOL.

Como simular tal falha ... desligue o PC, retire um disco desse Raid1 e altere apenas um bit ... reconecte e veja como o controlador Raid não pode saber que mudou ... ZFS pode porque todas as leituras são testadas contra a soma de verificação e, se não corresponder, leia de outra parte ... O Raid nunca lê novamente porque uma falha (exceto a leitura impossível do hardware falha) ... se o Raid puder ler, ele acha que os dados estão OK (mas não é nesses casos ) ... O Raid apenas tenta ler de outro disco se, onde estiver escrito, disser "ei, não consigo ler a partir daí, falha de hardware" ... O ZFS lerá de outro disco, se a soma de verificação não corresponder, como também onde está. diz "ei, eu não consigo ler a partir daí, falha de hardware".

Espero deixar bem claro ... O ZFS em qualquer nível do Raid é uma dor de cabeça e um risco total para os seus dados! bem como o ZFS em memórias não-ECC.

Mas o que ninguém diz (exceto eu) é:

  • Não use discos com cache interno (não apenas os SHDD, também alguns que possuem cache de 8 Mb a 32 Mb, etc.) ... alguns deles usam memória não ECC para esse cache
  • Não use o SATA NCQ (uma maneira de gravar na fila), pois isso pode arruinar o ZFS se houver falta de energia

Então, quais discos usar?

  • Qualquer disco com bateria interna que garanta que toda a fila seja gravada no disco em casos de falha de energia e use memória ECC dentro dele (desculpe, existem muito poucos com tudo isso e são caros).

Mas, ei, a maioria das pessoas não sabe tudo isso e nunca teve um problema ... eu lhes digo: nossa, que sorte você tem, compre alguns bilhetes de loteria antes que a sorte desapareça.

Os riscos existem ... podem ocorrer conincidências com essas falhas ... então a melhor resposta é:

  • Tente não colocar nenhuma camada entre o ZFS e onde os dados estão realmente armazenados (RAM, Raid, NCQ, cache interno do disco, etc.) ... o máximo que puder.

O que eu pessoalmente faço?

  • Coloque mais camadas ... eu uso cada disco de 2,5 "SATA III 7200 rpm em um gabinete USB 3.1 Gen2 tipo C, conecto alguns gabinetes a um hub USB 3.1 Gen 2 tipo A que eu conecto ao PC; outro a outro hub que eu conecto a outra porta raiz no PC, etc.
  • Para o sistema, eu uso conectores sata internos em um ZFS (nível Raid0) porque eu uso um sistema Linux imutável (como um LiveCD), cada um inicializa conteúdo idêntico em discos internos ... e eu tenho uma imagem Clone do sistema que posso restaurar (sistema inferior a 1GiB) ... também eu uso o truque para ter o sistema contido em um arquivo e uso a unidade mapeada de RAM onde eu o clono na inicialização, portanto, após a inicialização, todo o sistema roda na RAM ... colocando esse arquivo em um DVD eu também posso inicializar da mesma maneira, então, em caso de falha de discos internos, eu apenas inicializo com o DVD e o sistema está on-line novamente ... truque semelhante ao SystemRescueCD, mas um arquivo ISO um pouco mais complexo porque pode estar no ZFS interno ou apenas seja o DVD real e eu não quero duas versões diferentes.

Espero poder dar uma pequena luz sobre o ZFS contra o Raid, é realmente uma dor quando as coisas dão errado!

Claudio
fonte
Então você está dizendo que o ZFS é tão confiável que, se um único bit mudar, você poderá perder todo o sistema de arquivos? Como o SATA NCQ causa perda de dados quando a unidade ainda notifica o host apenas quando os setores foram gravados com sucesso (embora talvez em uma ordem diferente)?
Malvineous