Vydanie ZFS na Linuxe 0.8.0, implementácia ZFS pre jadro Linuxu

Po takmer dvoch rokoch vývoja predložené uvoľnenie ZFS v systéme Linux 0.8.0, implementácia súborového systému ZFS zabalená ako modul pre jadro Linuxu. Modul bol testovaný s linuxovými jadrami od 2.6.32 do 5.1. Pripravené inštalačné balíčky už čoskoro bude pripravený pre hlavné distribúcie Linuxu vrátane Debian, Ubuntu, Fedora, RHEL/CentOS. Modul ZFS na Linuxe je už zahrnutý v distribúciách Debian, Ubuntu, Gentoo, Sabayon Linux a ALT Linux.

V rámci ZFS na Linuxe je pripravená implementácia komponentov ZFS súvisiacich ako s fungovaním súborového systému, tak aj s fungovaním volume managera. Konkrétne sú implementované tieto komponenty: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) a ZPL (ZFS POSIX Layer). Okrem toho projekt poskytuje možnosť použiť ZFS ako backend pre klastrový súborový systém Luster. Práca projektu je založená na pôvodnom kóde ZFS importovanom z projektu OpenSolaris a vylepšenom 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 neumožňuje integráciu ZFS na Linuxe do hlavnej vetvy linuxového jadra, keďže miešanie kódu pod licenciami GPLv2 a CDDL nie je povolené. Na obídenie tejto licenčnej nekompatibility bolo rozhodnuté distribuovať celý produkt pod licenciou CDDL ako samostatne načítateľný modul, ktorý je dodávaný oddelene od jadra. Stabilita ZFS na kódovej základni Linuxu je hodnotená ako porovnateľná s inými súborovými systémami pre Linux.

