Gerenciando a durabilidade dos dados / corrupção de arquivos

0

Sabemos que os discos rígidos têm vida útil limitada e ocorre corrupção de dados. Um disco rígido ainda pode parecer estar OK e passar nos testes, mas alguns arquivos podem, em algum momento, começar a ler de maneira diferente do que originalmente eram devido à física / deterioração do meio.

Backups de dados / espelhamento resolvem o problema de falha completa do disco, mas não o problema de corrupção de dados silenciosa . Além disso, se o disco de origem / mestre obtiver alguns arquivos corrompidos, as versões corretas nos discos de backup serão sobrescritas no próximo backup, essencialmente espalhando o erro e tornando os originais irrecuperáveis.

Em 2017, que técnicas / soluções existem para resolver o problema nas instalações (em oposição ao upload de arquivos de dados na nuvem com 99.999 ...% de durabilidade)?

Ouvi falar de software que rastreia basicamente as somas de verificação dos arquivos e detecta quando eles mudam, mas estou querendo saber se existe uma solução de nível mais baixo (por exemplo, nível de sistema de arquivos)? Por exemplo, um sistema de arquivos que calcula somas de verificação de arquivos toda vez que arquivos / blocos são gravados / atualizados e suporta a verificação de soma de verificação para detectar erros corrompidos, para que ações sejam tomadas antes que o erro se espalhe na mídia de backup?

Finalmente, talvez haja algum tipo de abordagem completamente diferente para o problema sobre o qual eu não estou ciente?

    
por Greendrake 06.11.2017 / 02:40

2 respostas

1

O ZFS é basicamente projetado para fazer exatamente isso. Ele verifica cada bloco de dados e, se estiver corrompido, o restaura de outras partes do "Virtual RAID" (o ZFS prefere fazer o seu próprio equivalente de RAID, em vez de usar o RAID de hardware).

Uma das funções do ZFS é executar uma limpeza periódica, que é o processo de passar pelo disco e verificar se há erros.

O ZFS é uma solução em nível de bloco e de sistema de arquivos (é um paradigma diferente para ter um sistema de arquivos em um dispositivo de bloco em uma solução do tipo RAID).

Eu também noto que a maioria dos sistemas RAID também permite a verificação peródica no nível do bloco, mas não é tão robusta e pode realmente sobrescrever dados bons com os ruins. Para mais pesquisas sobre este campo minado (que o ZFS ignora), pesquise no Google "Write Hole"

    
por 06.11.2017 / 04:53
0

Isto pode parecer uma forma redonda de gerir as coisas, mas descobri que a melhor forma ( mais eficaz com menos quantidade de recursos ) de gerir dados contra "durabilidade e corrupção de dados" é ambos têm gerenciado corretamente matrizes de discos e têm um esquema de backup e versionamento adequado.

As somas de verificação usadas pelos combos de matriz / sistema de arquivos ZFS e BTRFS podem ativamente encontrar a corrupção de dados sim, mas não necessariamente fornecem a "resposta" do que fazer sobre isso e você ainda pode precisar de seus backups para esse conjunto específico de dados. AND Scrubs em outros arrays pode encontrar a corrupção de dados também para garantir que seus arrays serão reconstruídos. Além disso, os backups de bateria e os bitmaps de intenção de gravação podem manipular o problema do furo de gravação. No geral, os sistemas de armazenamento modernos são extremamente robustos, se implementados corretamente, para lidar com os problemas que você realmente encontrará.

Se a corrupção de dados fosse um grande problema que os combos checksumming array / filesystem fossem a resposta, então TODAS as grandes firmas só usariam e verificariam somar combinações de matriz / sistema de arquivos e na realidade isso NÃO é o caso. Em vez disso, eles têm uma infraestrutura robusta com SANs e comutadores redundantes, backups de bateria, geradores, condicionadores de energia, sistemas de arquivos testados pelo tempo, matrizes bem gerenciadas e backups, backups, backups!

A realidade é que é extremamente raro o fato de que a pouca corrupção de dados conseguirá realmente causar um problema real; e isso acontece tão raramente que, pessoalmente, descobri que é melhor confiar na administração de sistemas adequada para atenuá-la e tentar ativamente gerenciar a própria corrupção de dados. Eu sei que nos últimos 20 anos eu tive alguns arquivos, geralmente arquivos de mídia, que aleatoriamente não funcionam e eu suponho que seja corrupção de dados. Mas nem uma vez eu tive um arquivo que realmente era necessário não funcionar, e se eu fizesse, eu iria apenas para meus backups para esse arquivo, e se isso não funcionasse, minha vida continuaria!

Além disso, não consigo pensar em um único arquivo que seria um fim para minha vida pessoal ou comercial; NENHUM. Um cliente chateado? Uma peça faltante de informação em um processo onde eu sou honesto e só preciso provar isso? Uma memória pessoal corrompida? Todos esses são coisas que eu preferiria evitar, mas todas essas coisas valem apenas uma quantia limitada do meu tempo e dinheiro para mitigar, já que a chance está próxima de 0, o que realmente acontecerá com a corrupção de dados ... NUNCA.

A questão é que, na minha opinião, a melhor coisa que você pode fazer para "Gerenciar a durabilidade dos dados / corrupção de arquivos" para configurações menores é:

  • Execute seus arrays como isso faz sentido para suas circunstâncias
  • Esfregue-os REGULARMENTE para ajudar a garantir recriações adequadas em caso de falha da unidade
  • Use controladores de hardware apoiados por bateria ou bitmaps de intenção de gravação para matrizes de software
  • Use matrizes de não paridade, se possível, para evitar falhas de reconstrução, se um URE ou algo acontecer entre scrubs
  • E, acima de tudo, coloque em prática um esquema adequado de backup e versão.

A administração de sistemas essencial é o que lida com o problema de corrupção de dados.

    
por 06.11.2017 / 06:51