Выпуск ZFSonLinux 0.6.4, реализации ZFS для ядра Linux

После десяти месяцев разработки доступен релиз ZFSonLinux 0.6.4, реализации файловой системы ZFS, оформленной в виде модуля для ядра Linux. Готовые установочные пакеты подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS. Кроме того, модуль ZFSonLinux уже входит в состав дистрибутивов Gentoo, Sabayon Linux и AltLinux. В рамках ZFSonLinux подготовлена реализация компонентов ZFS, связанных как с работой файловой системы, так и с функционированием менеджера томов. В частности, реализованы компоненты: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) и ZPL (ZFS POSIX Layer). Дополнительно проектом обеспечена возможность использования ZFS в качестве бэкенда для кластерной файловой системы Lustre. Наработки проекта основаны на оригинальном коде ZFS, импортированном из проекта OpenSolaris и расширенном улучшениями и исправлениями от сообщества Illumos. Реализованная в ZFSonLinux версия пула и файловой системы совместима с ZFS из состава Illumos и FreeBSD. Проект развивается при участии сотрудников Ливерморской национальной лаборатории по контракту с Министерством энергетики США.

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

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

Обеспечение совместимости с ядром Linux 4.0; Реализация шести новых флагов подключаемой функциональности (feature flags): spacemap_histogram — позволяет хранить дополнительную информацию о размещении свободного пространства в пуле; extensible_dataset — даёт возможность более гибко использовать внутренние структуры данных; bookmarks — реализует возможности для пометки момента времени создания снапшота, необходимые для работы команды «zfs bookmark»; enabled_txg — включает запись групповых номеров транзакций; hole_birth — увеличивает производительность операций инкрементальной отправки данных командой «zfs send -i» и получения объектов, содержащих большое число пустых областей; embedded_data — увеличивает производительность и уровень сжатия при работе с хорошо сжимаемыми блоками, которые поддаются упаковке как минимум в 112 байт. Поддержка асинхронного ввода/вывода (AIO); Режим сжатия метаданных с использованием алгоритма LZ4; Возможность использования вызова fallocate () FALLOC_FL_PUNCH_HOLE для предварительного выделения места под пустые области в файлах; Отображения дополнительных данных об уровне фрагментации в выводе 'zpool list'; Новое свойство «redundant_metadata», позволяющее управлять уровнем резервирования метаданных; Новое свойство «overlay» для управления поведением для непустых точек монтирования; В выводе 'zpool list -v' обеспечен показ ёмкости отдельных дисков; Новый режим скриптования ('zpool get -H'); Добавлена команда 'zpool create -t' для создания пула с временным именем; Из FreeNAS импортирован скрипт arc_summary.py; Поддержка контрольных точек для DTrace (DTRACE_PROBES); В zdb добавлено отображение гистограмм сжатых блоков.

© OpenNet