Pärast 11 kuu arendust on välja antud projekti OpenZFS 2.4.0 versioon, mis arendab ZFS failisüsteemi teostust Linuxile ja FreeBSD-le. Projekt on tuntud kui "ZFS on Linux" ning varem oli see piiratud Linuxi tuuma mooduli arendamisega, kuid pärast koodi ühinemist FreeBSD-st tunnustati seda OpenZFS põhiteostusena ja muudeti nime.
OpenZFS töötab Linuxi kernelitega vahemikus 4.18 kuni 6.18 ning kõikide FreeBSD harudega alates 13.3. Kood on jagatud vabade litsentside CDDL alusel. OpenZFS on juba kasutusel FreeBSD-s ja see on osa distributsioonidest Debian, Ubuntu, Gentoo, NixOS ja ALT Linux. Pakette uue versiooniga valmistatakse peagi ette peamistele Linuxi distributsioonidele, sealhulgas Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS pakub ZFS-i komponentide rakendust, mis on seotud nii failisüsteemi toimimise kui ka mahuhalduri funktsioneerimisega. Rakendatud on komponendid: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) ja ZPL (ZFS POSIX Layer). Projekt võimaldab samuti kasutada ZFS-i klastrifailisüsteemi Lustre taustana. OpenZFS-i arendused põhinevad originaalsel ZFS-i koodil, mis on imporditud projektist OpenSolaris ja täiustatud Illumose kogukonna parenduste ja parandustega. Projekti arendavad Livermore'i riikliku laboratooriumi töötajad USA Energiaosakonna lepingu alusel.
Kood on jagatud avatud litsentsi CDDL alusel, mis ei ühildu GPLv2-ga, mistõttu ei ole võimalik integreerida OpenZFS-i Linuxi põhijoonde. GPLv2 ja CDDL litsentside all oleva koodi segamine ei ole lubatud. Litsentsi ühilduvuse vältimiseks on otsustatud toota Linuxi toode täielikult CDDL litsentsi alusel eraldi allalaaditava moodulina, mis on jagatud eraldi tuumast. OpenZFS-i koodi stabiilsust hinnatakse võrdselt teiste Linuxi failisüsteemidega.
Peamised muudatused:
- On rakendatud võimalus määrata vaikekvoot kasutajatele, gruppidele ja projektidele. Eelnevates versioonides sai kvoote seada ainult eraldi iga kasutaja identifikaatori jaoks. Uues versioonis on lisatud võimalus seada vaikimisi väärtus, mis rakendub, kui konkreetsele kasutajale kvooti pole määratud.
- Lisatud on võimalus tagastada otse sisendi/väljundi (O_DIRECT, Direct I/O) režiim tagasi kergkaalulise mittevahemälu sisendi/väljundi (Uncached I/O) kasutamiseks päringute puhul, mis ei ole mälulehe piiridega joondatud, mida Direct I/O ei toeta.
- Pakutud on uus ühtne algoritm salvestamise kiiruspiiramiseks ja plokkide paigutamiseks, mis vähendab vdev (Virtual Device) fragmenteerimist, koondades mitu kirjutamistegevust ja kasutades nende jaoks suuremaid pidevaid vabu alasid, selle asemel et paigutada üksikute kirjutamistegevuste tulemused väikestesse vabadesse aladesse.
- Krüpteerimise jõudlust on suurendatud AVX2 käskude kasutamisega AES-GCM algoritmi rakenduses. Tehtud testides saavutati kiirus tõus kuni 80%.
- ZIL-plokkide (ZFS Intent Log) paigutamine on lubatud mitte ainult tavalistes vdev-des või spetsiaalses SLOG-seadmestikus, vaid ka spetsiaalsetes vdev-des. Kui tavaline vdev on seotud kõvakettaga ja spetsiaalne vdev SSD-seadmestikuga, võimaldab muudatus vältida olukordi, kus andmed kirjutatakse SSD-le, kuid nendega seotud ZIL-plokid kõvakettale, mis põhjustab liigseid viivitusi.
- Nüüd on lubatud määrata special_small_blocks atribuut sektsioonide (ZVOL) jaoks, mitte ainult failisüsteemide jaoks, mis võimaldab korraldada väikeste plokkide paigutust eraldi spetsiaalses vdev'is, näiteks SSD-salvestil.
- Lisatud on kirjutamisrežiim "zfs rewrite -P", mis võimalusel säilitab muutumatuna loogilise loomise aja, võimaldades eristada plokke, mis on lihtsalt paigutatud puusse, ning plokke, mida kasutaja tõeliselt muutis.
- Käskudele "zpool trim", "zpool scrub" ja "zpool initialize" on lisatud valik "-a" (—all), mis võimaldab käivitada neid käsklusi kohe kõigi imporditud puude jaoks.
- Lisatud on käsk "zpool scrub -S -E", et kontrollida andmete kontrollsummasid, mis kuuluvad määratud ajavahemikku.
- Protsessi deduplikatsiooni jaoks on lisatud uusi optimeerimisi.
Allikas: opennet.ru
