4.8. Журналирование данных

Обычно GFS2 сохраняет в журнал только метаданные, записывая изменения на диск в процессе синхронизации. Вызов fsync() для файла приведет к немедленной записи файла на диск.
Для очень маленьких файлов сохранение данных в журнал может быть эффективным, так как это сокращает их время обработки процессом fsync(). Однако по мере увеличения размера файлов скорость записи снижается, нивелируя это преимущество.
Журналирование данных может повысить производительность приложений, синхронизация которых осуществляется с помощью fsync().
Включение журналирования каталога автоматически включит его для создаваемых в нем файлов и подкаталогов. Для отдельных файлов это можно настроить с помощью команды chattr.
Ниже приведены примеры установки и проверки флага журналирования для файла /mnt/gfs2/gfs2_dir/newfile.
[root@roth-01 ~]# chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Отключение журналирования /mnt/gfs2/gfs2_dir/newfile:
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
Установка флага j для каталога автоматически включит журналирование файлов и подкаталогов в его составе. В следующем примере будет установлен флаг j для каталога gfs2_dir с последующей проверкой его состояния. Затем в этом каталоге будет создан файл newfile. Так как флаг уже установлен для каталога, newfile его унаследует.
[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