Я задал вопрос о ext4lazyinit здесь . Из всего, что я прочитал и понял, он просто позволяет вам начать использовать жесткий диск, не создавая все inode для вашей файловой системы.
Единственный способ , что вы знаете или может мера контроля ext4lazyinit
в iotop
. Есть ли способ получить его прогресс в процентах?
Ответы:
Проверьте это обсуждение патча . Вы можете инициализировать систему без lazyinit, но не можете измерить ее. Если у вас есть время подождать, просто подождите. Вы можете попробовать патч из обсуждения, но в соответствии с Patchwork он имеет состояние "отклонено".
источник
Кажется, я нашел способ приблизить прогресс ext4lazyinit.
TL; DR: см. Сценарий ниже.
Этот метод предполагает, что диск никогда не был отключен (и система не была перезагружена) с самого первого момента монтирования раздела, и что вы записали ровно столько данных, сколько используется на нем (поэтому удаление не требуется) или модификация файлов).
Шаг 1 : Сравните размер раздела в fdisk (в килобайтах) с количеством блоков в 1K, показанных в df. Вычтите (количество блоков 1K) из (размер раздела в килобайтах), чтобы получить (приблизительный размер таблицы inode).
РЕДАКТИРОВАТЬ: Пример, fdisk:
ДФ:
11720976351 секторов * 512 байт / сектор / 1024 = 5860488175,5 КБ (почти 5,5 ТБ, как говорит fdisk). Минус df 5813233164 равен 47255011,5 кБ (около 45 ГиБ) для приблизительного размера таблицы inode.
Шаг 2 : Получить (всего килобайт записано в раздел):
Выберите правильную строку для вашего раздела и преобразуйте его в килобайты.
РЕДАКТИРОВАТЬ: пример:
Используя sdd1 в моем случае, общее количество записанных килобайт = 2530108940 секторов * 512 байт / сектор / 1024 = 1265054470 килобайт (почти 1,2 ТиБ).
Шаг 3 : Требуется, только если вы уже записали какие-либо данные в файловую систему. Вычтите (число ИСПОЛЬЗОВАННЫХ 1K-блоков, показанное в df) из (общее количество килобайт, записанных в раздел), чтобы получить (приблизительно килобайт, записанное в таблицу inode).
РЕДАКТИРОВАТЬ: пример: примерный килобайт записан в таблицу inode = 1265054470 (из шага 2) - 1217095176 (см. Вывод df в шаге 1) = 47959294 кБ (45,7 ГиБ)
Шаг 4 : Разделите (приблизительно килобайт, записанный в таблицу inode) на (приблизительный размер таблицы inode в килобайтах) и умножьте на 100, чтобы получить прогресс в процентах.
РЕДАКТИРОВАТЬ: пример: приблизительный прогресс = 47959294 / 47255011,5 * 100% = 101,5%
скрипт
Или написать это как частичный скрипт (где я отказываюсь писать скрипт для вызова fdisk по соображениям безопасности):
Вызов с $ 1 = "имя раздела" (например, sdd1), $ 2 = "секторы раздела в соответствии с fdisk", $ 3 = "точка монтирования без косой черты"
Результаты теста
Я только один раз проверил свой метод. Настроить:
6 ТБ раздел
шифрование с использованием cryptsetup
файловая система, созданная с параметрами по умолчанию, за исключением -m 0
279 ГБ файлов, записанных в раздел до завершения ext4lazyinit.
Результат : чтение 99,7% на момент завершения :-)
РЕДАКТИРОВАТЬ: тот же диск, после записи почти другого ТиБ данных на него, теперь дает оценку 101,5%. Я думаю, что достаточно точен, чтобы быть полезным.
источник