FAST VP na úložišti Unity: jak to funguje

Dnes si povíme o zajímavé technologii implementované v úložných systémech Unity/Unity XT - FAST VP. Pokud o Unity slyšíte poprvé, můžete se podívat na charakteristiky systému pomocí odkazu na konci článku. Více než rok jsem pracoval na FAST VP v projektovém týmu Dell EMC. Dnes chci o této technologii mluvit podrobněji a odhalit některé podrobnosti o její implementaci. Samozřejmě jen ty, které je povoleno odhalit. Pokud vás zajímají otázky efektivního ukládání dat nebo jste jednoduše úplně nepochopili dokumentaci, pak bude tento článek jistě užitečný a zajímavý.

FAST VP na úložišti Unity: jak to funguje

Hned vám řeknu, co v materiálu nebude. Nebude chybět hledání konkurentů a srovnávání s nimi. O podobných technologiích z open source také neplánuji mluvit, protože zvědavý čtenář už o nich ví. A samozřejmě nebudu nic inzerovat.

Skladování Tiering. Cíle a cíle FAST VP

FAST VP znamená plně automatizované vrstvení úložiště pro virtuální fond. Trochu obtížné? Žádný problém, teď na to přijdeme. Vrstvení je způsob organizace ukládání dat, ve kterém existuje několik úrovní (vrstev), kde jsou tato data uložena. Každý má své vlastní vlastnosti. Nejdůležitější: výkon, objem a cena uložení jednotky informace. Samozřejmě je mezi nimi vztah.

Důležitým rysem vrstvení je, že přístup k datům je poskytován jednotně bez ohledu na úroveň úložiště, na které se aktuálně nachází, a velikost fondu se rovná součtu velikostí zdrojů v něm obsažených. Zde jsou rozdíly oproti mezipaměti: velikost mezipaměti se nepřičítá k celkovému objemu zdroje (v tomto případě fondu) a data mezipaměti duplikují nějaký fragment dat hlavního média (nebo se duplikují, pokud data z cache ještě nebyla zapsána). Také rozdělení dat podle úrovní je uživateli skryto. To znamená, že přesně nevidí, jaká data se na jednotlivých úrovních nacházejí, i když to může nepřímo ovlivnit nastavením politik (o nich později).

Nyní se podíváme na funkce implementace vrstvení úložiště v Unity. Unity má 3 úrovně nebo úrovně:

  • Extrémní výkon (SSD)
  • Výkon (SAS HDD 10k/15k RPM)
  • Kapacita (NL-SAS HDD 7200 RPM)

Jsou uvedeny v sestupném pořadí podle výkonu a ceny. Extrémní výkon zahrnuje pouze pevné disky (SSD). Další dvě vrstvy zahrnují magnetické diskové jednotky, které se liší rychlostí otáčení a podle toho i výkonem.

Úložná média stejné úrovně a stejné velikosti se spojí do pole RAID a vytvoří skupinu RAID (skupina RAID, zkráceně RG); O dostupných a doporučených úrovních RAID si můžete přečíst v oficiální dokumentaci. Úložné fondy jsou tvořeny ze skupin RAID z jedné nebo více úrovní, ze kterých je následně distribuován volný prostor. A z fondu je přidělen prostor pro souborové systémy a LUN.

FAST VP na úložišti Unity: jak to funguje

Proč potřebuji Tiering?

Stručně a abstraktně: dosáhnout lepších výsledků s minimem zdrojů. Přesněji řečeno, výsledek je obvykle chápán jako soubor charakteristik úložného systému - rychlost a doba přístupu, náklady na úložiště a další. Minimum zdrojů znamená nejmenší výdaje: peníze, energie a tak dále. FAST VP implementuje mechanismy pro redistribuci dat napříč různými úrovněmi v úložných systémech Unity/Unity XT. Pokud mi věříte, můžete následující odstavec přeskočit. Ke zbytku vám povím trochu víc.

