11 hónapos fejlesztés után megjelent az OpenZFS 2.4.0 projekt kiadása, amely a ZFS fájlrendszer Linux és FreeBSD verzióját fejleszti. A projekt a „ZFS on Linux” néven vált ismertté, és korábban a Linux kernel kiegészítőjének fejlesztésére korlátozódott, de a FreeBSD kódjával való egyesítést követően az OpenZFS alapértelmezett megvalósításaként ismerték el és átnevezték.
Az OpenZFS működése a 4.18 és 6.18 verziójú Linux kernel és a 13.3 verziójú FreeBSD összes ágazatával tesztelve lett. A kód a CDDL szabad licenc alatt terjeszthető. Az OpenZFS már használatban van a FreeBSD alatt, és benne van a Debian, Ubuntu, Gentoo, NixOS és ALT Linux disztribúciókban is. Az új verzióhoz tartozó csomagokat hamarosan előkészítik a főbb Linux disztribúciókhoz, beleértve a Debian, Ubuntu, Fedora, RHEL/CentOS rendszereket is.
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:
- Lehetővé vált az alapértelmezett kvóták beállítása felhasználók, csoportok és projektek számára. A korábbi verziókban a kvóták csak külön-külön állíthatók be minden felhasználóazonosító esetében. Az új verzióban lehetőség van egy alapértelmezett érték megadására, amely alkalmazásra kerül, ha egy adott felhasználó számára nem lett beállítva kvóta.
- Hozzáadva az O_DIRECT (Közvetlen I/O) mód visszavonásának lehetősége, amely lehetővé teszi a nem oldalhatáron megjelenő lekérdezésekhez egy könnyű, gyorsítótárazás nélküli I/O mechanizmus használatát.
- Javasolt egy új unifikált algoritmus a írási műveletek és a blokkok elhelyezésének sebességének korlátozására, amely csökkenti a vdev (Virtuális Eszköz) töredezettségét azáltal, hogy egyesíti a több írási műveletet, és nagyobb folyamatos szabad területeket használ számukra ahelyett, hogy az egyes írási műveletek eredményeit apró szabad területekbe helyezné.
- A titkosítás teljesítménye javul az AES-GCM algoritmus megvalósításában használt AVX2 utasítások alkalmazásával. A végzett tesztek során a sebességnövekedés elérte a 80%-ot.
- Engedélyezett a ZIL blokkok (ZFS Intent Log) elhelyezése nemcsak normál vdev-en vagy külön SLOG eszközön, hanem speciális vdev-en is. Ha a normál vdev merevlemezhez van kapcsolva, míg a speciális vdev SSD tárolóval, a változás lehetővé teszi a helyzetek kizárását, amikor az adatok SSD-re íródnak, míg a kapcsolódó ZIL blokkok merevlemezre, ami késleltetéseket eredményez.
- Lehetővé vált a special_small_blocks attribútum beállítása szakaszokhoz (ZVOL), nem csupán fájlrendszerekhez, ami lehetővé teszi a kis blokkok elhelyezését egy külön speciális vdev-en, például egy SSD-n.
- Hozzáadva a "zfs rewrite -P" felülírási mód, ami lehetőség szerint megőrzi a logikai létrehozási időt, így megkülönböztethetjük azokat a blokkokat, amelyeket csupán áthelyeztek a kötetbe a felhasználó által valóban módosított blokkoktól.
- A "zpool trim", "zpool scrub" és "zpool initialize" parancsokhoz megvalósítva a "-a" (--all) opció, amely lehetővé teszi e parancsok az összes importált kötetre való azonnali alkalmazását.
- Hozzáadva a "zpool scrub -S -E" parancs az adatok ellenőrzőösszegének ellenőrzésére vonatkozóan, amelyek adott időintervallumba esnek.
- Új optimalizálások kerültek hozzáadásra a deduplikálási folyamathoz.
Forrás: opennet.ru
