Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Technologie pro zlepšení výkonu založené na použití SSD a široce používané v úložných systémech jsou již dlouho vynalezeny. V první řadě je to využití SSD jako úložného prostoru, které je 100% efektivní, ale drahé. Používají se proto únavné a cachovací technologie, kdy se SSD používají pouze pro nejoblíbenější („horká“) data. Tiering je vhodný pro scénáře dlouhodobého (dny-týdny) používání „horkých“ dat. Cachování je naopak pro krátkodobé (minuty-hodiny) použití. Obě tyto možnosti jsou implementovány v úložném systému QSAN XCubeSAN. V tomto článku se podíváme na implementaci druhého algoritmu - SSD mezipaměť.

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Podstatou technologie SSD mezipaměti je použití SSD jako mezipaměti mezi pevnými disky a RAM řadiče. Výkon SSD je samozřejmě nižší než výkon vlastní cache řadiče, ale objem je o řád vyšší. Dostáváme tedy určitý kompromis mezi rychlostí a hlasitostí.

Indikace pro použití SSD cache pro čtení:

  • Převaha operací čtení nad operacemi zápisu (nejčastěji typické pro databáze a webové aplikace);
  • Přítomnost úzkého hrdla ve formě výkonu pole pevných disků;
  • Množství požadovaných dat je menší než velikost mezipaměti SSD.

Indikace pro použití mezipaměti SSD pro čtení a zápis jsou stejné, s výjimkou povahy operací – smíšený typ (například souborový server).

Většina prodejců úložiště používá ve svých produktech mezipaměť SSD pouze pro čtení. Zásadní rozdíl QSAN Poskytují možnost používat mezipaměť také pro zápis. Chcete-li aktivovat funkci ukládání do mezipaměti SSD v úložných systémech QSAN, musíte si zakoupit samostatnou licenci (dodávanou elektronicky).

SSD cache v XCubeSAN je fyzicky implementována ve formě samostatných SSD cache poolů. V systému mohou být až čtyři. Každý fond samozřejmě používá vlastní sadu SSD. A již ve vlastnostech virtuálního disku určíme, zda bude využívat cache pool a jaký. Povolení a zakázání použití mezipaměti pro svazky lze provést online bez zastavení I/O. Disky SSD můžete také za tepla přidat do fondu a odebrat je odtud. Při vytváření mezipaměti fondu SSD musíte vybrat, v jakém režimu bude fungovat: pouze pro čtení nebo pro čtení+zápis. Na tom závisí jeho fyzická organizace. Protože může existovat několik fondů mezipaměti, jejich funkčnost se může lišit (to znamená, že systém může mít fondy mezipaměti pro čtení i pro čtení a zápis současně).

Pokud je použit fond mezipaměti pouze pro čtení, může se skládat z 1–8 SSD. Disky nemusí mít stejnou kapacitu a stejného dodavatele, protože jsou sloučeny do struktury NRAID+. Všechny SSD ve fondu jsou sdílené. Systém se nezávisle snaží paralelizovat příchozí požadavky mezi všemi SSD, aby dosáhl maximálního výkonu. Pokud některý z SSD selže, nestane se nic špatného: mezipaměť totiž obsahuje pouze kopii dat uložených na poli pevných disků. Jde jen o to, že množství dostupné mezipaměti SSD se sníží (nebo se sníží na nulu, pokud používáte původní mezipaměť SSD z jednoho disku).

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Pokud se mezipaměť používá pro operace čtení a zápisu, pak by počet SSD ve fondu měl být násobkem dvou, protože obsah je zrcadlen na párech disků (používá se struktura NRAID 1+). Duplikace mezipaměti je nezbytná, protože může obsahovat data, která ještě nebyla zapsána na pevné disky. A v tomto případě by selhání SSD z mezipaměti vedlo ke ztrátě informací. V případě NRAID 1+ povede porucha SSD jednoduše k převedení mezipaměti do stavu pouze pro čtení, kdy se nezapsaná data vysypou na pole pevného disku. Po výměně vadného SSD se cache vrátí do původního provozního režimu. Mimochodem, pro větší bezpečnost můžete přiřadit vyhrazené horké rezervy do mezipaměti pro čtení a zápis.

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Při použití funkce mezipaměti SSD v XCubeSAN existuje řada požadavků na velikost paměti řadičů úložiště: čím více systémové paměti, tím větší bude k dispozici fond mezipaměti.

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Na rozdíl od většiny výrobců úložných systémů, kteří nabízejí pouze možnost zapnout/vypnout mezipaměť SSD, QSAN poskytuje více možností. Zejména můžete zvolit provozní režim mezipaměti v závislosti na povaze zatížení. K dispozici jsou tři přednastavené šablony, které jsou svým fungováním nejblíže odpovídajícím službám: databáze, souborový systém, webová služba. Kromě toho může administrátor vytvořit svůj vlastní profil nastavením požadovaných hodnot parametrů:

  • Velikost bloku (Cache Block Size) – 1/2/4 MB
  • Počet požadavků na přečtení bloku tak, aby byl zkopírován do mezipaměti (Populate-on-Read Threshold) – 1..4
  • Počet požadavků na zápis bloku tak, aby byl zkopírován do mezipaměti (Populate-on-Write Threshold) – 0..4

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Profily lze měnit za chodu, ale samozřejmě s resetováním obsahu mezipaměti a jejím novým „zahřátím“.

