OpenZFS - OpenZFS

OpenZFS
Fejlesztő (k) OpenZFS projekt
Bemutatott 2013 ; 8 évvel ezelőtt ( 2013 )
Szerkezetek
A könyvtár tartalma Bővíthető hash tábla
Korlátok
Max. hangerő mérete 256 billió  yobibájt (2 128  bájt)
Max. fájl méret 16  exbibájt (2 64  bájt)
Max. fájlok száma
Max. fájlnév hossza 255 ASCII karakter (kevesebb többbájtos karakteres szabványokhoz, például Unicode )
Jellemzők
Villák Igen ("kiterjesztett attribútumoknak" nevezik, de ezek teljes körű adatfolyamok)
Tulajdonságok POSIX
Fájlrendszer -engedélyek POSIX, NFSv4 ACL -ek
Átlátszó tömörítés Igen
Átlátszó titkosítás Igen
Az adatok deduplikációja Igen
Másolás-írás Igen
Egyéb
Támogatott operációs rendszerek illumos disztribúciók, FreeBSD és származékai, macOS , ZFS Linuxon kernelmodulon keresztül , Microsoft Windows
Adattár GitHub .com / openzfs / ZFS
OpenZFS projekt
Openzfs.svg
Képződés 2013 ; 8 évvel ezelőtt ( 2013 )
Termékek OpenZFS fájlrendszer
Szülői szervezet
Közérdekű szoftver
Weboldal openzfs .org

Az OpenZFS egy nyílt forráskódú tárolási platform, amely magában foglalja a hagyományos fájlrendszerek és a kötetkezelő funkcióit . Tartalmazza az adatok sérülése elleni védelmet , a nagy tárolókapacitások támogatását, a hatékony adattömörítést , a pillanatfelvételeket és az írásra való másolás klónokat, a folyamatos integritás-ellenőrzést és az automatikus javítást, a titkosítást , a távoli replikációt a ZFS küldéssel és fogadással, valamint a RAID-Z-t . A névadó OpenZFS projekt összehozza az illumos, a Linux, a FreeBSD és a macOS platformok fejlesztőit, valamint a vállalatok széles körét az éves OpenZFS Developer Summit keretében.

Az OpenZFS alapító tagjai közé tartozik Matt Ahrens, a ZFS egyik fő építésze. Az OpenZFS projekt az Oracle ZFS projekt nyílt forráskódú származéka . 2019 -től az OpenZFS (egyes platformokon, például a FreeBSD -n ) fokozatosan a ZFS Linuxon alapul, amely gyorsabban fejlődött, mint az OpenZFS más változatai, és olyan új funkciókat tartalmaz, amelyek még nem kerültek át a többi verzióra. Az egyesített kódbázis számos új funkciót és teljesítményfejlesztést tartalmaz, és OpenZFS 2.0 néven ismert.

Történelem

A ZFS fájlrendszert eredetileg a Sun Microsystems fejlesztette ki a Solaris operációs rendszerhez. A ZFS forráskódját 2005 -ben adták ki a Common Development and Distribution License (CDDL) alatt az OpenSolaris operációs rendszer részeként, majd később más operációs rendszerekre és környezetekre is átvitték.

