ZFS

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. július 25-én felülvizsgált verziótól ; az ellenőrzésekhez 10 szerkesztés szükséges .
ZFS
Fejlesztő Oracle (korábban Sun Microsystems ) , OpenZFS fejlesztők
Fájlrendszer ZFS – Zettabyte fájlrendszer
Benyújtás dátuma 2005. november ( OpenSolaris )
Szerkezet
Mappa tartalma Bővíthető hash tábla
Korlátozások
Maximális fájlméret 16  exbibyte
Fájlok maximális száma 248 _
A fájlnév maximális hossza 255 bájt
Maximális kötetméret 256  zebibyte
Érvényes karakterek a címekben nincs kódolás vagy UTF-8 (opcionális)
Képességek
Dátumtárolási pontosság 1 ns [1]
Metaadatfolyamok Igen ( kiterjesztett attribútumok néven )
Attribútumok POSIX , kiegészítő
Hozzáférési jogok POSIX
Háttértömörítés Igen
Háttér titkosítás A medence 30-as verziójától
OS támogatott Solaris , OpenSolaris , FreeBSD , Linux ( FUSE -n vagy külön kernelmodulon keresztül ( ZFS Linuxon )), Apple Mac OS X 10.5 , Windows ( ZFSin )

A ZFS (Zettabyte File System) egy Merkle -fa, másolás írásra fájlrendszer, amelyet a Sun Microsystems hozott létre 2004–2005-ben a Solaris operációs rendszerhez . Ez a fájlrendszer nagy mennyiségű adatot támogat, egyesíti a fájlrendszer, a RAID tömbök, a logikai lemez (kötet) kezelő fogalmait , a könnyű fájlrendszerek alapelveit , és egyszerű kezelést biztosít az adattároló kötetek számára. A ZFS létrehozásakor az adatelrendezési struktúra innovatív volt. A ZFS-nek vannak nyílt megvalósításai , különösen az OpenZFS a CDDL ( Common Development and Distribution License ) licence alatt áll. Licenckorlátozások miatt a ZFS támogatása a GNU/Linux rendszeren korlátozott, ami a ZFS-szerű Btrfs fájlrendszer esetében nem mondható el . A ZFS jelenleg aktív fejlesztés alatt áll.  

A ZFS fő előnyei a fizikai adathordozók és a logikai kötetek teljes ellenőrzése, valamint a fájlrendszer konzisztenciájának folyamatos fenntartása. Az adatabsztrakció különböző szintjein működő ZFS képes nagy sebességű hozzáférést biztosítani hozzájuk, ellenőrizni az integritásukat, és minimalizálni az adatok töredezettségét . A ZFS nagymértékben konfigurálható, lehetővé teszi a folyamat során a lemezterület mennyiségének megváltoztatását, és különböző méretű adatblokkok beállítását a különböző alkalmazásokhoz, valamint párhuzamos olvasási-írási műveleteket biztosít.

Történelem

A ZFS-t a Sun Microsystemsnél tervezte és építette egy Jeff Bonwick vezette csapat, és 2004. szeptember 14-én jelentették be  [2] . A végső kiadás forráskódját 2005. október 31-én integrálták a Solaris fő ágába [3] .

A ZFS bekerült az OpenSolaris build 27 -be, amely 2005. november 16-án jelent meg. A Sun kijelentette, hogy a ZFS-t a Solaris 10 6/06-os frissítésébe integrálták 2006 júniusában , egy évvel az OpenSolaris közösség megnyitása után [4] .

A ZFS-t eredetileg " Zettabájt fájlrendszernek" hívták, de később a név egy egyszerű mozaikszóvá fejlődött [5] .

A ZFS kereskedelmi licenc alatt jelent meg a Solaris operációs rendszer részeként, majd a SUN Microsystems nyílt forráskódú ZFS az OpenSolaris projektben CDDL alatt. A SUN Microsystems Oracle általi felvásárlása után a kód ismét bezárt, de ekkor már a ZFS-t beépítették a FreeBSD-be és más nyílt forráskódú projektekbe, amelyek önállóan fejlődtek, és „backportokon” ( eng.  backports ) keresztül cserélték ki a forráskódokat [6] .

2013-ban indult el az OpenZFS projekt [7] [8] , amely új szolgáltatásokat és javításokat vesz át az Illumostól, és minden portra terjeszti más platformokra, és fordítva [9] .

Specificitás

Maximális lehetőségek

ZFS - 128 bites[10] egy fájlrendszer, amely lehetővé teszi 18,4 × 10 18 -szor több adat tárolását, mint az összes ismert 64 bites rendszer. A ZFS-t úgy tervezték meg, hogy korlátai annyira elérhetetlenek legyenek, hogy a gyakorlatban belátható időn belül ne találkozzunk velük [11] .

Néhány elméleti korlát a ZFS-ben:

Ugyanakkor a fájlrendszer-kezelő segédprogramok további korlátozásokat támasztanak.

Tárolókészletek

Ellentétben a hagyományos fájlrendszerekkel, amelyek egyetlen eszközön találhatók, és ezért egynél több eszközön használva kötetkezelőt igényelnek, a ZFS a zpooloknak nevezett virtuális tárolókészletekre épül . A készlet virtuális eszközökből ( vdevs ) épül fel, amelyek mindegyike vagy fizikai eszköz, vagy egy vagy több eszköz tükörképe ( RAID 1), vagy ( RAID Z) két vagy több eszközből álló csoport. Az összes vdev kapacitása ezután a zpool összes fájlrendszere számára elérhető .

Kvóta beállítható az adott fájlrendszer vagy kötet számára rendelkezésre álló terület korlátozására . Ezenkívül lehetőség van lemezfoglalás (limit) használatára – ez biztosítja, hogy mindig legyen szabad hely egy adott fájlrendszerhez vagy kötethez.

ZFS Pool verziók

A ZFS fájlrendszernek és a ZFS-készletnek ( zpool ) különböző verziói léteznek , és a verziótól függően különböző funkciók állnak rendelkezésre. 2012 novemberéig a ZFS-készlet 34 verziója létezik. A készlet összes verziója kezdetben a Solaris számára jelent meg .

A 2. verzió támogatja a replikált metaadatokat ( ugyanús blokkok ) .  A ZFS lemezformátum fastruktúrája miatt a készlet metaadatainak helyrehozhatatlan hibái azt eredményezhetik, hogy a készlet nem nyitható meg. Ez a szolgáltatás automatikus metaadat-replikációt biztosít (legfeljebb három példányt minden blokkból ) , függetlenül a mögöttes készletszintű redundanciától . Például egy tükrös készletben a legkritikusabb metaadatok háromszor kerülnek felírásra a tükör mindkét oldalára, összesen hat példányban. Ez biztosítja, hogy ha adatvesztés a korrupció miatt, a készletben lévő összes adat megtalálható lesz, és a készlet egészséges lesz.  

