Опубликован обзор текущего состояния разработки проекта ZFSonLinux, в рамках которого развивается реализации файловой системы ZFS, оформленная в виде модуля для ядра Linux. Формально вышедшая в марте прошлого года версия 0.6.1 была объявлена первым стабильным выпуском ZFSonLinux, тем не менее разработчики получают много вопросов о том, готов ли проект для промышленного применения. Ричард Яо (Richard Yao), занимающий второе место среди разработчиков по числу внесённых изменений, подробно обосновал, почему он считает ZFSonLinux полностью стабильным и полнофункциональным продуктом, готовым для повсеместного применения.

Текущий уровень стабильности ZFSonLinux на 64-разрядных системах оценивается как соизмеримый с другими файловыми системами для Linux, а функциональность близка к возможностям других реализаций ZFS, что делает ZFSonLinux полноценным конкурентом таким ФС, как ext4, XFS, JFS и Btrfs.

ZFSonLinux предоставляет надёжную гарантию обеспечения целостности данных и значительно превосходит по средствам сохранения целостности другие ФС для постоянно подключенных накопителей. Например, для защиты от сбоев во время записи и внезапных аппаратных проблем при применении изменений используется двухуровневая система транзакций, гарантирующая нахождение данных в согласованном виде. Для отслеживания повреждений на этапе чтения применяется контроль целостности с использованием 256-разрядных контрольных сумм.

Стабильность кодовой базы ZFSonLinux оценивается как сопоставимая с другими ФС для Linux, что достигается тщательным рецензированием кода, проведением статического анализа и тестирования. Достижению паритета в функциональности с реализациями ZFS для FreeBSD и Illumos способствует проект OpenZFS, в рамках которого разработчики различных реализаций ZFS объединили усилия по развитию ZFS, обмена разработками и обеспечению переносимости. В настоящее время отмечается 18 возможностей ZFS из Illumos, которые пока не перенесены в ZFSonLinux.

Из недоработок упоминаются: необходимость ручного контроля синхронности пользовательского инструментария и кода на стороне ядра, проблемы с размещением в zvol раздела подкачки, проблемы со стабильностью на 32-разрядных системах, недостаточно полная интеграция с загрузчиками, отсутствие средств для автоматизации антивирусной проверки новых данных через ClamAV, отсутствие поддержки iSCSI и Zerocopy NFS через RDMA (Remote Direct Memory Access). В ближайшем выпуске 0.6.4 ожидается поддержка AIO, сжатия метаданных с использованием алгоритма LZ4, расширяемых наборов данных, закладок (ZFS bookmark), встраивания содержимого мелких файлов в dnodes, задания ограничений для снапшотов.

В рамках 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. Проект развивается при участии сотрудников Ливерморской национальной лаборатории по контракту с Министерством энергетики США.

Готовые установочные пакеты подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS. Кроме того, модуль ZFSonLinux уже входит в состав дистрибутивов Gentoo, Sabayon Linux и AltLinux. Код распространяется под свободной лицензией CDDL, которая несовместима с GPLv2, что не позволяет добиться интеграции ZFSonLinux в состав основной ветки ядра Linux, так как смешивание кода под лицензиями GPLv2 и CDDL недопустимо. Для обхода данной лицензионной несовместимости было решено распространять продукт целиком под лицензией CDDL в виде отдельно загружаемого модуля, который поставляется отдельно от ядра.

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