Режим Ext4 data=journal в ядре Linux 7.3 переводят в устаревшие
В ядро Linux 7.3, выход которого ожидают 19 октября, принято изменение, после которого режим монтирования файловой системы Ext4 data=journal относят к устаревшим. Это не мгновенное изъятие опции из уже работающих систем, а формальное решение: полное журналирование больше не считают частью Ext4, которую собираются вести наравне с остальными режимами записи. Срок прекращения поддержки назван прямо — 2028 год.
До этой даты опцию ещё можно будет применять, но статус у неё уже другой. Тот, кто монтирует тома с data=journal, получает объявленный горизонт, за которым прежнее поведение сохранять не намерены, и откладывать выбор другого режима до последнего года сопровождения становится рискованнее с каждой следующей версией ядра. Сам режим включает полное журналирование.
В журнал попадают не только метаданные, но и сами данные. Именно эта двойная запись отличает data=journal от обычной работы Ext4, где журнал прежде всего фиксирует служебные структуры, а не содержимое файлов, и поэтому том дольше остаётся в состоянии, которое можно восстановить после обрыва. Из такой схемы следует повышенная устойчивость при сбоях.
Если запись обрывается, опереться можно на журнал, в котором уже лежит копия данных, а не только описание того, какие блоки должны были измениться. Для задач, где важнее пережить аварийное отключение, чем выиграть в скорости, режим долго выглядел оправданным, и именно эта устойчивость объясняет, почему опцию не выключают в том же ядре 7.3. Плата за устойчивость — значительное снижение производительности по сравнению с режимами data=ordered и data=writeback.
Пока данные проходят через журнал, диск выполняет лишнюю запись, а завершение операции отодвигается. На фоне двух других режимов data=journal оказывается самым тяжёлым по скорости, и это сравнение теперь работает против дальнейшего сопровождения. Отдельно указано, что опция усложняет сопровождение кода.
Полное журналирование — не краевой переключатель, а ветка логики, которую приходится держать в согласии с остальной Ext4. Любое развитие файловой системы становится тяжелее, пока эту ветку сохраняют рядом с режимами, которые не требуют записывать в журнал сами данные и уже задают обычный путь для новых изменений. Несовместимость видна на конкретных возможностях.
data=journal не сочетается с отложенным выделением блоков, известным как delalloc, и с прямым вводом-выводом. Эти механизмы нужны там, где Ext4 старается не выделять блоки раньше времени и давать приложениям путь к диску в обход обычной буферизации. Режим полного журнала этот путь перекрывает, поэтому том с такой опцией не получает сразу весь набор средств, доступных другим режимам.
Та же несовместимость мешает новой функциональности Ext4. Пока в коде остаётся ветка, которая не уживается с delalloc и прямым вводом-выводом, возможности, рассчитанные на современные схемы записи, приходится либо обходить, либо откладывать. Перевод data=journal в устаревшие снимает препятствие не в день релиза, но задаёт срок, после которого эту ветку можно будет не учитывать при развитии файловой системы.
Для администраторов вывод практический. Если том сознательно смонтирован с data=journal ради устойчивости при сбоях, до 2028 года придётся решить, чем заменить этот компромисс. Режимы data=ordered и data=writeback остаются теми вариантами, с которыми сравнивают производительность и которые устаревшими не названы.
Ждать, что полное журналирование доработают под delalloc и прямой ввод-вывод, после принятого изменения уже не стоит. Решение привязано к ядру 7.3, а не к отдалённому обсуждению. Релиз ждут 19 октября, и вместе с ним устаревание data=journal становится частью дерева.
Поддержка ещё рассчитана до 2028 года, но отсчёт идёт от уже принятого изменения: высокая устойчивость сохраняется лишь как временное свойство режима, который признан слишком дорогим по скорости, сопровождению и совместимости.