ZFS - O RAIDZ-1 é realmente tão ruim assim?

18

Eu tenho um servidor NAS com 4x unidades WD RE4-GP de 2 TB em uma configuração RAID10 (utilizável em 4 TB). Estou ficando sem espaço (<1 TB de espaço útil restante). Eu tenho $ 0 para gastar em unidades maiores / mais / gabinetes.

Gosto do que li sobre os recursos de integridade de dados do ZFS, que - por si só - são suficientes para eu mudar do meu RAID10 XFS (software) existente. Depois, li sobre a implementação superior do RAID5 do ZFS, e pensei em conseguir até 2 TB de espaço útil na barganha usando o RAIDZ-1.

No entanto, continuo lendo mais e mais posts dizendo praticamente para nunca usar o RAIDZ-1. Somente o RAIDZ-2 + é confiável o suficiente para lidar com falhas de unidades do "mundo real". É claro que, no meu caso, o RAIDZ-2 não faz nenhum sentido. Seria muito melhor usar dois vdevs espelhados em um único pool (RAID10).

Estou louco por querer usar o RAIDZ-1 para unidades de 4x 2TB?

Devo apenas usar um pool de dois vdevs espelhados (essencialmente RAID10) e esperar que a compactação me dê espaço extra suficiente?

De qualquer maneira, pretendo usar a compactação. Eu tenho apenas 8 GB de RAM (no máximo), portanto, a desduplicação não é uma opção.

Isso estará em um servidor FreeNAS (prestes a substituir o atual sistema operacional Ubuntu) para evitar os problemas de estabilidade do ZFS no Linux.

Andrew Ensley
fonte
Não tenho certeza de como isso está fora do tópico. Estou pedindo conselhos sobre a configuração correta do sistema de arquivos para um servidor.
Andrew Ensley
Também a velocidade de gravação RAIDZ1or2 é uma merda em comparação com o RAID10 #
JamesRyan
2
Se você possui CPU suficiente para calcular a paridade sem desaceleração, o RAIDZ deve ser tão rápido ou mais rápido que o RAID10 para a maioria das gravações. O RAIDZ grava tudo em uma faixa RAID completa; não há ciclo de leitura, modificação, gravação como no RAID5. Assim, você terá mais largura de banda do disco (mais dados, menos sobrecarga) e as gravações devem ser mais rápidas que o RAID10. No entanto, isso tem a desvantagem de que as leituras frequentemente acabam mais lentas. "Escrever uma faixa completa toda vez" leva à fragmentação e não oferece o benefício de ler apenas um subconjunto dos discos para muitas leituras pequenas. Esta foi uma decisão consciente do design.
Dan Pritts
O que eu disse acima é apenas parcialmente verdadeiro. O RAID10 será muito mais rápido se você tiver gravações pequenas simultâneas, por exemplo, um servidor de banco de dados. No RAIDZ todos os discos estão ativos para todas as gravações; O RAID10 os divide. O ponto que eu estava tentando entender era que o RAIDZ acaba com o ciclo de redução de desempenho e potencialmente inseguro de leitura, modificação e gravação do RAID5.
111115 Dan Pritts
O RAIDZ2 é mais confiável que o RAID10. Com o RAIDZ2, dois discos podem falhar e você ainda terá seus dados. Com o RAID10, dois discos com falha (em uma matriz de quatro discos) podem causar perda de dados.
Klaws 13/01

Respostas:

21

Antes de entrarmos em detalhes, considere seu caso de uso. Você está armazenando fotos, rasgos de MP3 e DVD? Nesse caso, você pode não se importar se perde permanentemente um único bloco da matriz. Por outro lado, se são dados importantes, isso pode ser um desastre.

A afirmação de que o RAIDZ-1 "não é bom o suficiente para falhas do mundo real" é porque é provável que você tenha um erro de mídia latente em um dos seus discos sobreviventes quando chegar a hora da reconstrução. A mesma lógica se aplica ao RAID5.