Správná distribuce dat napříč vrstvami úložiště vám umožňuje ušetřit na celkových nákladech na úložiště obětováním rychlosti přístupu některým zřídka používaným informacím a zlepšit výkon přesunem často používaných dat na rychlejší média. Zde by někdo mohl namítnout, že i bez vrstvení běžný správce ví, kam umístit jaká data, jaké jsou žádoucí vlastnosti úložného systému pro jeho úkol atd. To je nepochybně pravda, ale ruční distribuce dat má své nevýhody:

  • vyžaduje čas a pozornost správce;
  • Není vždy možné „překreslit“ prostředky úložiště tak, aby vyhovovaly měnícím se podmínkám;
  • mizí důležitá výhoda: jednotný přístup ke zdrojům umístěným na různých úrovních úložiště.

Aby se správci úložišť nemuseli starat o bezpečnost práce, dodávám, že i zde je nutné kompetentní plánování zdrojů. Nyní, když jsou stručně nastíněny úkoly vrstvení, pojďme se podívat na to, co můžete od FAST VP očekávat. Nyní je čas vrátit se k definici. První dvě slova – Fully Automated – jsou doslovně přeložena jako „plně automatizovaná“ a znamenají, že distribuce mezi úrovněmi probíhá automaticky. Virtuální fond je datový fond, který zahrnuje prostředky z různých úrovní úložiště. Takhle to vypadá:

FAST VP na úložišti Unity: jak to funguje

Při pohledu do budoucna řeknu, že FAST VP přesouvá data pouze v rámci jednoho fondu, nikoli mezi několika fondy.

Problémy řešené FAST VP

Promluvme si nejprve abstraktně. Máme fond a nějaký mechanismus, který může redistribuovat data v rámci tohoto fondu. Pamatujte, že naším cílem je dosáhnout maximální produktivity, a zeptejme se sami sebe: jakými způsoby toho můžeme dosáhnout? Může jich být několik a zde má FAST VP uživateli co nabídnout, protože technologie je něco víc než jen vrstvení úložiště. Zde je několik způsobů, jak může FAST VP zvýšit výkon bazénu:

  • Distribuce dat na různé typy disků, úrovně
  • Distribuce dat mezi disky stejného typu
  • Distribuce dat při rozšiřování fondu

Než se podíváme na to, jak jsou tyto úkoly řešeny, potřebujeme znát některá nezbytná fakta o tom, jak FAST VP funguje. FAST VP pracuje s bloky určité velikosti - 256 megabajtů. Toto je nejmenší souvislý „kus“ dat, který lze přesunout. V dokumentaci tomu říkají: plátek. Z pohledu FAST VP se všechny RAID skupiny skládají ze sady takových „kusů“. V souladu s tím jsou pro takové datové bloky akumulovány všechny I/O statistiky. Proč byla zvolena tato velikost bloku a bude zmenšena? Blok je poměrně velký, ale jedná se o kompromis mezi granularitou dat (menší velikost bloku znamená přesnější distribuci) a dostupnými výpočetními zdroji: vzhledem k existujícím přísným omezením paměti RAM a velkému počtu bloků mohou statistická data zabírat příliš mnoho a počet výpočtů se úměrně zvýší.

Jak FAST VP přiděluje data do fondu. Politici

Chcete-li řídit umístění dat ve fondu s povoleným FAST VP, existují následující zásady:

  • Nejvyšší dostupná úroveň
  • Auto-Tier
  • Start High a Auto-Tier (výchozí)
  • Nejnižší dostupná úroveň

Ovlivňují jak počáteční alokaci bloku (první zápis dat), tak následné přerozdělení. Když jsou data již umístěna na discích, bude redistribuce zahájena podle plánu nebo ručně.