A 3-as verzió támogatja a forró tartalékokat és a kettős paritású RAID-Z-t (raidz2); a 4-es verzió támogatja a ZFS-készlet előzményeinek karbantartását ( zpool history); Az 5-ös verzió támogatja a ZFS-adatkészletek menet közbeni tömörítését a gzip módszerrel ; A 6-os verzió támogatja a bootfs tulajdonságot (lehetővé teszi a rendszerindító operációs rendszer root FS-ének átváltását egy attribútumon keresztül, a bootloader opció mellett).

A 7-es verzió bevezette a "célnapló" ( ZFS Intent Log , ZIL , lit. "intent log") támogatását, amely lehetővé teszi az alkalmazások számára, hogy a rendszerhívásból visszatérve tudják, hogy az általuk módosított adatok stabil tárhelyen vannak-e. . A célnapló rögzíti ezeket a rendszerhívásokat, és újrajátszik, ha áramkimaradás vagy olyan kritikus hiba történt, amelyben a főkészlet nem ismerte el a végrehajtásukat. Ha a célnapló a fő készleten kívül van, akkor lefoglalja a készleten keresztül láncolt blokkokat.

A 8-as verzióban lehetőség van a ZFS kezelésével kapcsolatos adminisztrációs feladatok közönséges felhasználókra történő delegálására, ezt megelőzően csak a rendszergazdák kezelhették a ZFS-t.

zfs set refquotaA 9-es verzióban a meglévő kvóta- és foglalási funkciók mellé a kvóták és tartalékok hozzárendelése is bekerült, ami nem tartalmazza a beágyazott adatstruktúrák, például klónok és kvóták ( , zfs set refreservation) általi lemezterület felhasználását . A foglalás automatikusan létrejön, ha a létrehozott nem ritka ( nem ritka ) ZFS-kötet megegyezik a partíció méretével. Szintén a 9-es verzióhoz került a CIFS -kiszolgáló támogatása.

A 10-es verzió bevezette az eszközök hozzáadását a készlethez gyorsítótárazó eszközként, hogy további gyorsítótárazási réteget biztosítson a fő memória és a lemez között. A gyorsítótárazó eszközök használata jelentősen javítja a teljesítményt a rendhagyó, többnyire statikus tartalom nehéz olvasása esetén. A 12-es verzióban megjelent a snapshot tulajdonságok támogatása, a 13-as verzióban a következő pillanatkép tulajdonságok váltak elérhetővé: usedbysnapshots, usedbychildren, usedbyrefreservation, usedbydataset, 14-es verzióban a és tulajdonságok is elérhetők passthrough-x, aclinherita 15-ös verzióban a userused, groupused, userquota, tulajdonságok szerepelnek groupquota.

A 17-es verzió támogatja a hármas paritású RAID-Z- t. A 18-as verzió támogatja a ZFS pillanatfelvételek tárolási funkcióját . A 19-es verziótól kezdve lehetővé vált a naplók tárolására szolgáló csatlakoztatott eszköz eltávolítása, korábban ilyen eszközt nem lehetett eltávolítani. A 20-as verzió tartalmazza a zle tömörítési algoritmust .

A 21-es verzió bevezeti a deduplikációt (a zle főbb használata). A 30-as verziótól kezdve a fájlrendszer titkosítása támogatott , a 32-es verziótól kezdve egy 1 MB-os blokk támogatott, a 34-es verzióban pedig a fájlrendszerek közötti öröklődésű hálózati megosztások létrehozása valósul meg.

A 37-es verzió támogatja az lz4 tömörítési algoritmust (hatékonyabb és gyorsabb, mint a meglévők).

A tranzakciós modell a másolás-írás segítségével

A ZFS egy objektum-tranzakciós modellt használ, amely az írás-másolás mechanizmuson alapul . A fájlrendszeren belüli blokkokra mutató összes mutató egy 256 bites ellenőrző összeget tartalmaz a célblokkban, amelyet a blokk beolvasásakor ellenőriz. Ellenőrző összegként a Fletcher összeg vagy az SHA-256 kriptográfiai hash függvény használható . [13] Az adatokhoz más ellenőrző összegek is választhatók. Az aktív (jelenlegi) adatokat tartalmazó adatblokkok soha nem kerülnek felülírásra; ellenkezőleg, egy új blokk kerül lefoglalásra, a megváltozott adatok kiírásra kerülnek, majd a rá hivatkozó blokkok metaadatai, így minden újra lefoglalva és kiírva. A többletterhelés csökkentése érdekében ez a folyamat több frissítést csoportosít egy tranzakciócsoportba, és szükség esetén naplózza a használatot a szinkron írásoknál.

A ZFS-készlet naplót vezet a készletadatok legutóbbi néhány tucat verziójáról (az utolsó néhány percről, óráról vagy napról, az adatváltozás intenzitásától függően), amelynek célja az adatok visszaállítása arra az esetre, ha rendszerhiba okozna működésképtelen, gyógyíthatatlan állapotba kerül. Az írásra másolásnál a naplóban szereplő adatok mindegyike önálló, de közös adatot tartalmaz.

Pillanatképek és klónok

A ZFS-ben a másolásról írásra modellnek van egy másik nagy előnye is: amikor a ZFS új adatokat ír – ahelyett, hogy régi adatokat tartalmazó blokkokat szabadítana fel – a fájlrendszer pillanatképeinek elkészítésével mentheti azokat . A ZFS-ben a pillanatképek nagyon gyorsan jönnek létre (kivéve azokat a ritka eseteket, amikor egy hosszú készlet blokkolja az FS-sel végzett időigényes műveletet), mivel a pillanatképen lévő összes adat már el van mentve; helytakarékosak is, mivel minden változatlan adat meg van osztva (megosztva) a fájlrendszer és annak pillanatképe között.

Írható pillanatkép („klón”) is létrehozható bármely pillanatképből, ami két vagy több független fájlrendszert vagy kötetet eredményez, amelyek blokkok együttesen osztoznak, így csökkentve a teljes lábnyomot és csökkentve a klón létrehozásának idejét. Amint módosításokat hajt végre a fájlrendszer bármely klónján, új adatok blokkjai jönnek létre, és a régi adatok az összes többi klónban maradnak.

