Ukukhutshwa kwe-ZFS kwi-Linux 0.8.0, ukuphunyezwa kwe-ZFS ye-Linux kernel

Emva kweminyaka ephantse ibe mibini yophuhliso thaca ukukhulula I-ZFS kwi-Linux 0.8.0, ukuphunyezwa kwendlela yefayile ye ZFS, eyilwe njengemodyuli ye Linux kernel. Imodyuli ivavanyiwe kunye ne-Linux kernels ukusuka kwi-2.6.32 ukuya kwi-5.1. Iipakethe zokufakela ezilungile ziyeza kungekudala iya kulungiswa kunikezelo olukhulu lweLinux kubandakanya iDebian, Ubuntu, Fedora, RHEL/CentOS. I-ZFS kwimodyuli ye-Linux sele ibandakanyiwe kwi-Debian, Ubuntu, Gentoo, Sabayon Linux kunye nonikezelo lwe-ALT Linux.

Njengenxalenye ye-ZFS kwi-Linux, ukuphunyezwa kwamacandelo e-ZFS anxulumene nokusebenza kwenkqubo yefayile kunye nokusebenza komphathi wevolumu kulungiselelwe. Ngokukodwa, kuphunyezwe la macandelo alandelayo: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) kunye neZPL (ZFS POSIX Layer). Ukongeza, iprojekthi ibonelela ngokukwazi ukusebenzisa i-ZFS njenge-backend yenkqubo yefayile yeqela leLuster. Umsebenzi wale projekthi usekwe kwikhowudi ye-ZFS yokuqala, engeniswe kwiprojekthi ye-OpenSolaris kwaye yandiswe ngophuculo kunye nezilungiso ezivela kuluntu lwase-Illumos. Le projekthi iphuhliswa ngokuthatha inxaxheba kwabasebenzi beLebhu yeSizwe yaseLivermore phantsi kwesivumelwano neSebe lezaMandla laseMelika.

Ikhowudi isasazwa phantsi kwelayisensi ye-CDDL yamahhala, engahambelani ne-GPLv2, engavumeli i-ZFS kwi-Linux ukuba idibaniswe kwisebe eliphambili le-Linux kernel, ekubeni ikhowudi yokuxuba phantsi kwe-GPLv2 kunye neelayisensi ze-CDDL ayamkelekanga. Ukuthintela oku kungahambelani kwelayisenisi, kwagqitywa ekubeni kusasazwe yonke imveliso phantsi kwelayisensi yeCDDL njengemodyuli ekhutshelweyo eyahlukileyo, enikezelwa ngokwahlukileyo kwi-kernel. Uzinzo lwe-ZFS kwi-Linux codebase lulinganiswe ngokuthelekiswa nezinye iinkqubo zefayile zeLinux.

