Что за ext4lazyinit? Создаем ext4 правильно.


Диски размечены, LVM тома созданы - настало время создать файловую систему. Дефолтной системой в Centos 7 предлагается xfs, но я по прежнему верю в ext4 и все форматирую именно в ext4.

Всегда это было просто  mkfs.ext4 device и готово. Но вот настал день когда после монтирования вновь созднанной ext4 диск начал дергаться и издавать какие то звуки. Диск использовался раз в секунду судя по звукам.

Данное явление меня сильно насторожило. Запуск утилиты  iotop -o  во время работы примонтированного раздела выдал активность процесса ext4lazyinit. Судя по названю он лениво инициализирует, что то на вновь созданном диске.

Что за ext4lazyinit?


Это процесс отложенного форматирования. Он забивает нулями иноды и создает журнал вновь созданной файловой системы и делает это с таким противным скрежетанием головок жесткого диска, что захотелось от этого избавиться.

Очерендная подляна от разработчиков,  mkfs.ext4 теперь по умолчанию не очищает таблицу inode и заново не пересоздает journal. А делается это при первом монтировании этим самым ext4lazyinit. Причем значительно дольше по времени, чем при форматировании.

Внимание, что бы полностью создать и инициализировать ext4 надо отключить отложенное форматирование:

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/device

После выполнения данной комманды процесс ext4lazyinit запущен не будет.

Если кому будет интересно, можно почитать тут на английском:
https://www.thomas-krenn.com/en/wiki/Ext4_Filesystem#Lazy_Initialization

2 комментария :