Nejvyšší dostupná úroveň se pokusí umístit nový blok na nejvýkonnější úroveň. Pokud na něm není dostatek místa, umístí se na další nejproduktivnější úroveň, ale pak lze data přesunout na produktivnější úroveň (pokud je místo nebo vytěsněním jiných dat). Auto-Tier umísťuje nová data na různé úrovně v závislosti na množství dostupného prostoru a jsou přerozdělována v závislosti na poptávce a volném prostoru. Výchozí zásada je Start High a Auto-Tier a je také doporučena. Při prvním umístění funguje jako nejvyšší dostupná úroveň a poté se data přesouvají v závislosti na statistikách využití. Zásady nejnižší dostupné úrovně se snaží umístit data do nejméně produktivní úrovně.

Přenos dat probíhá s nízkou prioritou, aby nenarušoval užitečný provoz úložného systému, existuje však nastavení „Rychlost přemístění dat“, které mění prioritu. Je zde jedna zvláštnost: ne všechny datové bloky mají stejné pořadí přerozdělování. Například bloky označené jako metadata budou nejprve přesunuty na rychlejší úroveň. Metadata jsou takříkajíc „data o datech“, nějaké další informace, které nejsou uživatelskými daty, ale ukládají jejich popis. Například informace v systému souborů o tom, ve kterém bloku se konkrétní soubor nachází. To znamená, že rychlost přístupu k datům závisí na rychlosti přístupu k metadatům. Vzhledem k tomu, že velikost metadat je obvykle mnohem menší, očekává se, že výhody jejich přesunu na disky s vyšším výkonem budou větší.

Kritéria, která Fast VP používá při své práci

Hlavním kritériem pro každý blok je velmi zhruba charakteristika „poptávky“ po datech, která závisí na počtu operací čtení a zápisu datového fragmentu. Tuto vlastnost nazýváme „teplota“. Existují požadovaná (horká) data, která jsou „žhavější“ než nevyžádaná data. Vypočítává se pravidelně, standardně v intervalech jedné hodiny.

Funkce výpočtu teploty má následující vlastnosti:

  • Při absenci I/O se data časem „ochlazují“.
  • Při víceméně stejné zátěži v průběhu času se teplota nejprve zvýší a poté se ustálí v určitém rozmezí.

Dále jsou brány v úvahu výše popsané zásady a volné místo na každé vrstvě. Pro názornost uvedu obrázek z dokumentace. Zde červená, žlutá a modrá barva označují bloky s vysokou, střední a nízkou teplotou.

FAST VP na úložišti Unity: jak to funguje

Ale vraťme se k úkolům. Můžeme tedy začít analyzovat, co se dělá pro vyřešení problémů FAST VP.

A. Distribuce dat na různé typy disků, úrovně

Ve skutečnosti je to hlavní úkol FAST VP. Zbytek jsou v jistém smyslu jeho deriváty. V závislosti na zvolené politice budou data distribuována na různých úrovních úložiště. V první řadě je zohledněna politika umístění, dále teplota bloku a velikost/rychlost RAID skupin.

Pro zásady nejvyšší/nejnižší dostupné úrovně je vše docela jednoduché. U ostatních dvou tomu tak je. Data jsou distribuována na různých úrovních s ohledem na velikost a výkon skupin RAID: takže poměr celkové „teploty“ bloků k „podmíněnému maximálnímu výkonu“ každé skupiny RAID je přibližně stejný. Zátěž je tak rozložena víceméně rovnoměrně. Více požadovaných dat se přesouvá na rychlá média a zřídka používaná data se přesouvají na pomalejší média. V ideálním případě by distribuce měla vypadat nějak takto:

FAST VP na úložišti Unity: jak to funguje

B. Distribuce dat mezi disky stejného typu

Pamatujte, že na začátku jsem psal, že paměťové médium z jeden nebo více úrovně jsou sloučeny do jednoho bazénu? V případě jediné úrovně má FAST VP také co dělat. Pro dosažení maximálního výkonu na jakékoli úrovni je vhodné distribuovat data mezi disky rovnoměrně. To vám (teoreticky) umožní získat maximální množství IOPS. Data v rámci skupiny RAID lze považovat za distribuovaná rovnoměrně mezi disky, ale ne vždy tomu tak je mezi skupinami RAID. V případě nerovnováhy bude FAST VP přesouvat data mezi skupinami RAID v poměru k jejich objemu a „podmíněnému výkonu“ (v číselném vyjádření). Pro srozumitelnost ukážu schéma rebalancování mezi třemi skupinami RAID:

