Po téměř dvou letech vývoje je vydán ZFS pro Linux 0.8.0, což je implementace souborového systému ZFS navržená jako modul pro linuxové jádro.
V rámci ZFS na Linuxu byla připravena implementace komponent ZFS které souvisejí jak s operací systému souborů, tak s operací správce svazků. Zejména jsou implementovány následující komponenty: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) a ZPL (ZFS POSIX Layer).
Navíc, Projekt poskytl možnost použít ZFS jako backend pro souborový systém clusteru Luster.
Základ projektu je založen na původním kódu ZFS importovaném z projektu OpenSolaris a vylepšeném o vylepšení a opravy od komunity Illumos. Projekt je vyvíjen za účasti zaměstnanců národní laboratoře Livermore na základě smlouvy s ministerstvem energetiky USA.
Kód je distribuován na základě bezplatné licence CDDL, což je nekompatibilní s GPLv2, což neumožňuje integraci ZFS na Linuxu do hlavního linuxového jádra, protože kombinace kódů pod licencemi GPLv2 a CDDL je nepřijatelná.
Aby se zabránilo této nekompatibilitě licencí, bylo rozhodnuto distribuovat produkt zcela pod licencí CDDL jako samostatný zaváděcí modul, dodávaný odděleně od jádra. Stabilita kódové základny ZFS v systému Linux se odhaduje na srovnatelnou s jinými souborovými systémy pro Linux.
Modul byl testován s linuxovými jádry od 2.6.32 do 5.1. Připravené instalační balíčky budou brzy připraveny pro hlavní distribuce Linuxu včetně Debian, Ubuntu, Fedora, RHEL / CentOS.
Hlavní novinky
V rámci změn přidaných v této verzi najdete vestavěná podpora pro šifrování dat uložených na úrovni souborového systému a oddílu. Výchozí šifrovací algoritmus je aes-256-ccm. Pro načtení šifrovacích klíčů je navržen příkaz „zfs load-key“.
Rovněž schopnost přenášet šifrovaná data je implementována provedením příkazů „Zfs send“ a „zfs receive“.
Je-li zadána možnost »-w«, data již zašifrovaná ve skupině se přenesou do jiné skupiny tak, jak je, bez mezilehlého dešifrování, které vám umožní použít tento režim k zálohování nedůvěryhodných systémů (v případě, že příjemce souhlasí, bez klíče nebude útočník mít přístup k datům).
také byla přidána podpora pro operace přiřazení paralelních bloků prostřednictvím provádění samostatných „alokačních“ procesů pro každou sadu metaslabs.
V konvenčních systémech došlo ke zvýšení výkonu o 5 až 10%, ale u velkých (8,128 24 GB SSD, 256 NUMA jádra, 25 GB RAM) může nárůst operací přidělování bloků dosáhnout XNUMX%.
Další novinkou, kterou je třeba zdůraznit, je schopnost vytvářet skripty Lua pro automatizaci různých úloh pomocí ZFS. Skripty se spouštějí ve speciálních karanténách pomocí příkazu „zpool program“.
S tím také přišla podpora účetnictví a kvót na úrovni projektu, které doplňovaly kvóty dříve dostupné na úrovni uživatelů a skupin.
V podstatě jsou projekty samostatným objektovým prostorem spojeným se samostatným identifikátorem (ID projektu).
Nakonec jsou uvedeny další změny, které představují optimalizace výkonu:
- Příkazy scrub a resilver jsou zrychleny díky rozdělení na dvě fáze (samostatná fáze je přiřazena ke skenování metadat a určení umístění bloků s daty na disku, což umožňuje další ověření postupným čtením data).
- Podpora tříd alokace dat (alokačních tříd), které vám umožňují zahrnout do fondu relativně malé disky SSD a použít je k ukládání pouze určitých typů často používaných bloků, jako jsou metadata, data DDT a malé bloky se soubory.
- Výkon administračních příkazů, jako je „seznam zfs“ a „zfs get“, byl vylepšen ukládáním metadat vyžadovaných pro jejich práci do mezipaměti.