ZFSonLinux 0.8: функции, стабилизация, интриги. И, конечно же, trim

Только что был выпущен новый стабильный релиз ZFSonLinux, проекта, который теперь является центральным в мире разработки OpenZFS. Прощай, OpenSolaris, здравствуй жестокий мир Linux с несовместимыми GPL-CDDL лицензиями.

ZFSonLinux 0.8: функции, стабилизация, интриги. И, конечно же, trim
Под катом обзор самых интересных моментов (как и ожидалось, 2200 коммитов!), а на десерт — немного загадок.

Новые функции

Конечно, самая ожидаемая — родное шифрование. Теперь можно шифровать только нужные датасеты с помощью встроенного в ZFS шифрования, и (по моему мнению — главное) — вы можете передавать зашифрованные данные через zfs send и БЕЗ расшифровки проверять целостность данных с помощью встроенных средств, все возможности по сохранению целостности данных ZFS будут при вас!

Далее по важности стоит отметить давно ожидаемый TRIM. Да, он очень долго пробивался до продакшена. Отчасти потому, что для CoW файловых систем проблема износа SSD не так критична. Но теперь мы все в спокойствии — zpool trim спасёт наши нежные флешки.

Теперь возможно удалять случайно добавленные vdev массивы из пула (но только если это sparse или mirror). Полезная мелочь.

Далее в нашем хит-параде — контрольные точки пула. Кратко — снапшоты для всего состояния пула, НО позволяющие откатить изменения не только данных, но и включённых на пуле функций и изменений в структуре. Ещё одна возможность для безопасной работы.

Инициализация пула — заполнение нижележащего хранилища нулями. Полезно для работы в средах с дисками thin provisioned для явного выделения пространства и для избежания неожиданных спадов производительности в будущем.

Учет проектов и квоты — в уже существующем механизме квот теперь возможно использование разделения на проекты.

Канальные программы — возможность выполнять административные задачи атомарно с помощью Lua скриптов. Есть ограничения по времени выполнения и памяти. Если вы заняты автоматизацией — это для вас.

Прямой ввод/вывод — для простоты добавили работу с прямым вводом/выводом, внутри ничего не изменилось (просто вызовы идут мимо кэша), однако теперь желающие работать в этом режиме программные обеспечения не будут возмущаться.

Проект Pyzfs включён в основной репозиторий и взят под крыло проекта ZFSonLinux. Теперь доступно больше средств для управления из Python (и будет спокойнее за поддержку модуля). Также многие python скрипты адаптированы под Python 3.

А сега вкусното — производителността

Сега при scrub и resilver операции първо се четат метаданните, а след това в максимално последователно видео — данните. По този начин възстановяването на масива и проверката на целостта преминават с максимална скорост.

Класове на алокация — при vdev масиви се появи тип носители, сега можем да изнесем съхранението на метаданни/таблици за дедупликация (DDT)/блокове данни по-малко от Х Кбайта на отделен vdev масив от по-производителни дискове. Повече скорост на бога на скоростта! (а по същество — тази възможност ще бъде много полезна в предстоящото DRAID).

Много административни команди сега работят по-бързо заради точковото кеширане на метаданни (например, zfs list, zfs get).

Процесът на алокация на данни е паралелизиран, сега за всеки раздел на свободно пространство (metaslab) се създават няколко алокатора. С NVMe, разбира се, няма да се извлече всичко, но ще стане по-добре.

Отложеното възстановяване на целостта на масива ще позволи да не натоварва масива с едновременното преразпределение на няколко диска, а ще го прави последователно. По този начин ще се намали едновременното влияние върху производителността и времето за преразпределение.

При импортиране на пула с голямо количество volumes бързината за регистрация им в системата е увеличена.

Също QAT сега позволява да се изнесе изчислението на шифроването и контролни суми.

Плюс много малки промени (все пак 2000+ коммита в релиза!).

И за десерт — интригите

Въпреки че ZFSonLinux бързо добавя поддръжка за нови ядра на Linux (в момента се поддържат версии 2.6.32 — 5.1*), поддръжниците на ядрото проявяват явна незаинтересованост в помощ на външни модули (…не ни интересува изобщо
външни ядрови модули…
— грег к-х»). Така, необходимите за ефективната работа обращения на ядрото в клон 5.0 бяха променени на GPL-only . В ядрото с този патч производителността на ZFS ще бъде значително по-ниска. Спасението е, че тази функционалност може да бъде реализирана на страната на модула, което вероятно и ще бъде направено. А засега можете да вземете пример от NixOS — те просто отмениха патча в ядрото 🙂

Също така, проектът също получи Кодекс на поведение, което предизвика вълна от спорове. Но ние устояхме 🙂

На всички работещи бекъпи и стабилни релизи!

Полезни връзки:
— релиз на Github
— моята въводна в ZFS

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster