Журналирование в современных файловых системах необходимо чтобы восстановить файловую систему после сбоя, если во время сбоя выполнялись операции записи данных. Если запись данных была выполнена не полностью, то файловая система останется в повреждённом состоянии и её будет невозможно смонтировать.
При включённом журнале утилита fsck во время загрузки системы сможет её проверить и восстановить состояние из журнала. В этой статье мы рассмотрим как отключить журналирование в Ext4.
Отключение журналирования Ext4
Чтобы проверить включена ли для нужного раздела диска поддержка журналирования выполните:
sudo dumpe2fs /dev/nvme0n1p5 | grep has_journal
Здесь /dev/nvme0n1p5 - это файл вашего раздела, это может быть /dev/sda1 или что-то подобное. Если в строчке Filesystem Features есть строка has_journal, значит журнал включён. По умолчанию он включён и всё работает. Вы можете полностью отключить журналирование файловой системы, для этого выполните:
sudo tune2fs -O ^has_journal /dev/nvme0n1p5
Или же, если вы не хотите полностью отключать журналирование, но хотите повысить производительность файловой системы, можно включить режим writeback. В этом режиме в журнал данные вообще не записываются, только метаданные. Сначала данные попадают на диск, затем операция записывается в журнал. Так работает журналирование в XFS, JFS и ReiserFS. В этом режиме Ext4 показывает самую высокую производительность. Для его включения выполните:
sudo tune2fs -o journal_data_writeback /dev/nvme0n1p5
Чтобы вернуть режим журналирования по умолчанию выполните:
sudo tune2fs -o journal_data_ordered /dev/nvme0n1p5
Аналогично режим writeback можно включить через /etc/fstab. Здесь в опции монтирования нужного раздела надо добавить data=writeback:
sudo vi /etc/fstab
Чтобы ещё сильнее увеличить производительность можно сюда же добавить опцию noatime, она отключает обновление поля последнего доступа к файлу. Это очень сильно уменьшает количество обращений к диску и увеличивает срок жизни SSD.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Доброго времени суток, Сергей!
Хотелось бы подробнее узнать про журналирование из вашей статьи. Для чего на пальцах оно используется? что такое журнал, какого типа данные там хранятся? В случае сбоя что пользователь сможет восстановить, если он, например, работал в базе банных, или выполнял копирование, если, например, выключился свет, или от какого рода сбоев защищает журналируемая ФС?
Для чего отключать журналирование , о каком приросте производительности мы говорим? И чем мы жертвуем?
Думаю, интересно было бы это узнать.
В любом случае, спасибо Вам за ваши труды!