Como ocorre a corrupção de metadados SSD na perda de energia? E posso minimizar isso?

3

Nota: Esta é uma pergunta de seguimento a Existe uma maneira de proteger o SSD da corrupção devido à perda de energia? . Eu tenho boas informações lá, mas basicamente centradas em três áreas, "obtenha um no-break", "obtenha unidades melhores" ou como lidar com a confiabilidade do Postgres.

Mas o que eu realmente quero saber é se há algo que eu possa fazer para proteger o SSD contra a corrupção de metadados, especialmente em gravações antigas. Para recapitular o problema. É um sistema de arquivos ext4 em SSDs Kingston, com cache de gravação ativado, e estamos vendo esses tipos de problemas:

  • arquivos com as permissões incorretas
  • arquivos que se tornaram diretórios (por exemplo, toggle.wav agora é um diretório com arquivos)
  • diretórios que se tornaram arquivos (não tenho certeza do conteúdo ..)
  • arquivos com dados embaralhados

O problema é menor com essas coisas acontecendo nos dados que estão sendo gravados enquanto a unidade desce, ou pouco antes. É um problema, mas é esperado e posso lidar com isso de outras formas.

A maior surpresa e problema é que há corrupção de metadados acontecendo no disco em áreas que não foram gravadas recentemente (ou seja, uma semana ou mais antes).

Estou tentando entender como isso pode acontecer no nível do disco / controlador. O que está acontecendo? O SSD periodicamente "reequilibra" e move os blocos, mesmo que eu esteja escrevendo em outro lugar? Assim:

EentãoháumaperdadeenergiaquandoDestásendoreescrito.Podehaverpeçasnobloco1eoutrasnobloco2.Masnãoseisefuncionaassim.Outalvezhajaalgomaisacontecendo..?

Emresumo-gostariadeentendercomoissopodeacontecereseháalgoqueeupossafazerparaatenuaroproblemanoníveldosistemaoperacional.

Nota:"obtenha melhores SSDs" ou "use um no-break" não são respostas válidas aqui - estamos tentando seguir nessa direção, mas tenho que conviver com a realidade e encontrar o melhor resultado com o que temos agora. Se não houver solução com esses discos e sem um no-break, acho que essa é a resposta.

Referências:

É pós- corrupção do sistema de arquivos de perda súbita de energia na partição ext3 de uma unidade SSD "comportamento esperado"? Isso é semelhante, mas não está claro se ele estava passando pelos tipos de problemas que somos.

EDITAR: Eu também tenho lido problemas com ext4 que podem ter problemas com perda de energia. Os nossos são registrados, mas eu não sei de mais nada.

Evite a corrupção de dados na unidade ext4 / Linux em perda de potência

link

    
por Yehosef 30.07.2018 / 10:21

2 respostas

1

Para saber como a corrupção de metadados pode acontecer após uma falha de energia inesperada, dê uma olhada na minha outra resposta aqui

A desativação do cache pode reduzir significativamente a probabilidade de perda de dados durante o voo; no entanto, com base em seus SSDs, os dados em repouso permanecem em risco de serem corrompidos. Além disso, ele comanda uma perda de desempenho massiva (vi SSDs de 500+ MB / s para gravar em meros 5 MB / s depois de desativar o cache de DRAM privado).

Se você não pode confiar em seus SSDs, a única "solução" (ou, melhor, solução alternativa) é usar um sistema de arquivos de soma de verificação end-to-end como ZFS ou BTRFS e um RAID1 / configuração de espelhamento: desta maneira, qualquer possível corrupção (meta) de dados de um único dispositivo pode ser recuperada do outro lado do espelho, executando uma verificação / depuração.

    
por 09.08.2018 / 17:34
2

Sua melhor aposta é desativar o cache de gravação no disco, informando ao disco para não fazer gravação em cache (veja as opções hdparm e smartctl e espere que o disco as honre) e torne o SO não buffer escrito com opções de montagem como sincronização e dirsync.

    
por 02.08.2018 / 10:59