Через два месяца после выхода предыдущей версии OpenZFS 2.4 файловая система с открытым исходным кодом и менеджер томов OpenZFS с расширенными функциями защиты данных, такими как моментальные снимки, контрольные суммы и репликация, выпустили версию 2.4.1 — первый промежуточный релиз в этой серии.
Релиз поддерживает ядра Linux с 4.18 по 6.19 и совместим с FreeBSD 13.3 и более новыми версиями, включая серию 14.x. Большая часть обновлений направлена на обеспечение совместимости с Linux 6.19, в том числе исправлены ошибки в сборках внутри дерева, устранены дублирующиеся функции сборки GCM, проблемы с обработкой состояния индексных дескрипторов и более строгие --werror конфигурации. Другие исправления обеспечивают успешную сборку на Linux 6.18 с ядрами PowerPC и RISC-V.
Одно из ключевых исправлений устраняет проблему с некорректным учетом доступного пространства для специальных и дедуплицированных виртуальных устройств. В обновлении также исправлена обработка разрешений на отправку необработанных данных для zfs send -w -I, улучшена обработка активации функции больших блоков при получении данных и устранены проблемы, связанные с активацией large_microzap. Также исправлена регистрация истории создания zpool с помощью команды -t.
Что касается производительности, то для повышения параллелизма была увеличена частота пакетного удаления данных из ARC и улучшено кэширование предварительной выборки данных из dbuf. Было сокращено время минимальной очистки и повторного восстановления, а также улучшено время обработки асинхронного удаления.
В обработке таблиц дедупликации улучшена блокировка и интерфейс, в том числе добавлены и используются _by_dnode() интерфейсы ZAP, а также исправлены ошибки, связанные с размером буфера сжатых записей. Поиск в журналах был выведен из-под блокировки, чтобы снизить нагрузку.
Что касается инструментов, то zdb получил новую опцию -O для указания идентификатора объекта -r, а zfs clone теперь поддерживает -u для создания наборов данных без их монтирования. В утилите zhack добавлена action idle подкоманда и -G опция для вывода отладочного буфера. Несколько регрессионных тестов и тестовых сценариев ZFS Test Suite (ZTS) были обновлены или исправлены.
В FreeBSD исправлены ошибки в небезопасном для потоков отладочном коде, которые приводили к панике из-за двойного освобождения памяти, удалены устаревшие ссылки на DEBUG_VFS_LOCKS, восстановлена компиляция для i386 и исправлены сборки для --enable-invariants . В kmem доработаны флаги выделения памяти для Linux, а в нескольких частях SPL удалены устаревшие или небезопасные участки кода.
В релиз также вошли многочисленные изменения, направленные на очистку и стандартизацию скриптов командной оболочки, в том числе удаление «башизмов», повышение соответствия требованиям shellcheck, более безопасное определение области видимости переменных, а также уточнения в документации, касающиеся конфигурации initrd и монтирования файловой системы.
Для получения дополнительной информации см. журнал изменений.
Выводы
Релиз OpenZFS 2.4.1 — это важное техническое обновление, ориентированное на стабильность, совместимость и исправление ошибок, а не на крупные новые функции. Основная ценность версии — устранение проблем на уровне сборки и работы с новыми ядрами Linux и FreeBSD.
Поддержка Linux 6.19 означает, что OpenZFS теперь может использоваться на самых свежих версиях ядра без необходимости патчей или обходных решений, что критично для тех, кто обновляет серверы и рабочие станции.
Исправления совместимости с FreeBSD улучшают опыт использования ZFS как на Linux, так и на FreeBSD, уменьшая риск аварий (например, паник из‑за double‑free) и расширяя список поддерживаемых платформ.
Улучшения стабильности и производительности (такие как оптимизация ARC eviction, улучшенный prefetch и уменьшение времени scrub/resilver) повышают надежность и эффективность работы крупномасштабных пулов.
Мелкие, но полезные улучшения инструментов, такие как новые опции для zdb, zfs clone и tooling (zhack), делают диагностику и администрирование проще и гибче.
В целом версия 2.4.1 — это качественное техобновление, призванное укрепить основу OpenZFS 2.4 и обеспечить беспроблемную работу в современных окружениях.
FAQ
Для чего вышел OpenZFS 2.4.1?
Это обслуживающий релиз (maintenance), цель которого — улучшить совместимость с Linux 6.19, устранить ошибки сборки и поведения, исправить проблемы с FreeBSD и повысить стабильность по сравнению с 2.4.0.
Есть ли в 2.4.1 новые крупные функциональные возможности?
Нет — основные «новые» функции были представлены в предыдущем релизе OpenZFS 2.4.1 — например, поддержка квот, улучшения производительности и новые команды. В 2.4.1 в основном исправляются ошибки и проблемы совместимости.
Какие ядра Linux поддерживаются в 2.4.1?
OpenZFS 2.4.1 поддерживает Linux‑ядра от 4.18 до 6.19 — это означает, что как старые, так и самые новые версии ядра совместимы.
Какие проблемы исправлены в FreeBSD?
Включены исправления для проблем с небезопасным потоковым дебаг‑кодом (double‑free), устранены устаревшие зависимости (например, DEBUG_VFS_LOCKS), восстановлена компиляция под i386 и исправлены сборки с --enable-invariants.
Что изменилось в производительности?
Улучшена параллельность за счет увеличенной пакетной очистки ARC, усилен prefetch‑кэш, снижено время scrub и resilver, а также оптимизировано асинхронное удаление.
Нужно ли обновляться всем пользователям?
Рекомендуется обновление тем, кто использует Linux 6.19 или сталкивается с описанными ошибками в предыдущих версиях OpenZFS. Обновление повышает надежность и облегчает поддержку системы.
Где посмотреть полный список изменений?
Полный список изменений находится в официальном changelog на GitHub в релизах OpenZFS.