ZFS je lokální souborový systém a správce logických svazků vytvořený společností Sun Microsystems Inc. pro řízení a kontrolu umístění, ukládání a vyhledávání dat v počítačových systémech podnikové třídy.

Systém souborů a správce svazků ZFS se vyznačuje integritou dat, vysokou škálovatelností a vestavěnými funkcemi ukládání, jako jsou:

  • Replikace – proces vytváření repliky (kopie) něčeho.
  • Deduplikace – proces, který odstraňuje nadbytečné kopie dat a snižuje režii úložiště.
  • Komprese – snížení počtu bitů potřebných k reprezentaci dat.
  • Snímky – soubor referenčních značek pro data v určitém časovém okamžiku.
  • Klon – identická kopie něčeho.
  • Ochrana dat – proces ochrany důležitých informací před poškozením a/nebo ztrátou.

Historie systému ZFS

Inženýři společnosti Sun zahájili práce na systému ZFS v roce 2001 pro operační systém (OS) Solaris založený na systému Unix. V roce 2005 společnost Sun uvolnila zdrojový kód systému ZFS pod společnou vývojovou a distribuční licencí (CDDL) jako součást open source operačního systému OpenSolaris. Komunita vývojářů, včetně zástupců společnosti Sun a dalších dodavatelů, pracovala na vylepšeních open source kódu a portovala systém ZFS do dalších operačních systémů, včetně FreeBSD, Linuxu a Mac OS X.

Open source projekt OpenSolaris, jehož součástí byl i systém ZFS, skončil poté, co společnost Oracle Corp. v roce 2010 koupila společnost Sun a získala ochrannou známku ZFS. Inženýři společnosti Oracle pokračují ve vylepšování a přidávání funkcí systému ZFS v systému Solaris. Společnost Oracle používá svůj proprietární kód ZFS jako základ pro systém Oracle Solaris, zařízení Oracle ZFS Storage Appliance a další technologie společnosti Oracle.

Komunita vývojářů zahájila nový open source projekt s názvem OpenZFS, založený na zdrojovém kódu ZFS v konečné verzi systému OpenSolaris. Otevřená komunita pracuje na nových funkcích, vylepšeních a opravách chyb v kódu OpenZFS. Mezi operační systémy, které podporují OpenZFS, patří Apple OS X, FreeBSD, illumos (který je založen na OpenSolaris) a varianty Linuxu, jako jsou Debian, Gentoo a Ubuntu. Systém OpenZFS funguje ve všech distribucích Linuxu, ale pouze někteří komerční výrobci jej poskytují jako součást svých distribucí. Mezi společnosti s komerčními produkty postavenými na systému OpenZFS patří Cloudscaling, Datto, Delphix, Joyent, Nexenta, SoftNAS a Spectra Logic.

ZFS a OpenZFS oslovují spíše podniky, které potřebují spravovat velké množství dat a zajistit jejich integritu. Mezi uživatele patří vědecké instituce, národní laboratoře, vládní agentury, finanční firmy, telekomunikační a mediální a zábavní společnosti.

ZFS původně znamenal Zettabyte File System, ale slovo zettabyte již nemá v kontextu souborového systému žádný význam. Jako 128bitový souborový systém má ZFS potenciál škálovat až na 256 kvadrilionů zettabajtů.

Jak ZFS funguje

ZFS je navržen pro provoz na jednom serveru, potenciálně se stovkami, ne-li tisíci připojených úložných jednotek. Systém ZFS sdružuje dostupné úložiště a spravuje všechny disky jako jeden celek. Uživatel může do fondu přidat další úložné jednotky, pokud souborový systém potřebuje další kapacitu. Systém ZFS je vysoce škálovatelný a podporuje velkou maximální velikost souborů.

ZFS ukládá nejméně dvě kopie metadat při každém zápisu dat na disk. Metadata obsahují informace, jako jsou sektory disku, kde jsou data uložena, velikost datových bloků a kontrolní součet binárních číslic kusu dat. Když uživatel požádá o přístup k souboru, algoritmus kontrolního součtu provede výpočet, aby ověřil, že načtená data odpovídají původním bitům zapsaným na disk. Pokud kontrolní součet zjistí nesrovnalost, označí špatná data. V systémech se zrcadleným fondem úložišť nebo verzí RAID systému ZFS může systém ZFS načíst správnou kopii z druhého disku a opravit poškozenou kopii dat.

