Estou executando um sistema incorporado pequeno uClibc
e busybox
baseado em um dispositivo x86. Estou usando um initramfs, mas também montando um ext3
diretório personalizado em um dispositivo flash compacto no modo IDE que estou usando para armazenar dados de log de medição persistentes criados por um aplicativo c ++ gravado personalizado. Eu escolhi o ext3
sistema de arquivos, pois é recomendado para segurança contra perda de energia ao usar unidades CF no modo IDE em alguns livros que li ( Construindo sistemas Linux embarcados por Karim Yaghmour e Embedded Linux Primer por Christopher Hallinan). Isso é particularmente importante e os dados são críticos.
No entanto, devido a alguns dos comentários da minha pergunta anterior Confusão sobre como restaurar arquivos ext3 corrompidos se ocorrer falta de energia durante a gravação de um arquivo , parece que, de fato, este sistema de arquivos não oferece garantia de segurança contra corrupção de dados devido à energia perda. Então eu gostaria de saber se
- É
ext3
realmente a melhor escolha para esta configuração? - A perda de energia durante uma operação de gravação de disco apenas corrompe a parte dos dados que estou anexando ao arquivo periodicamente ou pode corromper o arquivo inteiro ?
- Os dados que não estão sendo gravados no ponto de perda de energia são completamente seguros? Em particular, existe algum risco de que meu
initramfs.cpio
arquivo também fique corrompido? - Existe algum método que eu possa usar no código do meu aplicativo para proteger os dados (por exemplo, criar uma partição extra e gravar meus dados em imagens espelhadas para que haja sempre duas cópias) - a velocidade não é um problema real para as operações de cópia tão caras do meu aplicativo são aceitáveis.
Vi e li as respostas para esta pergunta relacionada: Os sistemas de arquivos com registro em diário garantem contra a corrupção após uma falha de energia? , mas não cobre completamente algumas das coisas que estão me confundindo.
Percebo que estou fazendo muitas perguntas, mas parece que, apesar de ler muito material, tive uma falha fundamental em entender os riscos para meus dados em caso de perda de energia.