Létrehozásakor egy klón ahhoz a pillanatképhez kapcsolódik, amelyből létrehozták. Ez a pillanatkép nem semmisíthető meg mindaddig, amíg legalább 2 klón hivatkozik rá (beleértve az eredeti tárhelyet is). A hivatkozás eltávolításához a tárolót (fájlrendszert vagy kötetet) újra létre kell hozni, de ez könnyen megtehető átvitellel, és elkerülheti a többletterület elfoglalását a készletben, ha az átvitel során engedélyezi a deduplikációt, és átviszi a tárhelyet a ugyanaz a medence.

A pillanatképek lehetővé teszik az eredeti tárolótól, annak klónjaitól és egyéb pillanatképektől függetlenül a pillanatkép készítésekor a tárolóban lévő adatok elérését ugyanazon írásvédett tárolóként. Lehetővé teszik továbbá a tárolási adatok gyors és pontos visszaállítását pillanatfelvétel állapotba.

Pillanatképek és klónok rekurzív módon hozhatók létre a fájlrendszerek fájához. Ezzel elkerülhető, hogy saját maga ismételje meg a parancsokat és kezelje a tranzakciókat, mivel a rekurzív pillanatképek létrehozása atomi.

Pillanatképek és klónok (valamint új fájlrendszerek) létrehozása nehéz lehet a ZFS korlátai miatt. Pillanatképek és klónok nem hozhatók létre, ha legalább az egyik neve meghaladja a korlátot (és a pillanatkép teljes neve legalább 2 karakterrel hosszabb, mint az eredeti teljes neve), ha névütközés van (alapvető rekurzív pillanatkép készítéséhez), ha új kvótákat túllépünk, vagy a tartalékok nem megvalósíthatók (a kvóták és tartalékok az eredetiből öröklődnek).

Pillanatképek alapján növekményes tárolási biztonsági mentések valósulnak meg. A pillanatkép-továbbítás használatával bármely ZFS-készletben újra létrehozhatja ugyanazt a pillanatkép-sorozatot. Az eredeti új pillanatképek létrehozása után a növekményes pillanatképátvitel ugyanazokat a frissített adatokat hozza létre a másolatban vagy klónban, hacsak nincs frissítési ütközés. A pillanatképek azt is jelzik, hogy mely fájlok módosultak, létrehozták, törölték és nevezték át a pillanatképek között.

Dinamikus particionálás

Az összes eszköz dinamikus particionálása maximális átviteli sebességgel azt jelenti, hogy további eszközök is bekerülnek a zpoolba, a szélesebb csatornák automatikusan kibővülnek a készlet összes lemezének használatára, ez kiegyenlíti az írási terhelést.

Különféle blokkméretek

A ZFS legfeljebb 1 megabájtos változó blokkméretet használ (a 32-es pool verziótól korábban 128 kilobájtig terjedt). Jelenleg az adminisztrátor beállíthatja a maximális blokkméretet, de néhány munka meghiúsul (vagy sikertelen lesz), ha túl nagy blokkokat használ. Az automatikus teljesítménybeállítások megfelelnek a jogosultságoknak.

Ha a tömörítés engedélyezve van, a rendszer változó blokkméreteket használ. Ha egy blokkot tömörítettek, az összeolvadhat egy kisebb blokkba, ami azt jelenti, hogy kevesebb lemezterületet használnak fel, és megnő az átviteli sebesség (Input/Output) (a tömörítési és kitömörítési műveleteknél megnövekedett CPU és RAM használat árán).

A ZFS-készlet különböző eszközszektorméreteket is támogat, és automatikusan kiválasztja a legnagyobb blokkméretet a készlet létrehozásakor megadott eszközök közül (ezt követően a készletblokk mérete nem módosítható). Az 512 bájt, 4 KiB (4K) mérete stabilan támogatott. A nagy blokkméretek is támogatottak, de előfordulhat, hogy az operációs rendszer nem működik stabilan.

Végpontok közötti adatintegritás-ellenőrzés

A végpontok közötti integritás-ellenőrzés azt jelenti, hogy minden egyes adatblokkhoz ellenőrző összeget írnak a lemezre, és az ellenőrző összeget és az adatokat a lehető legtávolabb helyezik el egymástól, hogy csökkentsék az ízületek károsodásának valószínűségét. Ha több eszköz van a készletben, akkor az egyiken található adatokhoz az ellenőrző összeg a másikra kerül. Nem csak adatokra, hanem metaadatokra is számítanak ellenőrző összegeket, és kiderül, hogy a készletben mindig minden információblokkhoz van ellenőrző összeg.

Bármely blokk beolvasásakor a rendszer kiszámítja annak ellenőrző összegét, és az eredményt összehasonlítja a lemezen tárolt ellenőrző összeggel. Eltérés esetén a hiba azonnal észlelésre kerül. Természetesen, ha nem terveztek előre redundanciát a poolban (sem RAID-Z, sem más), akkor a hiba nem javítható, de a sérült adatok nem lesznek valódiak.

A végpontok közötti adatintegritás lényege, hogy megakadályozza a meghajtó vagy a vezérlő hardver- vagy firmware-hibája miatti észleletlen adatsérülést. Bár egy ilyen esemény valószínűsége csekélynek tűnik, egyes tanulmányok azt mutatják, hogy ez bármilyen méretű szervezet esetében meglehetősen jelentős [14] .

Az adatokat olvasó vagy író programoknak támogatniuk kell ezeket a szolgáltatásokat (egy fájlblokk olvasási sikertelenségének lehetősége, annak lehetősége, hogy a készlet a tárhely-helyreállításra váró állapotba kerül, és az I/O határozatlan ideig lefagy).

Könnyű fájlrendszer létrehozása

A ZFS-ben a készletben lévő fájlrendszerek kezelése egyszerűbb, mint a hagyományos fájlrendszerekben. a ZFS fájlrendszer létrehozásához vagy módosításához szükséges idő és erőfeszítés sokkal inkább hasonlít egy új könyvtárhoz, mint a partíciókezeléshez más technológiákban.

További funkciók