Az alábbiakban felsoroljuk a ZFS és annak különböző megvalósításai fejlesztésének legfontosabb eseményeit, amelyek az OpenZFS mint esernyő projekt létrehozásához vezettek:

  • 2001: A ZFS zárt forrású fejlesztése a Sun Microsystems két mérnökével kezdődött.
  • 2005: A ZFS forráskódja megjelent az OpenSolaris részeként.
  • 2006: Megkezdődött a FUSE ZFS port fejlesztése Linuxra .
  • 2007: Az Apple megkezdte a ZFS átvitelét a Mac OS X rendszerbe.
  • 2008: A FreeBSD portja megjelent a FreeBSD 7.0 részeként.
  • 2008: Megkezdődött egy natív ZFS Linux port fejlesztése, amelyet ZFS néven ismernek Linuxon.
  • 2009: Az Apple ZFS projektje lezárult, és a MacZFS projekt folytatta a kód fejlesztését.
  • 2010: Az OpenSolaris megszűnt, így a ZFS továbbfejlesztése a Solaris-on már nem nyílt forráskódú.
  • 2010: az illumos elágazott az OpenSolaris-tól, mint nyílt forrású utódja, és folytatta a ZFS fejlesztését a szabadban. A ZFS portjai más platformokra tovább húzták az illumos felfelé irányuló változásokat.
  • 2012: Funkciójelzők kerültek bevezetésre a korábbi, lemezen levő verziószámok helyett, lehetővé téve a ZFS lemezes formátum könnyebb elosztott fejlesztését az új funkciók támogatása érdekében.
  • 2013: Együtt a MacZFS stabil verziójával, prototípusgenerációja ( OpenZFS néven ismert OS X -en vagy O3X -en) a ZFS -t használja Linuxon az új upstream kódbázisként.
  • 2013: A ZFS első stabil kiadása Linuxon.
  • 2013: Az OpenZFS hivatalos bejelentése ernyőprojektként. Az illumosból rendszeresen új funkciókat és javításokat húznak be az OpenZFS -be, és minden portba más platformokra tolják, és fordítva.
  • 2016: Az Ubuntu 16.04 alapértelmezés szerint tartalmazza a nyílt forráskódú ZFS fájlrendszer-változatot

Hordozott verziók (2005–2010)

Mivel az FSF azzal a CDDL GPL jogi inkompatibilitás 2005 Sun végrehajtása a ZFS fájlrendszer nem használható alapként a fejlődés egy Linux kernel modult , azt nem beolvadt a Linux kernel fővonal , és a Linux disztribúciók nem tartalmazta előre lefordított kernelmodulként. Megkerülő megoldásként a FUSE -t, a fájlrendszerek felhasználói térben történő futtatását lehetővé tevő keretrendszert használták Linuxon elválasztó rétegként, amelyhez a licencproblémák nem érvényesek, bár saját problémakörrel, amelyek teljesítménybüntetést is tartalmaznak. Az Ubuntu 16.04  LTS 2016. áprilisi kiadása azonban tartalmazza a CDDL-engedéllyel rendelkező ZFS-t Linuxon kernelmodulként, amelyet külön projektként tartanak fenn, a Linux kernel fővonalán kívül, licenckompatibilitást követelve.

Apple/macOS

A Mac OS X 10.5 kiadási verziójában a ZFS csak olvasható módban volt elérhető a parancssorból, amelyből hiányzik a zpool-ok létrehozásának vagy írásának lehetősége. A 10.5-ös kiadás előtt az Apple kiadta a "ZFS Beta Seed v1.1" -t, amely lehetővé tette az olvasási-írási hozzáférést és a zpoolok létrehozását; a "ZFS Beta Seed v1.1" telepítője azonban csak a 10.5.0 verziónál működik, és nem frissült a 10.5.1 és újabb verziókhoz. 2007 augusztusában az Apple megnyitott egy ZFS projektet a Mac OS Forge weboldalán. Ezen a webhelyen az Apple megadta a ZFS portjának forráskódját és bináris fájljait, amelyek olvasási-írási hozzáférést tartalmaznak, de telepítő nem volt elérhető, amíg egy harmadik fél fejlesztője nem hozta létre. 2009 októberében az Apple bejelentette, hogy leállítja a ZFS projektet a Mac OS Forge rendszeren. Ez azt jelenti, hogy a saját tárhelyük és a ZFS -ben való részvételük véglegesen megszűnt. Nem adtak magyarázatot. Az Apple végül kiadta a törvényileg előírt, CDDL-ből származó, a ZFS végső nyilvános bétaverziójának forráskódját, kódja "10a286". A teljes ZFS támogatást egyszer a Snow Leopard Server ( Mac OS X Server 10.6) szolgáltatásaként hirdették meg . Mire azonban az operációs rendszer megjelent, az erre a funkcióra vonatkozó összes hivatkozás eltávolításra került a szolgáltatásoldaláról. Az Apple nem nyilatkozott a kihagyással kapcsolatban.

