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.
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] .
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.
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ókA 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 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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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).
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.
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á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 .
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.
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] .
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.
Az OpenSolaris 2008.05 a ZFS-t használja alapértelmezett fájlrendszerként.
Nexenta OSA 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.
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ÉKA 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.
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).
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.
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 .
Sun Microsystems (átvette az Oracle ) | |
---|---|
Felszerelés | |
Szoftver |
|
Adattárolás | |
Nagy teljesítményű számítástechnika |
|
Kutatás | |
Oktatás |
|
Közösség |
Solaris | |
---|---|
Technológia | |
OpenSolaris |
Fájlrendszerek ( lista , összehasonlítás ) | |||||||
---|---|---|---|---|---|---|---|
Korong |
| ||||||
Elosztott (hálózat) | |||||||
Különleges |
|