Pas më shumë se një vit zhvillimi, është publikuar versioni i projektit OpenZFS 2.3.0, që zhvillon implementimin e sistemit të skedarëve ZFS për Linux dhe FreeBSD. Projekti fitoi popullaritet si "ZFS në Linux" dhe më parë ishte i kufizuar në zhvillimin e një moduli për bërthamën Linux, por pas bashkimit me kodin nga FreeBSD, u njoh si implementimi kryesor i OpenZFS dhe u riemërua.
Puna e OpenZFS është verifikuar me bërthemat Linux nga 4.18 deri në 6.12 dhe të gjitha degët e FreeBSD, duke filluar nga 13.3. Kodi shpërndahet nën licencën e lirë CDDL. OpenZFS është tashmë në përdorim në FreeBSD dhe është pjesë e shpërndarjeve Debian, Ubuntu, Gentoo, NixOS dhe ALT Linux. Paketat me versionin e ri do të përgatiten së shpejti për shpërndarjet kryesore të Linux, 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. Janë implementuar komponentët: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) dhe ZPL (ZFS POSIX Layer). Projekti gjithashtu lejon përdorimin e ZFS si backend për sistemin klaster të skedarëve Lustre. Përparimet e OpenZFS bazohen në kodin origjinal ZFS, i importuar nga projekti OpenSolaris dhe i zgjeruar me përmirësime dhe korrigjime nga komuniteti Illumos. Projekti zhvillohet në bashkëpunim me punonjësit e laboratorit kombëtar Livermore, sipas kontratës me Ministrinë e Energjisë të SHBA.
Kodi shpërndahet nën licencën e lirë CDDL, e cila është e papajtueshme me GPLv2, çka 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ë kapërcyer papajtueshmërinë e licencave, u vendos që produkti për Linux të shpërndahet krejtësisht nën licencën CDDL si një modul i shkarkueshëm veçmas nga bërthama. Stabiliteti i bazës së kodit OpenZFS vlerësohet si i krahasueshëm me sistemet e tjera të skedarëve për Linux.
Ndryshimet kryesore:
- ĂshtĂ« realizuar mundĂ«sia e shtimit nĂ« fluks tĂ« disqeve tĂ« rinj nĂ« njĂ« grup ekzistues RAIDZ pĂ«r tĂ« rritur madhĂ«sinĂ« e ruajtjes pa ndaluar punĂ«n dhe pa pasur nevojĂ« pĂ«r krijimin e njĂ« grupi tĂ« ri ruajtĂ«sish. Rredistribuimi i tĂ« dhĂ«nave tĂ« tepĂ«rta duke marrĂ« parasysh disqet e rinj kryhet automatikisht. PĂ«r tĂ« shtuar njĂ« disk nĂ« grupin ekzistues, mund tĂ« pĂ«rdoret urdhri "zpool attach POOL raidzP-N NEW_DEVICE", dhe pĂ«r tĂ« ndjekur pĂ«rfundimin e procesit tĂ« fondeve tĂ« zgjerimit tĂ« grupit - "zpool status".
- Përshpejtuar ndjeshëm realizimi i operacioneve të lidhura me deduplication e blloqeve të të dhënave. Optimizimet përfshinë, ndër të tjera, formatin e tabelave të deduplication, prandaj për të aktivizuar optimizimet e propozuara në bazen ekzistuese, duhet të aktivizohet opsioni "fast_dedup", pas së cilës do të krijohen tabela të reja deduplication, të cilat do të përdoren paralelisht me tabelat e vjetra.
- Shtuar një modalitet të hyrjes/jeshjes direkte (Direct IO), i cili lejon kryerjen e operacioneve të leximit dhe shkruajtjes duke anashkaluar cache ARC (Adaptive Replacement Cache). Ky modalitet rrit efikasitetin e punës në situata kur keq-shkallëzimi mund të ndikojë negativisht në performancën për shkak të operacioneve shtesë të kopjimit në memorie, për shembull, kur përdoren pajisje NVMe.
- Në shumicën e komandave (zfs list|get|mount|version, zpool status|list|get|version) është shtuar opsioni "-j" për daljen në formatin JSON.
- Madhësia e lejueshme e emrave të skedarëve dhe katalogëve është rritur nga 255 në 1023 karaktere (madhësia e re është zgjedhur duke llogaritur vendosjen e 255 karaktereve 4-byte).
- Janë bërë optimizime të performancës që përfshijnë pjesë të ndryshme të kodit.
- Shtuar opsione në modul të bërthamës:
- dmu_ddt_copies
- raidz_expand_max_copy_bytes
- raidz_expand_max_reflow_bytes
- raidz_io_aggregate_rows
- spa_cpus_per_allocator
- spa_num_allocators
- zap_shrink_enabled
- zfetch_max_idistance
- zfs_active_allocator
- zfs_arc_shrinker_seeks
- zfs_dedup_log_flush_entries_min
- .zfs_dedup_log_flush_flow_rate_txgs
- zfs_dedup_log_flush_min_time_ms
- zfs_dedup_log_flush_passes_max
- zfs_dedup_log_mem_max
- zfs_dedup_log_mem_max_percent
- zfs_dedup_log_txg_max
- zfs_dio_enabled
- zfs_dio_write_verify_events_per_second
- zfs_resilver_defer_percent
- zfs_scrub_after_expand
- zfs_snapshot_no_setuid
- zfs_vdev_direct_write_verify
- zio_taskq_write_tpq
Burimi: opennet.ru