Az Apple "10a286" forráskód -kiadását, valamint a korábban kiadott forrás és bináris fájlok verzióit megőrizték, és a MacZFS projekt új fejlesztést fogadott el, hogy máshol is folytathassa a fejlesztést. 2012 júliusától a MacZFS a zpool 8 -as és a ZFS 2 -es verzióját valósítja meg a Solaris 2008. októberi kiadásából . További történelmi információk és kommentárok a MacZFS weboldalán és a GYIK -ban találhatók.

Megvalósítások

Solaris

OpenSolaris

Az OpenSolaris 2008.05, 2008.11 és 2009.06 a ZFS -t használja alapértelmezett fájlrendszerként. Több mint egy tucat harmadik féltől származó disztribúció létezik.

OpenIndiana

OpenIndiana használ OpenZFS a szolgáltatás megjelöli megvalósított Illumos . A ZFS 28. verziója a 151a3 verzióig használatos.

Az OpenSolaris snv_134 -ről OpenIndiana -ra és Solaris 11 Express -re történő frissítéssel lehetőség van a Solaris 11 Express frissítésére és külön indítására ugyanazon a ZFS -készleten.

BSD

Mac operációs rendszer

Az OpenZFS az OSX rendszeren (rövidítve O3X ) a ZFS megvalósítása a macOS számára . Az O3X aktív fejlesztés alatt áll, szoros kapcsolatban a ZFS -el Linuxon és az illumos ZFS implementációjával, miközben fenntartja a szolgáltatásjelző -kompatibilitást a ZFS -el Linuxon. Az O3X a zpool 5000 -es verzióját valósítja meg, és magában foglalja az eredetileg MacZFS -hez írt Solaris Porting Layer -t (SPL), amelyet tovább fejlesztettek az illumos kmem és vmem allokátorokon alapuló memóriakezelő rétegre. Az O3X teljes funkcionalitású, támogatja az LZ4 tömörítést, a deduplikációt, az ARC, az L2ARC és a SLOG funkciót.

A MacZFS egy ingyenes szoftver, amely támogatja a ZFS használatát a macOS rendszeren. A stabil örökölt ág akár ZFS készlet 8 -as és ZFS fájlrendszer 2 -es verzióját is biztosítja. A Linux és OpenZFS ZFS -en alapuló fejlesztési ág frissített ZFS -funkciókat biztosít, például a ZFS zpool 5000 -es verzióját és a szolgáltatás jelzőit.

A ZFS (Zevo) szabadalmaztatott megvalósítása ingyenesen elérhető volt a GreenBytes, Inc. -től, amely a ZFS fájlrendszer 5. verzióját és a ZFS készlet 28. verzióját is megvalósította. A Zevo korlátozott ZFS szolgáltatáskészletet kínált a további kereskedelmi fejlesztésekig; 2014 -ben eladták az Oracle -nek, ismeretlen jövőbeli tervekkel.

DragonFlyBSD

Edward O'Callaghan elindította a ZFS kezdeti portját a DragonFlyBSD -hez .

NetBSD

A NetBSD ZFS port a 2007 -es Google Summer of Code részeként indult, és 2009 augusztusában a kódot egyesítették a NetBSD forrásfájával.

FreeBSD

Paweł Jakub Dawidek átvitte a ZFS -t a FreeBSD -re , és a 7.0 verzió óta a FreeBSD része. Ide tartozik a zfsboot, amely lehetővé teszi a FreeBSD indítását közvetlenül egy ZFS adatkészletből.

A FreeBSD ZFS implementációja teljesen működőképes; az egyetlen hiányzó szolgáltatás a kernel CIFS szerver és az iSCSI , de ez utóbbi hozzáadható külső csomagok használatával. A Samba felhasználható felhasználói térbeli CIFS szerver biztosítására.

A FreeBSD 7-STABLE (ahol a 7.x verziók frissítéseit kötelezik el) a zpool 6. verziót használja.

