Több mint egy év fejlesztés után megjelent az OpenZFS 2.3.0 projekt kiadása, amely a ZFS fájlrendszer Linux és FreeBSD verzióját fejleszti. A projektet korábban "ZFS on Linux" néven ismerték, és kezdetben a Linux kernel moduljának fejlesztésére korlátozódott, de a FreeBSD-ből származó kód integrálása után az OpenZFS alapvető megvalósításaként elismerték és átnevezték.
Az OpenZFS működését a Linux 4.18 és 6.12 közötti kernel verziókban, valamint az összes FreeBSD ágon tesztelték, kezdve a 13.3 verzióval. A kód szabad CDDL licenc alatt terjed. Az OpenZFS már használatban van a FreeBSD-ben, és szerepel a Debian, Ubuntu, Gentoo, NixOS és ALT Linux disztribúciókban. Az új verzióval kapcsolatos csomagokat hamarosan elkészítik a fő Linux disztribúciókhoz, beleértve a Debian, Ubuntu, Fedora, RHEL/CentOS rendszereket.
Az OpenZFS a ZFS fájlrendszer működésével és a kötetkezelő működésével kapcsolatos ZFS komponensek megvalósítását biztosítja. Megvalósították a következő komponenseket: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) és ZPL (ZFS POSIX Layer). A projekt lehetővé teszi a ZFS használatát a Lustre klaszter fájlrendszer háttérérzékelőjeként is. Az OpenZFS fejlesztése az eredeti ZFS kódra épül, amely az OpenSolaris projektből származik, és az Illumos közösség hibajavításaival és fejlesztéseivel bővítették. A projektet az Egyesült Államok Energiaügyi Minisztériuma által szerződött Livermore-i Nemzeti Laboratórium munkatársai fejlesztik.
A kód szabad CDDL licenc alatt terjed, amely nem kompatibilis a GPLv2-vel, ezért nem lehetséges az OpenZFS integrálása a Linux kernel főágába, mivel a GPLv2 és CDDL licenc alá tartozó kódok keverése nem megengedett. A licencelt ütközés elkerülése érdekében úgy döntöttek, hogy a Linux terméket teljesen CDDL licenc alatt, külön letölthető modul formájában terjesztik, amely független a kerneltől. Az OpenZFS kódalap stabilitása más Linux fájlrendszerekével összehasonlíthatónak értékelhető.
Főbb változások:
- Megvalósították a lehetőséget a RAIDZ meglévő tömbhöz új lemezek dinamikus hozzáadására a tároló méretének növelése érdekében a működés leállítása nélkül és új tárolócsoport létrehozásának szükségessége nélkül. Az új lemezek figyelembevételével a redundáns adatok újraelosztása automatikusan történik. A meglévő csoporthoz lemez hozzáadásához a »zpool attach POOL raidzP-N NEW_DEVICE« parancsot lehet használni, míg a háttérfolyamat befejezésének figyelésére a »zpool status« parancsot kell futtatni.
- Jelentősen felgyorsultak az adatok deduplikálásához kapcsolódó műveletek. A különböző optimalizálások érintették a deduplikáló táblák formátumát is, ezért a javasolt optimalizálások aktiválásához a már meglévő tárolókban be kell kapcsolni a „fast_dedup” opciót, ezután új deduplikáló táblák jönnek létre, amelyek párhuzamosan működnek a régi táblákkal.
- Hozzáadva a közvetlen bemeneti/kimeneti (Direct IO) mód, amely lehetővé teszi a háttértár gyorsítótárának (ARC - Adaptive Replacement Cache) megkerülésével történő olvasási és írási műveletek végrehajtását. Ez a mód növelheti a hatékonyságot olyan helyzetekben, ahol a gyorsítótárazás a memóriában végzett további másolási műveletek miatt negatívan befolyásolhatja a teljesítményt, például NVMe eszközök használata esetén.
- A legtöbb parancshoz (zfs list|get|mount|version, zpool status|list|get|version) hozzá lett adva a „-j” opció, amely JSON formátumban adja vissza az eredményeket.
- A fájl- és könyvtárnevek megengedett mérete 255-ről 1023 karakterre nőtt (az új méretet 255 4-bájtos karakter elhelyezésének számításával választották).
- Teljesítményoptimalizálások történtek a kód alap különböző részein.
- A kernel modulhoz hozzáadott opciók:
- 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
Forrás: opennet.ru
