Доступна финальная версия ZFS для Linux, работающая на уровне ядра

Индийская компания KQ Infotech выпустила финальную версию модуля Linux-ядра с нативной реализацией файловой системы ZFS. Финальная версия модуля основана на 28 версии zpool и коде из 147 сборки OpenSolaris. Исходные тексты разработки открыты для свободного доступа на сервере github.com, для Fedora 14, RHEL6, Ubuntu 10.04 и 10.10 распространяются бинарные и src-пакеты (для загрузки требуется свободная регистрация).

Разработка компании KQ Infotech основана на кодовой базе проекта Native ZFS, развиваемой Брайаном Белендорфом и сотрудниками Ливерморской национальной лаборатории по контракту с Министерством энергетики США (подробности о проекте см. в прошлом анонсе). Главным отличием от работы Белендорфа является реализация поддержки уровня ZPL (ZFS POSIX Layer), позволяющего использовать ZFS как файловую систему, а не только как менеджер томов. Также проведена работа по стабилизации кодовой базы и приведении модуля к виду, готовому к эксплуатации. В родительском проекте Native ZFS реализована только поддержка SPA (Storage Pool Allocator), DMU (Data Management Unit) и ZVOL (ZFS Emulated Volume).

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

Ресурс Phoronix провел тестирования нативной поддержки ZFS для Linux в сравнении с Ext4, XFS и Btrfs. Результаты получились неожиданными: ZFS заметно обогнала другие ФС в тесте SQLite, оказавшись на 16% быстрее EXT4 и почти на 40% быстрее Btrfs и XFS. В тесте Dbench ZFS также оказалась на первом месте, продемонстрировав пропускную способность 42MB/s, в то время как производительность Btrfs была на уровне 29MB/s, XFS - 18MB/s, а EXT4 - 25MB/s.

В тесте IOzone при выполнении операции чтения данных производительность рассмотренных ФС оказалась примерно одинаковой, при оценке записи данных - ZFS и XFS отстали от EXT4 и Btrfs примерно на 20%. В тесте на создание большого числа файлов FS-Mark в fsync-режиме EXT4, Btrfs и ZFS были примерно на одном уровне, отстав от XFS примерно на 18% (в режиме "no sync" производительность XFS упала, а Btrfs вырвалась вперед, обогнав ZFS и EXT4 примерно на 29%).

При измерении скорости распаковки архива с исходными текстамми Linux-ядра EXT4, Btrfs и ZFS выполнили задание примерно за одно время, в то время как XFS справилось с задачей в два раза быстрее. В тесте CompileBench ZFS обогнала XFS в три с половиной раза, но более чем в два раза отстала от EXT4 и Btrfs. В тестах PostMark и Threaded I/O Tester ZFS оказалась на последнем месте, значительно отстав от других ФС.

© OpenNet