Systém ZFS se běžně označuje jako souborový systém s kopírováním při zápisu, i když společnost Oracle jej popisuje jako systém s přesměrováním při zápisu. Když systém ZFS zapisuje data na disk, nepřepisuje data na místě. Systém ZFS zapíše nový blok na jiné místo na disku a aktualizuje metadata tak, aby ukazovala na nově zapsaný blok, přičemž zachovává i starší verze dat.

Skutečný souborový systém copy-on-write by před přepsáním původního bloku vytvořil přesnou repliku datového bloku na samostatném místě. Před přepsáním dat by systém musel přečíst předchozí hodnotu bloku. Souborový systém copy-on-write vyžaduje pro každý zápis dat tři I/O operace – čtení, změnu a zápis. Naproti tomu systém redirect-on-write vyžaduje pouze jednu I/O operaci, což usnadňuje větší efektivitu a vyšší výkon.

ZFS je oblíbenou volbou pro systémy síťových úložišť, kde nad souborovým systémem běží NFS, a také v prostředích virtuálních serverů. Dalším běžným scénářem nasazení je vrstvení clusterového souborového systému, například GPFS (General Parallel File System) nebo Lustre, nad systém ZFS, což umožňuje škálování na další serverové uzly. Uživatelé systému OpenStack mohou systém ZFS nasadit jako základní souborový systém pro blokové úložiště Cinder a objektové úložiště Swift.

Klíčové vlastnosti systému ZFS

Snímky a klony: Systémy ZFS a OpenZFS mohou vytvářet bodové kopie souborového systému s velkou efektivitou a rychlostí, protože systém uchovává všechny kopie dat. Snímky jsou neměnné kopie souborového systému, zatímco klony lze měnit. Snímky a klony jsou integrovány do zaváděcích prostředí systému ZFS v systému Solaris a umožňují uživatelům vrátit se ke snímku, pokud se při opravě nebo aktualizaci systému něco pokazí. Další potenciální výhodou systému ZFS je využití jako techniky obnovy proti ransomwaru.

RAID-Z: RAID-Z umožňuje ukládat stejná data na více místech, aby se zvýšila odolnost proti chybám a zlepšil výkon. Systém rekonstruuje data na ztracené jednotce pomocí informací uložených na ostatních jednotkách systému. Podobně jako RAID 5, RAID-Z rozděluje paritní informace na jednotlivé jednotky, aby systém úložiště fungoval i v případě poruchy jedné jednotky. V případě RAID-Z jsou však proužkovaná data tvořena celým blokem, který má proměnlivou velikost. Ačkoli je RAID-Z obvykle srovnáván s RAID 5, provádí některé operace odlišně a řeší tak některé dlouhodobé problémy tradičního RAID. Jedním z problémů, které RAID-Z řeší, je tzv. efekt díry po zápisu, kdy systém nemůže určit, které datové nebo paritní bloky byly na disk zapsány v důsledku výpadku napájení nebo katastrofického přerušení systému. Výrobci systémů, které používají tradiční RAID, tento problém obvykle řeší použitím nepřerušitelného zdroje napájení nebo vyhrazeného hardwaru.

RAID-Z2 podporuje ztrátu dvou úložných jednotek, podobně jako RAID 6, a RAID-Z3 snese ztrátu tří úložných zařízení. Uživatelé mají možnost uspořádat disky do skupin, podobně jako u běžného RAID. Například systém se dvěma skupinami šesti jednotek nastavený jako RAID-Z3 může tolerovat ztrátu tří jednotek v každé skupině.

Komprese: Inline komprese dat je vestavěná funkce systémů ZFS a OpenZFS, která snižuje počet bitů potřebných k uložení dat. Systémy ZFS a OpenZFS podporují řadu kompresních algoritmů. Uživatelé mají možnost zapnout nebo vypnout inline kompresi.

Deduplikace: Inline deduplikace dat je vestavěná funkce systémů ZFS a OpenZFS, která umožňuje zefektivnit ukládání eliminací nadbytečných dat. Systémy ZFS a OpenZFS vyhledávají duplicitní data pomocí kontrolního součtu bloku, který může mít různou velikost. Uživatelé mohou inline deduplikaci povolit nebo zakázat.