O ZFS atenua essa falha até certo ponto. Se um dispositivo RAID5 não puder ser reconstruído, você estará sem sorte; copie seus dados (restantes) e reconstrua-os do zero. Com o ZFS, por outro lado, ele reconstrói tudo, exceto o bloco ruim, e deixa o administrador "limpar" os erros. Você perderá um arquivo / parte de um arquivo, mas não perderá toda a matriz. E, é claro, a verificação de paridade do ZFS significa que você será informado com segurança de que há um erro. Caso contrário, acredito que é possível (embora improvável) que vários erros resultem em uma reconstrução aparentemente bem-sucedida, mas devolvendo dados incorretos.

Como o ZFS é uma " violação desenfreada de camadas ", ele também sabe quais áreas não têm dados sobre eles e pode ignorá-los na reconstrução. Portanto, se sua matriz estiver meio vazia, você terá a metade da probabilidade de ter um erro de reconstrução.

Você pode reduzir a probabilidade desses tipos de erros de reconstrução em qualquer nível de RAID, realizando "zpool scrubs" ou "mdadm checks" regulares de sua matriz. Existem comandos / processos semelhantes para outros RAIDs; por exemplo, os cartões de ataque LSI / dell PERC chamam isso de "leitura de patrulha". Eles leem tudo, o que pode ajudar as unidades de disco a encontrar setores defeituosos e reatribuí-los antes que se tornem permanentes. Se eles forem permanentes, o sistema RAID (ZFS / md / raid card / qualquer que seja) pode reconstruir os dados da paridade.

Mesmo se você usar RAIDZ2 ou RAID6, as limpezas regulares são importantes.

Uma observação final - o RAID de qualquer espécie não substitui os backups - não o protegerá contra exclusão acidental, ransomware, etc. Embora os instantâneos regulares do ZFS possam fazer parte de uma estratégia de backup.

Dan Pritts
fonte
Obrigado por essa explicação. Isso faz muito sentido e combina com o que aprendi sobre o ZFS até agora. Na verdade, eu já recarreguei meu servidor com o FreeNAS e fui com a configuração RAIDZ-1. Eu tenho que definir para esfregar uma vez por mês. Você acha que isso é suficiente ou recomendaria uma limpeza mais frequente? A estratificação violação desenfreada é o meu recurso favorito do ZFS :-)
Andrew Ensley
11
Eu tenho um raidz1 rodando em 7 unidades de consumo de várias idades. Eu tenho que esfregar a cada 2 semanas. Muitas vezes, encontra um erro e o corrige. Recentemente, perdi uma unidade e um arquivo com um erro latente. Felizmente, era um arquivo de mídia que eu posso substituir facilmente. Para meus dados importantes, ainda tenho, é claro, backups.
Dan Pritts
Apontarei - as unidades 'domésticas' têm 2 ordens de magnitude de taxa de erro de bits irrecuperável pior quando comparadas com a classe 'corporativa'. Ainda estou muito feliz que a taxa de falha composta no RAID-5 seja aceitável em unidades FC / SAS decentes. Não faria isso na SATA.
Sobrique
11
Somente uma ordem de magnitude comparando duas unidades da Seagate: Seagate ST2000DM001: 1 em 10E14. ST2000NM0033: 1 em 10E15. É realmente difícil dizer com certeza se os mecanismos de acionamento são diferentes. Ouvi fontes confiáveis ​​dar respostas opostas.
Dan Pritts
2
Descobri um cabo SATA com defeito no meu sistema - desde que ele foi substituído, meus scrubs encontraram zero erros.
Dan Pritts 20/09/2015
4

Há um pouco de um equívoco em ação aqui. Muitos dos conselhos que você está vendo são baseados em uma suposição que pode não ser verdadeira. Especificamente, a taxa de erro de bits irrecuperável da sua unidade.

Um disco barato de 'usuário doméstico' possui 1 por 10 ^ 14 de taxa de erro irrecuperável.

http://www.seagate.com/gb/en/internal-hard-drives/desktop-hard-drives/desktop-hdd/#specs

É nesse nível que você está falando de uma probabilidade significativa de um erro irrecuperável durante uma reconstrução do RAID e, portanto, não deve fazê-lo. (Um cálculo rápido e sujo sugere que os discos RAID-5 de 5 TB de 2 TB terão realmente uma chance de 60% disso)

No entanto, isso não é verdade para unidades mais caras: http://www.seagate.com/gb/en/internal-hard-drives/enterprise-hard-drives/hdd/enterprise-performance-15k-hdd/#specs

