Efter mer Àn tvÄ Ärs utveckling har version 2.2 av projektet OpenZFS slÀppts, som utvecklar implementeringen av filsystemet ZFS för Linux och FreeBSD. Projektet har blivit kÀnt som "ZFS pÄ Linux" och var tidigare begrÀnsat till utvecklingen av en modul för Linux-kÀrnan, men efter att stödet för FreeBSD överfördes erkÀndes det som den primÀra implementeringen av OpenZFS och omdöptes.
OpenZFS har testats med Linux-kÀrnor frÄn 3.10 till 6.5 samt alla versioner av FreeBSD, frÄn 12.2-RELEASE och framÄt. Koden distribueras under den fria licensen CDDL. OpenZFS anvÀnds redan i FreeBSD och ingÄr i distributörer som Debian, Ubuntu, Gentoo, Sabayon Linux och ALT Linux. Paketen med den nya versionen kommer snart att förberedas för de viktigaste Linux-distributörerna, inklusive Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS tillhandahÄller en implementering av ZFS-komponenter relaterade bÄde till filsystemets funktionalitet och till funktionen för volymhanteraren. I synnerhet implementeras komponenter som: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) och ZPL (ZFS POSIX Layer). Dessutom möjliggör projektet anvÀndning av ZFS som backend för det klusterbaserade filsystemet Lustre. Projektets arbete baseras pÄ den ursprungliga ZFS-koden som importerades frÄn projektet OpenSolaris och har utökats med förbÀttringar och korrigeringar frÄn Illumos-communityn. Projektet utvecklas med deltagande av personal frÄn Lawrence Livermore National Laboratory under avtal med USA:s energidepartement.
Koden distribueras under den fria licensen CDDL, som Àr oförenlig med GPLv2, vilket förhindrar integration av OpenZFS i huvudgrenen av Linux-kÀrnan, eftersom blandning av kod under licenserna GPLv2 och CDDL Àr oacceptabelt. För att kringgÄ denna licenskonflikt har det beslutats att distribuera produkten helt under CDDL-licensen som en separat nedladdningsmodul, som levereras separat frÄn kÀrnan. Stabiliteten i OpenZFS-kodbasen bedöms som jÀmförbar med andra filsystem för Linux.
Huvudsakliga förÀndringar:
- En mekanism för blockkloning har lagts till, vilket möjliggör skapandet av en kopia av en fil eller en del av den utan att duplicera data, genom att anvÀnda lÀnkar till redan existerande datablock i den ursprungliga filen utan att faktiskt kopiera dem. Vid Àndringar i den ursprungliga filen eller dess kopia kopieras blocken och Àndringarna görs i de skapade kopiorna (copy-on-write-lÀge pÄ filnivÄ). Baserat pÄ kloningsmekanismen har operationen reflink implementerats, som kan anvÀndas för att automatiskt skapa kloner i olika kopieringsverktyg, som i de nya versionerna av /bin/cp i Linux.
- Stöd har lagts till för teknologier som anvÀnds för containerisolering i Linux, sÄsom systemanropet renameat, FS overlayfs, mappning av anvÀndaridentifierare vid montering och delegering av namnutrymmen för containrar.
- Logg över fel har implementerats, som upptÀckts vid verifiering av checksummer (scrub). NÀr kommandot "zpool status" körs visas information om alla filsystem, snapshots och kloner som berörs av den skadade blocken. För ett försök till snabb ÄterstÀllning av kÀnda skadade block kan kommandot "zpool scrub -e" anvÀndas.
- Möjligheten att anvÀnda den kryptografiska hash-funktionen BLAKE3 för kontrollsummor har lagts till, vilket Àr anmÀrkningsvÀrt för dess mycket höga hashberÀkningsprestanda (tre gÄnger snabbare Àn Edon-R och betydligt snabbare Àn sha256 och sha512) med bibehÄllen pÄlitlighet pÄ SHA-3-nivÄ.
- Operationen "zfs receive -c" har implementerats, som kan anvÀndas för att ÄterstÀlla skadade data (inte metadata) i filsystem, snapshots och kloner, nÀr en replikerad sÀkerhetskopia finns, som tidigare sparats med kommandot "zfs send".
- Stödet för programmatisk instÀllning och lÀsning av egenskaper för individuella virtuella diskar vdev har lagts till.
- Möjligheten att koppla valfria anvÀndarspecifika egenskaper till vdev och zpool har lagts till, liknande de anvÀndarspecifika egenskaperna för zfs dataset.
- Genomförandet av den adaptiva cachen ARC (Adaptive Replacement Cache) har förbÀttrats, vilket ökar prestandan för lÀsoperationer. ARC anpassar sig nu bÀttre till hög belastning och minimerar behovet av manuell optimering av instÀllningarna.
- Stödet för mekanismer för hÄrdvaruacceleration av SHA2-kontrollsummeberÀkningar har lagts till.
- Implementeringen av Edon-R-kontrollsummor har skrivits om och optimerats.
- Vid anvÀndning av zstd-algoritmen för datakompression har identifieringen av situationer dÀr kompression Àr meningslös (data gÄr inte att komprimera) snabblagts.
- FörbÀttringar har gjorts i den proaktiva inlÀsningsmekanismen (Prefetch), vilket pÄskyndar arbetet vid intensiv in- och utdata.
- En mÀngd allmÀnna optimeringar har införts, vilket ökar prestandan.
KĂ€lla: opennet.ru
