Pärast rohkem kui aasta arendust on välja antud projekti OpenZFS 2.3.0 versioon, mis arendab ZFS failisüsteemi teostust Linuxile ja FreeBSD-le. Projekt on tuntud kui 'ZFS Linuxile' ning oli varem piiratud Linuxi kernelile mooduli arendamisega, kuid pärast FreeBSD koodi liitmist tunnustati seda OpenZFSi peamise teostusena ja nimetati ümber.
OpenZFSi töö on kontrollitud Linuxi kernelitega alates 4.18 kuni 6.12 ja kõikide FreeBSD harude puhul, alates 13.3. Kood jaotatakse tasuta litsentsi CDDL alusel. OpenZFS-i kasutatakse juba FreeBSD-s ning see on osa distributsioonidest Debian, Ubuntu, Gentoo, NixOS ja ALT Linux. Uue versiooni pakette valmistatakse peagi ette peamistele Linuxi distributsioonidele, sealhulgas Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS pakub ZFS-i komponentide rakendust, mis on seotud nii failisüsteemi toimimise kui ka mahuhalduri funktsioneerimisega. Rakendatud on komponendid: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) ja ZPL (ZFS POSIX Layer). Projekt võimaldab samuti kasutada ZFS-i klastrifailisüsteemi Lustre taustana. OpenZFS-i arendused põhinevad originaalsel ZFS-i koodil, mis on imporditud projektist OpenSolaris ja täiustatud Illumose kogukonna parenduste ja parandustega. Projekti arendavad Livermore'i riikliku laboratooriumi töötajad USA Energiaosakonna lepingu alusel.
Kood on jagatud avatud litsentsi CDDL alusel, mis ei ühildu GPLv2-ga, mistõttu ei ole võimalik integreerida OpenZFS-i Linuxi põhijoonde. GPLv2 ja CDDL litsentside all oleva koodi segamine ei ole lubatud. Litsentsi ühilduvuse vältimiseks on otsustatud toota Linuxi toode täielikult CDDL litsentsi alusel eraldi allalaaditava moodulina, mis on jagatud eraldi tuumast. OpenZFS-i koodi stabiilsust hinnatakse võrdselt teiste Linuxi failisüsteemidega.
Peamised muudatused:
- Reaalajas on võimalik olemasolevale RAIDZ-massiivile kiiresti lisada uusi kettaid, et suurendada salvestusruumi ilma töö katkestamata ja ilma uue salvestusseadmestiku loomise vajaduseta. Liigsete andmete ümberjaotamine uute kettaste arvestamisel toimub automaatselt. Olemasoleva gruppe ketta lisamiseks võib kasutada käsku „zpool attach POOL raidzP-N NEW_DEVICE”, ning taustprotsessi lõpuleviimise jälgimiseks võib kasutada „zpool status”.
- Andmete dedupeerimisega seotud toimingute täitmist on oluliselt kiirendatud. Optimeerimised, sealhulgas dedupeerimistabelite vorming, on samuti muu hulgas muutunud, seetõttu tuleks olemasolevatesse basseinidesse pakutud optimeerimiste kasutamiseks lubada suvand „fast_dedup”, mille järel luuakse uued dedupeerimistabelid, mida kasutatakse paralleelselt vanade tabelitega.
- Täpsemate otse sisse-/väljaanderežiimide (Direct IO) lisamine, mis võimaldab lugemis- ja kirjutamisoperatsioone ARC (Adaptive Replacement Cache) puhverserverist mööda minna. Režiim suurendab tõhusust olukordades, kus vahemälu võib tekitada lisakoputusi, nagu NVMe seadmete kasutamise korral.
- Enamikus käskudes (zfs list|get|mount|version, zpool status|list|get|version) on lisatud valik „-j” väljundi saamiseks JSON formaadis.
- Failide ja kataloogide nimede lubatud suurus on suurendatud 255-lt 1023 märgini (uus suurus on valitud 255 4-baidise sümboli paigutuse arvestusega).
- Töötlemise tõhususe optimeerimised, mis katab erinevaid koodekse osi.
- Tuuma moodulisse on lisatud valikud:
- 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
Allikas: opennet.ru
