ZFS
ZFS (Zettabyte File System) je kombinovaný souborový systém a správce logických svazků vyvinutý společností Sun Microsystems pro operační systém Solaris. ZFS obsahuje funkce pro ověřování integrity dat, podporu pro uchovávání velkých objemů dat, integraci konceptů souborového systému a správy svazků, zaznamenávání a ukládání aktuálního stavu systému (jako bod obnovy u Windows), ověřování integrity dat a jejich opravy za chodu, RAID-Z a přirozená podpora NFSv4 ACLs. ZFS je implementováno jako open-source software, licencováno pod Common Development and Distribution License (CDDL). ZFS byl do 20. září 2011 registrovanou obchodní značkou firmy Oracle.
Historie
ZFS byl navržen a implementován týmem společnosti Sun, který vedl Jeff Bonwick. ZFS bylo oznámeno 14. září 2004. Zdrojový kód ZFS byl integrován do hlavního vývojového kmene Solaris 31. října 2005 a uvolněn jako součást OpenSolarisu (build 27) dne 16. listopadu 2005. Sun oznámil ZFS do aktualizace na verzi 6/06 pro Solaris 10 v červnu 2006, jeden rok po vzniku komunity Open Solaris.
Celé jméno zní Zettabyte File System. ZFS umí uložit až 256 kvadrilionů Zettabytů (1 ZB = 270 bytů).
Čísla verzí
Významné verze ZFS:
- 10 – podporováno Solaris 10 U7
- 14 – podporováno OpenSolaris 2009.06, FreeBSD 8.1
- 15 – podporováno Solaris 10 10/09 (U8), FreeBSD 8.2
- 17 – Triple Parity RAID-Z
- 19 – podporováno Solaris 10 09/10
- 21 – Deduplikace
- 22 – Solaris 10 9/10 (U9)
- 28 – FreeBSD 9.0, OpenIndiana/Illumos, ZFSOnLinux, ZFS-FUSE
- 29 – Solaris 10 8/11 (U10)
- 30 – podpora šifrování – není kompatibilní s otevřenými implementacemi, pouze v uzavřeném zdroji pro licencovaný Solaris 11 Express release.
Vlastnosti
Integrita dat
Jedna z hlavních vlastností, která odlišuje ZFS od ostatních souborových systémů je jeho vytvoření od základu se zaměřením na integritu dat. Tedy ochraňuje uživatelská data na disku před jejich nenápadným poškozením, způsobeným například kosmickou radiací, chybami v ovladači disku, falešnými zápisy, atd.
Integrita dat je vysokou prioritou v ZFS protože nedávné výzkumy ukazují, že žádný ze souborových systémů rozšířených v současnosti, jako jsou Ext, XFS, JFS, ReiserFS nebo NTFS, ale ani hardwarový RAID, neposkytují dostatečnou ochranu proti takovýmto problémům. Současné výzkumy ukazují, že ZFS chrání data lépe než dřívější řešení.
Integrity dat je dosaženo používáním Fletcherova kontrolního součtu nebo používáním hashovacího algoritmu SHA-2 přes stromovou strukturu souborového systému. Je vypočten kontrolní součet každého bloku dat a hodnota každého součtu je uložena v ukazateli na tento blok, nikoli v bloku samotném. Dále, blok obsahující tento ukazatel je také chráněn kontrolním součtem a hodnota je uložena do ukazatele nadřazeného. Takto kontrola pokračuje až do kořene stromové struktury souborového systému, jehož kontrolní součet je také proveden a tímto je vytvořen strom (tzv. „hash tree“). Když je přečten blok, nezáleží jestli jsou to data nebo metadata, je vypočten jeho kontrolní součet a je porovnán s uloženou hodnotou kontrolního součtu. Pokud jsou součty shodné, data jsou poslána dále procesu, který o ně žádal. Pokud nejsou shodné, ZFS dokáže data opravit, pokud datové úložiště obsahuje redundanci dat pomocí zrcadlení disků typu ZFS nebo jiného typu RAID. Pokud se datové úložiště skládá pouze z jediného disku, ZFS poskytuje možnost redundance pomocí parametru copies=2
(nebo copies=3
), což znamená, že data budou uložena na disku dvakrát (třikrát), čímž se kapacita disku zmenší na polovinu (na třetinu). Při použití redundance, ZFS načte druhou kopii dat (nebo data opraví pomocí obnovovacích mechanismů RAID) a přepočítá kontrolní součty. Pokud jsou kontrolní součty shodné, ZFS nahradí poškozená data daty z druhé kopie.
Současnost
V současné době se uvažuje o zapojení podpory ZFS v jádrech mnoha unixových systémech (např. Linux, Mac OS X, BSD) a to především v jejich serverových verzích. ZFS by se měl objevit v chystaném Mac OS X 10.6 Snow Leopard (v 10.5 Leopard se nachází pouze experimentální podpora „ZFS Beta Seed v1.1“ umožňující jen čtení a práci přes terminál, která se nedočkala ve verzi 10.5.1 žádné aktualizace). Po dořešení problémů s kolizí licencí CDDL a GPL bude obsažen jako volitelná součást Linuxu.
Charakteristika
- automatická kontrola a oprava konsistence zapsaných dat
- téměř nepřekonatelná horní kapacitní hranice (až 16 EB = 16 mld. GB)
- zvýšení maximálního počtu souborů v jedné složce na úroveň < 7,2×1016
- proměnlivá velikost jednotlivých bloků
- implementace transparentní komprese dat, což výrazně urychluje zápis