Las actualizaciones suaves son un método para mantener la integridad de los metadatos del sistema de archivos en caso de una falla o un corte de energía. Las actualizaciones suaves funcionan rastreando y aplicando dependencias entre las actualizaciones de los metadatos del sistema de archivos. Las actualizaciones suaves son una alternativa al método más comúnmente utilizado de registrar los sistemas de archivos .
Las actualizaciones suaves solo permiten escrituras de metadatos asincrónicas que no hagan que el sistema de archivos en disco sea inconsistente, o que la única inconsistencia que ocurra sea una pérdida de espacio de almacenamiento (espacio marcado como asignado cuando no lo usa ningún archivo). Evita tener que hacer escrituras de metadatos sincrónicas ordenadas al "revertir" temporalmente cualquier parte de un bloque de metadatos que dependa de otro bloque potencialmente no vaciado o parcialmente revertido al escribirlo.
En efecto, los bloques pueden ser vaciados en cualquier momento y el código de actualizaciones suaves siempre proporcionará al disco una versión consistente de los metadatos (siempre que sepa qué bloques han sido vaciados físicamente). La recuperación entonces simplemente se convierte en una cuestión de ejecutar un recorrido en segundo plano del sistema de archivos cuando se monta nuevamente para recolectar cualquier espacio asignado que haya quedado huérfano. Esto también permite que el sistema de archivos vacíe selectivamente ciertos archivos sin tener que vaciar todos los bloques de metadatos o todos los registros.
Los datos que se desvinculan del gráfico de dependencia de metadatos antes de que comience la escritura en el disco no necesitan escribirse en el disco en absoluto. Por ejemplo, crear un archivo, usarlo durante un breve período de tiempo y luego eliminarlo puede provocar que no haya actividad en el disco en absoluto.
Las actualizaciones suaves requieren el vaciado periódico de los metadatos en un almacenamiento no volátil.
FreeBSD admite actualizaciones suaves para el sistema de archivos UFS [1] y se han habilitado de forma predeterminada durante la instalación durante muchos años. Las actualizaciones suaves se habilitan o deshabilitan manualmente durante la creación del sistema de archivos con una opción en el newfscomando. [2] Se pueden deshabilitar o habilitar en cualquier momento a partir de entonces con una opción en el tunefscomando. [3] FreeBSD 9.0 introdujo un suplemento de registro en diario para las actualizaciones suaves con el fin de eliminar un fondo fsckpara la recolección de basura después de una falla. [4] [5] Sin embargo, habilitar el registro en diario en un sistema de archivos con actualizaciones suaves deshabilita la capacidad de hacer instantáneas del sistema de archivos. [6] Esto puede causar problemas cuando los sistemas de archivos se vuelcan con la opción -L, ya que las instantáneas se utilizan para garantizar la coherencia del sistema de archivos durante el volcado.
OpenBSD admitió actualizaciones suaves para el sistema de archivos FFS hasta el lanzamiento 7.4 (2023), momento en el que se deshabilitó. [7]
NetBSD admitió actualizaciones suaves hasta el lanzamiento de la versión 6.0 (2012), momento en el que quedó obsoleto en favor del registro WAPBL . [8]
Ni el registro en diario ni las actualizaciones suaves garantizan que no se perderán datos, pero sí aseguran que el sistema de archivos permanezca consistente.
Una ventaja de un sistema de archivos con actualizaciones suaves es que se puede montar inmediatamente después de una falla, ya que no hay reproducción de registros.