Cenários de perda de dados do ZFS

27

Estou pensando em criar um grande pool ZFS (150 TB +) e gostaria de ouvir as experiências das pessoas sobre os cenários de perda de dados devido à falha de hardware, em particular, distinguir entre instâncias em que apenas alguns dados são perdidos em relação ao sistema de arquivos inteiro ( de se houver tal distinção no ZFS).

Por exemplo: digamos que um vdev seja perdido devido a uma falha como um gabinete de unidade externa perdendo energia ou uma placa controladora falhando. Pelo que li, o pool deve entrar em um modo com falha, mas se o vdev for retornado, o pool deve se recuperar? ou não? ou se o vdev estiver parcialmente danificado, alguém perde o pool inteiro, alguns arquivos etc.?

O que acontece se um dispositivo ZIL falhar? Ou apenas um dos vários ZILs?

Realmente toda e qualquer anedota ou cenário hipotético respaldado por profundo conhecimento técnico é apreciado!

Obrigado!

Atualizar:

Estamos fazendo isso de maneira barata, já que somos uma pequena empresa (mais ou menos 9 pessoas), mas geramos uma quantidade razoável de dados de imagem.

Os dados são principalmente arquivos pequenos, pela minha contagem cerca de 500k arquivos por TB.

Os dados são importantes, mas não são críticos demais. Planejamos usar o pool do ZFS para espelhar a matriz de dados "ativa" de 48 TB (em uso por 3 anos ou mais) e usar o restante do armazenamento para dados 'arquivados'.

O pool será compartilhado usando o NFS.

O rack está supostamente em uma linha de gerador de backup para construção e temos dois no-breaks da APC capazes de alimentar o rack em carga máxima por 5 minutos ou mais.

Ciclone
fonte
2
Se você ainda não sabe o que está fazendo, procure um consultor e / ou faça alguns cursos. Duvido que todos os detalhes necessários sejam cobertos em uma resposta simples.
Lucas Kauffman
3
Então você ainda planeja usar SATAs baratos para consumidores 7.2? suspirar
Chopper3
@ Chopper3 Na verdade, intencionalmente não disse isso ... Estou considerando seriamente a compra de unidades SAS de 2 TB em vez de unidades SATA de 3 TB. Embora eu já vi muitas pessoas dizem que tenho usado drives SATA muito bem ....
Cyclone
11
Os discos SATA para ZFS não são realmente uma boa combinação. Você não encontrará muitas pessoas recomendando essa configuração hoje em dia. Na escala de que você está falando (150 TB), é um erro caro e desnecessário. Dê uma olhada nisso, no entanto .
ewwhite

Respostas:

22

Crie o caminho certo e você minimizará as chances de perda de dados do ZFS. Você ainda não explicou o que está armazenando na piscina. Nos meus aplicativos, ele serve principalmente o VMWare VMDK e exporta zvols por iSCSI. 150 TB não é uma quantia trivial, então eu me basearia em um profissional para obter conselhos sobre dimensionamento.

Nunca perdi dados com o ZFS.

Eu tenho experimentado tudo o resto:

Mas com tudo isso, nunca houve uma perda apreciável de dados. Apenas tempo de inatividade. Para os VMWare VMDKs em cima desse armazenamento, um fsck ou reinicialização geralmente era necessário após um evento, mas não era pior do que qualquer outra falha no servidor.

Quanto à perda de um dispositivo ZIL, isso depende do design, do que você está armazenando e dos seus padrões de E / S e gravação. Os dispositivos ZIL que eu uso são relativamente pequenos (4GB-8GB) e funcionam como um cache de gravação. Algumas pessoas espelham seus dispositivos ZIL. O uso dos dispositivos SSD STEC de ponta torna o espelhamento proibitivo. Eu uso apenas placas PCIe DDRDrive . Planeje a proteção da bateria / UPS e use placas SSD ou PCIe com um backup de super capacitor (semelhante às implementações do controlador RAID BBWC e FBWC ).

A maior parte da minha experiência foi do lado do Solaris / OpenSolaris e NexentaStor . Eu sei que as pessoas usam o ZFS no FreeBSD, mas não tenho certeza de quão longe estão as versões do zpool e outros recursos. Para implantações de armazenamento puro, eu recomendo seguir a rota do Nexentastor (e conversar com um parceiro experiente ), pois é um sistema operacional criado especificamente e existem implantações mais críticas em execução nos derivados do Solaris do que o FreeBSD.

ewwhite
fonte
Atualizei minha pergunta com mais algumas informações, mas estou particularmente interessado em saber mais detalhes sobre: ​​'nunca uma perda apreciável de dados' e o que isso significa / envolve. Também estou interessado em saber mais sobre como recuperar esses zpools com falha, lidar com as NICs ruins e até mesmo os problemas com as unidades SATA e mudar para o SAS (embora você fique feliz em saber, provavelmente vou usar o SAS de 2 TB em vez do SATA de 3 TB , por sua recomendação).
Ciclone
Perda não apreciável == alguns segundos de dados transacionais ou um estado consistente com falhas . E as NICs ruins foram isoladas em um único host VMWare e resultaram em problemas no nível da VM. Não é o armazenamento ZFS subjacente.
ewwhite
O design the right waylink está quebrado agora.
Saurabh Nanda
11

