Выпуск ZFSonLinux 0.6.5, реализации ZFS для ядра Linux
12 сентября 2015 года
Состоялся релиз ZFSonLinux 0.6.5, реализации файловой системы ZFS, оформленной в виде модуля для ядра Linux. Готовые установочные пакеты подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS. Кроме того, модуль ZFSonLinux уже входит в состав дистрибутивов Gentoo, Sabayon Linux и ALT Linux.
В рамках 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.1 и 4.2. В качестве минимально поддерживаемой версии заявлено ядро Linux 2.6.32;
- Поддержка временных опций монтирования ( Temporary Mount Properties), задаваемых на этапе выполнения команды "zfs mount" (например, "zfs mount-o remount,noatime раздел");
- Возможность доступа к снапшотам в директории .zfs/snapshot через NFS;
- Реализация новых флагов подключаемой функциональности ( feature flags):
- large_blocks - позволяет использовать наборы данных (dataset), с размером блока больше 128 Кб. Его можно выставить в диапазоне от 512 байт до 16 Мб (максимальный размер блока ограничивается лимитом zfs_max_recordsize, который по умолчанию установлен в 1 Мб). При использовании больших блоков следует иметь в ввиду, что при использовании механизма COW (Copy on Write) изменение даже одного байта в блоке приведёт к перезаписи на новое место всего блока. Большие блоки также могут привести к повышению задержек при вводе/выводе.
- filesystem_limits - для задания ограничений на файловую систему и снапшоты, например, для определённой области в ФС можно выставить лимит на число создаваемых снапшотов;
- Проведена оптимизация производительности:
- В zvol пропускная способность увеличена более чем на 50%, а задержки сокращены на 20%.
- В zil для ядер Linux до выпуска 2.6.40 задержки сокращены в 10 раз.
- На 5-10% улучшена производительность пулов, заполненных на 90%.
- Сокращено время удаления очень больших файлов;
- Увеличена эффективность кэширования за счёт уменьшения конкуренции блокировок.
- Улучшена эвристика управления размером кэша.
- Ускорено высвобождение отданных под кэш буферов при непредвиденной нехватки памяти.
- Возможность оценки размера отправляемого потока при использовании закладки ( bookmark) в качестве источника;
- Размер зарезервированного дискового пространства увеличен с 1.6% до 3.3% от общего размера пула (изменить можно опцией spa_slop_shift);
- Административным командам разрешено использовать зарезервированное дисковое пространство;
- Возможность отправки из ZEDLET-ов(недоступная ссылка) (FS Event Daemon Linkage for Executable Tasks) уведомлений на email и через сервис pushbullet;
- В vdev_id.conf добавлена опция 'slot' для указания используемого номера слота;
- В команду "zpool export" добавлена опция "-a" для размонтирования и экспорта всех импортированных пулов;
- В команду "zpool iostat" добавлена опция "-y" для пропуска первого набора загрузочной статистики;
- В zdb добавлена возможность открытия корневого набора (root dataset), вывода числа связанных блоков (ganged blocks), показа детальной информации по объектам ("zdb -ddddd");
- В команде "zstreamdump -d" обеспечен показ содержимого блоков;
- Загрузка модулей ZFS теперь осуществляется при помощи systemd или скриптов sysv init. Отныне модули нужно загружать явно - запуск утилит zfs/zpool не приводит к автоматической загрузке модулей (старое поведение можно вернуть через установку переменной окружения ZFS_MODULE_LOADING=yes, которая будет удалена в одном из будущих выпусков);
- Унифицированы скрипты инициализации для SYSV и Gentoo OpenRC. Ранее доступная функциональность разнесена по скриптам zfs-import, zfs-mount, zfs-share и zfs-zed, что позволяет отдельно контролировать каждый компонент;
- В качестве предлагаемого по умолчанию метода сжатия
задействован lz4;
- Использование операций mkdir/rmdir/mv в директории .zfs/snapshot по умолчанию запрещено и требует явного включения через опцию zfs_admin_snapshot.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.