Ukukhishwa kwe-ZFS ku-Linux 0.8.0, ukuqaliswa kwe-ZFS ye-Linux kernel

Ngemva kweminyaka ecishe ibe mibili yentuthuko kwethulwe ukukhululwa I-ZFS ku-Linux 0.8.0, ukuqaliswa kohlelo lwefayela le-ZFS elipakishwe njengemojula ye-Linux kernel. Imojula ihlolwe ngama-Linux kernels ukusuka ku-2.6.32 kuya ku-5.1. Amaphakheji okufaka alungile ayeza maduze izolungiselelwa ngokusatshalaliswa kweLinux okukhulu okuhlanganisa i-Debian, Ubuntu, Fedora, RHEL/CentOS. Imojula ye-ZFS ku-Linux isivele ifakiwe ku-Debian, Ubuntu, Gentoo, Sabayon Linux kanye nokusabalalisa kwe-ALT Linux.

Njengengxenye ye-ZFS ku-Linux, ukuqaliswa kwezingxenye ze-ZFS ezihlobene nakho kokubili ukusebenza kwesistimu yefayela kanye nokusebenza komphathi wevolumu sekulungisiwe. Ikakhulukazi, izingxenye ezilandelayo ziyasetshenziswa: I-SPA (I-Storage Pool Allocator), i-DMU (Iyunithi Yokulawulwa Kwedatha), i-ZVOL (Ivolumu Elingiswayo ye-ZFS) kanye ne-ZPL (I-ZFS POSIX Layer). Ukwengeza, iphrojekthi inikeza amandla okusebenzisa i-ZFS njenge-backend yohlelo lwefayela le-Luster cluster. Umsebenzi wephrojekthi usekelwe kukhodi yokuqala ye-ZFS engeniswe kuphrojekthi ye-OpenSolaris futhi yathuthukiswa ngokuthuthuka nokulungiswa okuvela emphakathini we-Illumos. Lo msebenzi uthuthukiswa ngokubamba iqhaza kwezisebenzi ze-Livermore National Laboratory ngaphansi kwenkontileka noMnyango Wezamandla wase-US.

Ikhodi isatshalaliswa ngaphansi kwelayisense ye-CDDL yamahhala, engahambelani ne-GPLv2, engavumeli i-ZFS ku-Linux ukuthi ihlanganiswe negatsha elikhulu le-Linux kernel, njengoba ukuxuba ikhodi ngaphansi kwe-GPLv2 kanye namalayisensi e-CDDL akuvunyelwe. Ukuze kugwenywe lokhu kungahambisani kwelayisensi, kwanqunywa ukuthi kusatshalaliswe wonke umkhiqizo ngaphansi kwelayisensi ye-CDDL njengemojula elayisheka ngokuhlukile, ehlinzekwa ngokuhlukile kumongo. Ukuzinza kwe-ZFS ku-Linux codebase kukalwe njengokuqhathaniswa nezinye izinhlelo zefayela zeLinux.

