¿Cómo depurar / auditar qué dispositivos caching escribe?

Guardo los documentos en la partición btrfs construida sobre el dispositivo dm-crypt disperso ubicado en la partición principal ext4 en el disco duro físico.

Cuando el kernel entra en pánico (y esto ocurre a diario en mi ASUS P53E con 3.6 kernel :-() pierdo los files recientemente modificados (siempre el contenido de los files se reemplazó por ceros).

Una forma de evitar daños a los files es desactivar la caching de escritura.

Para esto, necesitaría desactivar el almacenamiento en caching de escritura para la partición btrfs, el dispositivo dm-crypt que respalda la partición y para el file disperso donde vive el dispositivo dm-crypt.

  1. ¿Cómo puedo verificar el estado de escritura en caching de las unidades?
  2. ¿Cómo puedo desactivarlo?

Yo uso Mint 13 Maya con 3.6.8 kernel mainline.

No estoy seguro de que las unidades de disco escriban en la memory caching para solucionar el problema, ya que parece que está utilizando un dispositivo de bucle. Por lo tanto, aún queda el caching / file de página entre su sistema de files Btrfs y el disco real. Existe el mismo tipo de problema para registrar en diario los filesystems detallados aquí para loop-AES . Por lo tanto, cuando los datos se sincronizan con su dispositivo de bucle, es posible que no estén en el disco real solo en un caching a la espera de que se reorderen y se escriban.

ext4 no admite la opción de sync assembly ext2 / 3 para desactivar el almacenamiento en caching. debido a las capas intermedias, no estoy seguro de que eso te permita una recuperación efectiva. Desgraciadamente, no sé lo suficiente sobre los aspectos internos, al less más datos llegarán al disco.

De la misma manera, es posible que pueda limitar el problema al ajustar el caching de la página para que el sistema lo escriba en el disco con más frecuencia. La memory caching de la página de Linux informa que tiene valores en /proc/meminfo en

 "Dirty" - for pages that are currently dirty "Writeback" - for dirty pages that are being written out to disk. 

Hay files en /proc/sys/vm/ que informan sobre el estado y controlan los hilos abiertos que vuelven a escribir los datos en el disco.

Puede poner un valor pequeño (mayor que 8096 o 2 páginas) en /proc/sys/vm/dirty_background_bytes para hacer que el process de background pdflush se ejecute de forma más activa o /proc/sys/vm/dirty_bytes para hacer que un process desencadene flush más activamente ( Para una penalización de performance, o al less más grabaciones de disco en general).

Creo que es poco probable que el caching de escritura de hardware sea su principal problema. Si solo estuvieras yendo directamente al dispositivo a través de dm-crypt, searchía primero. En cualquier caso, las cachings de escritura IDE y SATA se pueden desactivar con hdparm -W0 /dev/xdx .

Además, como usted está usando un sistema de files técnicamente experimental de una manera más básica que la mayoría, es posible que tenga más suerte con un entorno más maduro en el que las personas ya han tropezado con los problemas. Si necesita Btrfs, la mejor opción sería hacer el encryption en una partición física.

Hasta ahora he encontrado una forma de establecer el comportamiento de la memory caching de escritura para la partición física ( /dev/sda6 en mi caso):

sudo hdparm -W /dev/sda6 para inspeccionar el comportamiento de escritura y sudo hdparm -W0 /dev/sda6 para deshabilitar el write-cache.

Pero es una exageración en mi situación; Solo quiero deshabilitar el caching de escritura para el file que respalda el dm-crypt, no la partición completa.