ZFS

Konfigurace mezipaměti ZFS pro vysokorychlostní vstup / výstup

Konfigurace mezipaměti ZFS pro vysokorychlostní vstup / výstup

Konfigurace mezipaměti ve vašem fondu ZFS

Pokud jste prošli našimi předchozími příspěvky o základech ZFS, nyní už víte, že se jedná o robustní souborový systém. Provádí kontrolní součty na každém bloku dat zapisovaných na disk a důležitá metadata, jako jsou samotné kontrolní součty, jsou zapsána na více různých místech. ZFS může přijít o vaše data, ale je zaručeno, že vám nikdy nevrátí nesprávná data, jako by to byla ta správná.

Většina redundance pro fond ZFS pochází ze základních VDEV. Totéž platí pro výkon fondu úložišť. Výkon čtení i zápisu se může výrazně zlepšit přidáním vysokorychlostních SSD nebo NVMe zařízení. Pokud jste použili hybridní disky, kde jsou disk SSD a rotující disk dodávány jako jeden hardware, pak víte, jak špatné jsou mechanismy ukládání do mezipaměti na úrovni hardwaru. ZFS není nic takového kvůli různým faktorům, které zde prozkoumáme.

Existují dvě různé mezipaměti, které může fond využívat:

  1. ZFS Intent Log, nebo ZIL, do vyrovnávací paměti WRITE operací.
  2. ARC a L2ARC, které jsou určeny pro operace ČTENÍ.

Synchronní vs asynchronní zápisy

ZFS, stejně jako většina ostatních souborových systémů, se snaží udržovat vyrovnávací paměť operací zápisu do paměti a poté ji zapisovat na disky namísto přímého zápisu na disky. Toto je známé jako asynchronní zápis a poskytuje slušné zvýšení výkonu pro aplikace, které jsou odolné proti chybám nebo kde ztráta dat nezpůsobí velké škody. OS jednoduše uloží data do paměti a řekne aplikaci, která požadovala zápis, že zápis je dokončen. Toto je výchozí chování mnoha operačních systémů, i když je spuštěn ZFS.

Faktem však zůstává, že v případě selhání systému nebo ztráty energie dojde ke ztrátě všech zápisů v hlavní paměti uložených do vyrovnávací paměti. Takže aplikace, které požadují konzistenci výkonu, mohou otevírat soubory synchronní režimu a poté se data považují za zapsaná, pouze když jsou skutečně na disku. Většina databází a aplikací, jako je NFS, se neustále spoléhá na synchronní zápisy.

Můžete nastavit příznak: sync = vždy aby synchronní zápisy byly výchozím chováním pro danou datovou sadu.

$ zfs set sync = vždy mypool / dataset1

Samozřejmě můžete chtít mít dobrý výkon bez ohledu na to, zda jsou soubory v synchronním režimu. To je místo, kde ZIL přichází do obrazu.


Zařízení ZFS Intent Log (ZIL) a SLOG

ZFS Intent Log označuje část vašeho fondu úložišť, kterou ZFS používá k ukládání nových nebo upravených dat jako první, předtím, než je rozšíří do hlavního fondu úložišť a odizoluje všechny VDEV.

Ve výchozím nastavení je z fondu vždy vybráno malé množství úložiště, aby fungovalo jako ZIL, i když pro své úložiště používáte jen spoustu rotujících disků. Můžete však udělat lépe, pokud máte k dispozici malý NVMe nebo jakýkoli jiný typ SSD.

Malé a rychlé úložiště lze použít jako samostatný protokol záměru (nebo SLOG), což je místo, kde by se nově příchozí data dočasně uložila, než budou vyprázdněna do většího hlavního úložiště fondu. Chcete-li přidat zařízení slog, spusťte příkaz:

$ zpool přidat protokol nádrže ada3

Kde nádrž je název vašeho bazénu, log je klíčové slovo, které říká ZFS, aby zacházelo se zařízením ada3 jako zařízení SLOG. Uzel zařízení vašeho SSD nemusí být nutně ada3, použijte správný název uzlu.

Nyní můžete zkontrolovat zařízení ve vašem bazénu, jak je uvedeno níže:

Stále se můžete obávat, že by selhala data v energeticky nezávislé paměti, pokud selže SSD. V takovém případě můžete použít více SSD, které se zrcadlí navzájem nebo v jakékoli konfiguraci RAIDZ.

$ zpool přidat zrcadlo protokolu nádrže ada3 ada4

Pro většinu případů použití jsou nejvhodnější kandidáti pro zařízení SLOG malé 16 GB až 64 GB skutečně rychlého a odolného úložiště flash.


Adaptivní náhradní mezipaměť (ARC) a L2ARC

Při pokusu o uložení operací čtení do mezipaměti se náš cíl změní. Namísto zajištění dobrého výkonu a spolehlivých transakcí se nyní motiv ZFS přesouvá k předpovídání budoucnosti. To znamená, ukládat do mezipaměti informace, které by aplikace vyžadovala v blízké budoucnosti, a vyřadit ty, které budou nejdále nejdříve potřeba v čase.

K tomu se používá část hlavní paměti pro ukládání do mezipaměti dat, která byla použita nedávno nebo jsou k datům přistupována nejčastěji. Odtud pochází termín Adaptive Replacement Cache (ARC). Kromě tradičního ukládání do mezipaměti pro čtení, kde jsou ukládány do mezipaměti pouze naposledy použité objekty, ARC věnuje pozornost také tomu, jak často byla data zpřístupněna.

L2ARC nebo úroveň 2 ARC je rozšířením ARC. Pokud máte vyhrazené úložné zařízení, které funguje jako vaše L2ARC, bude ukládat všechna data, která nejsou příliš důležitá pro to, aby zůstala v ARC, ale zároveň jsou tato data dostatečně užitečná, aby si zasloužila místo v paměti pomalejší než paměť NVMe zařízení.

Chcete-li přidat zařízení jako L2ARC do svého fondu ZFS, spusťte příkaz:

$ zpool přidat mezipaměť nádrže ada3

Kde nádrž je název vašeho bazénu a ada3 je název uzlu zařízení pro vaše úložiště L2ARC.


souhrn

Chcete-li zkrátit dlouhý příběh, operační systém často ukládá operace zápisu do hlavní paměti, pokud jsou soubory otevřeny v asynchronním režimu. To nelze zaměňovat se skutečnou mezipamětí ZFS pro zápis, ZIL.

ZIL je ve výchozím nastavení součástí energeticky nezávislého úložiště fondu, kde se data ukládají pro dočasné úložiště, než se správně rozšíří po všech VDEV. Pokud používáte SSD jako vyhrazené zařízení ZIL, je známé jako SLOG. Jako každý VDEV, i SLOG může být v zrcadlové nebo raidzové konfiguraci.

Čtení mezipaměti uložené v hlavní paměti se nazývá ARC. Kvůli omezené velikosti RAM však můžete vždy přidat SSD jako L2ARC, kde se ukládají do mezipaměti věci, které se do RAM nevejdou.

Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...
Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...