Seguridad del caching de escritura en unidades SATA con barreras

He estado leyendo últimamente acerca de escribir caching, NCQ, bugs de firmware, barreras, etc con respecto a las unidades SATA, y no estoy seguro de cuál es el mejor ajuste que haría mis datos seguros en caso de un corte de energía.

A partir de lo que entiendo, NCQ permite a la unidad para reorderar las escrituras para optimizar el performance, manteniendo el kernel informado sobre qué requestes se han escrito físicamente.

Caché de escritura hace que la unidad sirva una request mucho más rápido, ya que no espera a que los datos se escriban en el disco físico.

No estoy seguro de cómo NCQ y Write cache mix aquí …

Los sistemas de ficheros, especialmente los registrados, necesitan estar seguros cuando una request en particular ha sido anotada. Además, el process de espacio de usuario utiliza fsync () para forzar la descarga de un file en particular. Esta llamada a fsync () no debe volver hasta que el sistema de files esté seguro de que los datos se escriben en el disco.

Hay una característica (FUA, Force Unit Access), que sólo he visto en unidades SAS, lo que obliga a la unidad a omitir caching y escribir directamente en el disco. Para todo lo demás, hay barreras de escritura, que es un mecanismo proporcionado por el kernel que puede activar una memory caching en la unidad. Esto obliga a anotar todo el caching, no sólo los datos críticos, lo que ralentiza todo el sistema si se utiliza abusivamente, con fsync (), por ejemplo.

A continuación, hay unidades con errores de firmware, o que deliberadamente mentir acerca de cuando los datos han sido físicamente escrito.

Habiendo dicho esto .. hay varias maneras de configurar las unidades / filesystems: A) NCQ y escribir caching deshabilitado B) Sólo NCQ habilitado C) Sólo escribir caching habilitado D) Tanto NCQ y escribir caching habilitado

Estoy asumiendo barreras están habilitadas .. Por cierto, ¿cómo comprobar si realmente están habilitados?

En caso de pérdida de energía, mientras escribo activamente en el disco, mi conjetura es que la opción B (NCQ, no caching) es segura, tanto para el diario del sistema de files y datos. Puede haber una penalización de performance.

La opción D (NCQ + caching), si se utilizan barreras o FUA, sería segura para el diario del sistema de files y las aplicaciones que utilizan fsync (). Sería malo para los datos que estaban esperando en la memory caching, y es hasta el sistema de files para detectarlo (checksum), y al less el sistema de files no será (con suerte) en un estado inestable. En cuanto al performance, debería ser mejor.

Mi pregunta, sin embargo, está … ¿Estoy perdiendo algo? ¿Hay alguna otra variable a tener en count? ¿Hay alguna herramienta que podría confirmar esto, y que mis unidades se comportan como deberían?

2 Solutions collect form web for “Seguridad del caching de escritura en unidades SATA con barreras”

Para sistemas empresariales rectos, hay una capa adicional en forma de adaptador de almacenamiento (casi siempre una tarjeta RAID) en la que aún existe otra capa de caching. Hay un montón de abstracción en la stack de almacenamiento en estos días, y entré en detalles profundos en esto en una serie de blogs que hice en Conozca su E / S.

Las tarjetas RAID pueden omitir la caching en el disco, algunas de las cuales incluso permiten cambiar esta function en el BIOS RAID. Esta es una de las razones por las que los discos Enterprise son Enterprise, su firmware permite tales cosas que las unidades del consumidor ( especialmente las unidades "verdes") no. Esta function se ocupa directamente del caso que le preocupa: fallo de alimentación con escrituras desbloqueadas. La memory caching de la tarjeta RAID, que debe ser de batería o de respaldo de flash, se conservará hasta que se restablezca la alimentación y se puedan recompensar esas escrituras.

Algunos SSDs de la empresa incluyen un condensador de a bordo con suficiente volumen para comprometer la caching incorporada antes de apagar completamente.

Si está trabajando con un sistema con discos conectados directamente a la placa base hay less garantías. A less que los discos en sí tengan la capacidad de validar el caching de escritura, una falla de alimentación causará una pérdida. El sistema de files xfs se ganó una reputación de falta de fiabilidad debido a su incapacidad para sobrevivir sólo este modo de falla; fue diseñado para funcionar en sistemas completos de la empresa con capacidad de supervivencia de ingeniería de almacenamiento.

Sin embargo, el time se ha movido y XFS ha sido diseñado para sobrevivir a esto. Los otros filesystems principales de Linux (así como ntfs en Windows) ya tenían ingeniería para sobrevivir a este modo de falla. Cómo se supone que funciona es que las escrituras perdidas no aparecerán en el diario de FS y sabrán que no se han comprometido, por lo que la corrupción será detectada y trabajada de forma segura.

Usted apunta al problema aquí: el firmware del disco que miente. En este caso la revista FS habrá hecho una suposition equivocada frente a la realidad y la corrupción puede no ser detectada por algún time. La paridad RAID y el espejo RAID pueden trabajar alnetworkingedor de esto como debe haber otra copy comitted para tirar de. Pero las configuraciones de disco individuales no tendrán esa comprobación cruzada, por lo que en realidad la falla.

Usted obtiene alnetworkingedor del riesgo del firmware usando las impulsiones del grado de la empresa que consiguen mucha más validation (y se testingn contra sus patrones presuntos de la carga de trabajo), y diseñando su sistema del almacenaje de modo que pueda sobrevivir tales falsedades.

El diario del sistema de files esperaba originalmente que la escritura en el diario se completara antes de emitir la escritura a los metadatos, asumiendo que no había caching de escritura de unidad. Con la unidad de escritura caching habilitado, esta suposition se rompe y puede causar la pérdida de datos. Así, se crearon barreras. Con las barreras, el diario puede asegurarse de que la escritura en el diario se completa antes de escribir en los metadatos, incluso si el disco utiliza el almacenamiento en caching de escritura. En la capa de controller de disco, la barrera obliga a una memory caching de disco antes de que se envíe E / S posterior, cuando la unidad informa que tiene una caching de escritura y está habilitada. De lo contrario, esto no es necesario, por lo que la barrera sólo impide la emisión de la IO posterior a la unidad hasta que la IO anterior ha terminado. NCQ sólo significa que podría tener que esperar más de una request pendiente para completar antes de emitir más.

  • Error de almacén UEC
  • LVM y recuperación de desastres
  • ¿Se pierde todo cuando se tiene un disco duro falla en un disco duro multi-LVM que no utiliza RAID?
  • ¿Puedo agregar la tarjeta del HBA a una estación de trabajo o él necesidad de ser server?
  • Unidades físicas abstractas para crear una matriz de raid networkingimensionable: ¿es posible?
  • Instalador de Debian Partman y bloques reservados
  • ¿Cómo enumerar todos los files de una partición en linux?
  • No se puede hacer ping entre el host ESXi y el almacenamiento Netapp en el mismo conmutador
  • ¿Con qué frecuencia debo limpiar mi RAID?
  • Unidades lógicas múltiples en un único EVA
  • ¿Cómo puedo desmarcar una partición como activa?
  • Actualización del almacenamiento RAID 10 NAS
  • En Debian (> = 5,0 lenny) ¿cómo configurar la opción max_luns de scsi_mod?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.