Po 11 mesiacoch vývoja bol vydaný projekt OpenZFS 2.4.0, ktorý vyvíja implementáciu súborového systému ZFS pre Linux a FreeBSD. Projekt sa stal známym ako „ZFS na Linux„a predtým sa obmedzoval na vývoj modulu pre jadro“ Linux, ale po zlúčení s kódom z FreeBSD bola rozpoznaná ako hlavná implementácia OpenZFS a premenovaná.
Fungovanie OpenZFS bolo overené pomocou jadier Linux Verzie 4.18 až 6.18 a všetky vetvy FreeBSD počnúc verziou 13.3. Kód je distribuovaný pod bezplatnou licenciou CDDL. OpenZFS sa už používa vo FreeBSD a je súčasťou distribúcií. Debian, Ubuntu, Gentoo, NixOS a ALT LinuxBalíky s novou verziou budú čoskoro pripravené pre hlavné distribúcie. Linuxpočítajúc do toho Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS poskytuje implementáciu komponentov ZFS súvisiacich so súborovým systémom aj so správcom zväzkov. Implementované komponenty: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) a ZPL (ZFS POSIX Layer). Projekt tiež umožňuje použiť ZFS ako backend pre klastrovaný súborový systém Luster. Práca OpenZFS je založená na pôvodnom kóde ZFS, importovanom z projektu OpenSolaris a rozšírenom o vylepšenia a opravy od komunity Illumos. Projekt sa vyvíja za účasti zamestnancov Národného laboratória v Livermore na základe zmluvy s Ministerstvom energetiky USA.
Kód je distribuovaný pod bezplatnou licenciou CDDL, ktorá je nekompatibilná s GPLv2, čo bráni integrácii OpenZFS do hlavného jadra. Linux, keďže miešanie kódu pod licenciami GPLv2 a CDDL je neprijateľné. Aby sa obišla nekompatibilita licencií, bolo rozhodnuté distribuovať produkt pre Linux Úplne licencované pod CDDL ako samostatne stiahnuteľný modul, distribuovaný oddelene od jadra. Stabilita kódovej základne OpenZFS sa považuje za porovnateľnú s inými súborovými systémami. Linux.
Hlavné zmeny:
- Bola implementovaná možnosť nastavenia predvolených kvót pre používateľov, skupiny a projekty. V predchádzajúcich verziách bolo možné kvóty nastaviť iba individuálne pre každé ID používateľa. Nová verzia teraz umožňuje nastaviť predvolenú hodnotu, ktorá sa použije, ak pre konkrétneho používateľa nebola nastavená žiadna kvóta.
- Pridaná možnosť prepnúť sa z režimu priameho I/O (O_DIRECT, Direct I/O) na ľahký mechanizmus I/O bez vyrovnávacej pamäte pre požiadavky, ktoré nie sú zarovnané s hranicou pamäťovej stránky a nie sú podporované v režime Direct I/O.
- Navrhuje sa nový jednotný algoritmus na obmedzenie rýchlosti operácií zápisu a umiestnenia blokov, ktorý znižuje fragmentáciu vdev (virtuálne zariadenie) agregáciou viacerých operácií zápisu a použitím väčších súvislých voľných oblastí pre ne namiesto umiestnenia výsledkov jednotlivých operácií zápisu do malých voľných oblastí.
- Výkon šifrovania sa zlepšil použitím inštrukcií AVX2 v implementácii algoritmu AES-GCM. Testy preukázali zrýchlenie až o 80 %.
- Bloky ZIL (ZFS Intent Log) je teraz možné umiestniť nielen na bežné vdev alebo na samostatné zariadenie SLOG, ale aj na dedikované vdev. Ak je bežný vdev priradený k pevnému disku a dedikovaný vdev k SSD, táto zmena zabraňuje situáciám, kedy sa dáta zapisujú na SSD a priradené bloky ZIL sa zapisujú na pevný disk, čo spôsobuje zbytočnú latenciu.
- Vlastnosť special_small_blocks je teraz možné nastaviť pre oddiely (ZVOL) a nie len pre súborové systémy, čo umožňuje alokovať malé bloky na samostatnom vyhradenom virtuálnom zariadení (vdev), napríklad na SSD.
- Pridaný režim prepisovania „zfs rewrite -P“, ktorý ponecháva logický čas vytvorenia nezmenený vždy, keď je to možné, čo umožňuje rozlíšiť bloky, ktoré boli jednoducho presunuté do poolu, od blokov, ktoré boli skutočne upravené používateľom.
- Príkazy „zpool trim“, „zpool scrub“ a „zpool initialize“ majú teraz parameter „-a“ (--all), ktorý umožňuje spustiť tieto príkazy naraz pre všetky importované fondy.
- Pridaný príkaz „zpool scrub -S -E“ na vykonanie kontroly kontrolného súčtu údajov v zadanom časovom intervale.
- Pridané nové optimalizácie do procesu deduplikácie.
Zdroj: opennet.ru
