Главная >> Инструкции >> Как отключить журналирование Ext4

Как отключить журналирование Ext4

Журналирование в современных файловых системах необходимо чтобы восстановить файловую систему после сбоя, если во время сбоя выполнялись операции записи данных. Если запись данных была выполнена не полностью, то файловая система останется в повреждённом состоянии и её будет невозможно смонтировать.

При включённом журнале утилита 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.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

4 комментария к “Как отключить журналирование Ext4”

  1. Доброго времени суток, Сергей!
    Хотелось бы подробнее узнать про журналирование из вашей статьи. Для чего на пальцах оно используется? что такое журнал, какого типа данные там хранятся? В случае сбоя что пользователь сможет восстановить, если он, например, работал в базе банных, или выполнял копирование, если, например, выключился свет, или от какого рода сбоев защищает журналируемая ФС?

    Для чего отключать журналирование , о каком приросте производительности мы говорим? И чем мы жертвуем?
    Думаю, интересно было бы это узнать.

    В любом случае, спасибо Вам за ваши труды!

    Ответить
    • Когда вы даете команду "сохранить файл на диске", журналируемая файловая система быстро ставит пометку "копирование провалилось ((" в особый журнал (спецфайл на диске). Далее идет долгая операция записи всех байт вашего файла на диск. Если в этот момент питание пропало и комп отключился, то при последующем включении, система в первую очередь открывает журнал и видит запись "копирование файла N провалилось ((". Она находит его имя в файловой таблице FAT и удаляет, как-будто и не было копирования файла.
      Без журналирования вы увидите на диске обрывок файла и ошибки его размера, указанного в FAT. Если ошибок будет много (вы отказываетесь проверять диск, когда дядя Билли это настоятельно рекомендует), то в конце концов это приведет к падению карточного домика.
      Понятно, что по сто раз обращаться к диску по каждому файлу (запись в журнал, запись в FAT, запись пространство) в итоге прибьет диск. Так было с винчестерами емкостью по 4-8 Гбайт у тех, кто осмелился ставить туда "икспиху" при оперативке 256 Мбайт.
      Производительность: одна команда - одна запись.
      Жертва: записал и не отследил ошибку - пропало.

      Ответить
  2. Здравствуйте!

    "можно сюда же добавить опцию noatime", вот это заинтересовало, а какой командой консоли добавлять такую опцию? Попробовал по разному, терминал выдаёт "Invalid mount option set: noatime"

    Спасибо!

    Ответить

Оставьте комментарий