Journaling

El journaling es una característica de algunos sistemas de archivos que mantienen un registro conocido como “journal” que contiene los cambios aún no realizados en el sistema, de tal manera que en el caso de un fallo del sistema o de energía, se pueden restablecer los datos afectados más rápidamente con una menor probabilidad de sufrir corrupción de datos. El journaling permite evitar los chequeos de disco que se efectúan al apagarse el sistema bruscamente, ya que al arrancar solo deberá comprobar el journal para tener un sistema sin inconsistencias.

Journaling

Qué es el journaling

Journaling, también llamado “registro por diario”, es como se le conoce al mecanismo que le permite implementar transacciones en un sistema informático. Un sistema de archivos con journaling es un sistema de archivos que realiza un seguimiento de los cambios que aún no han sido efectuados en el sistema de archivos, mediante el registro de los cambios pendientes en una estructura de datos conocida como “journal” (en español “diario”). En el caso de un fallo del sistema o fallo de energía, estos sistemas de archivos se pueden volver a poner en producción más rápidamente con una menor probabilidad de corromperse.

Actualizar los sistemas de archivos para reflejar los cambios en archivos y directorios normalmente requiere muchas operaciones de escritura independientes. Esto hace posible que una interrupción entre la secuencia de escrituras, tal como un fallo de energía o un fallo del sistema, deje estructuras de datos en un estado intermedio no válido. Por ejemplo, una típica eliminación de un archivo en un sistema de archivos implica tres pasos:

  • Eliminar su entrada dentro del sistema de ficheros.
  • Liberar el inodo o identificador de archivo (file ID).
  • Marcar todos los bloques de disco utilizados como espacio libre.

Si se produce un bloqueo en el sistema entre el paso 1 y el 2, habrá un inodo huérfano y, por lo tanto, una fuga de memoria. Si el paso 2 ya ha sido realizado antes del bloqueo, el archivo aún no borrado se marcará como espacio libre y posiblemente sea sobrescrito. La detección y recuperación de estas inconsistencias normalmente requiere un chequeo completo de las estructuras de datos del disco mediante una herramienta de verificación del sistema de archivos, de tal modo que si el sistema de archivos es grande, esto puede tomar mucho tiempo y provocar largos tiempos de inactividad que bloquean el sistema.

Para evitar esto, un sistema de archivos con journaling asigna un área especial (el journal) en la que registra los cambios pendientes de realizar. Después de un bloqueo, la recuperación implica simplemente leer el journal y reproducir los cambios hasta que el sistema de archivos vuelva a ser consistente. Los cambios tienen éxito si se han realizado originalmente o si se realizan durante la recuperación, pero no se realizan si aún no se habían escrito en el journal antes de ocurrir el bloqueo.

Un sistema de archivos con journaling puede rastrear tanto los datos almacenados como los metadatos relacionados (journal físico) o puede realizar únicamente un seguimiento de los metadatos de archivo (journal lógico). Los journal físicos son preferibles cuando se requiere el mayor nivel de protección, pero imponen una penalización significativa en el rendimiento, mientras que los journal lógicos se recuperan rápidamente después de un bloqueo, lo que resulta en un mejor rendimiento a expensas de una mayor posibilidad de corrupción de datos. Algunas implementaciones permiten configurar el comportamiento del sistema de journaling a este respecto.

En los sistemas de archivos, el journaling comúnmente se aplica en las operaciones que pueden afectar a las estructuras que contienen datos sobre directorios, bloques de disco que se encuentran libres y descriptores de archivos. Lo que se busca con el journaling de sistemas de archivos, es que el sistema no caiga en los extensos chequeos de disco, que son comunes cuando un sistema se detiene o se apaga de forma abrupta. Gracias al uso del journaling, el sistema al arrancar sólo tiene que deshacer el journal para estar coherente de nuevo. Este tipo de sistemas con journaling para implementar transacciones se usan también en sistemas de bases de datos, para evitar la corrupción de datos.

Los principales sistemas operativos soportan sistemas de archivos con journaling, tales como Ext3, Ext4, ReiserFS, Reiser4, XFS o JFS en Linux, NTFS en Windows NT o HFS+ en Mac OS.

El procedimiento llevado a cabo en un sistema de archivos que implementa journaling consta de varios pasos y son básicamente los siguientes:

  1. Las estructuras de datos sobre las que tiene efecto la transacción se bloquean, para que ningún otro proceso las pueda modificar durante la transacción.
  2. Un recurso es reservado para el almacenamiento del journal (generalmente se reserva una parte de disco). De esta forma si el sistema se detiene de forma anormal y toca reiniciarlo, el journal sigue disponible una vez se hace el reinicio.
  3. Se hacen las modificaciones una por una. En cada modificación, primero se detalla en el journal cómo se puede deshacer la modificación y se verifica de que esa información pueda ser escrita en el disco físicamente. Después, la modificación se lleva a cabo.
  4. En el caso de que se quiera cancelar la transacción, cada cambio se deshace de forma individual, en un proceso de lectura y borrado en el journal.
  5. Si todo sale de acuerdo a lo esperado, el journal es borrado y las estructuras de datos afectadas son desbloqueadas.

Artículos en la categoría "Recuperación de datos"

  1. Pérdida de datos
  2. Borrado de archivos
  3. Degradación de datos
  4. Crash informático
  5. Fallo de disco duro
  6. Corrupción de datos
  7. Malware
  8. Hacking
  9. Inseguridad informática
  10. Error de software (bug)
  11. Reinicio (reboot)
  12. Recuperación de datos del disco duro
  13. Recuperación ante desastres
  14. Recuperación de información
  15. Auditoría informática
  16. Auditoría de seguridad informática
  17. Replicación de datos
  18. Journaling
  19. Persistencia de datos
  20. Ataque de arranque en frío (cold boot attack)
  21. Informática forense
  22. Arquelogía de datos
  23. Era oscura digital (Digital Dark Age)
  24. Preservación digital
  25. Modo a prueba de fallos
  26. File carving
  27. Undelete
  28. Restaurar sistema
  29. Deshacer (Undo)
  30. Papelera de reciclaje
  31. Copia de seguridad (backup)
  32. Copia de seguridad remota
  33. Copia de seguridad en tiempo real
  34. Software para hacer copias de seguridad
  35. SAI (Sistema de Alimentación Ininterrumpida)
  36. Protector de sobretensiones
  37. Dispositivo de rescate
  38. Información sensible
  39. Información clasificada
  40. Borrado seguro
  41. Encriptación del disco duro

Los comentarios están cerrados