IT-инфраструктура • инструкции • практикаПоиск по сайту

Серверы и системное администрирование

Найти материал →

Openzfs 2.4.4: поддержка linux kernel 7.2 и инструмент восстановления Mmp

OpenZFS 2.4.4 получил поддержку Linux Kernel 7.2 и новый инструмент восстановления MMP

Проект OpenZFS выпустил версию 2.4.4 - очередное стабильное обновление открытой реализации файловой системы ZFS. Основное нововведение релиза заключается в расширении совместимости с Linux: теперь официально поддерживается ядро Linux 7.2. Кроме того, разработчики добавили новый инструмент для восстановления пулов после проблем с Multi-Modifier Protection, исправили ряд ошибок в DDT и повысили общую надежность операций с хранилищем.

После обновления диапазон поддерживаемых ядер Linux охватывает версии от 4.18 до 7.2. В рамках подготовки к Linux 7.2 код суперблока ZFS переведен на интерфейс `sget_fc()`, используемый современным механизмом работы с файловыми системами в ядре. Поддержка FreeBSD также сохранена: OpenZFS 2.4.4 совместим с FreeBSD 13.3 и более поздними выпусками ветки 13, а также с FreeBSD 14.0 и новее. Подробный обзор изменений доступен в материале о совместимости OpenZFS 2.4.4 с Linux 7.2.

Одной из самых заметных функций стал новый вызов `zhack mmp reclaim`. Он предназначен для возвращения в рабочее состояние пула, который оказался заблокированным из-за срабатывания Multi-Modifier Protection, или MMP. Этот механизм защищает данные от одновременного импорта и изменения одного пула несколькими системами. Без такой защиты параллельный доступ к дискам может привести к повреждению метаданных и потере согласованности файловой системы.

В OpenZFS 2.4.4 улучшено определение ситуации, при которой пул действительно используется другой машиной, и случая, когда осталась устаревшая отметка после сбоя или потери связи с узлом. Проверки активности теперь пропускают виртуальные устройства, доступные только для чтения. Также скорректирована работа с деградированными зеркалами, отдельные компоненты которых помечены как отсутствующие. Именно эти изменения делают сценарий OpenZFS восстановление пула zhack mmp reclaim более практичным для администраторов.

Для систем с systemd зависимость от `systemd-udev-settle` в юнитах импорта пулов теперь необязательна. Благодаря этому импорт не обязан каждый раз ждать полного завершения обработки всех устройств udev, что может ускорить запуск системы и уменьшить количество ситуаций, когда пул задерживается из-за второстепенных событий обнаружения оборудования.

Значительный блок исправлений связан с таблицей дедупликации DDT. Разработчики устранили переполнения времени с отрицательным значением во время очистки, несколько ошибок процедуры pruning, недостаточную блокировку при проверке дедупликации и некорректную маркировку счетчиков ссылок в журнале DDT. Эти изменения особенно важны для больших пулов, где дедупликация активно используется и любые ошибки в метаданных могут усложнить обслуживание хранилища.

Пользователи L2ARC получили исправление, ограничивающее восстановление кэша по позиции записи во время первого прохода. Также устранены проблемы с чтением блоков, освобожденных после клонирования, а события проверки Direct I/O теперь ограничиваются по частоте. Это снижает риск чрезмерной генерации уведомлений и помогает избежать ненужной нагрузки на журналы и системы мониторинга.

В Linux исправлен бесконечный цикл в `zfs_write()`, который мог возникать при работе с буфером, недоступным для обработки ошибок. Дополнительно скорректировано чтение через `mmap()` за пределами фактического размера файла. Исправлено и обновление временных меток изменения и модификации при увеличении файла с помощью `fallocate()`.

Изменения затронули и администрирование пулов. Команда `zpool export` теперь возвращает ошибку `EBUSY`, если принадлежащие пулу устройства zvol всё еще используются. Ранее операция могла продолжаться даже тогда, когда корректно отключить пул было невозможно. Также устранено состояние гонки между завершением удаления устройства и экспортом пула.

Разработчики исправили обработку приема больших блоков, если последний фрагмент оказывается короче ожидаемого, уточнили поведение параметра `zfs receive -x` и устранили потенциальное разыменование нулевого указателя в коде DMU receive. После отката теперь корректно очищается устаревший кэш POSIX ACL, который в некоторых случаях сохранял неправильные сведения о правах доступа.

Для делегированного управления появилась новая возможность `send:encrypted`. Она позволяет точнее определить, могут ли пользователи с ограниченными полномочиями отправлять зашифрованные наборы данных. Это полезно в корпоративной инфраструктуре, где обязанности по резервному копированию и обслуживанию хранилищ распределены между несколькими администраторами.

Кроме того, улучшены проверки разрешений на устройства, повышена безопасность работы со строками и памятью в `libzfs`, исправлены возобновляемые операции send, а также улучшено автоматическое расширение пулов при изменении емкости дисков с разделами. В релиз вошли обновления сборочной инфраструктуры, CI, тестов и исправления для FreeBSD.

Перед тем как выполнить OpenZFS для Linux установка, стоит проверить версию ядра, состояние пакетов DKMS или модулей, а также совместимость загрузчика и инструментов управления пулом. На рабочих серверах обновление лучше проводить после резервного копирования конфигурации и проверки состояния командой `zpool status`. Сам пакет можно искать по запросу OpenZFS 2.4.4 скачать, однако предпочтительно использовать репозитории конкретного дистрибутива или официальные пакеты проекта, чтобы избежать несовместимости модулей.

В целом OpenZFS 2.4.4 нельзя назвать крупным функциональным релизом, но обновление имеет большое значение для пользователей современных ядер. Формулировка OpenZFS 2.4.4 совместимость с Linux 7.2 отражает главное практическое преимущество версии: администраторы получают актуальную поддержку ядра, новые средства восстановления MMP и набор исправлений, повышающих надежность пулов в повседневной эксплуатации. Грамотная OpenZFS настройка и поддержка по-прежнему требует контроля состояния дисков, регулярного тестирования резервных копий и осторожного применения операций импорта, экспорта и восстановления.

Прокрутить вверх