Pas almost dy vitesh zhvillimi lëshimi , implementimi i sistemit të skedarëve ZFS, i paketuar si një modul për bërthamën Linux. Funksionimi i modulit është verifikuar me bërthama Linux nga 2.6.32 deri në 5.1. Paketat e gatshme për instalim do të jenë të disponueshme së shpejti për distribucione kryesore Linux, duke përfshirë Debian, Ubuntu, Fedora, RHEL/CentOS. Moduli ZFS në Linux tashmë është përfshirë në distribucionet Debian, Ubuntu, Gentoo, Sabayon Linux dhe ALT Linux.
Në kuadër të ZFS në Linux, është përgatitur implementimi i komponentëve ZFS, të lidhur me operimin e sistemit të skedarëve dhe funksionimin e menaxherit të volumeve. Në veçanti, janë implementuar komponentët: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) dhe ZPL (ZFS POSIX Layer). Përveç kësaj, projekti mundëson përdorimin e ZFS si backend për sistemin e skedarëve në grumbull Lustre. Kontributet e projektit janë të bazuara në kodin origjinal ZFS, të importuar nga projekti OpenSolaris dhe të zgjeruara me përmirësime dhe rregullime nga komuniteti Illumos. Projekti zhvillohet me pjesëmarrjen e punonjësve të Laboratorit Kombëtar Lawrence Livermore në kuadër të një kontrate me Departamentin e Energjisë të SHBA.
Kodi shpërndahet nën licencën e lirë CDDL, e cila nuk është në përputhje me GPLv2, çka nuk lejon integrimin e ZFS në Linux në degën kryesore të bërthamës Linux, pasi kombinimi i kodit nën licencat GPLv2 dhe CDDL është i papranueshëm. Për të shmangur këtë mosprëputhje licencuese, është vendosur që produkti të shpërndahet plotësisht nën licencën CDDL si një modul të shkarkueshëm ndaras nga bërthama. Stabiliteti i bazës së kodit ZFS në Linux vlerësohet si i krahasueshëm me sistemet e tjera të skedarëve për Linux.
Ndryshimet kryesore:
- ĂshtĂ« shtuar mbĂ«shtetje e integruar pĂ«r enkriptimin e tĂ« dhĂ«nave tĂ« ruajtura nĂ« nivelin e sistemit tĂ« skedarĂ«ve dhe ndarjeve. PĂ«r enkriptimin, algoritmi qĂ« pĂ«rdoret si parazgjedhje Ă«shtĂ« aes-256-ccm. PĂ«r ngarkimin e çelĂ«save tĂ« enkriptimit, Ă«shtĂ« propozuar komanda «zfs load-key»;
- ĂshtĂ« realizuar mundĂ«sia e transferimit tĂ« tĂ« dhĂ«nave tĂ« enkriptuara gjatĂ« ekzekutimit tĂ« komandave «zfs send» dhe «zfs receive». Kur Ă«shtĂ« treguar opsioni «-w», tĂ« dhĂ«nat e enkriptura nĂ« rezervuar transferohen nĂ« njĂ« rezervuar tjetĂ«r ashtu siç janĂ«, pa dekriptim ndĂ«rmjetĂ«s. GjatĂ« kĂ«tij transferimi, tĂ« dhĂ«nat mbeten tĂ« mbrojtura me çelĂ«sin e palĂ«s dĂ«rguese, qĂ« lejon pĂ«rdorimin e kĂ«tij skenari pĂ«r kopjimin nĂ« sisteme tĂ« pasigurta (nĂ« rast tĂ« kompromentimit tĂ« marrĂ«sit, pa çelĂ«sin, sulmuesi nuk mund tĂ« ketĂ« qasje nĂ« tĂ« dhĂ«na);
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r fshirjen e disqeve kryesorĂ« nga rezervuari i ruajtjes, qĂ« janĂ« lidhur si individĂ«, ashtu edhe si pjesĂ« e njĂ« pasqyre. Fshirja bĂ«het me komandĂ«n «zpool remove». GjatĂ« procesit tĂ« fshirjes, tĂ« dhĂ«nat nga disku qĂ« po pĂ«rjashtohet kopjohen nĂ« disqet kryesorĂ« qĂ« mbeten nĂ« rezervuar;
- ĂshtĂ« shtuar komanda «zpool checkpoint» pĂ«r ruajtjen e gjendjes aktuale tĂ« rezervuarit me mundĂ«sinĂ« e kthimit tĂ« ndryshimeve tĂ« mĂ«tejshme nĂ« momentin e ruajtur (krijohet njĂ« snapshot i gjithĂ« rezervuarit). Ky funksionalitet mund tĂ« jetĂ« i dobishĂ«m gjatĂ« ekzekutimit tĂ« punĂ«ve administrative potencialisht tĂ« rrezikshme, qĂ« normalisht çojnĂ« nĂ« ndryshime tĂ« pakthyeshme (p.sh., aktivizimi i flamujve pĂ«r funksionalitete tĂ« reja ZFS ose pastrimi i tĂ« dhĂ«nave);
- ĂshtĂ« shtuar komanda «zpool trim», e cila lejon njoftimin e disqeve tĂ« pĂ«rdorura nĂ« rezervuar pĂ«r sektorĂ«t qĂ« nuk janĂ« mĂ« tĂ« pĂ«rdorur. PĂ«rdorimi i operacionit TRIM rrit efikasitetin e SSD-ve dhe parandalon degradimin e performancĂ«s sĂ« tyre. PĂ«r tĂ« aktivizuar njĂ« proces tĂ« vazhdueshĂ«m tĂ« dĂ«rgimit tĂ« komandave TRIM Ă«shtĂ« propozuar njĂ« pronĂ« e re «autotrim»;
- ĂshtĂ« shtuar komanda «zpool initialize» pĂ«r inicializimin e gjithĂ« hapĂ«sirĂ«s sĂ« diskut tĂ« pa ndarĂ«, çka siguron gatishmĂ«rinĂ« e menjĂ«hershme pĂ«r pĂ«rdorim, pa ulur performancĂ«n gjatĂ« aksesit tĂ« parĂ« (p.sh., gjatĂ« vendosjes sĂ« hapĂ«sirave virtuale, si VMware VMDK);
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r akounting dhe kuota nĂ« nivel projekti, duke plotĂ«suar kuotat e mĂ«parshme nĂ« nivel pĂ«rdoruesi dhe grupi. NĂ« thelb, projektet janĂ« hapĂ«sira tĂ« veçanta objektesh, tĂ« lidhura me njĂ« identifikues tĂ« veçantĂ« (project ID). Lidhja pĂ«rcaktohet pĂ«rmes operacionit âchattr -pâ ose pĂ«rmes trashĂ«gimisĂ« sĂ« atributeve. PĂ«r menaxhimin e projekteve janĂ« paraqitur komandat «zfs project» dhe «zfs projectspace», qĂ« lejojnĂ« menaxhimin e krijimit tĂ« projekteve dhe caktimin e kufijve tĂ« hapĂ«sirĂ«s disk;
- ĂshtĂ« shtuar mundĂ«sia e krijimit tĂ« skripteve Lua pĂ«r automatizimin e punĂ«ve tĂ« ndryshme me ZFS. Skriptet ekzekutohen nĂ« ambiente tĂ« veçanta tĂ« izoluara me komandĂ«n «zpool program»;
- ĂshtĂ« implementuar njĂ« bibliotekĂ« e re , e cila ofron njĂ« API tĂ« qĂ«ndrueshĂ«m pĂ«r menaxhimin e ZFS nga aplikacionet nĂ« gjuhĂ«n Python. Biblioteka Ă«shtĂ« njĂ« ndihmĂ«se mbi libzfs_core dhe ofron njĂ« grup funksionesh identik, por pĂ«rdor tipe mĂ« tĂ« afĂ«rta pĂ«r Python;
- Sigurohet përputhshmëria e utilitarëve arcstat, arcsummary dhe dbufstat me Python 3. Utilitarët arcstat.py, arc_summary.py dhe dbufstat.py janë rinomuar në variante pa zgjerimin «.py»;
- Shtuar mbështetje për ndërfaqen e bërthamës së Linuxit Direct IO (O_DIRECT), e cila lejon qasje në të dhëna pa buferim dhe përmes caches;
- Sondazhet e optimizimit të performancës:
- Shtuar shpejtësinë e komandave «scrub» dhe «resilver» përmes ndarjes në dy faza (një fazë e veçantë për skanimin e metadave dhe përcaktimin e vendndodhjes së blloqeve të dhënave në disk, e cila lejon kontrollin e mëtejshëm duke përdorur leximin e rregullt të të dhënave);
- Shtuar mbështetje për klasat e alokimit të të dhënave (Allocation classes),
të cilat lejojnë përfshirjen e SSD-ve relativisht të vogla në rezervuar dhe përdorimin e tyre për ruajtjen e llojeve specifike të blloqeve të përdorura shpesh, si metadat, të dhënat DDT dhe blloqet e vogla me skedarë; - Shtuar performancën e komandave për menaxhimin, si
«zfs list» dhe «zfs get», përmes caching të metadave të nevojshme për funksionimin e tyre; - Shtuar mbështetje për paralelizimin e operacioneve të alokimit të blloqeve përmes ekzekutimit të proceseve të veçanta «allocator» për çdo grup metaslab. Në sistemet normale vihet re një rritje të performancës prej 5-10%, por në ato më të mëdhenj (8 128 GB SSD, 24 core NUMA, 256 GB RAM) rritja e operacioneve të alokimit të blloqeve mund të arrijë deri në 25%;
- Shtuar mundĂ«sinĂ« e kryerjes sĂ« komandĂ«s «resilver» (ri-ndarje e shpĂ«rndarjes sĂ« tĂ« dhĂ«nave duke marrĂ« parasysh ndryshimin e konfigurimit tĂ« magazinave) â nĂ«se, kur fillon njĂ« operacion tĂ« ri, nuk Ă«shtĂ« mbaruar akoma operacioni i mĂ«parshĂ«m, atĂ«herĂ« pĂ«rpunuesi i ri fillon vetĂ«m pas pĂ«rfundimit tĂ« punĂ«s sĂ« operacionit tĂ« mĂ«parshĂ«m;
- Në regjistrin ZIL (ZFS Intent Log) janë bërë optimizime që lejojnë krijimin dhe përpunimin e blloqeve edhe gjatë përpunimit të blloqeve të tjera nga magazina;
- Kohëzgjatja e regjistrimit të ndarjeve (zvol) në sistem është reduktuar. Kur rezervuari përmban një numër të madh ndarjesh, ato tani bëhen të disponueshme menjëherë pas ekzekutimit të «zpool import»;
- Shtuar mbështetje për përshpejtimin harduerik të llogaritjes së hash-eve SHA256 dhe operacioneve të enkriptimit AES-GSM duke përdorur çipa me mbështetje për teknologjinë Intel QAT (Quick Assist Technology). Shtuar mbështetje për mjete të përshpejtimit harduerik të çipsetit Intel C62x dhe CPU Atom C3000.
Burimi: opennet.ru