A FreeBSD 8 a ZFS sokat frissített implementációját tartalmazza, és a zpool 13-as verziója támogatott. 2010. január 11-én a 8-STABLE ághoz hozzáadásra került a zpool 14-es verzió támogatása, amely a FreeBSD 8.1-es kiadásában is megtalálható. A zpool 15 -ös verziója támogatott a 8.2 -es kiadásban. A 8-STABLE ág 2011. június elején támogatást kapott a zpool v28 és zfs 5 verzióihoz. Ezeket a módosításokat 2012. április közepén tették közzé a FreeBSD 8.3 verziójával.

A FreeBSD 9.0-RELEASE a ZFS Pool 28-as verzióját használja.

A FreeBSD 9.2-RELEASE az első FreeBSD-verzió, amely az új "feature flags" alapú megvalósítást használja, így a Pool verzió 5000.

A FreeBSD 13.0-RELEASE átváltja a ZFS megvalósítását az illumos alapú kódbázisról az egységes OpenZFS 2 kódbázisra. Ez a módosítás lehetővé teszi, hogy a FreeBSD sokkal gyorsabban fogadja az OpenZFS fejlesztéseket.

MidnightBSD

A MidnightBSD , a FreeBSD-ből származó asztali operációs rendszer, támogatja a ZFS tároló 6. verzióját a 0.3-RELEASE-től. Ez a FreeBSD 7.0-RELEASE- ben található kódból származik . A 28-as tárolókészlet frissítése folyamatban van 0.4-CURRENT alatt, és 9-STABLE forrásokon alapul a FreeBSD 9.1-RELEASE kódja körül.

TrueOS (korábban PC-BSD)

A TrueOS (korábban PC-BSD néven ismert, mára megszűnt) a FreeBSD asztali központú disztribúciója volt, amely örökölte ZFS támogatását.

TrueNAS Core, (korábban FreeNAS)

A TrueBAS Core, a FreeBSD-n alapuló , beágyazott nyílt forráskódú, hálózathoz csatlakoztatott tároló (NAS) , ugyanazzal a ZFS támogatással rendelkezik, mint a FreeBSD és a PC-BSD .

pfSense

A pfSense nyílt forráskódú BSD -alapú útválasztó a 2.4 -es verziótól támogatja a ZFS -t , beleértve a telepítést és a ZFS -készletekbe való indítást.

XigmaNAS

Az XigmaNAS (korábban NAS4Free), a FreeBSD-n alapuló , beágyazott nyílt forráskódú, hálózathoz csatlakoztatott tároló (NAS) disztribúciója ugyanazt a ZFS támogatást nyújtja, mint a FreeBSD, a ZFS tárolókészlet 5000-es verziója. Ez a projekt a FreeNAS 7 sorozat projektjének folytatása.

Debian GNU/kFreeBSD

A FreeBSD kernelre épülő Debian GNU/kFreeBSD ZFS támogatással rendelkezik a kerneltől. Azonban további userland eszközökre van szükség, míg a ZFS root vagy /boot fájlrendszerként is használható, ebben az esetben a szükséges GRUB konfigurációt a Debian telepítő hajtja végre a Wheezy kiadása óta .

2013. január 31-től a ZPool verzió a Squeeze kiadáshoz 14, a Wheezy -9 kiadáshoz pedig 28 verzió.

Linux

Bár a ZFS fájlrendszer támogatja a Linux alapú operációs rendszereket, nehézségek merülnek fel a Linux disztribúció -karbantartók számára, akik natív támogatást kívánnak nyújtani a ZFS -hez termékeikben, mivel a ZFS -kód által használt CDDL -licenc és a Linux által használt GPL -licenc között lehetséges jogi összeférhetetlenség áll fenn. kernel. A ZFS támogatás Linuxon belüli engedélyezéséhez egy CDDL-licencű ZFS kódot tartalmazó betölthető kernel modult kell fordítani és betölteni a kernelbe. A Szabad Szoftver Alapítvány szerint a GPL licenc megfogalmazása törvényileg tiltja a kapott termék származtatott műként történő újraelosztását , bár ez a nézet némi vitát váltott ki.

ZFS a FUSE -on

