Pas më shumë se dy vjet zhvillimi, u publikua rilis i projektit OpenZFS 2.2, i cili zhvillon implementimin e sistemit të skedarëve ZFS për Linux dhe FreeBSD. Projekti mori famë si "ZFS on Linux" dhe më parë ishte i kufizuar në zhvillimin e një moduli për bërthamën e Linux-it, por pas transferimit të mbështetjes për FreeBSD u pranuam si implementimi kryesor i OpenZFS dhe u riemërua.
Funksionimi i OpenZFS është verifikuar me bërthamat e Linux nga 3.10 deri në 6.5 dhe të gjitha degët e FreeBSD, duke filluar nga 12.2-RELEASE. Kodi shpërndahet nën licencën e lirë CDDL. OpenZFS tashmë po përdoret në FreeBSD dhe është përfshirë në shpërndarjet Debian, Ubuntu, Gentoo, Sabayon Linux dhe ALT Linux. Paketat me versionin e ri do të përgatiten së shpejti për shpërndarjet kryesore të Linux-it, duke përfshirë Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS ofron një implementim të komponentëve ZFS, të lidhur si me funksionimin e sistemit të skedarëve, ashtu edhe me funksionimin e menaxherit të volumit. Në veçanti, janë implementuar komponentët: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) dhe ZPL (ZFS POSIX Layer). Për më tepër, projekti ofron mundësinë e përdorimit të ZFS si një backend për sistemin e skedarëve klaster, Lustre. Puna e projektit bazohet në kodin origjinal ZFS, i importuar nga projekti OpenSolaris dhe i zgjeruar me përmirësime dhe korrigjime nga komuniteti Illumos. Projekti zhvillohet me pjesëmarrjen e stafit të Laboratorit Kombëtar Livermore në kuadër të një kontrate me Ministrinë e Energjisë të SHBA.
Kodi shpërndahet nën licencën e lirë CDDL, e cila është e papajtueshme me GPLv2, e cila nuk lejon integrimin e OpenZFS në degën kryesore të bërthamës Linux, pasi përzierja e kodit nën licencat GPLv2 dhe CDDL është e papranueshme. Për të anashkaluar këtë papajtueshmëri licencash, u vendos të shpërndahet produkti në tërësi nën licencën CDDL në formën e një moduli të shkarkueshëm, i cili ofrohet veçmas nga bërthamja. Stabiliteti i bazës së kodit OpenZFS vlerësohet të jetë i krahasueshëm me sisteme të tjera të skedarëve për Linux.
Ndryshimet kryesore:
- Shtuar mekanizmi i klonimit të blloqeve, i cili lejon krijimin e një kopjeje të skedarit ose një pjese të tij pa duplikimin e të dhënave, duke përdorur në kopjen e dytë referenca në blloqet ekzistuese të të dhënave të skedarit origjinal pa i kopjuar ato. Në rastin e ndryshimeve në skedarin origjinal ose në kopjet e tij, bëhet kopjimi i blloqeve dhe ndodhin ndryshimet në kopjet e krijuara (modi copy-on-write në nivelin e skedarëve). Baza e mekanizmit të klonimit është operacioni reflink, i cili mund të përdoret për krijimin automatik të klonëve në utilitetet e kopjimit, siç janë versionet e reja të /bin/cp në Linux.
- Shtuar mbështetje për teknologjitë e aplikueshme për izolimin e kontejnerëve në Linux, të tilla si thirrja e sistemit renameat, FS overlayfs, mapimi i identifikuesve të përdoruesve gjatë montimit dhe delegimi i hapësirave të emrave për kontejnerët.
- Realizuar një log të gabimeve të zbuluara gjatë kryerjes së operacioneve të verifikimit të përmasave (scrub). Gjatë ekzekutimit të komandës "zpool status", shfaqen informacione për të gjitha FS-të, snapshotet dhe klonët që preken nga blloku i dëmtuar. Për të provuar rikuperimin e shpejtë të blloqeve të njohura të dëmtuara, mund të përdoret komanda "zpool scrub -e".
- Shtuar mundësinë e përdorimit të funksionit të hash-it BLAKE3 për kontrollin e të dhënave, i njohur për performancën shumë të lartë të llogaritjes së hash-it (tre herë më i shpejtë se Edon-R dhe ndjeshëm më i shpejtë se sha256 dhe sha512) duke siguruar besueshmëri në nivelin e SHA-3.
- Realizuar operacioni "zfs receive -c", i cili mund të përdoret për rikuperimin e të dhënave të dëmtuara (jo metadatat) në FS, snapshotet dhe klonët, në raste kur ekziston një kopje rezervë e replikuar, e ruajtur më parë me komandën "zfs send".
- Shtuar mbështetje për vendosjen dhe leximin e pronave për disqe virtuale të veçanta vdev.
- Shtuar mundësinë e lidhjes së pronave të rastit përdorues për vdev dhe zpool, në përputhje me pronat e përdoruesve për datasetin zfs.
- Përmirësuar implementimi i caches adaptiv ARC (Adaptive Replacement Cache), i cili rrit performancën e operacioneve të leximit. ARC tani përshtatet më mirë me ngarkesat e larta dhe minimizon nevojat për optimizimin manual të parametrave.
- Shtuar mbështetje për mekanizmat e përshpejtimit harduerik të llogaritjeve të kontrollit të të dhënave SHA2.
- Ri-shkruar dhe optimizuar implementimi i kontrollit të të dhënave Edon-R.
- Kur përdoret algoritmi i kompresimit të të dhënave zstd, është përshpejtuar identifikimi i situatave kur kompresimi është i padashur (të dhënat nuk janë të kompresueshme).
- Realizuar përmirësime në mekanizmin e ngarkesës përpara (Prefetch), duke përshpejtuar funksionimin në kushte të input/output intensiv.
- Bërë një sasi të përgjithshme optimizimesh që rrisin performancën.
Burimi: opennet.ru