FAST VP na úložišti Unity: jak to funguje

B. Distribuce dat při rozšiřování fondu

Tato úloha je speciálním případem předchozí úlohy a provádí se, když je do fondu přidána skupina RAID. Aby nově přidaná skupina RAID nezůstala nečinná, budou do ní přenesena některá data, což znamená, že zátěž bude přerozdělena mezi všechny skupiny RAID.

SSD Wear Leveling

Pomocí vyrovnávání opotřebení může FAST VP prodloužit životnost SSD, i když tato funkce přímo nesouvisí s vrstvením úložiště. Vzhledem k tomu, že údaje o teplotě jsou již k dispozici, bere se v úvahu i počet operací zápisu a víme, jak přesouvat datové bloky, bylo by logické, aby FAST VP tento problém vyřešil.

Pokud počet položek v jedné skupině RAID výrazně převyšuje počet položek v jiné skupině, FAST VP přerozdělí data podle počtu operací zápisu. Na jednu stranu to ulehčí zátěž a ušetří zdroje některých disků, na druhou stranu to přidá „práci“ méně zatíženým a zvýší celkový výkon.

Tímto způsobem FAST VP přebírá tradiční výzvy Storage Tiering a dělá o něco víc. To vše umožňuje celkem efektivně ukládat data do úložného systému Unity.

Několik tipů

  1. Nezanedbávejte čtení dokumentace. Existují osvědčené postupy a fungují docela dobře. Pokud je budete dodržovat, pak zpravidla nevznikají žádné vážné problémy. Zbytek rad je v podstatě opakuje nebo doplňuje.
  2. Pokud jste nakonfigurovali a povolili FAST VP, je lepší nechat jej zapnutý. Nechte jej distribuovat data ve vyhrazeném čase a postupně než jednou ročně a mít vážný dopad na plnění dalších úkolů. V takových případech může redistribuce dat trvat dlouho.
  3. Buďte opatrní při výběru překládacího okna. I když je to zřejmé, snažte se vybrat čas s co nejmenší zátěží na Unity a vyčlenit si dostatečný časový úsek.
  4. Plánujte rozšíření svého úložného systému, udělejte to včas. Toto je obecné doporučení, které je důležité i pro FAST VP. Pokud je množství volného místa velmi malé, pohyb dat se zpomalí nebo znemožní. Zvláště pokud jste zanedbali bod 2.
  5. Při rozšiřování fondu s povoleným FAST VP byste neměli začínat s nejpomalejšími disky. To znamená, že buď přidáme všechny plánované skupiny RAID najednou, nebo nejprve přidáme nejrychlejší disky. V tomto případě redistribuce dat na nové „rychlé“ disky zvýší celkovou rychlost fondu. V opačném případě může začít s „pomalými“ disky vést k velmi nepříjemné situaci. Nejprve se budou data přenášet na nové relativně pomalé disky a poté, když se přidají rychlejší, v opačném směru. Existují zde nuance související s různými zásadami FAST VP, ale obecně je podobná situace možná.

Pokud se díváte na tento produkt, můžete si Unity zdarma vyzkoušet stažením virtuálního zařízení Unity VSA.

FAST VP na úložišti Unity: jak to funguje

Na konci materiálu sdílím několik užitečných odkazů:

Závěr

Rád bych napsal o mnohém, ale chápu, že ne všechny detaily budou pro čtenáře zajímavé. Můžete například podrobněji mluvit o kritériích, podle kterých FAST VP rozhoduje o přenosu dat, o procesech analýzy I/O statistik. Také téma interakce s Dynamické bazény, a to si zaslouží samostatný článek. Můžete dokonce fantazírovat o vývoji této technologie. Doufám, že to nebyla nuda a já vás nenudil. Uvidíme se znova!

Zdroj: www.habr.com

Přidat komentář