Я знаю, что есть много тем "ext4lazyinit". Но все они о 4-6 ТБ HDD, и постеры говорят, что в конце концов все было завершено через несколько часов.
На моей стороне есть недавно созданная область RAID5 с 5*14 ТБ дисками (следовательно, общий размер 51 ТБ), и "ext4lazyinit" работает с ... 6 дней (= с момента последней перезагрузки, но, вероятно, он работал и пару дней до этого). И, конечно, он постоянно генерирует ввод-вывод на массиве. Никаких ошибок нигде, так что за пределами этого все выглядит нормально.
Но почему так долго? Хорошо, дисковый массив большой, но... 6 дней ?!
Сначала я не знал об этом поведении, поэтому в какой-то момент (спустя пару дней после создания RAID-массива) я перезагрузил систему — похоже, что после этого «ext4lazyinit» автоматически перезапустился, но возможно ли, что перезагрузка что-то повредила?
ps -ef|grep lazy
root 583 2 0 Dec02 ? 00:04:37 [ext4lazyinit]
И есть ли способ отслеживать ход этого процесса (что-то вроде cat /proc/mdstat
того, что доступно для некоторых операций mdadm)? (я не смог ничего найти в dmesg, journalctl или других журналах)
Следует отметить (и, возможно, это объясняет, почему он такой медленный?), что количество операций ввода-вывода кажется постоянным с течением времени, но довольно низким (так что, возможно, процесс не работает на полной скорости жесткого диска?). Есть ли способ увеличить эту скорость?
avg-cpu: %user %nice %system %iowait %steal %idle
0.25 0.00 0.42 1.17 0.00 98.17
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
mmcblk0 0.00 0.00 0.00 0 0
sda 3.00 0.00 8.50 0 17
sdb 5.00 256.00 264.50 512 529
sdc 4.00 192.00 200.50 384 401
sdd 4.00 64.00 72.50 128 145
sde 3.00 0.00 8.50 0 17
md0 0.50 0.00 256.00 0 512
решение1
У меня та же проблема. Массив RAID5 на 24 ГБ, и я вчера запустил mkfs.ext4. Оставлю это здесь для тех, кто еще наткнется на эту ветку с информацией, которую я нашел.
Самый простой способ сделать это — просто mkfs.ext4 с отключенными ленивыми опциями, а затем долго ждать, пока он все инициализирует. Если вы хотите использовать свой массив, он в любом случае не будет хорош на вращающихся дисках, поскольку будет происходить много разрозненных операций ввода-вывода, пока не будет выполнена ленивая инициализация, и это полностью убивает скорость чтения/записи.
mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0
Ускорение: смонтируйте с помощью этой опции: init_itable=0 (это множитель времени ожидания после обнуления фрагмента (по умолчанию 10, что означает ожидание в 10 раз больше времени, чем потребовалось для обнуления последнего фрагмента, прежде чем двигаться дальше. 0 = сделать это немедленно, но это значительно увеличит пропускную способность ввода-вывода).
Ссылка в комментариях выше (Заставить ext4lazyinit завершить свою работу?) очень полезно для мониторинга прогресса. Текущие записи против общего числа секторов от fdisk. Я работаю уже день и сейчас на 54%, так что, думаю, я приближаюсь к цели... lazy init работает со скоростью записи около 10-12 МБ/с.
Убедитесь, что вы больше ничего не делаете на диске и:
echo 1 > /proc/sys/vm/block_dump # Turn on logging in /var/log/syslog
fdisk -l /dev/md0 # Note total sectors.
echo 0 > /proc/sys/vm/block_dump # Turn of logging. Don't fill the log :)
Разделите количество секторов, записываемых из syslog, на общее количество секторов из fdisk.
Надеюсь, это поможет следующему человеку, который с этим столкнется. Теперь мне остается только подождать еще один день, пока все не будет готово, и тогда я смогу начать использовать массив на приличных скоростях. (До тех пор я все еще могу вытянуть из него 30 МБ/с, так что это не безнадежно)