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). Полезна добавка.

Следва в нашия хит-парад — pool checkpoints. Накратко — snapshot-и за цялостното състояние на пула, НО предоставящи възможност за възстановяване на промени не само в данните, но и в активираните функции на пула и промените в структурата. Още една възможност за сигурност.

Инициализация на пула — запълване на долното хранилище с нули. Полезно за работа в среди с дискове с thin provisioned за явно посочване на пространство и избягване на неочаквани спадове в производителността по-късно.

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

Канални програми — възможност за извършване на административни задачи атомарно с помощта на Lua скриптове. Има ограничения за времето на изпълнение и паметта. Ако се занимавате с автоматизация — това е за вас.

Direct IO — за простота осигуриха работа на Direct IO, вътрешно не се е променило нищо (просто повикванията минават максимално мимо кеша), затова сега желаещото да работи в този режим софтуер не би трябвало да се оплаква.

Проект Pyzfs включен в основния репозиторий и поет под крилото на проекта ZFSonLinux. Сега има повече средства за управление от Python (и ще бъде по-спокойно за поддръжката на модула). Освен това много Python скриптове са адаптирани за python3.

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

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

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

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

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

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

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

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

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

А на десерт — интриги

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

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

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

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

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

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