Izinguquko eziyinhloko:

  • Kungezwe usekelo olwakhelwe ngaphakathi lokubethelwa kwedatha egciniwe ezingeni lesistimu yefayela nokuhlukaniswa. I-algorithm yokubethela ezenzakalelayo yi-aes-256-ccm. Umyalo othi "zfs load-key" uhlongozwa ukuze ulayishe okhiye bokubethela;
  • Kusetshenziswe ikhono lokudlulisa idatha ebethelwe lapho kusetshenziswa imiyalo ethi 'i-zfs send' kanye 'ne-zfs receive'. Lapho ucacisa inketho ethi β€œ-w”, idatha esivele ibethelwe echibini idluliselwa kwelinye iphuli njengoba injalo, ngaphandle kokususwa kwemfihlo okumaphakathi. Ngokukopisha okunjalo, idatha ihlala ivikelwe ukhiye womthumeli, ovumela ukusebenzisa le modi ukwenza ikhophi yasenqolobaneni kumasistimu angathembekile (uma umamukeli esengozini, umhlaseli ngeke akwazi ukufinyelela idatha ngaphandle kokhiye);
  • Ukwesekwa okwengeziwe kokukhipha amadrayivu ayinhloko endaweni yokulondoloza, axhunywe ngawodwana nanjengengxenye yesibuko. Ukususwa kwenziwa ngomyalo othi "zpool remove". Inqubo yokususa ikopisha idatha esuka kudrayivu engabaliwe iye kumadrayivu ayinhloko asele endaweni yokubhukuda;
  • Kwengezwe umyalo "we-zpool checkpoint" ukuze ulondoloze isimo samanje se-pool ngekhono lokuhlehlisa izinguquko ezengeziwe endaweni elondoloziwe ngesikhathi (isifinyezo se-pool yonke siyadalwa). Lesi sici singaba usizo enqubweni yokwenza umsebenzi wokuphatha oyinkimbinkimbi ongase ube yingozi, okuthi ngaphansi kwezimo ezijwayelekile kuholele ezinguqukweni ezingenakuhlehliswa (isibonelo, ukusebenzisa amafulegi kusebenze okusha kwe-ZFS noma ukusula idatha);
  • Umyalo we-"zpool trim" ungeziwe ukwazisa amadrayivu asetshenziswa echibini mayelana nemikhakha engasasetshenziswa. Ukusetshenziswa komsebenzi we-TRIM kwenza kube nokwenzeka ukwandisa ukusebenza kahle kwama-SSD futhi kuvimbele ukuwohloka kokusebenza kwawo. Isakhiwo esisha "se-autotrim" sihlongozwa ukuze kusebenze inqubo yangemuva eqhubekayo yokudlulisa imiyalo ye-TRIM;
  • Kungezwe umyalo othi "i-zpool qalisa" ukuqalisa yonke indawo yediski engabelwe, evumela ukuthi ilungele ukusetshenziswa ngokushesha, ngaphandle kokuwohloka kokusebenza ekufinyeleleni kokuqala (isibonelo, lapho isingatha ama-storeges abonakalayo njenge-VMware VMDK);
  • Usekelo olungeziwe lokubala kanye nezilinganiso zezinga lephrojekthi, ngaphezu kwama-quota ayetholakala ngaphambilini abasebenzisi kanye nezinga leqembu. Empeleni, amaphrojekthi ayindawo ehlukile yezinto ezihlotshaniswa nesihlonzi esihlukile (i-ID yephrojekthi). Ukubophezela kuchazwa ngomsebenzi we-'chattr -p' noma ngefa lesibaluli. Ukuphathwa kwephrojekthi, imiyalo "yephrojekthi ye-zfs" kanye "ne-zfs projectspace" yethulwa, ekuvumela ukuthi ulawule ukudalwa kwamaphrojekthi futhi ubeke imingcele yesikhala sediski kubo;
  • Kwengezwe ikhono lokudala imibhalo ye-Lua ukuze kusebenze umsebenzi ohlukahlukene nge-ZFS. Imibhalo iqhutshwa ezindaweni ezikhethekile ezingazodwa kusetshenziswa umyalo "wohlelo lwe-zpool";
  • Kusetshenziswe umtapo wolwazi omusha pyzfs, ehlinzeka nge-API ezinzile yokuphatha i-ZFS kusuka kuzinhlelo zokusebenza zePython. Umtapo wolwazi ungowokugoqa i-libzfs_core futhi uhlinzeka ngesethi efanayo yemisebenzi, kodwa usebenzisa izinhlobo eziseduze zePython;
  • Izinsiza ze-arcstat, i-arcsummary, ne-dbufstat zenziwe zasebenzisa i-Python 3. Izinsiza ze-arcstat.py, arc_summary.py, kanye ne-dbufstat.py ziqanjwe kabusha zaba yizinguqulo ngaphandle kwesandiso se-".py";
  • Ukwesekwa okwengeziwe kwe-Linux Direct IO (O_DIRECT) kernel interface, evumela ukufinyelela idatha ngaphandle kokubhafa kanye nokudlula inqolobane;
  • Ukulungiselelwa kokusebenza kwethulwe:
    • Umsebenzi wemiyalo "yokukhuhla" kanye "ne-resilver" usheshisiwe ngenxa yokuhlukaniswa kwezigaba ezimbili (isigaba esihlukile sabelwe ukuskena imethadatha nokunquma indawo yamabhulokhi anedatha kudiski, okuvumela ukuqinisekiswa okwengeziwe kusetshenziswa idatha elandelanayo. ukufunda);
    • Kwengezwe ukwesekwa kwamakilasi Okwabiwa,
      ukuvumela ama-SSD amancane ukuthi ahlanganiswe futhi asetshenziselwe ukugcina izinhlobo ezithile kuphela zamabhulokhi asetshenziswa kakhulu, njengemethadatha, idatha ye-DDT, namabhulokhi wamafayela amancane;

    • Ukusebenza okuthuthukisiwe kwemiyalo yomqondisi efana ne
      "uhlu lwama-zfs" kanye "ne-zfs thola", ngokufaka kunqolobane imethadatha edingekayo ekusebenzeni kwabo;

    • Ukwesekwa okwengeziwe kokuhambisana kwemisebenzi yokwabiwa kwamabhulokhi ngokuqalisa izinqubo ezihlukene ze-allocator eqenjini ngalinye le-metaslab. Ezinhlelweni ezivamile, kukhona ukwanda kokusebenza kwe-5-10%, kodwa ezinkulu (8 128 GB SSD, 24 core NUMA, 256 GB ye-RAM), ukwanda kwemisebenzi yokwabiwa kwe-block kungafinyelela ku-25%;
    • Kwengezwe ithuba lokuhlehliswa kokukhishwa komyalo "we-resilver" (ukwakha kabusha ukusatshalaliswa kwedatha kucatshangelwa izinguquko ekucushweni kwamadrayivu) - uma eyedlule ingakaqedi lapho uqala umsebenzi omusha, isibambi esisha sizoqala ukwenza kuphela ngemuva kwalokho. isiphetho sangaphambilini;
    • Ukuthuthukiswa kwengezwe ku-ZIL (ZFS Intent Log) ukuvumela ukudala nokucubungula amabhulokhi phambi kwamabhulokhi asacutshungulwa yisitoreji;
    • Isikhathi sokubhalisa esincishisiwe se-partitions (zvol) ohlelweni. Lapho ichibi liqukethe inani elikhulu lokuhlukaniswa, manje selitholakala ngokushesha ngemva kokwenza "i-zpool import";
    • Usekelo olungeziwe lwezingxenyekazi zekhompuyutha ezisheshisiwe zezibalo ze-SHA256 hashes kanye nemisebenzi yokubethela ye-AES-GSM kusetshenziswa ama-Intel QAT (Quick Assist Technology) chips. Ukwesekwa okwengeziwe kokusheshiswa kwehadiwe ye-Intel C62x chipset ne-CPU Atom C3000.

Source: opennet.ru

Engeza amazwana