Corrupción de datos cuando el almacenamiento en caché de escritura en disco está habilitado

Corrupción de datos cuando el almacenamiento en caché de escritura en disco está habilitado

Recientemente aprendí que habilitar el almacenamiento en caché de escritura en disco puede mejorar significativamente el rendimiento del sistema. Sin embargo, me preocupan los riesgos potenciales de corrupción o pérdida de datos en caso de un corte de energía repentino.

Aquí hay un contexto sobre mi configuración:

Sistema operativo: Windows Server 2012 R2

Tipo de disco: HDD SATA 3.0

Propósito: Estoy considerando habilitar el almacenamiento en caché de escritura en mi disco para mejorar el rendimiento. Tengo entendido que la corrupción de datos puede ocurrir si ocurre un corte de energía cuando los datos en la caché de escritura aún no se han enviado al disco, cuando el sistema operativo falla o cuando falla una aplicación que accede a los datos.

Durante mi investigación, encontré los siguientes detalles en esteArtículo, han mencionado que "la corrupción de datos ocurre sin que los usuarios se den cuenta cuando el caché de escritura del disco activo está habilitado y el disco realiza una lectura anticipada (RLA), que finaliza prematuramente". . No pude entender el significado exacto de esta declaración.

¿Existe algún caso de corrupción de datos/corrupción de archivos después de habilitar el almacenamiento en caché de escritura, incluso cuando no se está realizando ninguna escritura de datos en el momento del corte de energía?

Respuesta1

Todos los sistemas de archivos modernos (XFS, ZFS, JFS, ext4, APFS, NTFS, etc.) usan registro en diario, por lo que sí, perderá algunos datos (las últimas confirmaciones y lo que aún no se ha confirmado y se almacena en la caché, eso es obvio), pero no, no experimentará ninguna corrupción de datos.

Aquí hay una buena lectura con muchos diagramas y explicaciones detalladas sobre JFS de IBM; todo lo que contiene el artículo es 100% relevante para los otros sistemas de archivos de registro en diario:

https://www.ibm.com/docs/en/aix/7.2?topic=types-journaled-file-system-jfs

De cualquier manera… ¡Tienes que hacer copias de seguridad! Lo que debes seguir es la llamada “regla de respaldo 3-2-2”.

https://www.starwindsoftware.com/blog/3-2-1-backup-strategy-why-your-data-always-survives

¡Espero que esto haya ayudado!

Respuesta2

Version corta:no, al utilizar un disco SATA moderno y un sistema de archivos registrado, no es posible dañar las escrituras reconocidas (es decir, sincronizadas) incluso cuando la caché del disco está habilitada. Por otro lado, las escrituras no sincronizadas (en buffer) pueden perderse o corromperse en caso de corte de energía. Sin embargo, el artículo que vinculó trata sobre unproblema de firmware específicoy no habla de comportamiento genérico cuando se utiliza el almacenamiento en caché del disco:

Mientras realiza ejercicios de prueba de disco extendidos,Se descubrió un problema de firmware latente.

Respuesta larga:Se pueden emitir dos tipos de escrituras:

  • escrituras sincronizadas, que garantizan la persistencia (y el ordenamiento) aprovechando ATA FLUSHes o FUA;
  • escrituras no sincronizadas (almacenadas en búfer), que pueden almacenarse en caché, agregarse y reordenarse mediante la caché DRAM del disco.

Cuando se trata de HDD y SSD de consumo, las escrituras sincronizadas son muy lentas: el proceso de vaciar cualquier escritura significa que la latencia por IO se paga en cada escritura. Por lo tanto, las escrituras de sincronización generalmente se reservan para las E/S más importantes: confirmación de diario, bases de datos, entrega de correo electrónico, etc. Todas las demás escrituras menos importantes (es decir, una copia de un archivo de usuario) se emiten como escrituras almacenadas en caché/buffer y los datos se pierden si se corta la energía. sucede en el momento adecuado (hasta 30-60 años después de la escritura original).

Tenga en cuenta que las antiguas unidades PATA y SATA mintieron al sistema operativo, pretendiendo respetar las sincronizaciones y en realidad descartando el comportamiento de vaciado requerido. Esto llevó a la sugerencia de deshabilitar totalmente el caché DRAM del disco (o configurarlo en modo de solo lectura), de modo que cualquier dato escrito se almacenara realmente en los platos (duraderos) del disco. Un disco con el caché deshabilitado trata efectivamente cada escritura como sincronización, brindando máximas garantías de seguridad a un gran costo de rendimiento.

Tenga en cuenta que esto nonosignifica que las escrituras almacenadas en el búfer no se pueden perder: si ocurre un bloqueo antes de que el sistema operativo vacíe sus búferes, se perderán todos los datos no sincronizados. Por esta razón, y considerando que los discos modernos (posteriores a 2008) respetan los FLUSH de ATA o los FUA (posteriores a 2015), el consejo común actual es dejar habilitada la caché del disco y confiar en el sistema operativo para vaciar las escrituras importantes.

SSD y tarjetas HW RAID con protección contra pérdida de energíaevite esta compensación entre rendimiento y seguridad al tener circuitos integrados para almacenar en caché de forma seguracualquierescribe (incluso los sincronizados). De todos modos, cuando se utiliza una tarjeta HW RAID, la forma en que se administrará el caché del disco depende de la implementación (es decir, PERC lo deshabilita para discos SAS, pero no para los SATA).

información relacionada