1 por 10 ^ 16 é 100x melhor - o que significa 5x 2TB é <1% de chance de falha na reconstrução. (Provavelmente menos, porque, para uso corporativo, os eixos de 600 GB geralmente são mais úteis).

Então, pessoalmente - acho que o RAID-5 e o RAID-4 ainda são eminentemente utilizáveis, por todos os motivos pelos quais o RAID-0 ainda é bastante comum. Não se esqueça - o problema com o RAID-6 é a sua grande penalidade de gravação. Você pode atenuar isso parcialmente com muito cache, mas ainda tem alguns problemas, principalmente quando você trabalha com drives lentos.

E, mais fundamentalmente, NUNCA confie no seu RAID para oferecer total resiliência. Você perderá os dados com mais frequência para um "ops" do que para as falhas de uma unidade, portanto, PRECISA de uma estratégia de backup decente se se importar com os dados.

Sobrique
fonte
Estou usando 4 unidades WD RE4-GP, que têm <1 em 10 ^ 15 erros de leitura não recuperáveis.
Andrew Ensley
A penalidade de gravação RAID6 é muito real. No entanto, o RAID-Z2 não sofre com isso; O zfs faz todas as gravações em faixa completa. Porém, isso tem outros efeitos negativos - tende a reduzir o desempenho da leitura por vários motivos.
Dan Pritts
3

Hummm, algumas informações ruins aqui. Para 4 discos, não há realmente nada de errado com o XFS. Costumo evitar o ZFS RAIDZ por motivos de desempenho e capacidade de expansão (baixas leituras / gravações, não podem ser expandidas). Use espelhos do ZFS, se puder. No entanto, com 4 discos e nenhum lugar para instalar seu sistema operacional, você perderá muita capacidade ou precisará passar por jogos de particionamento estranhos para ajustar seu sistema operacional e dados nos mesmos quatro discos.

Eu provavelmente não recomendaria o ZFS para o seu caso de uso. Não há nada errado com o XFS aqui.

ewwhite
fonte
2
Esqueceu de mencionar que o SO vive em uma unidade separada. Desculpe. O que estou querendo do ZFS que o XFS RAID10 não possui é a verificação de dados de soma de verificação que pode detectar (e corrigir de maneira transparente) erros de dados silenciosos (um pouco invertido na unidade e o HDD não faz ideia). Não acredito que o XFS seja capaz de fazer isso.
Andrew Ensley
Para quatro discos, use os espelhos do ZFS se houver alguma chance de você precisar expandir ou se o desempenho for importante. Eu também evitaria o FreeNAS e usaria o ZFS direto no Linux.
ewwhite
11
Eu sou um cara terminal, então definitivamente não estou mudando para a GUI. Principalmente, só preciso de um sistema de arquivos estável que (o máximo possível) garanta a integridade dos arquivos armazenados nele. E eu esperava ganhar algum espaço no processo. Eu já vi muitos problemas relatados para o ZoL, muitos deles relacionados a atualizações do sistema operacional Ubuntu. groups.google.com/a/zfsonlinux.org/forum/#!searchin/zfs-discuss/… Não está tentando ser uma dor. Apenas explicando por que penso o que penso. Estou certamente aberto à correção.
Andrew Ensley
11
Isso é bom. Eu já vi muito mais problemas com o FreeNAS (não o FreeBSD), por isso é nos dois sentidos. Há informações por aí. Eu não uso o Ubuntu, mas eu não sei ZFS . Meu ZFS no Linux geralmente é com RHEL ou CentOS. Aqui está um exemplo de fluxo de trabalho .
ewwhite
11
Uso o ZFS no Linux e Centos 6. Não permito atualizações automáticas do kernel ou do ZFS. Eu tive problemas com o borking do ZFS / SCL, mas nunca tive perda de dados. Para constar, o FreeBSD possui um conjunto semelhante de rotinas de compatibilidade com o Solaris, mas eles e o ZFS estão totalmente integrados à distribuição, o que torna muito mais simples fazer com que tudo funcione em conjunto. Se eu quisesse apenas o ZFS e o serviço de arquivos, provavelmente executaria o FreeBSD. Na verdade, era o que eu costumava fazer, mas uso a caixa para outras coisas aleatórias, o que tornou o ZoL mais atraente.
Dan Pritts