Flujos de integridad de ReFS

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 10

Las secuencias de integridad son una característica opcional en ReFS que valida y mantiene la integridad de datos usando sumas de comprobación. Aunque ReFS siempre usa sumas de comprobación para los metadatos, de forma predeterminada, no genera ni valida dichas sumas para los datos de archivo. Las secuencias de integridad son una característica opcional con la que los usuarios usan sumas de comprobación para los datos de archivo. Al habilitar las secuencias de integridad, ReFS puede determinar claramente si los datos son válidos o están dañados. Además, los espacios de almacenamiento y ReFS pueden arreglar datos y metadatos dañados automáticamente y de manera conjunta.

Cómo funciona

Las secuencias de integridad pueden habilitarse para archivos individuales, directorios o un volumen completo y la configuración de las secuencias de integridad puede cambiarse en cualquier momento. Además, la configuración de la secuencia de integridad de archivos y directorios se hereda de sus directorios principales.

Una vez que las secuencias de integridad se han habilitado, ReFS creará y mantendrá una suma de comprobación para los archivos especificados en los metadatos del archivo. Esta suma comprobación permite a ReFS validar la integridad de los datos antes de acceder a él. Antes de devolver cualquier dato que tenga secuencias integridad habilitadas, ReFS calculará, en primer lugar, la suma de comprobación:

Compute checksum for file data

A continuación, esta suma de comprobación se compara con la que se incluye en los metadatos de archivo. Si las sumas de comprobación coinciden, los datos se marcan como válidos y se devuelven al usuario. Si las sumas de comprobación no coinciden, los datos están dañados. La resistencia del volumen determina cómo responde ReFS a los daños:

  • Si ReFS está montado en un espacio simple y no resistente o en una unidad vacía, ReFS devolverá un error al usuario sin devolver los datos dañados.
  • Si ReFS está montado en un espejo resistente o en un espacio de paridad, ReFS intentará arreglar todos los daños.
    • Si el intento se realiza con éxito, ReFS aplicará una escritura correctiva para restaurar la integridad de los datos y devolverá los datos válidos a la aplicación. La aplicación no es consciente de la existencia de ningún daño.
    • Si el intento no se realiza con éxito, ReFS devolverá un error.

ReFS registrará todos los daños en el registro de eventos del sistema y aquí se reflejarán si los daños se han solucionados.

Corrective write restores data integrity

Rendimiento

Aunque las secuencias de integridad proporcionan mayor integridad de datos para el sistema, esto también incurre en un coste del rendimiento. Hay un par de diferentes razones para ello:

  • Si las secuencias de integridad están habilitadas, todas las operaciones de escritura se convierten en operaciones de asignar a la escritura. Aunque de este modo se evitan cuellos de botella de lectura, modificación y lectura, ya que ReFS no necesita leer ni modificar los datos existentes, los datos de archivo suelen fragmentarse, lo que retrasa las lecturas.
  • Dependiendo de la carga de trabajo y el almacenamiento subyacente del sistema, el coste computacional de la computación y la validación de la suma de comprobación puede causar que la latencia de la E/S aumente.

Dado que las secuencias de integridad conllevan un coste de rendimiento, se recomienda deshabilitarlas en los sistema de alto rendimiento sensibles.

Limpieza de integridad

Como se ha explicado anteriormente, ReFS validará automáticamente la integridad de los datos antes de acceder a ellos. ReFS también usa una limpieza en segundo plano, lo que le permite validar los datos a los que se accede con poca frecuencia. Esta limpieza examina el volumen de manera periódica, identifica los daños latentes y desencadena de manera proactiva una reparación de los datos dañados.

Nota

La limpieza de integridad de datos solo puede validar los datos de archivo para los archivos con los flujos de integridad habilitados.

De forma predeterminada, la limpieza se ejecuta cada cuatro semanas, aunque se puede configurar esta frecuencia en el Programador de tareas en Microsoft\Windows\Examen de integridad de datos.

Ejemplos

Para supervisar y cambiar la configuración de la integridad de datos de archivo, ReFS usa los cmdlets de Get-FileIntegrity y Set-FileIntegrity cmdlets.

Get-FileIntegrity

Para ver si se habilitan las secuencias de integridad para los datos de archivos, usa el cmdlet Get FileIntegrity.

PS C:\> Get-FileIntegrity -FileName 'C:\Docs\TextDocument.txt'

También puedes usar el cmdlet Get-Item para obtener la configuración de las secuencias de integridad para todos los archivos de un directorio específico.

PS C:\> Get-Item -Path 'C:\Docs\*' | Get-FileIntegrity

Set-FileIntegrity

Para habilitar/deshabilitar las secuencias de integridad para los datos de archivos, usa el cmdlet Set-FileIntegrity.

PS C:\> Set-FileIntegrity -FileName 'H:\Docs\TextDocument.txt' -Enable $True

También puedes usar el cmdlet Get-Item para establecer configuración de las secuencias de integridad para todos los archivos de una carpeta específica.

PS C:\> Get-Item -Path 'H\Docs\*' | Set-FileIntegrity -Enable $True

El cdmlet Set-FileIntegrity puede usarse directamente en volúmenes y directorios.

PS C:\> Set-FileIntegrity H:\ -Enable $True
PS C:\> Set-FileIntegrity H:\Docs -Enable $True

Referencias adicionales