A további szolgáltatások közé tartozik egy adott I/O prioritás beállítására szolgáló funkció ütemezési periódussal, több független szál támogatása megelőző automatikus hossz- és hangmagasság-érzékeléssel, intelligens tisztítás és korrekció [15] , lemezek betöltése és megosztása egy készletben [16]. , metaadatok többszöri lejátszása [ 17] , másolás írásra mechanizmus támogatása , rendszerindító fájlrendszer kiválasztásának lehetősége az operációs rendszer betöltőjében , fő rendszerindító fájlrendszer telepítése , több gyökérfájlrendszer létrehozása, amelyek közül az egyik (a minden gyermek) az operációs rendszer betöltésekor , szoftverek és operációs rendszer -frissítések integrálásának képessége pillanatképek és klónok létrehozásával azokról a fájlrendszerekről, amelyekben a programok vannak tárolva, valamint ezeknek a pillanatképeknek a használata a korábbi verziók és a klónok egyszerű visszaállításához multiboot rendszer létrehozásához, amely képes különböző konfigurációk vagy operációs rendszer verziók indítására ( a Solaris alapértelmezés szerint frissül), egy lehetőség a fájlnevek korlátozása az érvényes UTF-8-as szövegre a kiválasztott normál formában, egy lehetőség a fájlnevekben lévő karakterek kis- és nagybetűinek érzéketlenségére.

Gyorsítótár kezelése

A ZFS emellett bevezeti az adaptív gyorsítótár-cserét ( ARC ), a gyorsítótár kezelésének új módszerét a hagyományos Solaris memórián belüli gyorsítótár virtuális oldalai helyett.

Adaptív endianness

A tömbök és a rajtuk konfigurált ZFS átvihetők a különböző platformok között, még akkor is, ha eltérő végponttal rendelkeznek. A ZFS blokkformátum lehetővé teszi a bájtok automatikus észlelését és menet közbeni átrendezését metaadatok olvasásakor.

Ugyanakkor a különböző rendszerek eltérő bájtsorrendje semmilyen módon nem befolyásolja az alkalmazásokat, a hozzájuk tartozó fájlok egyszerű bájtsorozat maradnak. Így az alkalmazások már magukon a fájlokon belül felelősek a független (platform) formátumért.

Pool attribútumok

A készletattribútumok segítségével vezérelheti a készlet jellemzőit és beállításait. Speciális típusokkal és írási korlátozásokkal rendelkeznek. Jelzik, hogy a készlet írható-e vagy olvasható-e, engedélyezve van-e az adatduplikáció, az FS az operációs rendszer alapértelmezés szerinti betöltéséhez, egy alternatív csatolási gyökér, a készlet jellemzői stb.

Data Store rendszerattribútumok

A lerakatrendszer attribútumai a lerakatok képességeinek és beállításainak kezelésének egyik módja. Speciális típusokkal és írási korlátozásokkal rendelkeznek. Megadják a titkosítás, a tömörítés, az ellenőrző összegek, a deduplikáció, a biztonsági mentés, a gyorsítótár beállításait, az egyes tárolók adattároló blokkjainak méretét. Jelzik még a kötetek méretét, az FS csatolási pontokat, az egyes tárolók elérhetőségét az íráshoz, a tárolók zónához tartozását, a megbízásokat, a tartalékokat, a kvótákat, a hálózati megosztások (NFS, SMB) automatikus létrehozásának beállításait, az ezekhez való hozzáférési jogokat, ill. több. Ezek az attribútumok határozzák meg a trezorok jellemzőit. Ezek az attribútumok megkönnyítik a korábban kézzel végrehajtott, FS-hez kapcsolódó funkciók kezelését (például több további fájlrendszer csatlakoztatásának beállítása, hálózati megosztások létrehozása).

A rendszerattribútumok egy részét az alárendelt adattárak öröklik, ennek eredményeként az attribútumok azonnal alkalmazásra kerülnek az utód lerakatokra is. A vezérlő tömörítésre, deduplikációra, adatellenőrző összegekre és hasonlókra vonatkozó attribútumok csak az újonnan írt adatokra vonatkoznak. Az összes adatra történő alkalmazáshoz az adatokat felül kell írni (ez könnyen megtehető, ha a pillanatképeket ugyanabba a készletbe küldi a tárolók újbóli létrehozásával).

Data Store egyéni attribútumok

Minden adattárhoz (FS, kötet, pillanatkép stb.) egyedi attribútumok rendelhetők. A felhasználói attribútumok nevükben különböznek a rendszerattribútumoktól. Egyéni attribútumokhoz bármilyen nevet használhat (1 és 2¹⁰ bájt között), de ajánlatos olyan neveket használni, amelyek kettőspontot tartalmaznak (a rendszerattribútumokkal való ütközés elkerülése érdekében), a domain nevét pedig e kettőspont előtt (a többi felhasználó elkerülése érdekében) , az attribútum neve a kettőspont után. Az egyéni attribútumokat az alárendelt boltok öröklik.

A különböző operációs rendszerekben az új szolgáltatások szétágazó fejlesztése miatt ezek közül az attribútumok közül több új rendszerattribútumként kerül felhasználásra.

Az egyéni attribútumokat a felhasználók és az önálló programok (például az időcsúszka automatikus létrehozási és biztonsági mentési programja) használják.

Fájlrendszer attribútumok

Bármilyen típusú fájl esetén több rendszerattribútum értéke is megadható. [18] Ezek az attribútumok lehetővé teszik a fájlon végzett műveletek vezérlését. A kiterjesztett fájlattribútumok ugyanazokkal a rendszerattribútumokkal rendelkeznek.

A létrehozás, az utolsó hozzáférés, az utolsó módosítás, az utolsó metaadat-módosítás dátumát tároló attribútumokon kívül vannak attribútumok [19] :

