sábado, 26 de enero de 2019

Journaling

El journaling es un mecanismo que permite implementar transacciones. También  conoce como «registro por diario».
Se basa en llevar un journal o registro de diario en el que se almacena la información necesaria para restablecer los datos afectados por una transacción por si esta falla.

Las aplicaciones más frecuentes se utilizan para implementar transacciones de sistemas de bases de datos y, para evitar la corrupción de estructuras de datos en las que se basan los sistemas de archivos modernos.

Journaling

lo que persigue el journaling de sistemas de archivos es evitar los engorrosos y largos chequeos de disco que efectúan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deberá deshacer el journal para tener un sistema coherente de nuevo.

Niveles del Journaling 

Hay tres niveles posibles de Journaling:

Diario (riesgo bajo). Los metadatos y los ficheros de contenido son copiados al diario antes de ser llevados al sistema de archivos principal. Como el diario está en el disco continuamente puede mejorar el rendimiento en ciertas ocasiones. En otras ocasiones el rendimiento es peor porque los datos deben ser escritos dos veces, una al diario y otra a la parte principal del sistema de archivos. 

Pedido (riesgo medio). Solo los metadatos son registrados en el diario, los contenidos no, pero está asegurado que el contenido del archivo es escrito en el disco antes de que el metadato asociado se marque como transcrito en el diario. Es el sistema por defecto en la mayoría de las distribuciones de Linux. Si hay un bajón de tensión o kernel Panic cuando el fichero se está escribiendo o está empezando, el diario indicará que el nuevo archivo o el intento no ha sido pasado, por lo que será purgado por el proceso de limpiado 

Reescritura (riesgo alto). Solo los metadatos son registrados en el diario, el contenido de los archivos no. Los contenidos pueden estar escritos antes o después de que el diario se actualice. Como resultado, los archivos modificados correctamente antes de una ruptura pueden volverse corruptos. Por ejemplo, un archivo pendiente de ser marcado en el diario como mayor de lo que actualmente es, convirtiendo en basura al final de la comprobación. Las versiones antiguas de los archivos pueden aparecer inesperadamente después de una recuperación de diario. La carencia de sincronización entre los datos y el diario es rápidamente subsanada en muchos casos. JFS usa este nivel de journaling, pero se asegura de que cualquier basura es borrada al reiniciar. 

JFS (Journaled File System) 

JFS es un sistema de archivos de 64 bit con respaldo de transacciones creado por IBM. Está disponible bajo la licencia GNU GPL. Existen versiones para AIX, eComStation, OS/2, sistemas operativos Linux y HP-UX. 

Fue diseñado con la idea de conseguir servidores de alto rendimiento y servidores de archivos de altas prestaciones, asociados a e-business. JFS se fusionó en el kernel de Linux desde la versión 2.4. JFS utiliza un método interesante para organizar los bloques vacíos, estructurándolos en un árbol y usa una técnica especial para agrupar bloques lógicos vacíos. 

JFS fue desarrollado para AIX. La primera versión para Linux fue distribuida en el verano de 2000. La versión 1.0.0 salió a la luz en el año 2001. JFS está diseñado para cumplir las exigencias del entorno de un servidor de alto rendimiento en el que sólo cuenta el funcionamiento. Al ser un sistema de ficheros de 64 bits, JFS soporta ficheros grandes y particiones LFS (Large File Support), lo cual es una ventaja más para los entornos de servidor. 

Características

JFS, al igual que ReiserFS, sigue el principio de metadata only. En vez de una completa comprobación sólo se tienen en cuenta las modificaciones en los metadatos provocadas por las actividades del sistema. Esto ahorra una gran cantidad de tiempo en la fase de recuperación del sistema tras una caída. Las actividades simultáneas que requieren más entradas de protocolo se pueden unir en un grupo, en el que la pérdida de rendimiento del sistema de ficheros se reduce en gran medida mediante múltiples procesos de escritura. 

Eficiente administración de directorios. JFS abarca diversas estructuras de directorios. En pequeños directorios se permite el almacenamiento directo del contenido del directorio en Inode. En directorios más grandes se utiliza árboles balanceados (B-trees), que facilitan considerablemente la administración del directorio. 

Mejor utilización de la memoria mediante adjudicación dinámica de Inodes. Con el sistema EXT2 de Linux,  debe dar por anticipado el grosor del Inode (la memoria ocupada por la información de administración). Con ello se limita la cantidad máxima de ficheros o directorios de su sistema de ficheros. JFS le ahorra esto, puesto que asigna memoria Inode de forma dinámica y la pone a su disposición cuando no se está utilizando.

No hay comentarios:

Publicar un comentario