Rilaxx ta 'ZFS fuq Linux 0.8.0, implimentazzjoni ta' ZFS għall-kernel Linux

Wara kważi sentejn ta 'żvilupp ippreżentata rilaxx ZFS fuq Linux 0.8.0, implimentazzjoni tas-sistema tal-fajls ZFS, iddisinjata bħala modulu għall-kernel tal-Linux. Il-modulu ġie ttestjat bil-kernels Linux minn 2.6.32 sa 5.1. Pakketti ta' installazzjoni lesti dalwaqt se jkun ippreparat għal distribuzzjonijiet ewlenin tal-Linux inklużi Debian, Ubuntu, Fedora, RHEL/CentOS. Il-modulu ZFS fuq Linux huwa diġà inkluż fid-distribuzzjonijiet Debian, Ubuntu, Gentoo, Sabayon Linux u ALT Linux.

Bħala parti minn ZFS fuq Linux, ġiet ippreparata l-implimentazzjoni tal-komponenti ZFS relatati kemm mat-tħaddim tas-sistema tal-fajls kif ukoll mal-funzjonament tal-maniġer tal-volum. B'mod partikolari, il-komponenti li ġejjin huma implimentati: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) u ZPL (ZFS POSIX Layer). Barra minn hekk, il-proġett jipprovdi l-abbiltà li tuża ZFS bħala backend għas-sistema ta 'fajls ta' cluster Luster. Ix-xogħol tal-proġett huwa bbażat fuq il-kodiċi ZFS oriġinali, importat mill-proġett OpenSolaris u mwessa 'b'titjib u tiswija mill-komunità Illumos. Il-proġett qed jiġi żviluppat bil-parteċipazzjoni tal-impjegati tal-Livermore National Laboratory taħt kuntratt mad-Dipartiment tal-Enerġija tal-Istati Uniti.

Il-kodiċi huwa mqassam taħt liċenzja CDDL bla ħlas, li hija inkompatibbli mal-GPLv2, li ma tippermettix li ZFS fuq Linux jiġi integrat fil-fergħa ewlenija tal-kernel tal-Linux, peress li t-taħlit tal-kodiċi taħt il-liċenzji GPLv2 u CDDL huwa inaċċettabbli. Biex tiġi evitata din l-inkompatibbiltà tal-liċenzjar, ġie deċiż li jitqassam il-prodott kollu taħt il-liċenzja CDDL bħala modulu li jista 'jitniżżel separatament, li huwa fornut separatament mill-qalba. L-istabbiltà tal-kodiċi ZFS fuq Linux hija kklassifikata bħala komparabbli ma 'sistemi ta' fajls oħra għal Linux.

