3.7. Diario de los datos
Ordinarily, GFS2 writes only metadata to its journal. File contents are subsequently written to disk by the kernel's periodic sync that flushes file system buffers. An
fsync()
call on a file causes the file's data to be written to disk immediately. The call returns when the disk reports that all data is safely written.
El diario de datos puede resultar en un tiempo de
fsync()
reducido, especialmente para pequeños archivos, porque los datos del archivo y los metadatos son escritos al diario. Un fsync()
retorna tan pronto como los datos han sido escritos al diario, lo cual puede ser mucho más rápido que el tiempo necesario para escribir los datos de archivo al sistema de archivos principal.
Las aplicaciones que dependen de
fsync()
para sincronizar los datos de archivo pueden encontrar un rendimiento mejorado al usar diarios de los datos. Los diarios de los datos pueden ser activados automáticamente para cualquier archivo GFS2 creado en un directorio con la opción apropiada (y todos los subdirectorios incluidos en éste). Los archivos existentes con tamaño cero pueden también tener los diarios de los datos encendidos o apagados.
Enabling data journaling on a directory sets the directory to "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. You can enable and disable data journaling on a file or a directory with either of the following methods:
- Ejecutando el comando
chattr +j
ochattr -j
en el archivo o directorio - Estableciendo o limpiando la opción
jdata
en el archivo o directorio con el comandogfs2_tool setflag
o con el comandogfs2_tool clearflag
Utilizar el comando
chattr
es la forma preferida para activar o desactivar el diario de datos en un archivo o directorio.
3.7.1. Activación y desactivación del diario de datos con el comando chattr
Puede activar y desactivar el diario de datos en un archivo con el comando
chattr
. Los siguientes comandos activan el diario de datos en el archivo /mnt/gfs2/gfs2_dir/newfile
y luego verifican que la opción haya sido establecida apropiadamente.
[root@roth-01 ~]#chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Los siguientes comandos desactivan el diario de datos en el archivo
/mnt/gfs2/gfs2_dir/newfile
y luego verifican si la opción fue desactivada de forma apropiada.
[root@roth-01 ~]#chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
También puede utilizar
chattr
para establecer la opción j
en un directorio. Cuando se establece la opción para un directorio, todos los archivos y directorios creados subsecuentemente en ese directorio son puestos en el diario. La siguiente serie de comandos establece la opción j
en el directorio gfs2_dir
, luego verifica si la opción ha sido establecida correctamente. Después de esto, los comandos crean un archivo nuevo llamado newfile
en el directorio /mnt/gfs2/gfs2_dir
y verifican si la opción j
ha sido establecida para el archivo. Debido a que la opción j
es establecida para el directorio, entonces newfile
también debe tener activado el diario.
[root@roth-01 ~]#chattr -j /mnt/gfs2/gfs2_dir
[root@roth-01 ~]#lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir [root@roth-01 ~]#touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile