stringtranslate.com

Actualizaciones suaves

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 .

Método de funcionamiento

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.

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 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]


Comparación con sistemas de archivos con registro en diario

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.

Notas

Enlaces externos

Referencias

  1. ^ McKusick, Marshall Kirk; Neville-Neil, George V. (2005). "8.6". El diseño y la implementación del sistema operativo FreeBSD . Addison-Wesley . ISBN 978-0321968975.
  2. ^ "newfs(8)". FreeBSD . 2017-07-07 . Consultado el 2019-02-02 .
  3. ^ "tunefs(8)". FreeBSD. 19 de abril de 2016. Consultado el 2 de febrero de 2019 .
  4. ^ "Notas de la versión de FreeBSD 9.0-RELEASE". FreeBSD. 2012-01-12 . Consultado el 2019-02-02 .
  5. ^ McKusick, Marshall Kirk; Roberson, Jeff (23 de enero de 2010). "Actualizaciones suaves con registro" (PDF) . Consultado el 2 de febrero de 2019 .
  6. ^ "Error 195485 - [ufs] mksnap_ffs(8) no puede crear una instantánea con actualizaciones suaves registradas habilitadas". FreeBSD. 28 de noviembre de 2014. Consultado el 2 de febrero de 2019 .
  7. ^ "Actualizaciones suaves deshabilitadas para trabajos futuros con VFS". OpenBSD_Journal . 2023-07-05 . Consultado el 2024-03-09 .
  8. ^ "Anuncio de NetBSD 6.0". NetBSD . 2012-10-17 . Consultado el 2019-02-02 .