Bidliet ewlenin:

  • Miżjud appoġġ integrat għall-encryption ta 'data maħżuna fis-sistema tal-fajls u l-livelli ta' partizzjoni. L-algoritmu ta' kriptaġġ default huwa aes-256-ccm. Biex jgħabbi ċwievet ta 'encryption, huwa propost il-kmand "zfs load-key";
  • Ġiet implimentata l-abbiltà li tittrasmetti data kriptata meta tesegwixxi l-kmandi "zfs send" u "zfs receive". Meta tispeċifika l-għażla "-w", id-dejta diġà kkodifikata fil-pool tiġi trasferita għal ġabra oħra kif inhi, mingħajr deċifrar intermedju. Waqt tali ikkupjar, id-dejta tibqa’ protetta miċ-ċavetta tal-parti li tibgħat, li tippermetti li din il-modalità tintuża għal backup għal sistemi mhux affidabbli (jekk ir-riċevitur ikun kompromess, mingħajr iċ-ċavetta l-attakkant ma jkunx jista’ jaċċessa d-dejta);
  • Appoġġ miżjud għat-tneħħija ta' drives primarji minn pool ta' ħażna, konnessi jew individwalment jew bħala parti minn mera. It-tneħħija titwettaq bil-kmand "zpool remove". Matul il-proċess tat-tħassir, id-dejta mid-drive mneħħija tiġi kkupjata għad-drives primarji li jifdal fil-pool;
  • Żid il-kmand "zpool checkpoint" biex isalva l-istat attwali tal-pool bil-kapaċità li jreġġa' lura aktar bidliet fil-punt ffrankat fil-ħin (tinħoloq stampa tal-pool kollu). Il-karatteristika ppreżentata tista 'tkun utli fil-proċess tat-twettiq ta' xogħol amministrattiv kumpless potenzjalment perikoluż li normalment iwassal għal bidliet irriversibbli (pereżempju, l-attivazzjoni tal-bnadar għal funzjonalità ZFS ġdida jew l-ikklerjar tad-dejta);
  • Żid il-kmand "zpool trim" biex jinforma drives użati f'pool dwar setturi li m'għadhomx jintużaw. L-użu tal-operazzjoni TRIM jagħmilha possibbli li tiżdied l-effiċjenza tad-drajvs SSD u tiġi evitata d-degradazzjoni tal-prestazzjoni tagħhom. Biex ikun jista' jsir proċess ta' sfond kontinwu biex jgħaddu l-kmandi TRIM, ġiet proposta proprjetà ġdida "autotrim";
  • Żid il-kmand "zpool initialize" biex jinizjalizza l-ispazju kollu tad-diska mhux allokat, u jiżgura li jkun immedjatament lest għall-użu mingħajr ma jaffettwa l-prestazzjoni fuq l-ewwel aċċess (per eżempju, meta jospita ħażna virtwalizzata bħal VMware VMDK);
  • Appoġġ miżjud għall-kontabilità u l-kwoti fil-livell tal-proġett, li jikkumplimenta l-kwoti tal-utent u tal-grupp li kienu disponibbli qabel. Essenzjalment, il-proġetti huma spazju separat ta 'oġġetti assoċjati ma' identifikatur separat (ID tal-proġett). L-irbit huwa determinat permezz tal-operazzjoni 'chattr -p' jew permezz tal-wirt tal-attribut. Biex timmaniġġja proġetti, huma pprovduti l-kmandi "zfs project" u "zfs projectspace", li jippermettulek timmaniġġja l-ħolqien ta 'proġetti u tiffissa limiti ta' spazju tad-disk għalihom;
  • Żid il-ħila li toħloq skripts Lua biex awtomat diversi xogħol ma 'ZFS. L-iskripts huma mnedija f'ambjenti iżolati speċjali bl-użu tal-kmand "zpool program";
  • Librerija ġdida implimentata pyzfs, li jipprovdi API stabbli għall-amministrazzjoni ta 'ZFS minn applikazzjonijiet Python. Il-librerija hija wrapper fuq libzfs_core u tipprovdi sett identiku ta 'funzjonijiet, iżda tuża tipi eqreb ta' Python;
  • L-utilitajiet arcstat, arcsummary u dbufstat issa huma kompatibbli ma' Python 3. L-utilitajiet arcstat.py, arc_summary.py u dbufstat.py ngħataw isem ġdid għal verżjonijiet mingħajr l-estensjoni ".py";
  • Appoġġ miżjud għall-interface tal-kernel Linux Direct IO (O_DIRECT), li jippermettilek taċċessa dejta mingħajr buffering u tevita l-cache;
  • Ottimizzazzjonijiet tal-prestazzjoni ppreżentati:
    • Ix-xogħol tal-kmandi "scrub" u "resilver" ġie aċċellerat billi jinqasam f'żewġ fażijiet (hija allokata fażi separata għall-iskannjar tal-metadejta u d-determinazzjoni tal-post tal-blokki tad-dejta fuq id-diska, li tippermetti aktar verifika bl-użu ta 'qari sekwenzjali tad-dejta) ;
    • Appoġġ miżjud għall-klassijiet ta' Allokazzjoni,
      li tippermetti li drajvs SSD relattivament żgħar jiġu inklużi f'pool u jintużaw biex jaħżnu biss ċerti tipi ta 'blokki użati ta' spiss, bħal metadata, data DDT u blokki żgħar b'fajls;

    • Żieda fil-prestazzjoni tal-kmandi għall-amministrazzjoni, bħal
      “zfs list” u “zfs get”, minħabba l-caching tal-metadata meħtieġa għat-tħaddim tagħhom;

    • Appoġġ miżjud għall-parallelizzazzjoni tal-operazzjonijiet ta 'allokazzjoni ta' blokki billi tniedi proċessi separati ta '"allokatur" għal kull grupp ta' metaslab. Fuq sistemi regolari, hemm żieda fil-prestazzjoni ta '5-10%, iżda fuq dawk kbar (8 GB SSD, 128 core NUMA, 24 GB RAM), iż-żieda fl-operazzjonijiet ta' allokazzjoni ta 'blokki tista' tilħaq 256%;
    • Miżjud il-possibbiltà ta 'eżekuzzjoni mdewma tal-kmand "resilver" (bini mill-ġdid tad-distribuzzjoni tad-dejta b'kont meħud tal-bidliet fil-konfigurazzjoni tad-drajvs) - jekk, meta tibda operazzjoni ġdida, dik preċedenti tkun għadha ma tlestietx, allura jibda l-handler il-ġdid. eżekuzzjoni biss wara li tkun intemmet dik preċedenti;
    • Saru ottimizzazzjonijiet fir-reġistru ZIL (ZFS Intent Log) biex jippermettu l-ħolqien u l-ipproċessar ta 'blokki meta jkun hemm blokki li għadhom qed jiġu pproċessati mill-ħażna;
    • Il-ħin għar-reġistrazzjoni tal-ħitan (zvol) fis-sistema ġie mnaqqas. Meta pool ikun fih numru kbir ta 'diviżorji, issa huma disponibbli immedjatament wara li tesegwixxi "zpool import";
    • Appoġġ miżjud għall-aċċelerazzjoni tal-ħardwer tal-kalkoli tal-hash SHA256 u l-operazzjonijiet ta 'encryption AES-GSM bl-użu ta' ċipep li jappoġġjaw Intel QAT (Quick Assist Technology). Appoġġ miżjud għal għodod ta 'aċċelerazzjoni tal-ħardwer għaċ-chipset Intel C62x u Atom C3000 CPU.

Sors: opennet.ru

Żid kumment