Vzhledem k principu fungování mezipaměti SSD můžeme při práci s ní zdůraznit hlavní operace:

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Čtení dat, když nejsou v mezipaměti

  1. Do řadiče dorazí požadavek od hostitele;
  2. Protože ty požadované nejsou v mezipaměti SSD, jsou čteny z pevných disků;
  3. Načtená data jsou odeslána hostiteli. Současně je provedena kontrola, zda jsou tyto bloky „horké“;
  4. Pokud ano, zkopírují se do mezipaměti SSD pro další použití.

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Číst data, když jsou přítomna v mezipaměti

  1. Do řadiče dorazí požadavek od hostitele;
  2. Protože požadovaná data jsou v mezipaměti SSD, jsou čtena odtud;
  3. Načtená data jsou odeslána hostiteli.

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Zápis dat při použití mezipaměti pro čtení

  1. Požadavek zápisu od hostitele dorazí do řadiče;
  2. Data se zapisují na pevné disky;
  3. Odpověď označující úspěšné nahrávání je vrácena hostiteli;
  4. Zároveň se kontroluje, zda je blok „horký“ (porovnává se parametr Populate-on-Write Threshold). Pokud ano, zkopíruje se do mezipaměti SSD pro pozdější použití.

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Zápis dat při použití mezipaměti pro čtení a zápis

  1. Požadavek zápisu od hostitele dorazí do řadiče;
  2. Data se zapisují do mezipaměti SSD;
  3. Odpověď označující úspěšné nahrávání je vrácena hostiteli;
  4. Data z mezipaměti SSD se zapisují na pevné disky na pozadí;

Kontrola v akci

Zkušební stojan

2 servery (CPU: 2 x Xeon E5-2620v3 2.4 Hz / RAM: 32 GB) jsou připojeny dvěma porty přes Fibre Channel 16G přímo k úložnému systému XCubeSAN XS5224D (16 GB RAM/řadič).

Pro datové pole jsme použili 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, kombinovaný v RAID5 (15+1), pro datové pole a 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb cache

Byly vytvořeny 2 svazky: jeden pro každý server.

Test 1. SSD cache pouze pro čtení od 1-8 SSD

Mezipaměť SSD

  • Typ I/O: Přizpůsobení
  • Velikost bloku mezipaměti: 4 MB
  • Práh naplnění při čtení: 1
  • Práh naplnění při zápisu: 0

I/O vzor

  • Nástroj: IOmeter V1.1.0
  • Dělníci: 1
  • Vynikající (hloubka fronty): 128
  • Specifikace přístupu: 4 kB, 100 % čtení, 100 % náhodné

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Teoreticky platí, že čím více SSD v cache poolu, tím vyšší výkon. V praxi se to potvrdilo. Jediný výrazný nárůst počtu SSD s malým počtem svazků nevede k explozivnímu efektu.

Test 2. SSD cache v režimu čtení + zápis s 2-8 SSD

Mezipaměť SSD

  • Typ I/O: Přizpůsobení
  • Velikost bloku mezipaměti: 4 MB
  • Práh naplnění při čtení: 1
  • Práh naplnění při zápisu: 1

I/O vzor

  • Nástroj: IOmeter V1.1.0
  • Dělníci: 1
  • Vynikající (hloubka fronty): 128
  • Specifikace přístupu: 4 kB, 100 % zápis, 100 % náhodný

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Stejný výsledek: explozivní růst výkonu a škálování s rostoucím počtem SSD.

V obou testech bylo množství pracovních dat menší než celková velikost mezipaměti. Proto se postupem času všechny bloky zkopírovaly do cache. A práce byla ve skutečnosti již provedena s SSD, prakticky bez ovlivnění pevných disků. Účelem těchto testů bylo jasně prokázat efektivitu zahřívání mezipaměti a škálování jejího výkonu v závislosti na počtu SSD.

Nyní se vraťme na zem a podívejme se na realističtější situaci, kdy je množství dat větší než velikost mezipaměti. Aby test proběhl v rozumném čase (doba „zahřívání“ mezipaměti se výrazně prodlužuje s rostoucí velikostí svazku), omezíme velikost svazku na 120 GB.

Test 3. Emulace databáze

Mezipaměť SSD

  • Typ I/O: Databáze
  • Velikost bloku mezipaměti: 1 MB
  • Práh naplnění při čtení: 2
  • Práh naplnění při zápisu: 1

I/O vzor

  • Nástroj: IOmeter V1.1.0
  • Dělníci: 1
  • Vynikající (hloubka fronty): 128
  • Specifikace přístupu: 8 kB, 67 % čtení, 100 % náhodné

Implementace SSD mezipaměti v úložném systému QSAN XCubeSAN

Verdikt

Zřejmým závěrem je samozřejmě dobrá efektivita použití mezipaměti SSD ke zlepšení výkonu jakéhokoli úložného systému. Aplikován na QSAN XCubeSAN Toto tvrzení plně platí: funkce ukládání do mezipaměti SSD je implementována dokonale. Týká se to podpory režimů čtení a čtení + zápisu, flexibilního nastavení pro jakýkoli scénář použití a také celkového výkonu systému jako celku. Proto za velmi rozumné náklady (cena licence je srovnatelná s náklady na 1-2 SSD) můžete výrazně zvýšit celkový výkon.

Zdroj: www.habr.com

Přidat komentář