A licenc -inkompatibilitás egyik lehetséges megoldását 2006 -ban próbálták ki, a ZFS -kód kísérleti portjával a Linux FUSE -rendszeréhez. A fájlrendszer teljes egészében a felhasználói térben futott ahelyett, hogy a Linux kernelbe lett volna integrálva, ezért nem tekintették a kernel származékos munkájának. Ez a megközelítés volt működőképes, de szenvedett jelentős teljesítmény büntetéseket képest integrálja a fájlrendszer natív kernel modul fut kernel térben . 2016 -tól úgy tűnik, hogy a ZFS on FUSE projekt megszűnt.

Natív ZFS Linuxon

A ZFS for Linux natív portja, amelyet a Lawrence Livermore National Laboratory (LLNL) készített, 2013 márciusában jelent meg, a következő kulcsfontosságú eseményeket követően:

  • 2008: prototípus az életképesség meghatározásához
  • 2009: kezdeti ZVOL és Luster támogatás
  • 2010: a fejlesztés átkerült a GitHub -ra
  • 2011: POSIX réteg hozzáadva
  • 2011: a korai örökbefogadók közössége
  • 2012: ZFS gyártási felhasználása
  • 2013: stabil GA kiadás

Mivel augusztus 2014. ZFS Linux használja OpenZFS pool verziószám 5000, ami azt jelzi, hogy a funkciók Támogatja határozza keresztül szolgáltatás megjelöli . Ez a készlet változatlan szám, amely várhatóan soha nem ütközik az Oracle által megadott verziószámokkal.

KQ InfoTech

Egy másik natív portot fejlesztett ki a KQ InfoTech 2010 -ben. Ez a port a Lawrence Livermore National Laboratory zvol implementációját használta kiindulópontként. A zpool v28 -at támogató kiadást 2011 januárjában jelentették be. 2011 áprilisában a KQ Infotech -t megvásárolta az sTec, Inc. , és a ZFS -rel kapcsolatos munkájuk megszűnt. Ennek a portnak a forráskódja megtalálható a GitHubon .

A KQ InfoTech munkáját végül integrálták az LLNL natív ZFS for Linux portjába.

Forráskód -eloszlás

Míg a ZFS kódot tartalmazó fordított bináris fájlok terjesztésével a licenc inkompatibilitás felmerülhet, általánosan elfogadott, hogy ez magát a forráskód terjesztését nem érinti. A Gentoo -ban a ZFS gyökér fájlrendszerének konfigurálása jól dokumentált, és a szükséges csomagok telepíthetők a csomagtárból. A Slackware dokumentációt is tartalmaz a ZFS támogatásáról, mind kernelmodulként, mind a kernelbe építve.

Ubuntu integráció

A CDDL licencnek a GPL licenccel való kompatibilitásának kérdése 2015-ben újból felmerült, amikor a Linux disztribúciós Ubuntu bejelentette, hogy előre lefordított OpenZFS bináris kernel modulokat kíván a végfelhasználók rendelkezésére bocsátani közvetlenül a terjesztés hivatalos csomagtárából. 2016 -ban az Ubuntu bejelentette, hogy egy jogi felülvizsgálat azt a következtetést vonta le, hogy a ZFS támogatása bináris kernel modulon keresztül nem sérti a GPL licenc rendelkezéseit. Mások, például a Software Freedom Law Center követte az Ubuntu következtetését, míg az FSF és az SFC megismételte ellentétes álláspontját.

A 2016. április 21 -én megjelent Ubuntu 16.04 LTS ("Xenial Xerus") lehetővé teszi a felhasználó számára az OpenZFS bináris csomagok telepítését közvetlenül az Ubuntu szoftvertárházakból. 2019 -től nem indítottak jogi támadást a Canonical ellen e csomagok forgalmazásával kapcsolatban.

2019 -től az Ubuntu támogatja a ZFS kísérleti telepítését gyökér fájlrendszerként, kezdve a 19.10 -es kiadással ("Eoan Ermine"), hogy támogassa a közel tiszta ZFS operációs rendszer GRUB és más operációs rendszerekkel való együttélését ugyanazon a lemezen.

TrueNAS skála

