6.6. Habilitación del registro de datos en el diario
Normalmente, GFS2 sólo escribe metadatos en su diario. El contenido de los archivos se escribe posteriormente en el disco mediante la sincronización periódica del kernel que vacía los búferes del sistema de archivos. Una llamada a fsync()
en un archivo hace que los datos del archivo se escriban en el disco inmediatamente. La llamada regresa cuando el disco informa que todos los datos se han escrito con seguridad.
El registro en el diario de datos puede dar lugar a una reducción del tiempo de fsync()
para archivos muy pequeños, ya que los datos del archivo se escriben en el diario además de los metadatos. Esta ventaja se reduce rápidamente a medida que aumenta el tamaño del archivo. La escritura en archivos medianos y grandes será mucho más lenta con el registro en el diario de datos activado.
Las aplicaciones que dependen de fsync()
para sincronizar los datos de los archivos pueden ver mejorado su rendimiento si utilizan el registro en el diario de datos. El registro en el diario de datos puede activarse automáticamente para cualquier archivo GFS2 creado en un directorio marcado (y todos sus subdirectorios). También se puede activar o desactivar el registro en el diario de datos de los archivos existentes con longitud cero.
La activación del registro en el diario de datos en un directorio establece que el directorio "hereda jdata", lo que indica que todos los archivos y directorios creados posteriormente en ese directorio se registran en el diario. Puede activar y desactivar el registro en el diario de datos de un archivo con el comando chattr
.
Los siguientes comandos habilitan el registro en el diario de datos en el archivo /mnt/gfs2/gfs2_dir/newfile
y luego comprueban si el indicador se ha establecido correctamente.
#chattr +j /mnt/gfs2/gfs2_dir/newfile
#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Los siguientes comandos desactivan el registro en el diario de datos en el archivo /mnt/gfs2/gfs2_dir/newfile
y luego comprueban si el indicador se ha establecido correctamente.
#chattr -j /mnt/gfs2/gfs2_dir/newfile
#lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
También puede utilizar el comando chattr
para establecer la bandera j
en un directorio. Cuando se establece este indicador para un directorio, todos los archivos y directorios creados posteriormente en ese directorio se registran en el diario. El siguiente conjunto de comandos establece la bandera j
en el directorio gfs2_dir
, y luego comprueba si la bandera se ha establecido correctamente. Después de esto, los comandos crean un nuevo archivo llamado newfile
en el directorio /mnt/gfs2/gfs2_dir
y luego comprueban si la bandera j
ha sido establecida para el archivo. Dado que la bandera j
está establecida para el directorio, entonces newfile
también debería tener el registro en el diario habilitado.
#chattr -j /mnt/gfs2/gfs2_dir
#lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir #touch /mnt/gfs2/gfs2_dir/newfile
#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile