Como garantir que as gravações são confirmadas fisicamente antes de serem relatadas como concluídas?

3

Quando o meu sistema inicializa, enquanto detecta o disco rígido externo conectado por USB, recebo a mensagem Assuming drive cache: write through na saída do dmesg, marcada com o nome do dispositivo da unidade externa.

Como eu uso essa unidade para armazenar backups, prefiro que o sistema não faça nenhuma suposição sobre as características da unidade . Estou disposto a negociar o desempenho de gravação para um conhecimento seguro de que quando algo foi escrito em um sistema de arquivos na unidade em questão, ele realmente foi comprometido com o armazenamento permanente e não está em um cache em algum lugar (de preferência nem na própria unidade, pois uma falha de energia fará com que tanto o computador quanto a unidade percam a energia imediatamente).

Um fator possivelmente complicador é que a unidade contém uma única partição, que é LUKS criptografada. O sistema de arquivos só existe dentro desse contêiner LUKS, da seguinte forma:

+- physical drive ------------------------+
|                                         |
|  +- partition -----------------------+  |
|  |                                   |  |
|  |  +- LUKS encryption -----------+  |  |
|  |  |                             |  |  |
|  |  |  +- file system ---------+  |  |  |
|  |  |  |                       |  |  |  |
|  |  |  |      actual data      |  |  |  |
|  |  |  |                       |  |  |  |
|  |  |  +-----------------------+  |  |  |
|  |  |                             |  |  |
|  |  +-----------------------------+  |  |
|  |                                   |  |
|  +-----------------------------------+  |
|                                         |
+-----------------------------------------+

Portanto, minha pergunta: Como posso ter certeza de que todas as gravações estão comprometidas com o armazenamento físico antes de serem relatadas de volta ao aplicativo do espaço do usuário como concluídas?

    
por a CVn 21.04.2013 / 13:07

1 resposta

3

Existem duas partes constituintes aqui: o cache de gravação de disco e o cache do sistema de arquivos.

O cache de gravação em disco pode ser desativado usando hdparm -W 0 [device] . Você pode desativar o cache de gravação do sistema de arquivos, montando / remontando-o com a opção sync . Observe que essas alterações prejudicarão muito o desempenho.

    
por 21.04.2013 / 13:18