Pas më shumë se një viti zhvillimi, është publikuar lëshimi i projektit OpenZFS 2.3.0, i cili zhvillon realizimin e sistemit të skedarëve ZFS për Linux dhe FreeBSD. Projekti mori njohje si «ZFS në Linux» dhe më parë u kufizua në zhvillimin e një moduli për bërthamën Linux, por pas bashkimit me kodin nga FreeBSD u pranuar si realizimi kryesor i OpenZFS dhe u riemërua.
Puna e OpenZFS është verifikuar me bërthamat 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 tashmë përdoret 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 implementimin e komponentëve ZFS, të lidhura me funksionimin e sistemit të skedarëve dhe 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 e skedarëve klaster Lustre. Arritjet e OpenZFS janë të bazuara në kodin origjinal ZFS, të importuar nga projekti OpenSolaris dhe të zgjeruara me përmirësime dhe korrigjime nga komuniteti Illumos. Projekti zhvillohet me pjesëmarrjen e punonjësve të Laboratorit Kombëtar Livermore në një kontratë me Departamentin e Energjisë të SHBA.
Kodi shpërndahet nën një licencë të 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 kombinimi i kodave nën licencat GPLv2 dhe CDDL është i papranueshëm. Për të anashkaluar papajtueshmërinë e licencës, u vendos të shpërndahet produkti për Linux tërësisht nën licencën CDDL si një modul që ngarkohet veçmas, i ofruar ndaras nga bërthama. Stabiliteti i bazës së kodit të OpenZFS vlerësohet si ngjashëm me sistemet e tjera të skedarëve për Linux.
Ndryshimet kryesore:
- E mundĂ«suar shtimi nĂ« fluturing tĂ« disqeve tĂ« rinj nĂ« njĂ« grup ekzistues RAIDZ pĂ«r tĂ« rritur kapacitetin e ruajtjes pa ndalur punĂ«n dhe pa nevojĂ«n pĂ«r tĂ« krijuar njĂ« grup tĂ« ri disqesh. Riorganizimi i tĂ« dhĂ«nave tĂ« tepĂ«rta, duke marrĂ« parasysh disqet e rinj, bĂ«het automatikisht. PĂ«r tĂ« shtuar njĂ« disk nĂ« njĂ« grup ekzistues, mund tĂ« pĂ«rdorni komandĂ«n «zpool attach POOL raidzP-N NEW_DEVICE», ndĂ«rsa pĂ«r tĂ« ndjekur pĂ«rfundimin e procesit tĂ« pastrimit nĂ« sfond tĂ« zgjerimit tĂ« grupit â «zpool status».
- Ekzekutimi i operacioneve të lidhura me dedupikimin e bllokëve të të dhënave është përshpejtuar ndjeshëm. Optimizimet, përveç të tjerave, preken formatet e tabelave të dedupikimit, prandaj për të përfituar nga optimizimet e ofruara në grupet ekzistuese, është e nevojshme të aktivizohet opsioni «fast_dedup», pas së cilës do të krijohen tabela të reja dedupikimi, që do të përdoren paralelisht me tabelat e vjetra.
- Shtuar një mod të hyrjes dhe daljes direkte (Direct IO), i cili lejon të kryhen operacione lexim dhe shkrimi përmes keshit ARC (Adaptive Replacement Cache). Ky mod rrit efikasitetin e punës në situata kur keshimi mund të ndikojë negativisht në performancë 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 lejuar për emrat e skedarëve dhe katalogëve është rritur nga 255 në 1023 karaktere (madhësia e re është zgjedhur duke llogaritur vendosjen e 255 simboleve 4-bajtëshe).
- Janë kryer optimizime të performancës që përfshijnë pjesë të ndryshme të kodit bazë.
- Shtuar opsione në modulin e 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
