lunes, 7 de febrero de 2011

¿Qué es el Journaling?

Durante estos días hemos visto algunos temas relacionados con los sistemas de archivos en GNU/Linux quizás de forma general. Hoy veremos una característica en específicos de los sistemas de archivos modernos que es el journaling. Lo único que debemos tener claro, es que todo sistema de archivos moderno usa alguna forma de journaling y que en cada computadora de escritorio o dispositivo móvil en el que instales GNU/Linux querrás usar un sistema de archivos con journaling.


El journaling entra en acción únicamente cuando se escribe en un disco y actúa como si fuera un tipo de reloj de personal para todas las escrituras. Esto soluciona el problema de una posible corrupción en el disco ante un posible inconveniente: por ejemplo, cuando se está escribiendo y la computadora crashea o se corta la luz. Sin el journal, el sistema operativo no tendría forma de saber si el archivo fue escrito de forma completa y correcta.
Funciona de la siguiente manera (a grandes rasgos): el archivo es primero escrito en el journal, se ingresa y cuando esté listo, se escribe el archivo en el disco. Una vez que se haya completado exitosamente la operación, es archivo es eliminado del journal, se retira y la operación se considera terminada. Si se pierde la energía eléctrica durante la escritura, el sistema de archivos puede revisar el journal de todas las operaciones que no se hayan declarado como terminadas y determinar en qué punto se debe reanudar.


La mayor contra del journaling es que sacrifica parte del rendimiento del sistema a cambio de la estabilidad. Puede producirse un overhead por escribir un archivo en el disco, pero los sistemas de archivos solucionan esto no escribiendo el archivo completo en el journal. Sólo se escriben la metainformación, el inodo o la locación, antes de que el archivo se escriba en el disco en su totalidad.


No hay comentarios:

Publicar un comentario