Attribútum neve Attribútum neve a chmod[20] parancsban Célja Mit csinál az operációs rendszer ezzel az attribútummal?
Rejtett hidden Az ezzel az attribútummal rendelkező fájlok nem jelennek meg az általános listában, ha ez az opció engedélyezett és támogatott a fájlkimeneti programban. Semmi.
ritka sparse Az ezzel az attribútummal rendelkező fájlt javasolt ritkaként feldolgozni, azaz olyan nulla bájtos blokkokat tartalmaz, amelyek nem a meghajtón vannak tárolva, hanem hallgatólagosan. Ez az attribútum tájékoztató jellegű, és semmi köze ahhoz, hogy a fájl valóban ritka-e. A ritka fájlokkal való munkavégzéshez szükséges fájlfeldolgozó programnak továbbra is adatokat kell fogadnia a fájl ritka blokkjairól az FS-től. Semmi.
Szisztémás system Az ezzel az attribútummal rendelkező fájl az operációs rendszerhez készült, nem felhasználói fájl. Általában figyelmen kívül hagyják a programok. Semmi.
Csak olvasásra readonly Az ezzel az attribútummal rendelkező fájl nem módosítható (csak adatok, attribútumok nem). Kivétel nélkül mindenkire vonatkozik. Blokkolja az írási hozzáférést, ha az attribútum be van állítva.
Az archiváláshoz archive A fájlt archiválni kell. Semmi.
Eltávolíthatatlan nounlink Könyvtárak esetén a címtár neve és közvetlen gyermekeinek neve nem törölhető vagy módosítható. Más fájltípusok esetén: a fájlnév nem törölhető vagy módosítható. Blokkolja a névváltoztatást és a hozzáférés törlését, ha az attribútum be van állítva.
változhatatlan immutable Az ezzel az attribútummal rendelkező fájl nem módosítható (adatok, attribútumok, kivéve magát ezt az attribútumot és az utolsó hozzáférési dátumot). Kivétel nélkül mindenkire vonatkozik. A blokkok módosítják a hozzáférést, ha az attribútum be van állítva.
Csak kiegészítésre appendonly A fájl adatait csak hozzáfűzéssel lehet módosítani, felülírni nem. Blokkolja az írási hozzáférést, ha az attribútum be van állítva.
Nem szeméttelepre nodump Solarison nem használt. A BSD -től jött . A módosításhoz megfelelő jogosultságok szükségesek. Solarison nem használt.
A vírusirtó karanténban av_quarantined A fájlhoz való hozzáférés a karantén feloldásáig korlátozott. Az attribútumot csak akkor lehet beállítani és eltávolítani, ha rendelkezik szuperfelhasználói jogokkal (az antivírus rendelkezik ilyenekkel). Blokkolja a hozzáférést, ha az attribútum be van állítva.
Módosítva (az utolsó víruskereső ellenőrzés után) av_modified Azt jelzi, hogy a víruskereső nem ellenőrzi a fájl aktuális verzióját. Automatikus beállítás a fájl létrehozásakor és minden alkalommal, amikor a fájl adatai vagy mérete megváltozik. Az attribútumok módosítására jogosult felhasználó állíthatja be. Csak szuperfelhasználói jogosultságokkal lehet visszaállítani (az antivírus rendelkezik ilyenekkel). Automatikusan beállítja az attribútumot adatok módosításakor, fájl létrehozásakor.

Bővített attribútumok

Bármilyen típusú fájlhoz létrehozhat kiterjesztett attribútumokat. A kiterjesztett attribútum egy elnevezett bájttömb, akárcsak egy normál fájl. A kiterjesztett attribútumokhoz, mint a normál fájlokhoz, saját engedélyeket és rendszerattribútumokat lehet rendelni. A normál fájloktól eltérően a kiterjesztett attribútumokhoz nem hozhatók létre kiterjesztett attribútumok, merev hivatkozások. A kiterjesztett fájlattribútumok korlátozott mértékben normál fájlként kezelhetők. Ehhez minden fájlhoz létrejön egy névtelen mappa (az első kiterjesztett attribútum létrehozásakor), amelyben a fájl kiterjesztett attribútumainak megfelelő normál fájlok állnak rendelkezésre. runatA Solaris rendszeren ez a mappa a [21] segédprogrammal érhető el .

Jogosultság delegálása a felhasználókra

Az egyes trezorok kezelése a felhasználókra delegálható. Ehhez a ZFS delegálható jogköröket osztott ki (tárhelyek, pillanatképek létrehozása, törlése, csatolás, összehasonlítás, továbbítás stb.). Az engedélyek az attribútumok hozzárendelésével megegyező módon delegálódnak a kiválasztott tárolókra, és az alárendelt tárolókra is kiterjednek.

Adatmegőrzés és biztonsági mentés

A “ másolás írásra ” elv miatt  a ZFS-ben az adatok mindig konzisztens állapotban vannak, a fájl nem veszhet el a felülíráskor [6] .

Redundanciás kötetek (RAIDZ kötetek) használatakor az adatbiztonság fizikai adathordozó meghibásodása esetén biztosított [6] [22] , míg a RAIDZ nagy fájlok viszonylag hosszú távú tárolására hatékony, különösen a blokkméretnek megfelelő blokkméret beállításakor. fájlok, valamint a gyakori újraírás és kis méretű fájlok elhelyezése esetén a processzor és a lemez alrendszer megnövekedett terhelése [6] .

Korlátozások

  • A Solaris 10 ZFS-megvalósításából hiányzik az átlátható titkosítás, amint az a Solaris 11-ben és az NTFS -ben is megtalálható , bár az OpenSolaris projekt részeként létezik egy megvalósítás [23] .
  • A ZFS nem támogatja a felhasználónkénti vagy csoportonkénti kvótakiosztást. Ehelyett gyorsan létrehozhat FS-t a felhasználók számára, amelyek mindegyikének saját mérete lesz. Mint ilyen, nincs praktikus kvótamegoldás a különböző felhasználók által megosztott fájlrendszerekhez (pl. egy fejlesztői csapat projekt), ahol az adatok felhasználónként megoszthatók, azonban ez megvalósítható a ZFS - verem tetején.
  • A tárhely bővítése általában egy lemezcsoport, például vdev (csík, RAID-Z , RAID-Z2 vagy tükör ) hozzáadásával érhető el. Az új adatok dinamikusan felhasználják az összes elérhető vdevet. A lemezterület növelésének másik módja, hogy a fizikai lemezeket felváltva nagyobbakra cseréljük, azzal az elvárással, hogy minden ilyen művelet után, amíg a ZFS meg nem gyógyul magától . A kezelési idő a tárolt információ mennyiségétől függ, és nem a lemez méretétől. Ha pillanatfelvétel készül a kezelés során  , ez újraindítja a kezelési folyamatot. Meg kell jegyezni, hogy a lemezek adatvesztés nélküli cseréje csak az azt lehetővé tevő medence üzemmódok egyikében lehetséges.
  • Jelenleg nem lehet csökkenteni a vdevek számát a készlet méretének csökkentése nélkül. A ZFS fejlesztőcsapata azonban dolgozik ezen a problémán. A Solaris 10 11. 08. (10. frissítés) megjelenése óta ez még mindig nem valósult meg.
  • Szintén nem lehet új meghajtót hozzáadni egy RAID-Z vagy RAID-Z2 tömbhöz (vdevs). Ezt a funkciót nehéz megvalósítani. Azonban létrehozhat egy RAIDZ vdev-et, és hozzáadhatja a zpoolhoz .
  • A zpoolban nem keverhet vdev típusokat. Például, ha van egy lecsupaszított ZFS-készlete, amely lemezeket tartalmaz egy SAN -on , akkor nem tud helyi lemezeket hozzáadni tükrözött vdev-ként.
  • Az adattárolás teljes újrakonfigurálásához az adatok külső adathordozóra (a ZFS-en kívül) történő mentése, a készletek megsemmisítése és új szabályok szerinti új készletek létrehozása szükséges. A legtöbb esetben azonban megúszhatja az adatok átvitelét a régi készletből az újba ZFS használatával, megőrizve az összes vagy a kívánt adatot és attribútumot (a ZFS-en kívüli tárolás nélkül). A továbbítás nem segít a titkosítás engedélyezése vagy letiltása, a fájlnév-korlátozások megváltoztatása, a kötelező hozzáférés-szabályozás letiltása, a lemezblokk méretének megváltoztatása és egyéb ritka műveletek esetén.
  • A ZFS eredendően nem fürtözött , elosztott vagy párhuzamos fájlrendszer, és nem biztosít egyidejű hozzáférést a különböző gazdagépekről származó adatokhoz. A ZFS egy helyi fájlrendszer.
  • A Solaris 11 ZFS-megvalósításában nem módosíthatja a vdev típusát a zpoolban. Például, ha rendelkezik egy lemezeket (blokkoló eszközöket) tartalmazó ZFS-készlettel, akkor nem tudja a lemezek tartalmát normál fájlokba másolni, és ezekből a fájlokból importálni a készletet, és fordítva - átvinni a készletet normál fájlokból lemezeket.
  • A nagy mennyiségű adat törlése lassú blokkoló művelet (a 37-es és korábbi verziókban), például egy 100 GiB-os töredezett fájlrendszer törlése több mint egy percet is igénybe vehet, és blokkolja a fájlrendszerek listájának és más fájlrendszereknek a lekérését. műveletek ugyanabban a készletben.
  • A tükrözött készlet különböző másolataihoz való hozzáférés visszaállítása után nincs mód a készlet helyreállításának vezérlésére. A rendszer maga dönti el, hogyan fertőtlenítse a medencét, még akkor is, ha a készlet különböző példányain függetlenül történt változtatás (ez megengedett).
  • A súlyosan megrongálódott medencét nem lehet megjavítani, újra kell építeni. Sok esetben azonban a felhasználói adatok lekérhetők a sérült készletből, ha azokat olvasásra importálják.
  • A rendszeradatokban előforduló egyes gyógyíthatatlan készletsérülések nem eredményezik a felhasználói adatok megsérülését, vagy nem akadályozzák a készlet módosításait. Ezekkel a sérülésekkel a medence kívülről még sokáig normálisan működik, és nem figyelmeztet a javítás szükségességére. De ha nem javítják ki, akkor végül elveszítik a felhasználói adatokat, és helyreállíthatatlan vagy akár olvashatatlan állapotba kerülnek. Az ilyen problémák észlelésének és automatikus (ha lehetséges) időben történő javításának képessége nincs beépítve a ZFS-be, és külön konfigurációt igényel.

Platformok

A ZFS a Solaris operációs rendszer része, és SPARC és x86 platformokon is elérhető . Mivel a ZFS kód nyílt forráskódú (CDDL-licenc), más operációs rendszerekre és platformokra portok is előállíthatók az Oracle közreműködése nélkül.

OpenSolaris

Az OpenSolaris 2008.05 a ZFS-t használja alapértelmezett fájlrendszerként.

Nexenta OS

A Nexenta OS  egy GNU környezettel rendelkező operációs rendszer, amely az OpenSolaris kernelre és annak futási környezetére épül, a ZFS támogatást a kernel alpha1 verziója tartalmazta. A Nexenta Systems nemrégiben bemutatta a NexentaStort  , egy ZFS-kompatibilis hálózati tárolórendszert, amely NAS / SAN / iSCSI -képességeket biztosít , és a Nexenta OS-en alapul. A NexentaStor grafikus felületet tartalmaz, amely leegyszerűsíti a ZFS használatának folyamatát. 2008. december 2-án megjelent a NexentaStor 1.1. Frissítette az OpenSolaris magját, javította a CIFS/AD-vel való integrációt, hozzáadott több bővítményt és javított néhány hibát. A NexentaStornak két kiadása van: egy kereskedelmi vállalati kiadás és egy ingyenes közösségi kiadás, amelynek maximális tárolókapacitása 18 TB. 2012 augusztusától a szoftver jelenlegi verziója a 3.1.3.

Linux

Kernel szint

A CDDL licencelési korlátozások miatt a ZFS nem szerepel a kernelben, de elérhető kernelmodulként, amely már számos GNU/Linux disztribúcióban elérhető [6] [24] .

A Linuxban sokáig a ZFS kernelszintre történő portolását jogilag lehetetlennek tartották a CDDL -licencek összeférhetetlensége miatt , amelyek joghatósága alatt a ZFS és a GNU GPL , amelynek joghatósága alá a Linux tartozik . 2010 májusában azonban Brian Behlendorf bemutatta a projekt új verzióját, amely a Linux ZFS fájlrendszer natív támogatásának megvalósításán dolgozik. A licenckorlátozás megkerülésére Behlendorf úgy döntött, hogy a teljes termékét a CDDL licenc alatt terjeszti egy külön letölthető modulként, amelyet a kerneltől külön szállítanak [25] [26] . 2013 márciusa óta (0.6.1-es verzió) a projekt ipari használatra késznek tekinthető [24] . Az Ubuntu 16.04 (64 bites) az első olyan Linux disztribúció, amely ZFS-kompatibilis [27] .

BIZTOSÍTÉK

A Google Summer of Code kezdeményezés a ZFS Linux -adaptációját támogatja a FUSE modul használatával , amely a ZFS fájlrendszert futtatja a felhasználói térben [28] . Úgy gondolják, hogy ez a megoldás elméletileg tele van teljesítményveszteséggel [29] . De az NTFS ( NTFS-3G ) FUSE-n keresztüli megvalósításának példája jó teljesítményt mutat más rendszerekhez képest [30] , ami okot ad a ZFS-FUSE elfogadható teljesítményének előrejelzésére.

2012 végén a ZFS-FUSE [31] 0.7.0-s verziója jelent meg, amely szinte teljes körűen támogatja a ZFS-t és annak összes funkcióját – bevezették a készlet 23. verziójának támogatását.

FreeBSD

Pawel Jakub Dawidek a FreeBSD - hez igazította a ZFS-t kernelmodulként. A ZFS benne van a FreeBSD 7.0-ban (2008. február 27-én) [32] .

A ZFSv28 kódot a FreeBSD 9-en tesztelik, és a 8-as stabil fejlesztési ágra portolják. A FreeBSD 8.3, 8.4 és 9.0 kiadása támogatja a ZFS-készlet 28-as verzióját. A FreeBSD 9.2-es kiadása és a FreeBSD újabb verziói a Pool 5000-es verzióján alapuló új "feature flags" szolgáltatásokat használnak [33] .

