Evitando a corrupção do sistema de arquivos no Linux Embedded System

5

Estou trabalhando em um sistema embarcado nos dias de hoje. É necessário desligar sem o desligamento adequado. Estamos pensando em Aufs como sistema de arquivos somente leitura. Mas o problema é há alguns dados atualizáveis no aplicativo, bem como o usuário tem permissão para altere IP, data, hora, etc. Então, o sistema precisa de uma partição R / W extra.

Eu tenho várias perguntas para esclarecer.

  1. Como podemos proteger a corrupção do sistema em caso de queda de energia repentina?
  2. Eu quero saber qual é o melhor sistema de arquivos para sistemas embarcados como este?
  3. O sistema de arquivos de diário ext3 / ext4 pode recuperar automaticamente um arquivo incompleto para voltar sempre?
  4. O BTRFS no RAID1 é a melhor solução no momento?
  5. Existe alguma outra solução amplamente utilizada em sistemas embarcados para evitar corrupção do sistema?
por madu 26.08.2016 / 08:08

1 resposta

3

De uma perspectiva de sistema de arquivos usando ext3 ou ext4 com opções padrão, normalmente você terá consistência de travamento suficiente. Você certamente não sofrerá perdas ou danos ao sistema de arquivos em arquivos que não foram gravados antes da perda de energia.

Existem muitas considerações sobre como lidar com a consistência de falhas em qualquer sistema de arquivos. Se o seu aplicativo apenas criar novos arquivos ou sobrescrever arquivos existentes, criando um arquivo temporário e substituindo atomicamente por renomeação, o modo data = ordered default do ext4 ficará bem. Embora até que uma chamada para fsync () no arquivo E da entrada de diretório seja concluída, ou o sistema operacional libera seu cache, não há garantia de que os dados estarão lá após uma falha de energia. Isso também pressupõe que seus dispositivos de armazenamento honrem o fsync ().

Se o aplicativo precisar garantir a consistência entre os metadados e dados do arquivo sem se preocupar com o desempenho, você poderá usar data = journal para que todas as alterações nos arquivos e metadados do sistema de arquivos sejam registradas em diário, em vez de apenas metadados. Isso evitará situações de gravação incompletas, como um tamanho de arquivo ficando maior, mas os dados que foram acrescentados foram perdidos e substituídos por caracteres nulos.

    
por 27.08.2016 / 05:17