Nakon 11 mjeseci razvoja, objavljen je izlaz projekta OpenZFS 2.4.0, koji razvija implementaciju datotečnog sustava ZFS za Linux i FreeBSD. Projekt je stekao popularnost kao 'ZFS na Linuxu' i ranije je bio ograničen na razvoj modula za Linux jezgru, no nakon spajanja s kodom iz FreeBSD-a, prepoznat je kao glavna implementacija OpenZFS i preimenovan.
Rad OpenZFS-a provjeren je s Linux jezgrama od 4.18 do 6.18 i svim granama FreeBSD-a, počevši od 13.3. Kod se distribuira pod slobodnom licencom CDDL. OpenZFS se već koristi u FreeBSD-u i dio je distribucija Debian, Ubuntu, Gentoo, NixOS i ALT Linux. Paketi s novom verzijom uskoro će biti pripremljeni za glavne distribucije Linux-a, uključujući Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS pruža implementaciju komponenti ZFS-a, povezanih kako s radom datotečnog sustava, tako i s funkcioniranjem upravitelja volumena. Implementirane su komponente: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) i ZPL (ZFS POSIX Layer). Projekt također omogućuje korištenje ZFS-a kao backend-a za klaster datotečnog sustava Lustre. Radna postignuća OpenZFS-a temelje se na izvornoj ZFS kodu, uvezenoj iz projekta OpenSolaris, proširenoj poboljšanjima i ispravkama zajednice Illumos. Projekt se razvija uz sudjelovanje zaposlenika Livermore nacionalne laboratorije prema ugovoru s Ministarstvom energetike SAD-a.
Kod se distribuira pod slobodnom licencom CDDL, koja nije kompatibilna s GPLv2, što sprječava integraciju OpenZFS-a u glavnu granu Linux jezgre, jer miješanje koda pod GPLv2 i CDDL licencama nije dopušteno. Da bi se zaobišla licencna nekompatibilnost, odlučeno je da se proizvod za Linux distribuira potpuno pod CDDL licencom kao odvojeni modul koji se isporučuje odvojeno od jezgre. Stabilnost kodne baze OpenZFS procijenjena je kao usporediva s drugim FS-ovima za Linux.
Glavne promjene:
- Implementirana je mogućnost postavljanja zadanih kvota za korisnike, grupe i projekte. U prethodnim verzijama kvote su se mogle postavljati samo pojedinačno za svaki identifikator korisnika. U novoj verziji je uvedena mogućnost postavljanja zadane vrijednosti koja će se primijeniti ako za određenog korisnika kvota nije postavljena.
- Dodana je mogućnost vraćanja načina izravnog ulazno/izlaznog rada (O_DIRECT, Direct I/O) na korištenje lakog mehanizma nekeširajućeg ulazno/izlaznog rada (Uncached I/O) za zahtjeve koji nisu poravnati na granici stranice memorije, koji nisu podržani u Direct I/O.
- Predloženi su novi unificirani algoritmi za ograničavanje brzine operacija zapisivanja i pozicioniranja blokova, koji smanjuju fragmentaciju vdev (Virtual Device) okupljanjem više operacija zapisivanja i korištenjem za njih većih kontinuiranih slobodnih područja umjesto smještanja rezultata pojedinačnih operacija zapisivanja u male slobodne prostore.
- Povećana je učinkovitost enkripcije korištenjem AVX2 instrukcija u implementaciji AES-GCM algoritma. U provedenim testovima ubrzanje doseže 80%.
- Omogućeno je postavljanje ZIL blokova (ZFS Intent Log) ne samo na normalne vdev ili na odvojeni uređaj SLOG, već i na specijalne vdev. Ako je normalni vdev povezan s tvrdim diskom, a specijalni vdev s SSD-om, ova promjena omogućava izbjegavanje situacija kada se podaci zapisiju na SSD, a povezani blokovi ZIL na tvrdi disk, što uzrokuje dodatne kašnjenja.
- Omogućeno je postavljanje svojstva special_small_blocks za particije (ZVOL), a ne samo za datotečne sustave, što omogućava organizaciju smještaja malih blokova na odvojenom specijalnom vdev, na primjer, na SSD-ovima.
- Dodana je opcija prepisivanja „zfs rewrite -P“, koja, ukoliko je moguće, ostavlja nepromjenjeno logičko vrijeme kreiranja, što omogućava razlikovanje između blokova koji su samo premješteni u bazen i blokova koje je stvarno promijenio korisnik.
- Za naredbe „zpool trim“, „zpool scrub“ i „zpool initialize“ implementirana je opcija „-a“ (—all), koja omogućava izvršavanje ovih naredbi odmah za sve uvezene bazene.
- Dodana je naredba „zpool scrub -S -E“ za izvršavanje provjere kontrolnih zbrojeva podataka unutar određenih vremenskih intervala.
- Dodane su nove optimizacije procesa deduplikacije.
Izvor: opennet.ru