Figyelemre méltó, hogy a FreeBSD-ben a 8-as verzió óta a ZFS, a Linuxtól eltérően, nem igényli a FUSE jelenlétét, és ezért nincsenek vele kapcsolatos teljesítményproblémák. Ezt megerősíti, hogy a FreeBSD-ben a ZFS benne van a kernelben, és azonnal jelen van a rendszerben, többek között lehetővé téve az operációs rendszer indítását ZFS kötetekről. A FUSE modult pedig nem tartalmazza az operációs rendszer, és opcionálisan telepíthető a portgyűjteményből [34] (ami pl. az NTFS támogatásához szükséges).

Mac OS X

Az Apple megpróbálta a ZFS-t Mac OS X -re portolni , és aktív vita zajlott a ZFS-levelezőlistákról, valamint az Apple Mac OS X következő verziójának előzetes vágásairól [35] . Bár a Mac OS X 10.5 (9A321) támogatja a ZFS-t, nem tudja használni a ZFS-t root partíciókon, és nem tudja a helyi meghajtókat ZFS alatt formázni (ez utóbbi hibának számít [36] ).

2009 júniusában az Apple a WWDC '09 sajtótájékoztatóján felhagyott a ZFS-sel a Mac OS X 10.6 Snow Leopard bemutatott verziójában, a ZFS-re való minden hivatkozást eltávolítottak a dokumentációból és a webhely anyagaiból. A cég nem hozza nyilvánosságra, hogy miért nem használja a ZFS -t [37] .

Míg a ZFS támogatása visszatért a Mac OS X 10.6 Snow Leopard build 10A432-ben, Golden Master jelöléssel, a ZFS támogatást a Mac OS X 10.6 végső kiadásában ismét eltávolították [38] .

A ZFS hivatalos támogatásának bezárására válaszul megjelent egy ingyenes projekt, amely az Apple által korábban készített kódbázison alapul, de a rendszerbe való integráció módjában különbözik. A MacZFS nem kernel szinten fut, hanem felhasználói szinten, a MacFUSE segítségével dolgozva elkészült egy bináris csomag, amely a Git repository-ban megjelent forrásszövegek , valamint konfigurációs utasítások alapján lett összeállítva.

redox

A Redox operációs rendszer a ZFS-t tervezte alapértelmezett fájlrendszerként használni, de később áttért a saját, hasonló elvek megvalósítására - TFS [39] [40] , amely a fő Redox nyelven - Rust - íródott .

