O fsck retorna seu sistema de arquivos para um estado consistente . Isso não é necessariamente o estado "mais recente" do sistema de arquivos, porque esse estado pode ter sido perdido no travamento. Na verdade, se houvesse arquivos gravados pela metade no momento da falha, o sistema de arquivos não seria deixado em um estado consistente, e é precisamente isso que o fsck foi projetado para reparar. Em outras palavras, depois de executar o fsck, seu sistema de arquivos é o mais atualizado possível.
Se o seu aplicativo precisar de feedback sobre o que está armazenado no disco em caso de falha, você precisará fazer mais trabalho do que apenas gravar em um arquivo. Você precisa ligar para sync
ou melhor fsync
, após uma operação de gravação para garantir que aquela gravação em particular tenha sido confirmada no disco (mas se você acabar fazendo isso muito, seu o desempenho será suspenso e você desejará alternar para um mecanismo de banco de dados). Você precisará de um sistema de arquivos com registro no diário configurado para a sobrevivência máxima de falhas (em oposição à velocidade máxima).
A propriedade que uma operação (como uma gravação em disco) que foi executada não pode ser desfeita (mesmo em caso de falha do sistema) é chamada durabilidade . É uma das quatro propriedades fundamentais dos bancos de dados (ACID) . Se você precisar dessa propriedade, leia as transações .
Embora os sistemas de arquivos sejam um tipo de banco de dados, eles geralmente não são projetados para se dar bem com relação às propriedades do ACID: eles têm mais ênfase na flexibilidade. Você obterá melhor durabilidade de um mecanismo de banco de dados dedicado. Em seguida, considere o que acontece no caso do seu disco, e não o seu sistema trava: para alta durabilidade, você também precisa de replicação.