Pärast rohkem kui kahte aastat arengut on avaldatud projekti OpenZFS 2.2 väljaanne, mis arendab ZFS failisüsteemi rakendust Linuxi ja FreeBSD jaoks. Projekt on tuntud kui "ZFS Linuxile" ja oli varem piiratud Linuxi tuumamooduli arendamisega, kuid pärast FreeBSD toe lisamist tunnustati seda OpenZFSi põhiteostena ning see nimetati ümber.
OpenZFS töö on kontrollitud Linuxi kärgede versioonidega alates 3.10 kuni 6.5 ja kõigi FreeBSD harudega alates 12.2-RELEASE. Kood on litsentseeritud avatud CDDL litsentsiga. OpenZFS-i kasutatakse juba FreeBSD-s ja see on osa Debian, Ubuntu, Gentoo, Sabayon Linuxi ja ALT Linuxi distributsioonidest. Uue versiooni pakette valmistatakse peagi peamiste Linuxi distributsioonide jaoks, sealhulgas Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS pakub ZFS-i komponente, mis on seotud nii failisüsteemi töötamise kui ka mahuhalduri funktsioneerimisega. Eelkõige on rakendatud komponente: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) ja ZPL (ZFS POSIX Layer). Lisaks tagab projekt ZFS-i kasutamise võimaluse Lustre klastrifailisüsteemi taustana. Projekti arendused põhinevad originaalkoodil ZFS, mis on imporditud projektist OpenSolaris ja täiustatud Illumose kogukonna paranduste ja täiustustega. Projekti arendavad Livermore'i riikliku laboratooriumi töötajad USA energiaosakonna lepingul.
Kood on litsentseeritud avatud CDDL litsentsiga, mis ei ühildu GPLv2-ga, mis ei võimalda OpenZFS-i integreerimist Linuxi tuuma põhiharusse, kuna GPLv2 ja CDDL litsentsi alla kuuluva koodi segamine ei ole lubatud. Selle litsentsi vastuolude vältimiseks otsustati toote levitamine täielikult CDDL litsentsi alusel eraldi laaditava moodulina, mis tarnitakse eraldi tuumast. OpenZFS koodibaasi stabiilsust hinnatakse võrreldavaks teiste Linuxi failisüsteemidega.
Peamised muudatused:
- Lisatud on plokkide kloonimise mehhanism, mis võimaldab luua faili või selle osa koopia ilma andmete dubleerimiseta, kasutades teises koopia puhul linke juba olemasolevatele andmeplokkidele algses failis ilma nende tegeliku kopeerimiseta. Kui algses failis või selle koopias tehakse muudatusi, toimub plokkide kopeerimine ning muudatused tehakse loodud koopiates (copy-on-write režiim failitasandil). Kloonimise mehhanismi põhjal on rakendatud reflink operatsioon, mida saab kasutada automaatseks kloonide loomiseks erinevates kopeerimistööriistades, näiteks Linuxi uutes versioonides /bin/cp.
- Lisatud on tugi konteinerite isoleerimistööstuses kasutatavate tehnoloogiate, nagu süsteemikutse renameat, failisüsteem overlayfs, kasutajaidentiteetide kaardistamine mountimisel ja nimede ruumide delegatsioon konteinerite jaoks.
- Teostatud on vigade logimine, mis tuvastatakse kontrollsummade (scrub) kontrollimise käigus. Komando „zpool status“ käivitamisel kuvatakse teavet kõigi FS, snapshotide ja kloonide kohta, mis on seotud kahjustatud plokiga. Tuntud kahjustatud plokkide kiireks taastamiseks saab kasutada käsku „zpool scrub -e“.
- Lisatud on võimalus kasutada kontrollsummade jaoks krüptograafilist hajusfunktsiooni BLAKE3, millel on väga kõrge jõudlus haashi arvutamisel (kolm korda kiiremini kui Edon-R ja märkimisväärselt kiiremini kui sha256 ja sha512), tagades samal ajal usaldusväärsuse SHA-3 tasemel.
- Teostatud on operatsioon „zfs receive -c
- Lisatud on tugi virtuaalsete diskide vdev jaoks individuaalsete omaduste kuvamiseks ja lugemiseks.
- Lisatud on võimalus siduda vdev ja zpool juhuslikke kasutaja omadusi, sarnaselt zfs datasetide kasutaja omadustega.
- Parandatud on kohandatud ARC (Adaptive Replacement Cache) teostust, mis suurendab lugemise operatsioonide jõudlust. ARC kohandub nüüd paremini kõrgete koormustega ja minimaliseerib käsitsi seadete optimeerimise vajadust.
- Lisatud on tugi SHA2 kontrollsummade arvutamise riistvarakiirenduse mehhanismidele.
- Edon-R-i kontrollsummade rakenduse uuendamine ja optimeerimine.
- Andmete kokkusurumisalgoritmi zstd kasutamisel on kiirenetud olukordade tuvastamine, kus kokkusurumine on mõttetu (andmeid ei ole võimalik kokku suruda).
- Parandatud on ette laadimise (Prefetch) mehhanismi, mis kiirendab tööd intensiivse sisendi/väljundi korral.
- Tehtud on rida üldisi optimeerimisi, mis parandavad jõudlust.
Allikas: opennet.ru
