Nota: Esta é uma pergunta de acompanhamento para Existe uma maneira de proteger o SSD contra corrupção devido à perda de energia? . Eu tenho boas informações lá, mas basicamente centrada em três áreas, "obter um UPS", "obter 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 corrupção de metadados, especialmente em gravações antigas. Para recapitular o problema. É um sistema de arquivos ext4 em SSDs de nível de consumidor Kingston com cache de gravação ativado e estamos vendo esses tipos de problemas:
- arquivos com as permissões erradas
- arquivos que se tornaram diretórios (por exemplo, toggle.wav agora é um diretório com arquivos nele)
- diretórios que se tornaram arquivos (não tenho certeza do conteúdo ..)
- arquivos com dados embaralhados
O problema é menor com essas coisas acontecendo em dados que estão sendo gravados enquanto a unidade fica inativa ou pouco antes. É um problema, mas é esperado e posso lidar com isso de outras maneiras.
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 blocos, mesmo que eu esteja escrevendo em outro lugar? Assim:
E então há uma perda de energia quando D está sendo reescrito. Pode haver peças sobrando no bloco 1 e algumas no bloco 2. Mas não sei se funciona assim. Ou talvez haja algo mais acontecendo ..?
Em resumo - gostaria de entender como isso pode acontecer e se há algo que eu possa fazer para mitigar o problema no nível do sistema operacional.
Nota: "obter SSDs melhores" ou "usar um UPS" não são respostas válidas aqui - estamos tentando avançar nessa direção, mas tenho que viver com a realidade no terreno e encontrar o melhor resultado com o que temos agora. Se não houver solução com esses discos e sem UPS, acho que essa é a resposta.
Referências:
A corrupção do sistema de arquivos pós-perda de energia súbita na partição ext3 de uma unidade SSD é "comportamento esperado"? Isso é semelhante, mas não está claro se ele estava enfrentando os tipos de problemas que estamos.
EDIT: Eu também tenho lido problemas com ext4 que podem ter problemas com perda de energia. Os nossos são registrados, mas não sei de mais nada.
Evite a corrupção de dados na unidade ext4/Linux em caso de perda de energia
http://www.pointsoftware.ch/en/4-ext4-vs-ext3-filesystem-and-why-delayed-allocation-is-bad/