Hlavné zmeny:

  • Pridaná vstavaná podpora pre šifrovanie uložených dát na úrovni súborového systému a partícií. Predvolený šifrovací algoritmus je aes-256-ccm. Príkaz "zfs load-key" bol navrhnutý na načítanie šifrovacích kľúčov;
  • Implementovaná schopnosť prenášať zašifrované dáta pri vykonávaní príkazov 'zfs send' a 'zfs receiver'. Pri zadaní možnosti „-w“ sa údaje už zašifrované v oblasti prenesú do inej oblasti tak, ako sú, bez prechodného dešifrovania. Pri takomto kopírovaní ostávajú dáta chránené kľúčom odosielateľa, čo umožňuje využiť tento režim na zálohovanie do nedôveryhodných systémov (v prípade kompromitácie príjemcu sa útočník bez kľúča k dátam nedostane);
  • Pridaná podpora pre odstraňovanie primárnych jednotiek z úložnej oblasti, pripojených samostatne aj ako súčasť zrkadla. Odstránenie sa vykoná príkazom "zpool remove". Proces vymazania skopíruje údaje z vylúčenej jednotky na zostávajúce primárne jednotky v oblasti;
  • Pridaný príkaz "zpool checkpoint" na uloženie aktuálneho stavu fondu s možnosťou vrátiť späť ďalšie zmeny do uloženého bodu v čase (vytvorí sa snímka celého fondu). Táto funkcia môže byť užitočná v procese vykonávania potenciálne nebezpečnej komplexnej administratívnej práce, ktorá za normálnych podmienok vedie k nezvratným zmenám (napríklad aktivácia príznakov pre novú funkcionalitu ZFS alebo vymazanie údajov);
  • Bol pridaný príkaz "zpool trim", ktorý informuje jednotky používané v oblasti o sektoroch, ktoré sa už nepoužívajú. Použitie operácie TRIM umožňuje zvýšiť efektivitu SSD diskov a zabrániť degradácii ich výkonu. Bola navrhnutá nová vlastnosť "autotrim", ktorá umožňuje nepretržitý proces prenosu príkazov TRIM na pozadí;
  • Pridaný príkaz "zpool initialize" na inicializáciu všetkého neprideleného miesta na disku, čo umožňuje, aby bol okamžite pripravený na použitie, bez zníženia výkonu pri prvom prístupe (napríklad pri hosťovaní virtualizovaných úložísk, ako je VMware VMDK);
  • Pridaná podpora pre účtovníctvo a kvóty na úrovni projektu, okrem predtým dostupných kvót na úrovni používateľov a skupín. Projekty sú v podstate samostatným priestorom objektov spojených so samostatným identifikátorom (ID projektu). Väzba je definovaná pomocou operácie 'chattr -p' alebo prostredníctvom dedičnosti atribútov. Pre riadenie projektov sú prezentované príkazy „zfs project“ a „zfs projectspace“, ktoré umožňujú spravovať vytváranie projektov a nastavovať pre ne limity miesta na disku;
  • Pridaná možnosť vytvárať Lua skripty na automatizáciu rôznych prác so ZFS. Skripty sa spúšťajú v špeciálnych izolovaných prostrediach pomocou príkazu "zpool program";
  • Implementovaná nová knižnica pyzfs, ktorý poskytuje stabilné API na správu ZFS z aplikácií Python. Knižnica je obal okolo libzfs_core a poskytuje identickú sadu funkcií, ale používa bližšie typy Pythonu;
  • Pomocné programy arcstat, arcsummary a dbufstat boli kompatibilné s Pythonom 3. Pomocné programy arcstat.py, arc_summary.py a dbufstat.py boli premenované na verzie bez prípony ".py";
  • Pridaná podpora pre rozhranie jadra Linux Direct IO (O_DIRECT), ktoré umožňuje prístup k údajom bez ukladania do vyrovnávacej pamäte a obchádzania vyrovnávacej pamäte;
  • Zavedené optimalizácie výkonu:
    • Práca príkazov „scrub“ a „resilver“ sa zrýchlila vďaka rozdeleniu na dve fázy (samostatná fáza bola vyčlenená na skenovanie metadát a určenie polohy blokov s údajmi na disku, čo umožňuje ďalšie overovanie pomocou sekvenčných údajov čítanie);
    • Pridaná podpora pre alokačné triedy,
      umožnenie združovania a používania relatívne malých SSD na ukladanie len určitých typov bežne používaných blokov, ako sú metadáta, údaje DDT a bloky malých súborov;

    • Vylepšený výkon admin príkazov ako napr
      "zoznam zfs" a "zfs get", ukladaním metadát potrebných na ich prevádzku do vyrovnávacej pamäte;

    • Pridaná podpora pre paralelizáciu operácií prideľovania blokov spustením samostatných procesov prideľovania pre každú skupinu metaslabov. Na konvenčných systémoch je nárast výkonu o 5-10%, ale na veľkých (8 128 GB SSD, 24 jadier NUMA, 256 GB RAM) môže nárast operácií prideľovania blokov dosiahnuť 25%;
    • Pridaná možnosť oneskoreného vykonania príkazu „resilver“ (prebudovanie distribúcie dát s prihliadnutím na zmeny v konfigurácii pohonov) – ak predchádzajúci ešte nie je dokončený pri spustení novej operácie, potom nový handler začne vykonávať až po predchádzajúci skončil;
    • Do ZIL (ZFS Intent Log) boli pridané optimalizácie, ktoré umožňujú vytváranie a spracovanie blokov v prítomnosti blokov, ktoré úložisko stále spracováva;
    • Skrátený čas registrácie pre skupiny (zvol) v systéme. Keď fond obsahuje veľký počet oddielov, sú teraz dostupné ihneď po vykonaní "importu zpool";
    • Pridaná podpora pre hardvérovo zrýchlený výpočet hash SHA256 a operácie šifrovania AES-GSM pomocou čipov Intel QAT (Quick Assist Technology). Pridaná podpora hardvérovej akcelerácie čipsetu Intel C62x a CPU Atom C3000.

Zdroj: opennet.ru

Pridať komentár