Тъкмо наскоро излезе новата стабилна версия на ZFSonLinux, проект, който сега е централният в света на разработката на OpenZFS. Сбогом, OpenSolaris, здравей, опустошителен свет на Linux, несъвместим с GPL-CDDL.

Под катом преглед на най-интересните неща (как иначе, 2200 комитове!), а на десерт — малко интриги.
Новите функции
Разбира се, най-очакваната — нативно шифриране. Сега можете да шифровате само нужните датасети с вграденото в ZFS шифриране и (според мен — основното) — можете да изпращате шифровани данни чрез zfs send и БЕЗ декриптиране проверявате целостта на данните чрез вградените инструменти, всички възможности за запазване на целостта на данните в ZFS ще са при вас!
Следваща по важност е отдавна очакваната TRIM. Да, той много дълго се стигаше до продукция. Отчасти защото за файловите системи с CoW проблемът с износването на SSD не е толкова критичен. Но сега всички сме спокойни — zpool trim ще спаси нашите нежни флашки.
Сега можете да изтривате случайно добавените vdev масиви от пула (но само, ако са sparse или mirror). Полезна добавка.
Следва в нашия хит-парад — pool checkpoints. Накратко — snapshot-и за цялостното състояние на пула, НО предоставящи възможност за възстановяване на промени не само в данните, но и в активираните функции на пула и промените в структурата. Още една възможност за сигурност.
Инициализация на пула — запълване на долното хранилище с нули. Полезно за работа в среди с дискове с thin provisioned за явно посочване на пространство и избягване на неочаквани спадове в производителността по-късно.
Счетоводство на проекти и квота — в съществуващия механизъм за квоти сега е възможно да се използва разделение на проекти.
Канални програми — възможност за извършване на административни задачи атомарно с помощта на Lua скриптове. Има ограничения за времето на изпълнение и паметта. Ако се занимавате с автоматизация — това е за вас.
Direct IO — за простота осигуриха работа на Direct IO, вътрешно не се е променило нищо (просто повикванията минават максимално мимо кеша), затова сега желаещото да работи в този режим софтуер не би трябвало да се оплаква.
Проект Pyzfs включен в основния репозиторий и поет под крилото на проекта ZFSonLinux. Сега има повече средства за управление от Python (и ще бъде по-спокойно за поддръжката на модула). Освен това много Python скриптове са адаптирани за python3.
А сега нещо вкусно — производителност
Сега при операциите scrub и resilver първо се четат мета данни, и едва след това в максимално последователно въздействие — данните. Така възстановяването на масива и проверката на целостта минават с максимална скорост.
Класове за алокация — при vdev масиви се появи тип носители, сега може да се изнася съхранението на мета данни/таблици за дедупликация (DDT)/блокове данни по-малко от Х КБ на отделен vdev масив от по-производителните дискове. Още скорости богу скорости! (а по същество — тази възможност ще бъде много полезна в предстоящия ).
Много административни команди сега работят по-бързо благодарение на точковото кеширане на мета данните (например, zfs list, zfs get).
Процесът на алокация на данни е паралелизиран, сега за всеки раздел на свободно пространство (metaslab) се създават няколко алокатора. С NVME, разбира се, всичко не ще се изцеди максимално, но ще стане по-добре.
Отложеното възстановяване на целостта на масива ще позволи да не натоварва масива с едновременно преизграждане на няколко диска, а ще го прави последователно. Така ще се намали както влиянието върху производителността, така и времето за преизграждане.
При импортиране на пула с много обеми е увеличена скоростта на тяхната регистрация в системата.
Също така QAT сега позволява да бъде изнесено изчислението на криптиране и контролни суми.
А на десерт — интриги
Въпреки че ZFSonLinux бързо добавя поддръжка за нови ядра на Linux (в момента са поддръжани версии 2.6.32 — 5.1*), поддържащите ядра проявяват явен интерес в помощ на външни модули (" — григ k-h"). Така, изискваните за ефективна работа системни извиквания в клона 5.0 . В ядрото с този патч производителността на ZFS ще бъде значително по-лоша. Спасението е, че тази функционалност може да се реализира от страна на модула, което вероятно и ще бъде направено. А засега можете да вземете пример с NixOS — те 🙂
Също така проектът получи Code of Conduct, което предизвика вълна от холивари. Но ние устояхме 🙂
На всички работни бекъпи и стабилни релизи!
Полезни връзки:
—
—
Източник: habr.com