ZFS send/receive: ZFS a OpenZFS umožňují odeslání snímku souborového systému do jiného uzlu serveru, což uživateli umožňuje replikovat data do samostatného systému pro účely, jako je zálohování nebo migrace dat do cloudového úložiště.

Zabezpečení: ZFS a OpenZFS podporují delegovaná oprávnění a jemnější seznamy řízení přístupu pro správu toho, kdo může provádět úlohy správy. Uživatelé mají možnost nastavit systém ZFS pouze pro čtení, takže nelze měnit žádná data. Společnost Oracle podporuje šifrování v systému ZFS v systému Solaris.

Výhody a omezení systému ZFS

ZFS integruje systém souborů a správce svazků, takže uživatelé nemusí získávat a učit se samostatné nástroje a sady příkazů. Systém ZFS nabízí bohatou sadu funkcí a datových služeb bez jakýchkoli nákladů, protože je integrován do operačního systému Oracle. Systém OpenZFS s otevřeným zdrojovým kódem je k dispozici zdarma. Souborový systém lze rozšířit přidáním jednotek do fondu úložišť. Tradiční souborové systémy vyžadují pro zvýšení kapacity změnu velikosti diskového oddílu a uživatelé často potřebují na pomoc produkty pro správu svazků.

ZFS je omezen na provoz na jednom serveru na rozdíl od distribuovaných nebo paralelních souborových systémů, jako jsou GPFS a Lustre, které lze škálovat na více serverů.

Bohatá sada funkcí nabízená systémem ZFS může komplikovat používání a správu tohoto softwaru. Funkce, jako jsou integrované algoritmy kontrolních součtů ZFS, mohou vyžadovat další výpočetní výkon a ovlivňovat výkon.

V linuxové komunitě existují různé názory na licencování s ohledem na redistribuci kódu ZFS a binárních modulů jádra. Například společnost Red Hat považuje za problematické distribuovat kód chráněný licencí CDDL společně s kódem chráněným obecnou veřejnou licencí (GPL). Naproti tomu společnost Canonical, která distribuuje Ubuntu, stanovila, že dodržuje podmínky licencí CDDL a GPL.

ZFS vs. OpenZFS

ZFS společnosti Oracle a open source OpenZFS pocházejí ze stejného zdrojového kódu ZFS. Společnost Oracle a open source komunita na samostatných cestách přidaly do ZFS a OpenZFS rozšíření a významně zlepšily jejich výkon. Aktualizace systému Oracle ZFS jsou proprietární a jsou k dispozici pouze v technologiích Oracle. Aktualizace otevřeného zdrojového kódu systému OpenZFS jsou volně dostupné.

Seznam vylepšení, která společnost Oracle provedla v systému ZFS od roku 2010, zahrnuje např:

  • šifrování;
  • podpora uchování komprimovaných dat napříč restarty operačního systému v adaptivní náhradní mezipaměti L2 (ARC);
  • zaváděcí štítky Extensible Firmware Interface, které poskytují podporu pro fyzické disky a virtuální diskové svazky o velikosti větší než 2 TB;
  • přednastavené uživatelské a skupinové kvóty a
  • monitorování fondu/systému souborů.

Seznam aktualizací, které komunita open source systému OpenZFS provedla, zahrnuje:

  • další kompresní algoritmy;
  • obnovitelné odesílání/přijímání, které umožňuje, aby se dlouho probíhající operace odesílání/přijímání ZFS znovu spustila z místa přerušení systému;
  • komprimované odesílání/přijímání, které umožňuje systému odesílat komprimovaná data z jednoho fondu ZFS do druhého bez nutnosti dekomprimace/rekomprese dat při přesunu z odesílajícího uzlu do cílového;
  • kompresní ARC, který umožňuje systému ZFS uchovávat komprimovaná data v paměti, což umožňuje větší sadu pracovních dat v mezipaměti; a
  • zvýšení maximální velikosti bloku ze 128 KB na 16 MB pro zvýšení výkonu při práci s velkými soubory a urychlení rekonstrukce dat při obnově po poruše disku.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.