Релиз OpenZFS 2.4.0, реализации ZFS для Linux и FreeBSD

После 11 месяцев разработки опубликован релиз проекта OpenZFS 2.4.0, развивающего реализацию файловой системы ZFS для Linux и FreeBSD. Проект получил известность как «ZFS on Linux» и ранее ограничивался разработкой модуля для ядра Linux, но после слияния с кодом из FreeBSD был признан основной реализацией OpenZFS и переименован.

Работа OpenZFS проверена с ядрами Linux c 4.18 по 6.18 и всеми ветками FreeBSD, начиная с 13.3. Код распространяется под свободной лицензией CDDL. OpenZFS уже используется во FreeBSD и входит в состав дистрибутивов Debian, Ubuntu, Gentoo, NixOS и ALT Linux. Пакеты с новой версией в ближайшее время будут подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS предоставляет реализацию компонентов ZFS, связанных как с работой файловой системы, так и с функционированием менеджера томов. Реализованы компоненты: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) и ZPL (ZFS POSIX Layer). Проект также позволяет использовать ZFS в качестве бэкенда для кластерной файловой системы Lustre. Наработки OpenZFS основаны на оригинальном коде ZFS, импортированном из проекта OpenSolaris и расширенном улучшениями и исправлениями от сообщества Illumos. Проект развивается при участии сотрудников Ливерморской национальной лаборатории по контракту с Министерством энергетики США.

Код распространяется под свободной лицензией CDDL, которая несовместима с GPLv2, что не позволяет добиться интеграции OpenZFS в состав основной ветки ядра Linux, так как смешивание кода под лицензиями GPLv2 и CDDL недопустимо. Для обхода лицензионной несовместимости было решено распространять продукт для Linux целиком под лицензией CDDL в виде отдельно загружаемого модуля, поставляемого отдельно от ядра. Стабильность кодовой базы OpenZFS оценивается как сопоставимая с другими ФС для Linux.

Основные изменения:

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

  • Добавлена возможность отката режима прямого ввода/вывода (O_DIRECT, Direct I/O) на использование легковесного механизма некешируемого ввода/вывода (Uncached I/O) для запросов, не выравненных по границе страницы памяти, не поддерживаемых в Direct I/O.

  • Предложен новый унифицированный алгоритм ограничения скорости операций записи и размещения блоков, сокращающий фрагментацию vdev (Virtual Device) за счёт агрегирования нескольких операций записи и использования для них более крупных непрерывных свободных областей вместо помещения результатов единичных операций записи в мелкие свободные области.

  • Повышена производительность шифрования за счёт использования инструкций AVX2 в реализации алгоритма AES-GCM. В проведённых тестах ускорение достигает 80%.

  • Разрешено размещение ZIL-блоков (ZFS Intent Log) не только на нормальных vdev или на отельном устройстве SLOG, но и на специальных vdev. Если нормальный vdev связан с жёстким диском, а специальный vdev c SSD-накопителем, изменение позволяет исключить ситуации, когда данные записываются на SSD, а связанные с ними блоки ZIL на жёсткий диск из-за чего возникают лишние задержки.

  • Разрешено выставление свойства special_small_blocks для разделов (ZVOL), а не только для файловых систем, что позволяет организовать размещение мелких блоков на отдельном специальном vdev, например, на SSD-накопителе.

  • Добавлен режим перезаписи «zfs rewrite -P», по возможности оставляющий неизменным логическое время создания, что позволяет отличать блоки, просто перемещённые в пул от блоков, реально изменённых пользователем.

  • Для команд «zpool trim», «zpool scrub» и «zpool initialize» реализована опция »-a» (--all), позволяющая выполнять эти команды сразу для всех импортированных пулов.

  • Добавлена команда «zpool scrub -S -E» для выполнения проверки контрольных сумм данных, подпадающих в указанные интервал времени.

  • Добавлены новые оптимизации процесса дедупликации.



Источник: http://www.opennet.ru/opennews/art.shtml? num=64448

OpenNet прочитано 2237 раз