A TrueNAS iXsystems verziója, de Debian Linuxon alapul. Továbbra is OpenZFS -t használ a fő tároláshoz. De ad hozzá némi konténer támogatást a Kubernetes & Docker segítségével. Ezenkívül lehetővé teszi a fürtözött Docker és ZFS csillogást. Béta verzióban 2021. június 22 -től.

Microsoft Windows

2010 -ben megkísérelték a nyílt forráskódú ZFS kikötőjét, de 2012 -ben több mint egy éves szünet után megszűnt. 2017 októberében Jörgen Lundman az OpenZFS fejlesztői csúcstalálkozóján bejelentette az OpenZFS új portját.

Kiadások és funkció előzmények

Illumoson belül és (2013 -tól) OpenZFS

  • 2010: az illumos nyílt forráskódú utódként alapult, és folytatta a ZFS fejlesztését a szabadban. A ZFS portjai más platformokra tovább továbbították az illumos felfelé irányuló változásokat.
  • 2013: megalapították az OpenZFS projektet, amelynek célja a ZFS nyílt forráskódú összehangolt fejlesztése. Az OpenZFS projekt közös alapot nyújt minden érdekelt csoportnak és szervezetnek, hogy hozzájáruljanak és együttműködjenek a közös nyílt forráskódú ZFS -mag létrehozásában, emellett fenntartanak minden olyan speciális kódot és érvényesítési folyamatot, amelyek szükségesek ahhoz, hogy a ZFS -alapkód saját egyéni rendszereikkel működjön. .

Egyéb portok és villák

Az alábbiakban felsoroljuk a nyílt forráskódú ZFS portokat és villákat:

Részletes kiadási előzmények

A ZFS az Oracle Solaris rendszerben: az új szolgáltatások bevezetésekor a készlet és a fájlrendszer verziószámait megnövelik, hogy meghatározzák a rendelkezésre álló formátumot és szolgáltatásokat. Az egyes fájlrendszer -verziókban elérhető szolgáltatásokhoz egy adott készletverzió szükséges.

Az OpenZFS elosztott fejlesztése magában foglalja a szolgáltatásjelzőket és a készlet 5000 -es változatát, amely változatlan szám, amely várhatóan soha nem ütközik az Oracle által megadott verziószámokkal. A korábbi verziószámok továbbra is léteznek az 1–28 -as készletverziókhoz, amelyekre az 5000 -es verzió utal. Az Illumos erre a célra az 5000 -es változatot használja. A jövőbeni formátumváltoztatások a funkciójelzőkön keresztül függetlenül engedélyezhetők / letilthatók.

Verziótörténet

Legenda:
A legújabb FOSS stabil kiadás
ZFS Pool verziószáma Kiadási dátum Jelentős változások
5000 OpenZFS A készlet változatlan változata annak jelzésére, hogy a készlet új szolgáltatásokat jelez a 28 -as változat után, a ZFS szolgáltatás jelzőit használva, nem pedig a készlet verziójának növelésével

Medence változatok és jellemző zászlók

Eredetileg a készlet és a fájlrendszer verziószámait növelték az új szolgáltatások bevezetésével, hogy kijelölhessék a lemezes fájlrendszer formátumát és az elérhető szolgáltatásokat. Ez jól működött, amikor egyetlen entitás irányította a ZFS fejlesztését, és ez a verziószámítási rendszer még mindig használatban van az Oracle Solaris ZFS -ével .

Egy elosztottabb fejlesztési modellben az egyetlen verziószámmal való szereplés távolról sem ideális, mivel az OpenZFS minden megvalósításának meg kell egyeznie a lemezes fájlrendszer formátumának minden módosításával. A megoldás által kiválasztott OpenZFS bevezetése volt jellemző zászlók , mint egy új verzióképzés rendszert , hogy a címkéket a lemezen méret változik egyedi nevek, és támogatja mind teljesen független méret változások és méret változások függenek egymástól. Egy készlet áthelyezhető és használható az OpenZFS megvalósítások között, amennyiben a készlet által használt összes szolgáltatásjelzőt mindkét megvalósítás támogatja.