Substitui acidentalmente os dois ZILs na última versão do OpenSolaris, o que causou a perda irrevogavelmente de todo o pool. (Erro muito ruim da minha parte! Não entendi que perder o ZIL significaria perder o pool. Felizmente, recuperei-me do backup com o tempo de inatividade.)

Desde a versão 151a (não sei de antemão como a versão do ZPool significa isso), esse problema foi corrigido. E posso testemunhar que funciona.

Além disso, perdi dados ZERO em um servidor de 20 TB - inclusive devido a vários outros casos de erro do usuário, várias falhas de energia, gerenciamento inadequado de disco, configurações incorretas, vários discos com falha etc. As interfaces de configuração no Solaris mudam com frequência e de maneira irritante de versão para versão e apresentam um objetivo significativo de habilidades em constante mudança; ainda é a melhor opção para o ZFS.

Não apenas não perdi dados no ZFS (depois do meu terrível erro), mas ele me protege constantemente. Não tenho mais corrupção de dados - que me atormentou nos últimos 20 anos em vários servidores e estações de trabalho, com o que faço. A corrupção de dados silenciosa (ou apenas "bastante silenciosa") me matou várias vezes, quando os dados saem da rotação de backup, mas na verdade se tornam corrompidos no disco. Ou outros cenários em que os backups fizeram backup das versões corrompidas. Esse tem sido um problema muito maior do que apenas perder dados em grande escala de uma só vez, que é quase sempre feito de qualquer maneira. Por esse motivo, adoro o ZFS e não consigo entender por que a soma de verificação e a recuperação automática não são recursos padrão nos sistemas de arquivos há uma década. (É verdade que os sistemas de vida ou morte geralmente têm outras formas de garantir a integridade,

Preste atenção, se você não quiser entrar no inferno da ACL, não use o servidor CIFS embutido no ZFS. Use o Samba. (Você disse que usa o NFS.)

Não concordo com o argumento SAS vs. SATA, pelo menos a sugestão de que o SAS sempre é preferível ao SATA, para o ZFS. Não sei se esse comentário foi referente à velocidade de rotação do prato, confiabilidade presumida, velocidade da interface ou algum outro atributo. (Ou talvez apenas "eles custem mais e geralmente não sejam usados ​​pelos consumidores, portanto são superiores". Uma pesquisa recente do setor (ainda nas notícias, tenho certeza) revelou que a SATA realmente sobrevive ao SAS em média, pelo menos com o tamanho significativo da amostra da pesquisa. (Chocou-me, com certeza.) Não me lembro se eram versões "corporativas" do SATA, ou consumidor, ou o que acelera - mas, em minha experiência considerável, os modelos corporativo e de consumidor falham ao mesmo tempo. taxas estatisticamente significativas. (Existe o problema de as unidades consumidoras levarem muito tempo para esgotar o tempo de falha, o que é definitivamente importante na empresa - mas isso não me incomodou, e acho que é mais relevante para os controladores de hardware que podem levar todo o tempo. volume off-line nesses casos. Mas isso não é um problema SAS vs SATA, e o ZFS nunca me falhou com isso.Como resultado dessa experiência, agora uso uma combinação de 1/3 de unidades empresariais e 2/3 de unidades SATA de consumo .) Além disso, não vi desempenho significativo com esse mix de SATA, quando configurado corretamente (por exemplo, uma faixa de espelhos de três vias), mas, novamente, tenho uma baixa demanda de IOPS, portanto, dependendo do tamanho da sua loja e casos de uso típicos, YMMV. Definitivamente, notei que o tamanho do cache interno por disco é mais importante para os problemas de latência do que a velocidade de rotação do prato nos meus casos de uso.

Em outras palavras, é um envelope com vários parâmetros: custo, taxa de transferência, IOPS, tipo de dados, número de usuários, largura de banda administrativa e casos de uso comuns. Dizer que o SAS é sempre a solução certa é desconsiderar um grande universo de permutações desses fatores.

Mas de qualquer maneira, o ZFS é ótimo.

bolhas
fonte
3
Obrigado por tomar o tempo para responder. Sua experiência com o ZFS é consistente com a minha. Meus comentários sobre a seleção de unidades foram especificamente sobre discos SAS nearline e SATA. A principal diferença é a interface. Eles são mecanicamente equivalentes. A prática recomendada no ZFS-land agora é evitar o SATA devido à necessidade de interfaces de duas portas, melhor correção de erros e tempos limite gerenciáveis ​​oferecidos pelo SAS.
ewwhite
Acabei indo com discos SAS de 3 TB, mas .... antes de fazer isso, juntei 30 ou mais discos mistos (5 SATA de 400 GB, 12 SATS de 750 GB, 14 SAS de 1 TB) que eu coloquei no mesmo gabinete expandido SAS. Realmente é o pior cenário possível. Essas unidades também tinham ~ 2-3 anos de tempo de execução. Em seguida, escrevi um programa que executava 8 threads aleatoriamente, lendo gravando e excluindo arquivos no pool. Eu corri isso por mais de uma semana. Leia e escreva> 100 TB no pool ... sem problemas. AVG R / W 100-400 MB / seg. Suspeito que os avisos SATA sobre SAS possam ser notícias antigas agora.
Cyclone