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.
fonte
Respostas:
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.
fonte
design the right way
link está quebrado agora.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.
fonte