Az OpenZFS rendszerben a készlet verziója véglegesen 5000 -re van állítva, ami azt jelenti, hogy a készlet új funkciókat jelez a ZFS szolgáltatás jelzőinek beállításával vagy visszaállításával, nem pedig a készlet verziójának növelésével. Az 5000 -es számot azért választották, mert várhatóan soha nem ütközik az Oracle által megadott verziószámokkal. A korábbi verziószámok továbbra is léteznek az 1–28. A jövőbeni lemezformátum-módosítások ezeken a funkciójelzőkön keresztül függetlenül engedélyezhetők / letilthatók.

A korábbi verziószámok továbbra is léteznek az 1–28 -as készletverziókhoz, és ezek az 5000 -es verzióból következnek; az eredeti javaslat az volt, hogy az 1000 -t használják a pool változatként. A jövőbeni lemezformátum-módosítások a funkciójelzőkön keresztül függetlenül engedélyezhetők és letilthatók.

A funkciójelzők készletkészletként jelennek meg, az alábbi elnevezési séma szabályait követve:

  • A tulajdonság nevének formátuma a tulajdonság @<org-name>: <feature-name>
  • Az <org-name> a szolgáltatást kifejlesztő szervezet fordított DNS neve, amely biztosítja az egyedi tulajdonságneveket.
  • A tulajdonságnevek lerövidíthetők a @<feature-name> elemre, ha egyértelműek maradnak.

Például a feature@com.foocompany: async_destroy érvényes tulajdonságnév, és lerövidíthető a @async_destroy feature -re .

Minden egyes készlet lehet letiltott , engedélyezett vagy aktív állapotban. A letiltott funkciók azok, amelyeket nem használnak, és nem módosulnak a lemezen lévő formátumok; ennek eredményeként az ilyen funkciók visszafelé kompatibilisek . Engedélyezett funkciók azok, amelyeket használni fognak, a lemez formátumának módosítása még nem történt meg, de a szoftver bármikor elvégezheti a módosításokat; az ilyen funkciók még mindig visszafelé kompatibilisek. Az aktív funkciók azok, amelyek visszafelé inkompatibilis változásokat hajtottak végre a készletben.

Ha bármely készlet funkció engedélyezve van, a készlet korábbi verziója automatikusan 5000 -re frissül, és minden más előfeltétel funkció is engedélyezve van. Alapértelmezés szerint új készletek jönnek létre az összes támogatott funkció engedélyezésével. Általánosságban elmondható, hogy egy szolgáltatás állapota aktív állapotról visszakapcsolható engedélyezettre , így visszavonható a lemezen végrehajtott formátumváltás, és a készlet újra kompatibilis lesz egy régebbi OpenZFS implementációval; azonban egyes funkciók esetében, amelyek esetleg nem lehetségesek.

A lemezen megjelenő formátumváltozásokhoz írási vagy olvasási funkciók társíthatók . Az előbbiek azok a szolgáltatások, amelyeket az OpenZFS implementációnak támogatnia kell, hogy képes legyen a készletbe írni, míg az ilyen funkciók támogatása nem kötelező a készlet írásvédett módban történő megnyitásához. Ez utóbbiak azok a jellemzők, amelyeket az OpenZFS implementációnak támogatnia kell, hogy olvasni tudjon a készletből, vagy csak megnyissa, mert a készlet megnyitása nem lehetséges anélkül, hogy ténylegesen olvasnánk belőle.

Például az async_destroy szolgáltatás új lemezes adatstruktúrát ad hozzá a felszabadított adatkészletek nyomon követéséhez, de az OpenZFS implementációnak nem kell tudnia erről az adatstruktúráról, hogy csak olvasható módban érje el a készletet. Ezenkívül egy olyan készletbe írni, amely bizonyos funkciókat tartalmaz aktív állapotban, nem teszi lehetővé az OpenZFS megvalósítás, amely nem támogatja ugyanazokat a szolgáltatásokat.

A szolgáltatásjelzők listája és az azokat támogató operációs rendszerek az Open-ZFS.org webhelyen érhetők el

OpenZFS 2.0

