Compartir a través de


Implementación de NTFS transaccional

NTFS transaccional (TxF), como la mayoría de los mecanismos de transacción, depende de la ordenación correcta de las escrituras de datos. Asegurarse de que la ordenación de escritura adecuada requiere un control explícito del almacenamiento en caché de datos. Para cumplir este requisito, TxF requiere que las unidades de disco implementen los mecanismos de control de almacenamiento en caché que forman parte de interfaces de unidad estandarizadas, como SCSI, SATA y ATA.

El mecanismo de control de almacenamiento en caché usado por TxF es una marca conocida como la función Force Unit Access (FUA). Esta marca especifica que la unidad debe escribir los datos en un almacenamiento multimedia estable antes de completar la señalización. En determinados puntos críticos dentro de una transacción, TxF debe emitir una FUA para asegurarse de que algunos datos de control necesarios para revertir correctamente una transacción no se pierden si se produce un error de energía.

Las unidades de disco de clase servidor (canal de fibra y SCSI) generalmente admiten la marca FUA. A partir de Vista, Windows solo admite la marca FUA para discos de canal de fibra y SCSI.

En unidades de productos básicos (ATA/SATA/USB), TxF tiene períodos de vulnerabilidad durante los que un error de alimentación de la unidad puede provocar que TxF no pueda revertir correctamente la transacción, lo que deja los datos en un estado incoherente a menos que se deshabilite la memoria caché de escritura de la unidad.

Algunos adaptadores de bus host (HBA) y controladores de almacenamiento (por ejemplo, sistemas RAID) tienen memorias caché integradas respaldadas por baterías. Dado que estos dispositivos conservan los datos almacenados en caché si se produce un error de energía, no es necesario que los discos conectados a ellos respeten la marca FUA. Además, un disco cuya fuente de alimentación está protegida por una fuente de alimentación ininterrumpida (UPS) no necesita respetar la marca FUA. Esto se debe a que el UPS mantendrá la energía suficiente para que el disco vacíe su caché en el medio.

Deshabilitar la memoria caché de escritura de una unidad elimina el requisito de que la unidad respete la marca FUA. Puede deshabilitar el almacenamiento en caché de escritura de un disco mediante la emisión del código de control IOCTL_DISK_SET_CACHE_INFORMATION en el disco. El estado de la caché de escritura (activado/desactivado) se conservará en los reinicios del sistema. La emisión de este código de control tendrá consecuencias de rendimiento muy significativas para todas las E/S emitidas en ese disco, lo que probablemente será una degradación notable del rendimiento. El uso de este código de control debe considerarse cuidadosamente antes de la implementación.

Nota

Para que TxF sea capaz de proteger de forma coherente la integridad de los datos a través de errores de energía, el sistema debe cumplir al menos uno de los siguientes criterios:

  • Use discos de clase servidor (SCSI, Canal de fibra).
  • Asegúrese de que los discos están conectados a un HBA de almacenamiento en caché con respaldo de batería.
  • Use un controlador de almacenamiento (por ejemplo, sistema RAID) como dispositivo de almacenamiento.
  • Asegúrese de que la alimentación en el disco está protegida por un UPS.
  • Asegúrese de que la característica de almacenamiento en caché de escritura del disco está deshabilitada.