Las actualizaciones suaves son un método para mantener la integridad de los metadatos del sistema de archivos en caso de un fallo o un corte de energía. Funcionan rastreando y aplicando dependencias entre las actualizaciones de los metadatos del sistema de archivos. Son una alternativa al método más común de registro de archivos para sistemas .
Método de operación
Las actualizaciones suaves solo permiten escrituras de metadatos asíncronas que no generen inconsistencias en el sistema de archivos en disco, o que la única inconsistencia posible sea una fuga de espacio de almacenamiento (espacio marcado como asignado cuando no lo utiliza ningún archivo). Esto evita tener que realizar escrituras de metadatos síncronas ordenadas, ya que se revierte temporalmente cualquier parte de un bloque de metadatos que dependa de otro bloque que potencialmente no se haya vaciado o se haya revertido parcialmente al escribirlo.
En efecto, los bloques pueden vaciarse en cualquier momento y el código de actualización suave siempre proporcionará al disco una versión consistente de los metadatos (siempre que sepa qué bloques se han vaciado físicamente). La recuperación se reduce entonces a ejecutar un recorrido en segundo plano del sistema de archivos la próxima vez que se monte para eliminar 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 dependencias de metadatos antes de que comience su escritura en disco, no necesitan escribirse en absoluto. Por ejemplo, crear un archivo, usarlo durante un breve período de tiempo y luego eliminarlo puede no generar ninguna actividad en el disco.
Las actualizaciones suaves requieren el vaciado periódico de los metadatos a un almacenamiento no volátil.
Implementaciones
FreeBSD admite actualizaciones suaves para el sistema de archivos UFS [ 1 ] y han estado habilitadas por defecto 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 del newfscomando. [ 2 ] Se pueden deshabilitar o habilitar en cualquier momento posterior con una opción del tunefscomando. [ 3 ] FreeBSD 9.0 introdujo un complemento de registro de transacciones para las actualizaciones suaves con el fin de eliminar un segundo plano fsckpara la recolección de basura después de un fallo. [ 4 ] [ 5 ]
OpenBSD admitió actualizaciones suaves para el sistema de archivos FFS hasta la versión 7.4 (2023), momento en el que se deshabilitó. [ 6 ]
NetBSD admitió actualizaciones suaves hasta la versión 6.0 (2012), momento en el que se dejó de utilizar en favor del registro de transacciones WAPBL . [ 7 ]
Comparación con sistemas de archivos de registro de transacciones
Ni el registro de transacciones ni las actualizaciones suaves garantizan que no se pierdan datos, pero sí aseguran que el sistema de archivos se mantenga coherente.
Una ventaja de un sistema de archivos con actualizaciones suaves es que se puede montar inmediatamente después de un fallo, ya que no hay reproducción de registros.
Notas
- Ganger, Gregory R.; Patt, Yale N. (noviembre de 1994). "Rendimiento de la actualización de metadatos en sistemas de archivos" (PDF) . Actas del Simposio 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 suaves: una técnica para eliminar la mayoría de las 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). "Registro versus actualizaciones suaves: protección asíncrona de metadatos en sistemas de archivos" . Conferencia Técnica Anual de USENIX . págs. 71–84 .
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.
- ↑ "newfs(8)" . FreeBSD . 2017-07-07 . Consultado el 2019-02-02 .
- ↑ "tunefs(8)" . FreeBSD. 19-04-2016 . Consultado el 02-02-2019 .
- ↑ "Notas de la versión FreeBSD 9.0-RELEASE" . FreeBSD. 12 de enero de 2012. Consultado el 2 de febrero de 2019 .
- ↑ McKusick, Marshall Kirk; Roberson, Jeff (23 de enero de 2010). "Actualizaciones suaves en el diario" (PDF) . Recuperado el 2 de febrero de 2019 .
- ↑ "Actualizaciones suaves deshabilitadas para futuros trabajos de VFS" . OpenBSD_Journal . 5 de julio de 2023. Consultado el 9 de marzo de 2024 .
- ↑ "Anuncio de NetBSD 6.0" . NetBSD . 17 de octubre de 2012. Consultado el 2 de febrero de 2019 .
Enlaces externos
- Marshall Kirk McKusick: Información sobre actualizaciones suaves, instantáneas y Fsck de fondo
- Distribución de software de Berkeley
- Software BSD
- Sistemas de archivos informáticos
- Sistemas de archivos de disco
- FreeBSD
- DragonFly BSD
- OpenBSD
- Tecnología del sistema de archivos Unix