Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.7. Journalisation des données

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.
La journalisation des données peut entraîner une réduction du temps de fsync(), surtout pour les petits fichiers, car les données de fichier sont écrites sur le journal en plus des métadonnées.la commande fsync() retourne dès que le texte est écrit sur le journal, ce qui peut être considérablement plus rapide que le temps qu'il faut pour écrire les données du fichier sur le système principal de fichiers.
Les applications qui dépendent de fsync() pour synchroniser les données de fichier pourraient être améliorées en utilisant la journalisation des données. La journalisation des données peut être activée automatiquement pour tout fichier GFS2 créé dans un répertoire balisé (et dans tous ses sous-répertoires). Les fichiers existants d'une longueur nulle peuvent également avoir la journalisation des données activée.
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:
  • Exécuter la commande chattr +j ou bien chattr -j ou la commande chattr -j sur le fichier ou bien le répertoire.
  • Installer ou bien supprimer le marqueur jdata du répertoire à l'aide de la commande gfs2_tool setflag ou bien de la commande gfs2_tool clearflag.
Utiliser la commande chattr est la meilleure façon d'activer ou de désactiver la journalisation des données pour un fichier ou un répertoire.

3.7.1. Activer ou désativer la journalisation des données avec la commande chattr.

Vous pouvez activer ou bien désactiver la journalisation des données sur un fichier à l'aide de la commande chattr. Les commandes suivantes activent la journalisation du fichier /mnt/gfs2/gfs2_dir/newfile et vérifient ensuite si le marqueur a bien été installé correctement.
[root@roth-01 ~]# chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Les commandes suivantes désactivent la journalisation des données sur le fichier /mnt/gfs2/gfs2_dir/newfile et vérifient ensuite si le marqueur a été installé correctement.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
Vous pouvez également utiliser la commande chattr pour fixer le marqueur j sur un répertoire. Quand vous fixez ce marqueur sur un répertoire, tous les fichiers et répertoires créés par la suite dans ce même répertoire sont journalisés. L'ensemble des commandes suivant fixe le marqueur jsur le répertoire gfs2_dir, puis vérifie si le marqueur a été fixée correctement. Ensuite, les commandes créent un nouveau fichier intitulénewfile dans le répertoire /mnt/gfs2/gfs2_dir, puis, vérifient si le marqueur j a bien été fixé pour ce fichier. Comme le marqueur j est fixé pour le répertoire, le newfile devrait également avoir la journalisaton activée.
[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