Történelmileg az OpenZFS -t alapvető ZFS -kódként valósították meg, és minden operációs rendszer csapata úgy alakította át, hogy illeszkedjen a projektjeikhez. Ez bizonyos esetekben a szolgáltatások stagnálásához és a szolgáltatások és parancssorok eltéréséhez vezetett, mivel a különböző operációs rendszerek eltérő funkciókat és hibajavításokat fejlesztettek ki, gyakran egyetlen platformra, nem pedig minden platformra. Idővel az új funkciók fejlesztése az Illumos -ról Linuxra vált . Ezeket az új funkciókat és javításokat vissza kellettportálni az Illumosra, mielőtt újra átvihetnék őket a FreeBSD-re. De ez nehéz volt, mert a Linux verzió számos kisebb változtatást is tartalmazott, amelyeket nehéz volt szétválasztani.

2018 -ban megállapodtak abban, hogy az OpenZFS fejlesztését felülvizsgálják ezen problémák orvoslása érdekében. Ahelyett, hogy az összes Linux -változtatást töredékesen importálná más platformokra, a teljes Linux ZFS -kód egészét „elforgatná”, más platformokat pedig az aktívabban fejlesztett Linux -verzióra építenének. A hordozott és új funkciók széles skáláját, köztük sok régóta várt fejlesztést is bevezetnék vagy átvinnék a platformokra, és a jövőbeli változásokat a platformok között megvitatnák a megvalósítás előtt. A terveim között megfelelő számhordozás rétegek megakadályozzák Linux GPL vagy Linux-KPI alátétet kódot vezetik be a többi platform mag .

Az OpenZFS 2.0 folyamatban lévő vagy átvitt funkciói hosszúak, és a következőket tartalmazzák:

  • A fejlesztések és új funkciók gyorsabb bevezetése platformokon keresztül.
  • Parancssori szabványosítás
  • Továbbfejlesztett medencehordozhatóság (az egyik rendszeren létrehozott ZFS -készleteket egy másik is használhatja)
  • A szélesebb platformok közötti paritás és platformfüggetlenség
  • A fedvény (egyesítés) rögzítései alapértelmezés szerint elfogadottak
  • Hibajavítások és fejlesztések
  • ZTS és számos más funkció a FreeBSD -n
  • TRIM és ACL MODE fejlesztések
  • ZFS visszatartás (a FreeBSD -től)
  • Továbbfejlesztett natív NFSv4 ACL -ek (FreeBSD)
  • Továbbfejlesztett AES-GCM teljesítmény titkosított készletekhez
  • Redaktált küldés/fogadás
  • Naplózott térképtér és egyéb metaslab -kezelési fejlesztések - egy projekt a ZFS szabad területkezelésének és "metaslabs" -ének újbóli megvalósításához a sokkal nagyobb hatékonyság érdekében
  • Gyors klón törlés
  • Zstd adattömörítés új lehetőségként
  • Csatorna programtulajdon öröklődése
  • AltiVec RAID-Z
  • Könyvjelző támogatás és másolás
  • Közvetlen IO támogatás
  • Állandó L2ARC (az L2ARC megmarad az újraindítás során)
  • Szekvenciális (nagy sebességű) súroló és rugalmasító
  • Súrolás szüneteltetése/folytatása
  • Resilver újraindítása
  • Eszköz (VDEV) eltávolítása
  • A Zpool inicializálása és ellenőrzőpontja
  • Csatorna programok
  • Nagy Dnode
  • Kiosztási osztályok (lehetővé téve a nagysebességű tárolás kijelölését a metaadatokhoz és a deduplikációs táblákhoz)
  • Párhuzamos medence szerelés
  • Per-vdev tulajdonságok
  • A duplikációs fejlesztéseket - a dedup -naplót (nagy sebességű deduplikáció), a dedup tábla méretkorlátait és a deduplikációs tábla előtöltését (teljes mértékben egyszerre betöltve, nem pedig szükség szerint darabonként) - mindezt 2018 áprilisában jelentették be hogy "szépen összejön" vagy nagyrészt kész

Lásd még

Hivatkozások

Külső linkek