Utshintsho oluphambili:

  • Inkxaso eyongeziweyo eyakhelwe-ngaphakathi yokubethelwa kwedatha egciniweyo kwinkqubo yefayile kunye namanqanaba okwahlula. I-algorithm ye-encryption engagqibekanga yi-aes-256-ccm. Ukulayisha izitshixo ze-encryption, umyalelo othi "zfs load-key" uyacetywa;
  • Ukukwazi ukuhambisa idatha efihliweyo xa uqhuba "i-zfs thumela" kunye ne "zfs fumana" imiyalelo iphunyeziwe. Xa uchaza inketho ethi "-w", idatha esele ifihliwe echibini idluliselwa kwelinye idama njengoko injalo, ngaphandle kwe-decryption ephakathi. Ngethuba lokukopisha okunjalo, idatha ihlala ikhuselwe isitshixo seqela elithumelayo, elivumela le modi ukuba isetyenziswe kwi-backup kwiinkqubo ezingathembekiyo (ukuba ummkeli uphazamisekile, ngaphandle kwesitshixo umhlaseli akayi kukwazi ukufikelela kwidatha);
  • Inkxaso eyongeziweyo yokususa iidrives eziphambili ukusuka kwindawo yokugcina amanzi, exhunywe ngabanye okanye njengenxalenye yesibuko. Ukususwa kuqhutyelwa ngomyalelo "we-zpool ukususa". Ngethuba lenkqubo yokucima, idatha esuka kwi-drive esusiweyo ikopishwa kwiidrive eziphambili eziseleyo kwi-pool;
  • Yongeza umyalelo "we-zpool checkpoint" ukugcina imeko yangoku ye-pool kunye nokukwazi ukubuyisela umva utshintsho olongezelelweyo kwindawo egciniweyo ngexesha (i-snapshot ye-pool yonke iyadalwa). Uphawu olubonisiweyo lunokuba luncedo kwinkqubo yokwenza umsebenzi wolawulo onokuba yingozi ontsonkothileyo onokuthi ngesiqhelo ukhokelele kutshintsho olungajikwanga (umzekelo, ukuvula iiflegi zomsebenzi omtsha we-ZFS okanye ukususa idatha);
  • Yongeza umyalelo othi "zpool trim" ukwazisa iidrive ezisetyenziswa echibini malunga namacandelo angasasetyenziswayo. Ukusebenzisa umsebenzi we-TRIM kwenza kube lula ukwandisa ukusebenza kakuhle kwee-SSD drives kunye nokuthintela ukuthotywa kokusebenza kwazo. Ukuvumela inkqubo eqhubekayo yangasemva yokupasa imiyalelo ye-TRIM, ipropathi entsha “autotrim” iye yacetywa;
  • Yongeza "i-zpool yokuqalisa" umyalelo wokuqalisa yonke indawo yediski engabiwanga, ukuqinisekisa ukuba ilungele ukusetyenziswa ngaphandle kokuchaphazela ukusebenza ekufikeleleni kokuqala (umzekelo, xa ubamba ukugcinwa okubonakalayo okufana neVMware VMDK);
  • Inkxaso eyongeziweyo yobalo-mali lwenqanaba leprojekthi kunye nezabelo, ezincedisana nesabelo sabasebenzisi ebesikhona ngaphambili kunye nenqanaba leqela. Ngokusisiseko, iiprojekthi ziyindawo eyahlukileyo yezinto ezinxulumene nesazisi esahlukileyo (i-ID yeprojekthi). Isibophelelo simiselwa ngomsebenzi we-'chattr -p' okanye ngophawu lwelifa. Ukulawula iiprojekthi, "iprojekthi ye-zfs" kunye nemiyalelo "ye-zfs projectspace" inikezelwa, ekuvumela ukuba ulawule ukudalwa kweeprojekthi kwaye ubeke imida yendawo yediski kubo;
  • Yongezwe ukukwazi ukwenza izikripthi zeLua ukwenza ngokuzenzekelayo umsebenzi owahlukeneyo ngeZFS. Izikripthi ziqaliswa kwiindawo ezizodwa ezikhethekileyo kusetyenziswa "iprogram ye-zpool" umyalelo;
  • Ithala leencwadi elitsha liphunyeziwe iipzfs, ebonelela nge-API ezinzileyo yokulawula i-ZFS kwizicelo zePython. Ithala leencwadi lisisisongelo ngaphezulu kwe-libzfs_core kwaye libonelela ngeseti yemisebenzi efanayo, kodwa isebenzisa iindidi ezikufutshane nePython;
  • I-arcstat, i-arcsummary kunye nezinto eziluncedo ze-dbufstat ngoku ziyahambelana nePython 3. Izinto eziluncedo ze-arcstat.py, arc_summary.py kunye ne-dbufstat.py zithiywe ngokutsha kwiinguqulelo ngaphandle kolwandiso lwe-“.py”;
  • Inkxaso eyongeziweyo ye-Linux Direct IO (O_DIRECT) ujongano lwekernel, ekuvumela ukuba ufikelele kwidatha ngaphandle kokuphazamisa kwaye udlule i-cache;
  • Uphuculo lokusebenza lubonisiwe:
    • Umsebenzi wemiyalelo "ye-scrub" kunye ne "resilver" ikhawuleziswe ngokuyihlula kwizigaba ezibini (isigaba esahlukileyo sabelwe i-metadata yokuskena kunye nokumisela indawo yeebhloko zedatha kwidiski, evumela ukuqinisekiswa okuqhubekayo usebenzisa ukufundwa kwedatha ngokulandelelana) ;
    • Inkxaso eyongeziweyo kwiiklasi zoLwabiwo,
      ukuvumela ukuba ii-SSD ezincinci zifakwe echibini kwaye zisetyenziswe ukugcina kuphela iintlobo ezithile zeebhloko ezisetyenziswa rhoqo, njengemethadatha, idatha ye-DDT kunye neebhloko ezincinci ezineefayile;

    • Ukunyuka kokusebenza kwemiyalelo yolawulo, njenge
      "uluhlu lwe-zfs" kunye "ne-zfs fumana", ngenxa yokugcinwa kwedatha yedatha eyimfuneko ekusebenzeni kwazo;

    • Inkxaso eyongeziweyo yemisebenzi yokwabiwa kwebhloko ehambelanayo ngokusungula iinkqubo ezahlukeneyo "ze-allocator" kwiqela ngalinye le-metaslab. Kwiinkqubo eziqhelekileyo, kukho ukunyuka kwentsebenzo ye-5-10%, kodwa kwizikhulu (8 GB SSD, 128 core NUMA, 24 GB RAM), ukwanda kwemisebenzi yokwabiwa kwebhloko kunokufikelela kwi-256%;
    • Ukongeza ithuba lokulibaziseka kokuphunyezwa komyalelo "wesilver" (ukwakha kwakhona ukuhanjiswa kwedatha kuthathela ingqalelo utshintsho kuqwalaselo lweedrive) - ukuba, xa uqala umsebenzi omtsha, owangaphambili awukagqibi, ke umphathi omtsha uya kuqalisa. phumeza kuphela emva kokuba owangaphambili ugqibile;
    • Ukulungelelaniswa kwenziwe kwilog yeZIL (ZFS Intent Log) ukuvumela ukudalwa kunye nokulungiswa kweebhloko xa kukho iibhloko ezisalungiswa ngokugcinwa;
    • Ixesha lokubhalisa izahlulo (zvol) kwinkqubo iye yancitshiswa. Xa i-pool iqulethe inani elikhulu lezahlulo, ngoku zifumaneka ngokukhawuleza emva kokuphumeza "i-zpool import";
    • Inkxaso eyongeziweyo yokukhawuleza kwe-hardware ye-SHA256 yezibalo ze-hash kunye nokusebenza kwe-encryption ye-AES-GSM usebenzisa iichips ezixhasa i-Intel QAT (iTekhnoloji yoNcedo oluKhawulezayo). Inkxaso eyongeziweyo yezixhobo zokukhawulezisa izixhobo ze-Intel C62x chipset kunye ne-Atom C3000 CPU.

umthombo: opennet.ru

Yongeza izimvo