Около двух лет и 5 RC-релизов потребовалось разработчикам ZFS on Linux (сокращённо ZoL), чтобы выпустить крайне значимый релиз - ZFS-0.8.0.
Новые возможности:
- «Нативное» шифрование как для файловых систем, так и для разделов. По умолчанию используется алгоритм aes-256-ccm. Ключи для датасета управляются с помощью команды «zfs load-key» и связанных подкоманд.
- Шифрование при zfs send/receive. Позволяет хранить бэкапы на недоверенных сервисах без возможности компрометации.
- Удаление устройства из pool через команду «zpool remove». Все данные копируются в фоновом режиме на оставшиеся устройства верхнего уровня, и ёмкость пула соответственно уменьшается.
- Подкоманда «zpool checkpoint» позволяет сохранить всё состояние пула и при желании вернуться обратно в это точное состояние. Это можно рассматривать как расширенный snapshot пула. Это полезно при выполнении сложных административных действий, которые в противном случае необратимы (например, включение новой функции, уничтожение набора данных и так далее)
- TRIM для устройств пула. Позволяет более эффективно использовать твёрдотельные накопители и предотвращать снижение их производительности и/или времени их жизни. Можно производить trim как отдельной командой «zpool trim», так и включить аналог опции discard - новое свойство пула «autotrim»
- Инициализация пула. Подкоманда «zpool initialize» записывает свой патерн во всё нераспределённое пространство. Это устраняет первое снижение производительности доступа, которое может существовать в некоторых виртуализированных хранилищах (например, VMware VMDK).
- Поддержка аккаунтинга проектов и квот. Эта функция добавляет учёт использования проекта и квоты к существующим функциям учёта пространства и квот. Квоты проекта добавляют дополнительное измерение к традиционным квотам пользователей/групп. Подкоманды «zfs project» и «zfs projectspace» были добавлены для управления проектами, установки лимитов квот и отчётов об использовании.
- Программы каналов. Подкоманда «zpool program» позволяет использовать скрипты на LUA для выполнения административных действий. Скрипты запускаются в «песочнице» с лимитами времени и памяти.
- Pyzfs. Новая python-библиотека для обеспечения стабильного интерфейса для программного администрирования ZFS. Эта обёртка обеспечивает взаимно-однозначное (one-to-one) сопоставление для функций API libzfs_core, но сигнатуры и типы более естественны для Python-диалекта.
- Совместимость с Python3. Утилиты «arcstat», «arcsummary» и «dbufstat» обновлены для совместимости с Python3
- Direct IO. Добавлена поддержка использования прямого вывода (O_DIRECT).
Также ускорены подкоманды scrub/resilver/list/get, добавлена возможность вывести метаданные на отдельное устройство (например, высокопроизводительный SSD малого объёма), увеличена производительность ZIL за счёт кэширования и оптимизации, добавлена поддержка аппаратного ускорения SHA256-чексумм и AES-шифрования используя Intel QAT (Quick Assist Technology).
Поддерживаемые ядра Linux: 2.6.32 - 5.1 (на ядрах 5.0 и выше пока не поддерживается SIMD-ускорение)
Полный список изменений
Значения параметров модулей по-умолчанию выбраны, чтобы обеспечить оптимальную нагрузку для большинства рабочих нагрузок и конфигураций. Для полного списка опций - man 5 zfs-module-parameters
>>> Подробности