OpenZFS 2.2, ZFS megvalósítások kiadása Linuxra és FreeBSD-re

Több mint két évnyi fejlesztés után megjelent az OpenZFS 2.2 projekt kiadása, amely a ZFS fájlrendszer megvalósítását fejleszti Linuxra és FreeBSD-re. A projekt "ZFS on Linux" néven vált ismertté, és korábban a Linux kernel moduljának fejlesztésére korlátozódott, de miután a támogatást áthelyezték a FreeBSD-re, az OpenZFS fő megvalósításaként ismerték fel, és átnevezték.

Az OpenZFS-t 3.10-től 6.5-ig terjedő Linux kernelekkel és a 12.2-RELEASE-tól kezdődően az összes FreeBSD-ággal tesztelték. A kód ingyenes CDDL licenc alatt kerül terjesztésre. Az OpenZFS-t már használják a FreeBSD-ben, és benne van a Debian, Ubuntu, Gentoo, Sabayon Linux és ALT Linux disztribúciókban. Az új verziót tartalmazó csomagok hamarosan elkészülnek a nagyobb Linux disztribúciókhoz, köztük a Debian, Ubuntu, Fedora, RHEL/CentOS számára.

Az OpenZFS a fájlrendszerhez és a kötetkezelőhöz kapcsolódó ZFS-összetevők megvalósítását is biztosítja. Különösen a következő összetevőket valósítják meg: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) és ZPL (ZFS POSIX Layer). Ezenkívül a projekt lehetővé teszi a ZFS-t a Luster fürt fájlrendszer háttérprogramjaként. A projekt munkája az eredeti ZFS kódon alapul, amelyet az OpenSolaris projektből importáltak, és az Illumos közösség fejlesztéseivel és javításaival bővítették. A projekt kidolgozása a Livermore National Laboratory munkatársainak részvételével zajlik az Egyesült Államok Energiaügyi Minisztériumával kötött szerződés alapján.

A kód ingyenes CDDL licenc alatt kerül terjesztésre, amely nem kompatibilis a GPLv2-vel, amely nem teszi lehetővé az OpenZFS integrálását a Linux kernel fő ágába, mivel a kód keverése a GPLv2 és CDDL licencek alatt elfogadhatatlan. A licencelési inkompatibilitás megkerülésére úgy döntöttek, hogy a teljes terméket CDDL licenc alatt külön letölthető modulként terjesztik, amelyet a kerneltől külön szállítanak. Az OpenZFS kódbázis stabilitása a többi FS for Linuxhoz hasonlónak tekinthető.

Nagy változások:

  • Egy blokkklónozási mechanizmus került hozzáadásra, amely lehetővé teszi, hogy másolatot készítsen egy fájlról vagy annak egy részéről anélkül, hogy adatokat duplikálna, a második példányban hivatkozva a forrásfájl már meglévő adatblokkjaira anélkül, hogy azokat ténylegesen másolná. Ha a forrásfájlban vagy annak másolataiban módosításokat hajtanak végre, a blokkok másolódnak, és a létrehozott másolatokon módosulnak (fájl szintű másolás írásra mód). A klónozási mechanizmus alapján valósul meg a reflink művelet, amivel különböző másoló segédprogramokban automatikusan klónokat lehet létrehozni, például a /bin/cp új verzióiban Linux alatt.
  • Hozzáadott támogatás a Linuxban a konténerek elkülönítésére használt technológiákhoz, például a renameat rendszerhíváshoz, az overlayfs fájlrendszerhez, a felhasználói azonosítók hozzárendeléséhez a csatlakoztatáskor és a tárolók névtereinek delegálásához.
  • Az ellenőrzőösszeg-ellenőrzési műveletek (scrub) során észlelt hibák naplója megvalósult. A „zpool status” parancs futtatásakor a sérült blokk által érintett összes fájlrendszerről, pillanatképről és klónról információ jelenik meg. Az ismert hibás blokkok gyors helyreállításához használja a "zpool scrub -e" parancsot.
  • Hozzáadtuk a BLAKE3 kriptográfiai hash funkció használatának lehetőségét az ellenőrző összegekhez, amely figyelemre méltó a nagyon magas hash számítási teljesítményéről (háromszor gyorsabb, mint az Edon-R és lényegesen gyorsabb, mint az sha256 és sha512), miközben biztosítja a megbízhatóságot SHA-3 szinten.
  • Megvalósult a „zfs Receive -c” művelet, amivel a fájlrendszerben sérült adatok (nem metaadatok) visszaállíthatók, pillanatképek és klónok, olyan esetekben, amikor létezik replikált biztonsági másolat, amelyet korábban a „zfs send” paranccsal mentett. .
  • Támogatás hozzáadva az egyes vdev virtuális lemezek tulajdonságainak programozott beállításához és olvasásához.
  • Hozzáadtuk a tetszőleges egyéni tulajdonságok vdev és zpool összekapcsolásának lehetőségét, hasonlóan a zfs adatkészlet egyéni tulajdonságaihoz.
  • Az adaptív ARC gyorsítótár (Adaptive Replacement Cache) továbbfejlesztett megvalósítása, amely javítja az olvasási műveletek teljesítményét. Az ARC jobban alkalmazkodik a nagy terhelésekhez, és minimálisra csökkenti a beállítások kézi optimalizálásának szükségességét.
  • Hozzáadott támogatás a hardveres gyorsítási mechanizmusokhoz az SHA2 ellenőrző összegek kiszámításához.
  • Az Edon-R ellenőrző összegek megvalósítását átírták és optimalizálták.
  • Ha a zstd algoritmust adattömörítésre használjuk, felgyorsul azon helyzetek meghatározása, amikor a tömörítés értelmetlen (az adatokat nem lehet tömöríteni).
  • A Prefetch mechanizmust továbbfejlesztették az intenzív I/O során végzett munka felgyorsítása érdekében.
  • Számos általános optimalizálást vezettek be a teljesítmény javítása érdekében.

Forrás: opennet.ru

Hozzászólás