Las actualizaciones suaves son un enfoque 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 mediante el seguimiento y el cumplimiento de las dependencias entre las actualizaciones de los metadatos del sistema de archivos. Las actualizaciones suaves son una alternativa al enfoque más utilizado de los sistemas de archivos de registro por diario .
Método de operación
Las actualizaciones suaves solo permiten escrituras asincrónicas de metadatos que no hacen que el sistema de archivos en el disco sea inconsistente, o que la única inconsistencia que ocurre es una pérdida de espacio de almacenamiento (espacio marcado como asignado cuando no lo usa ningún archivo). Evita tener que realizar 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 vaciarse en cualquier momento y el código de actualización software siempre proporcionará al disco una versión coherente del mismo (siempre que sepa qué bloques se han vaciado físicamente). La recuperación simplemente se convierte en una cuestión de ejecutar un recorrido en segundo plano del sistema de archivos la próxima vez que se monte para recolectar basura cualquier espacio asignado que haya quedado huérfano. Esto también permite que el sistema de archivos elimine selectivamente ciertos archivos sin tener que eliminar todos los bloques de metadatos o todos los registros.
Los datos que están desvinculados del gráfico de dependencia de metadatos antes de comenzar a escribirlos en el disco no necesitan escribirse en el disco en absoluto. Por ejemplo, crear un archivo, usarlo por un período corto de tiempo y luego eliminarlo puede causar que no haya actividad en el disco.
Las actualizaciones suaves requieren el vaciado periódico de los metadatos al almacenamiento no volátil.
Implementaciones
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 de software se habilitan o deshabilitan manualmente durante la creación del sistema de archivos con una opción para el newfscomando. [2] Pueden desactivarse o activarse en cualquier momento a partir de entonces con una opción para el tunefscomando. [3] FreeBSD 9.0 introdujo un suplemento de diario a las actualizaciones de software con el propósito de eliminar un fsck de fondo para la recolección de basura después de un bloqueo. [4] [5] Sin embargo, habilitar el 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 admite actualizaciones suaves para el sistema de archivos FFS. Las actualizaciones suaves se habilitan cuando se monta el sistema de archivos mediante el ejercicio de una opción para el comando de montaje. [7]
NetBSD admitió actualizaciones suaves hasta la versión 6.0 (2012), momento en el que quedó obsoleto a favor del registro en diario WAPBL . [8]
Comparación con los sistemas de archivos de registro por diario
Ni el registro en diario ni las actualizaciones suaves garantizan que no se perderán datos, pero sí se aseguran de 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 un bloqueo, ya que no hay reproducción de registros.
Notas
- Ganger, Gregory R .; Patt, Yale N. (noviembre de 1994). "Rendimiento de actualización de metadatos en sistemas de archivos" (PDF) . Actas del Simposio de USENIX sobre diseño e implementación de sistemas operativos (OSDI) : 49–60.
- McKusick, Marshall Kirk (2002). "Ejecutando" fsck "en segundo plano" . Actas de la BSDCon 2002 . págs. 55–64.
- McKusick, Marshall Kirk; Ganger, Gregory R. (1999). "Actualizaciones blandas: una técnica para eliminar la mayoría de escrituras síncronas en el sistema de archivos rápido" . Conferencia Técnica Anual de USENIX . págs. 1-18.
- Margo I. Seltzer; et al. (2000). "Journaling Versus Soft Updates: protección asincrónica de metadatos en sistemas de archivos" . Conferencia Técnica Anual de USENIX . págs. 71–84.
enlaces externos
- Marshall Kirk McKusick: información sobre actualizaciones suaves, instantáneas y Fsck de fondo
Referencias
- ^ McKusick, Marshall Kirk; Neville-Neil, George V. (2005). "8,6". El diseño e implementación del sistema operativo FreeBSD . Addison-Wesley . ISBN 978-0321968975.
- ^ "novedades (8)" . FreeBSD . 2017-07-07 . Consultado el 2 de febrero de 2019 .
- ^ "tunefs (8)" . FreeBSD. 2016-04-19 . Consultado el 2 de febrero de 2019 .
- ^ "Notas de la versión de FreeBSD 9.0-RELEASE" . FreeBSD. 2012-01-12 . Consultado el 2 de febrero de 2019 .
- ^ McKusick, Marshall Kirk; Roberson, Jeff (23 de enero de 2010). "Actualizaciones de software con diario" (PDF) . Consultado el 2 de febrero de 2019 .
- ^ "Error 195485 - [ufs] mksnap_ffs (8) no puede crear una instantánea con las actualizaciones suaves registradas en el diario habilitadas" . FreeBSD. 2014-11-28 . Consultado el 2 de febrero de 2019 .
- ^ "monte (8)" . OpenBSD . 2018-01-18 . Consultado el 2 de febrero de 2019 .
- ^ "Anuncio de NetBSD 6.0" . NetBSD . 2012-10-17 . Consultado el 2 de febrero de 2019 .