LUKS2 + EXT4 на HDD выполняет случайное чтение после монтирования в течение ~3 минут.

Вопрос или проблема

Шаги для воспроизведения:

  • Используйте один USB HDD с LUKSv2 и отформатированный с настройками по умолчанию ext4 (за исключением только 10 зарезервированных блоков, а не 5%);
  • Используйте Ubuntu или Debian с Gnome, который позволяет разблокировать HDD;
  • Попытка открыть директорию, открыть файл или записать проходит очень медленно. Я слышу шум на HDD из-за случайного поиска;
  • Команда dstat показывает около 3 МБ/с на чтение в течение около 3 минут при отсутствии взаимодействия с компьютером.

Ничего существенного не появляется в журнале ядра.

Возможно ли отключить это, что, похоже, является проверкой, и где?

Заранее спасибо.

Вы можете использовать “iotop” или “blktrace”, чтобы увидеть, что делает доступ к диску.

Это может быть lazyinit или подобная проверка, требуется ли какая-либо инициализация “первого монтирования”. В любом случае это не бесполезный ввод-вывод, поскольку выделение блоков/инодов требует чтения тех же метаданных с диска (и их расшифровки в случае LUKS).

Как только вы узнаете, что это такое, могут появиться опции для его отключения.

.

Ответ или решение

Когда вы сталкиваетесь с ситуацией, где после монтирования зашифрованного устройства LUKS и файловой системы EXT4 на жестком диске происходит случайное чтение, вызывающее существенное замедление в течение примерно трёх минут, важно понять теоретическую подоплёку этого явления, прежде чем предпринимать практические шаги для его решения.

Теория

При использовании зашифрованного устройства LUKSv2 и файловой системы EXT4, система должна выполнить ряд операций при первом монтировании. LUKS требует расшифровки заголовка и выполнения аутентификации, что может занять время. EXT4, в свою очередь, имеет механизм инициализации — lazyinit, который фоново завершает форматирование структуры данных, таких как inode и журналы. Это похоже на необходимую "домашнюю работу", которую файловая система должна сделать, чтобы подготовиться к безопасной и эффективной записи и чтению данных.

Пример

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

Когда вы подключаете внешнее USB-устройство, операционная система, возможно, выполняет ряд проверок на уровне файловой системы и LUKS. Команда dstat показывает вам, что считывание происходит со скоростью около 3 МБ/с, однако это не непроизводительная деятельность, а скорее целенаправленная работа с метаданными. В operate свет тоже не загорается без причины; так и система должна подтвердить целостность и консистентность.

Применение

Для начала, полезно понять источник интенсивного ввода-вывода. Используйте утилиты, такие как iotop или blktrace, чтобы отследить, какое именно приложение или системный процесс инициирует все эти вызовы. После этого можно принимать более четкие решения.

  • Проверка процессов: iotop поможет увидеть активные процессы, могущие быть причиной интенсивных операций ввода-вывода.
  • Блок-трассировка: blktrace предоставляет детальные данные о том, какие блоки считываются или записываются и в каком порядке.

Если как результаты вы видите, что основной источник — это init-процедуры файловой системы, целесообразно изучить параметры монтирования или отправки команд для деактивации некоторых из них, например, lazy_itable_init, которая может быть причиной отложенной инициализации таблицы inode. Можно попробовать отформатировать файловую систему с этой опцией:

mkfs.ext4 -E lazy_itable_init=0 /dev/sdX

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

В качестве альтернативы, многие пользователи находят целесообразным перейти на более быстрые SSD для систем, где задержки из-за инициализации данных критичны. SSD-накопители не страдают от механических задержек, связанный с HDD, так как там нет подвижных частей.

Как видно, проблема значительно снижается до уровня обязательных инициализаций и проверки выравнивания метаданных. Программа дальнейших действий должна начинаться с диагностики, а затем касаться оптимизации монтируемых атрибутов, при соблюдении осторожности к компромиссам в безопасности и производительности.

Оцените материал
Добавить комментарий

Капча загружается...