Jegyzetek

  1. zfs/zfs_vnops.c at 12fa7f3436fbd89f4d6b00c2c076405e7a21d62f · zfsonlinux/zfs · GitHub + zfs/zfs_znode.h at 25458cbef9e59ef9ee6a7e729ab2522ed308f88f · zfsonlinux/zfs · GitHub + zfs/zfs_vfsops.c at 25458cbef9e59ef9ee6a7e729ab2522ed308f88f · zfsonlinux/zfs · GitHub
  2. ZFS: az utolsó szó a fájlrendszerekben (ZFS: az utolsó szó a fájlrendszerekben) . Sun Microsystems (2004. szeptember 14.). Letöltve: 2006. április 30. Az eredetiből archiválva : 2012. június 4..
  3. Jeff Bonwick. ZFS: Az utolsó szó a fájlrendszerekben . Jeff Bonwick blogja (2005. október 31.). Letöltve: 2006. április 30. Az eredetiből archiválva : 2012. október 13..
  4. A Sun az OpenSolaris sikeres egyéves évfordulóját ünnepli . Sun Microsystems (2006. június 20.). Az eredetiből archiválva : 2012. október 13.
  5. Jeff Bonwick. Azt mondod zeta, én mondom zetta (Te mondod zeta, én mondom zetta) . Jeff Bonwick blogja (2006. május 4.). Letöltve: 2006. szeptember 8. Az eredetiből archiválva : 2012. október 13..
  6. 1 2 3 4 5 Melnikov, 2020 .
  7. Elindul az OpenZFS projekt . LWN.net ( 2013-09-17.mdy . 2022 ). Letöltve : 2013-10-01.mdy . 2022 . Az eredetiből archiválva : 2016. október 11.
  8. OpenZFS közlemény . OpenZFS ( 2013-09-17.mdy . 2022 ). Letöltve : 2013-09-19.mdy . 2022 . Archiválva az eredetiből 2018. április 2-án.
  9. OpenZFS előzmények . openzfs. Letöltve : 2013-09-24.mdy . 2022 . Az eredetiből archiválva : 2013. december 24.
  10. A legegyszerűbb ellenőrzés azt mutatja, hogy a jelenlegi megvalósításban 16-nál több EIB-t nem tud a pool használni. Ezt az ellenőrzést önmagában is könnyű elvégezni, mivel 8 EIB eszközt maga a ZFS biztosít, tömörítés esetén valós gigabájtonként legalább százakat.
  11. Bonwick projektvezető szerint "a 128 bites fájlrendszerek feltöltése meghaladja a Földön lévő adattárolás kvantumkapacitását. Nem tölthet ki és tárolhat egy 128 bites kötetet anélkül, hogy felforralná az óceánt." Példa arra, hogy milyen nagyok ezek a számok: ha másodpercenként 1000 fájlt hoz létre, körülbelül 9000 évbe telik, amíg a ZFS eléri a fájlkorlátot. A számítás azt mutatja, hogy a szükséges idő 8925,5129601298833079654997463217 év anélkül, hogy figyelembe vennénk a lemezre írás szögsebességének változását és egyéb költségeket. Arra a kérdésre válaszolva, hogy a ZFS-t az óceánok felforralása nélkül kell feltölteni, Bonwick ezt írja: „ Bár mindannyian szeretnénk, ha a Moore-törvény a végtelenségig érvényes lenne, a kvantummechanika alapvető korlátokat szab bármely fizikai eszköz számítási sebességének és információs kapacitásának. Különösen azt mutatták ki, hogy 1 kilogramm anyag, amelyet 1 liter hely korlátoz, másodpercenként legfeljebb 10 51 műveletet tud végrehajtani legfeljebb 10 31 bites információn [lásd az ábrát. Seth Lloyd: " A számítás végső fizikai korlátai Az eredetiből archiválva 2008. augusztus 7-én. .“ Nature 406, 1047-1054 (2000)]. Egy teljesen kitöltött 128 bites kötet 2128 blokkot tartalmaz = 2137 bájt = 2140 bit; tehát ennek a bitszámnak a tárolásához szükséges minimális tömeg ( 2140 bit) / ( 1031 bit/kg) = 136 milliárd kg.”
  12. További korlátozások vonatkoznak az operációs rendszer által használt attribútumokra, például a Solaris NFS hozzáférési listához tartozó FS attribútum mérete körülbelül 10⁴ bájtra van korlátozva, ami 2000-20 felhasználónak felel meg, a bejelentkezések hosszától függően otthont ad.
  13. ZFS On-Disk Specification (lefelé irányuló kapcsolat) . Archiválva az eredetiből 2015. október 28-án, Sun Microsystems, Inc.  Lásd a 2.4 fejezetet.
  14. Adatintegritás . CERN jelentés (2007. április 8.). Hozzáférés dátuma: 2008. január 28. Az eredetiből archiválva : 2012. október 13.
  15. Smokin' Mirrors . Jeff Bonwick blogja (2006. május 2.). Letöltve: 2007. február 23. Az eredetiből archiválva : 2012. október 13..
  16. ZFS blokk kiosztás . Jeff Bonwick blogja (2006. november 4.). Letöltve: 2007. február 23. Az eredetiből archiválva : 2012. október 13..
  17. Ugyanazok a blokkok – Csodálatos taszító szalag . Flippin' off bits Weblog (2006. május 12.). Letöltve: 2007. március 1. Az eredetiből archiválva : 2012. október 13..
  18. Szinopszis - man oldalak 1. rész: Felhasználói parancsok . Hozzáférés dátuma: 2016. január 13. Az eredetiből archiválva : 2016. október 24.
  19. Szinopszis - kézikönyvoldalak 3. rész: Alapvető könyvtári funkciók: fgetattr, fsetattr, getattrat, setattrat - rendszerattribútumok lekérése és beállítása . Letöltve: 2016. március 13. Az eredetiből archiválva : 2016. október 11..
  20. Szinopszis - kézikönyv oldalak 1. rész: Felhasználói parancsok: chmod - módosítsa egy fájl jogosultsági módját . Letöltve: 2016. március 13. Az eredetiből archiválva : 2016. március 25.
  21. Szinopszis - man oldalak 1. rész: Felhasználói parancsok . Hozzáférés dátuma: 2016. január 13. Az eredetiből archiválva : 2017. február 2..
  22. Ahrens, 2014 .
  23. OpenSolaris Project: Lemeztitkosítás támogatása ZFS-ben. . OpenSolaris projekt. Letöltve: 2008. július 11. Az eredetiből archiválva : 2012. október 13..
  24. 12 Neil McAllister . A gyártásra kész ZFS kozmikus méretű tárolást kínál Linux számára. A rendkívül megbízható fájlrendszer már készen áll a széles körű telepítésre . A nyilvántartás (2013. március 30.). Letöltve: 2013. március 30. Az eredetiből archiválva : 2013. április 4..  
  25. A ZFS fájlrendszer natív támogatása elérhető Linux alatt  : [ arch. 2010. május 29. ] // OpenNET. - 2010. - május 27.
  26. Matt Ahrens, Brian Behlendorf. OpenZFS Linuxon  (angol)  (nem elérhető link) . LinuxCon 2013 (2013. szeptember 17.). Letöltve: 2013. december 25. Az eredetiből archiválva : 2013. november 13..
  27. Ben Everard . Az Ubuntu 16.04 visszatért – és zseniális. Linux Voice, 27. szám, 2016. június
  28. Ricardo Correia. A ZFS bejelentése FUSE/Linux rendszeren (2006. május 26.). Letöltve: 2006. július 15. Az eredetiből archiválva : 2012. október 13..
  29. Egy fájlrendszer felhasználói terület szintű feladatszintű megvalósítása további költségekkel járhat, például környezetváltással . De egy ilyen megvalósítás a mikronukleáris rendszerek egész elméletének alapja, és megbízhatóbb, mint a kernelen belüli megvalósítás.
  30. Szakacsits Szabolcs. NTFS-3G olvasó/író illesztőprogram teljesítménye (nem elérhető hivatkozás) (2007. november 28.). Letöltve: 2008. január 20. Az eredetiből archiválva : 2007. január 4.. 
  31. ZFS Linux 0.7.0-hoz . Letöltve: 2012. november 7. Az eredetiből archiválva : 2012. november 20..
  32. Dawidek, Pawel ZFS elkötelezte magát a FreeBSD alap mellett (2007. április 6.). Letöltve: 2007. április 6. Az eredetiből archiválva : 2012. október 13..
  33. FreeBSD 9.2-RELEASE Kiadási megjegyzések . FreeBSD. Hozzáférés dátuma: 2013. szeptember 30. Az eredetiből archiválva : 2013. október 3.
  34. FreeBSD Portgyűjtemény . Letöltve: 2015. április 21. Az eredetiből archiválva : 2015. április 19..
  35. ZFS portolása OSX-re . zfs-discussions (2006. április 27.). Letöltve: 2006. április 30. Az eredetiből archiválva : 2012. október 13..
  36. Mac OS X 10.5 9A326 Seeded . InsanelyMac fórumok (2006. december 14.). Letöltve: 2006. december 14. Az eredetiből archiválva : 2012. október 13..
  37. Linux.Org.Ru . InsanelyMac fórumok (2009. június 11.). Letöltve: 2009. június 11. Az eredetiből archiválva : 2012. október 13..
  38. Robin Harris – Az Apple fenéken rúgja a ZFS-t . Letöltve: 2009. szeptember 2. Az eredetiből archiválva : 2009. szeptember 2..
  39. https://github.com/redox-os/tfs Archiválva 2018. október 26-án a Wayback Machine -nél "A TFS-t azért hozták létre, mert egy modern fájlrendszerre volt szükség a Redox OS számára, a ZFS helyettesítésére, amely bevált monolitikus kialakítása miatt lassan kivitelezhető."
  40. https://www.phoronix.com/scan.php?page=news_item&px=TFS-File-System-Rust-ZFS Archiválva : 2018. október 18. a Wayback Machine -nél , https://www.phoronix.com/scan. php ?page=news_item&px=Redox-OS-2016-State Archiválva : 2018. október 18. a Wayback Machine -nél

Linkek

Portok

Vélemények és információk

  • ZFS Uncovered  (angol)  - a ZFS fájlrendszer áttekintése.
  • ZFS  (orosz) az Xgu.ru-n
  • Melnikov G. ZFS  : architektúra, jellemzők és különbségek más fájlrendszerektől: [ arch. 2020. december 1. ] / Georgy Melnikov; Mail.ru csoport // Habr. - 2020. - december 1.