FAST VP v úložisku Unity: ako to funguje

Dnes sa pozrieme na zaujímavú technológiu implementovanú v SÚH Unity/Unity XT – FAST VP. Ak ste o Unity počuli prvýkrát, na odkaze na konci článku si môžete pozrieť charakteristiky systému. V projektovom tíme Dell EMC som pracoval na FAST VP viac ako rok. Dnes chcem podrobne predstaviť túto technológiu a odhaliť niektoré detaily jej implementácie. Samozrejme, len tie, ktoré je povolené odhaliť. Ak sa zaujímate o efektívne skladovanie dát alebo ste sa len nedostatočne oboznámili s dokumentáciou, tento článok vám určite bude užitočný a zaujímavý.

FAST VP v úložisku Unity: ako to funguje

Hneď poviem, čo v materiáli nebude. Nebude tu hľadanie konkurentov a porovnávanie s nimi. Takisto neplánujem rozprávať o podobných technológiách z open source, pretože zvedavý čitateľ o nich už vie. A, samozrejme, nič neplánujem propagovať.

Tiering úložiska. Ciele a úlohy FAST VP

FAST VP je skratka pre Fully Automated Storage Tiering for Virtual Pool. Znie to zložito? Nič sa nebojte, teraz si to vysvetlíme. Tiering je spôsob organizácie ukladania dát, pri ktorom existuje niekoľko úrovní (tiers), kde sa tieto dáta ukladajú. Každá má svoje charakteristiky. Najdôležitejšie sú: výkon, objem a cena uloženia jednej informácie. Samozrejme, medzi nimi existuje vzájomná súvislosť.

Dôležitou vlastnosťou tieringu je, že prístup k dátam je poskytovaný jednotne bez ohľadu na to, na ktorej úrovni uloženia sa v súčasnosti nachádzajú, pričom veľkosť poolu je rovná súčtu veľkostí zdrojov, ktoré do neho patrí. Tu je rozdiel od cache: veľkosť cache sa nepridáva k celkovému objemu zdroja (poolu v tomto prípade), a dáta v cache duplikujú nejaký fragment dát hlavného média (alebo budú duplikovať, ak dáta z cache ešte neboli zapísané). Takisto je rozdelenie dát po úrovniach skryté pred používateľom. To znamená, že nevidí, aké konkrétne dáta sú umiestnené na každej úrovni, aj keď môže na to nepriamo vplývať prostredníctvom nastavenia politík (o tých sa dozviete neskôr).

Teraz sa pozrime na zvláštnosti implementácie storage tieringu v Unity. V Unity sú vyhradené 3 úrovne, alebo tieri:

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

Sú zoradené podľa klesajúcej výkonnosti a ceny. V Extreme performance sú výlučne pevné disky SSD. V dvoch ďalších úrovniach sú disky na magnetických nosičoch, ktoré sa líšia rýchlosťou otáčania a tým pádom aj výkonnosťou.

Úložné zariadenia z jednej úrovne a jedného formátu sa kombinujú do RAID poľa, čím vytvárajú RAID skupinu (RAID group, skrátene – RG); o dostupných a odporúčaných úrovniach RAID si môžete prečítať v oficiálnej dokumentácii. Z RAID skupín s jednou alebo viacerými úrovňami sa formujú úložné pooly (Storage pool), z ktorých sa potom prerozdeľuje voľné miesto. A už z poolu sa vyčleňuje miesto pre súborové systémy a LUN-y.

FAST VP v úložisku Unity: ako to funguje

Na čo mi je Tiering?

Ak by som to mal stručne a abstraktne formulovať: aby som dosiahol väčšie výsledky s minimom zdrojov. Ak by som mal byť konkrétnejší, výsledkom sa zvyčajne rozumie súhrn charakteristík SAN – rýchlosť a prístupový čas, náklady na ukladanie a pod. Minimom zdrojov sa myslia najmenšie náklady: peniaze, energia a podobne. FAST VP presne realizuje mechanizmy prerozdeľovania dát po rôznych úrovniach v SAN Unity/Unity XT. Ak mi veríte, môžete preskočiť nasledujúci odsek. Pre ostatných poviem niečo podrobnejšie.

Správne prerozdelenie dát po úrovniach ukladania umožňuje ušetriť na celkových nákladoch na SAN, obetujúc rýchlosť prístupu niektorým málo používaným informáciám, a zvýšiť výkonnosť, keď presunieme často používané dáta na rýchlejšie nosiče. Tu niekto môže namietať, že aj bez tiering-u vie normálny administrátor, kam ktoré dáta umiestniť, aké sú želateľné charakteristiky SAN pre jeho úlohu atď. Nezvratne to tak je, ale manuálne prerozdelenie dát má svoje nedostatky:

  • zabúda na čas a pozornosť administrátora;
  • nedá sa vždy "prekorigovať" prostriedky SAN na zmenené podmienky;
  • zhasína dôležitá výhoda: unifikovaný prístup k zdrojom, ktoré sa nachádzajú na rôznych úrovniach ukladania.

Aby sa správcom storage menej obávali o pracovnú istotu, dodám, že rozumné plánovanie zdrojov je v tomto prípade nevyhnutné. Teraz, keď sú úlohy týkajúce sa tieringu stručne načrtnuté, pozrime sa, čo môžeme očakávať od FAST VP. Teraz je ten pravý čas vrátiť sa k definícii. Prvé dve slová – Fully Automated – sa doslovne prekladajú ako „plne automatizovaný“ a znamenajú, že rozdeľovanie podľa úrovní prebieha automaticky. A Virtual Pool je súbor údajov, ktorý zahŕňa zdroje z rôznych úrovní ukladania. Takto to vyzerá:

FAST VP v úložisku Unity: ako to funguje

Nadväzujúc na to, poviem, že FAST VP presúva dáta len v rámci jedného poolu, a nie medzi viacerými poolmi.

Úlohy, ktoré rieši FAST VP

Najprv sa rozprávajme abstraktne. Máme pool a určitý mechanizmus, ktorý môže predistribuovať dáta v rámci tohto poolu. S ohľadom na to, že našou úlohou je dosiahnuť maximálny výkon, položme si otázku: akými spôsobmi je možné ho dosiahnuť? Tých spôsobov môže byť niekoľko, a FAST VP má používateľovi čo ponúknuť, pretože technológia predstavuje niečo viac než len storage tiering. Takto môže FAST VP zvýšiť výkon poolu:

  • Rozdelenie dát podľa rôznych typov diskov, úrovní
  • Rozdelenie dát medzi diskami jedného typu
  • Rozdelenie dát pri rozširovaní poolu

Predtým, než sa podrobne pozrieme na to, ako sa tieto úlohy riešia, musíme poznať niektoré potrebné faktory týkajúce sa fungovania FAST VP. FAST VP pracuje s blokmi určitej veľkosti – 256 megabajtov. Ide o minimálny kontinuálny „kus“ dát, ktorý môže byť presunutý. V dokumentácii sa tomu hovorí: slice. Z pohľadu FAST VP všetky RAID skupiny pozostávajú z množiny takýchto „kusov“. V súlade s tým sa všetka štatistika vstupu a výstupu zhromažďuje pre takéto bloky dát. Prečo bol zvolený práve tento rozmer bloku a bude znížený? Blok je dostatočne veľký, ale je to kompromis medzi granularitou dát (menší rozmer bloku – presnejšie rozdelenie) a dostupnými výpočtovými prostriedkami: pri existujúcich prísnych obmedzeniach na operačnú pamäť a veľkom počte blokov môžu dáta štatistiky zaberať príliš veľa a počet výpočtov vzrastie proporcionálne.

Ako FAST VP umiestňuje dáta v poole. Politiky

Na spravovanie umiestnenia dát v úložisku s povoleným FAST VP existujú také politiky:

  • Najvyššia dostupná úroveň
  • Automatická úroveň
  • Najprv vysoká úroveň a potom automatická (predvolené nastavenie)
  • Najnižšia dostupná úroveň

Oni ovplyvňujú ako počiatočné umiestnenie bloku (dáta sú prvýkrát zapísané), tak aj následné preskupenie. Keď sú dáta už umiestnené na diskoch, preskupenie sa spustí podľa harmonogramu alebo manuálne.

Najvyššia dostupná úroveň sa snaží umiestniť nový blok na najvýkonnejšiu úroveň. Pri nedostatku miesta tam – na nasledujúcu výkonnostnú úroveň, ale neskôr môžu byť dáta presunuté na výkonnejšiu úroveň (pri dostupnosti miesta alebo vytlačením iných dát). Automatická úroveň umiestňuje nové dáta na rôzne úrovne v závislosti od veľkosti dostupného priestoru, a preskupujú sa v závislosti od dopytu a voľného miesta. Politika Najprv vysoká úroveň a potom automatická – je predvolená a tiež odporúčaná. Pri počiatočnom umiestnení funguje ako Najvyššia dostupná úroveň, a potom sa presúvajú dáta v závislosti od ich štatistiky používania. Politika Najnižšia dostupná úroveň sa snaží umiestniť dáta na najmenej výkonnú úroveň.

Presun dát prebieha s nízkou prioritou, aby neprekážal užitočnej práci úložiska, avšak existuje nastavenie „Rýchlosť presunu dát“, ktoré mení prioritu. V tomto prípade je zvláštnosťou, že nie všetky bloky dát majú rovnakú poradie preskupenia. Napríklad bloky označené ako metadata budú presunuté na rýchlejšiu úroveň ako prvé. Metadata sú, ak to tak môžeme vyjadriť, „dáta o dátach“, akási dodatočná informácia, ktorá nie je používateľskými dátami, ale uchováva ich popis. Napríklad informácia v súborovom systéme o tom, v akom bloku sa nachádza konkrétny súbor. To znamená, že rýchlosť prístupu k dátam závisí od rýchlosti prístupu k metadatom. Keďže metadata sú zvyčajne oveľa menšie, očakáva sa, že zisk z ich presunu na výkonnejšie disky bude väčší.

Kritériá, ktoré Fast VP používa v práci

Hlavným kritériom pre každý blok, ak to mám veľmi zjednodušiť, je charakteristika "dopytu" po údajoch, ktorá závisí od počtu operácií čítania a zápisu fragmentu údajov. Táto charakteristika sa u nás nazýva "Teplota". Existujú dopytované (hot) údaje, ktoré sú "horúcejšie" ako nedopytované. Vypočítava sa pravidelne, predvolene s intervalom jedného hodiny.

Funkcia výpočtu teploty má nasledujúce vlastnosti:

  • Pri absencii vstupu a výstupu údaje časom "chladnú".
  • Pri približne rovnakej záťaži v čase teplota najprv vzrastá a potom sa stabilizuje v určitom rozmedzí.

Ďalej sa zohľadňujú politiky uvedené vyššie a voľné miesto na každom tieri. Pre prehľadnosť uvádzam obrázok z dokumentácie. Tu sú bloky s vysokou, strednou a nízkou teplotou označené červenou, žltou a modrou farbou.

FAST VP v úložisku Unity: ako to funguje

Ale vráťme sa k úlohám. Takže, môžeme začať s analýzou toho, čo sa robí na riešenie úloh FAST VP.

A. Rozdelenie údajov medzi rôzne typy diskov, úrovne

To je vlastne hlavná úloha FAST VP. Ostatné, do určitej miery, sú odvodené od nej. V závislosti od vybratej politiky sa údaje budú rozdeľovať medzi rôzne úrovne ukladania. Najprv sa zohľadňuje politika umiestnenia, potom teplota blokov a veľkosť/rýchlosť RAID skupín.

Pre politiky Najvyšší/Najnižší dostupný tier je to celkom jednoduché. Pre ostatné dve je to takto. Údaje sa medzi rôznymi úrovňami rozdeľujú s ohľadom na veľkosť a výkon RAID skupín: tak, aby pomer celkovej "teploty" blokov k "podmienečne maximálnemu výkonu" každej RAID skupiny bol zhruba rovnaký. Týmto spôsobom sa záťaž rozdeľuje viac-menej rovnomerne. Viac dopytované údaje sa presúvajú na rýchlejšie nosiče, zriedkavejšie používané – na pomalšie. V ideálnom prípade by rozdelenie malo vyzerať približne takto:

FAST VP v úložisku Unity: ako to funguje

B. Rozdelenie údajov medzi disky jedného typu

Pamätajte, na začiatku som písal, že nosiče informácií z jedného alebo viacerých Úrovne sa zlúčia do jedného zásobníka? Pri jediném úrovni pre FAST VP je tiež práca. Aby bol výkon akéhokoľvek úrovne maximálny, je žiaduce rozložiť údaje rovnomerne medzi disky. To umožní (teoreticky) dosiahnuť maximálny počet IOPS. Údaje v rámci RAID skupiny môžeme považovať za rovnomerne rozložené po diskoch, ale medzi RAID skupinami to nie je vždy tak. V prípade nevyváženosti FAST VP presunie údaje medzi RAID skupinami proporcionálne k ich objemu a „podmienečnej výkonnosti“ (v číselnom vyjadrení). Pre ilustráciu ukážem schému prebalansovania medzi tromi RAID skupinami:

FAST VP v úložisku Unity: ako to funguje

B. Rozloženie údajov pri rozširovaní zásobníka

Tento úkon je osobitným prípadom predchádzajúceho a vykonáva sa, keď sa do zásobníka pridáva RAID skupina. Aby novovytvorená RAID skupina neostala nečinná, časť údajov bude prenesená na ňu, čím sa rozložená záťaž na všetky RAID skupiny prerovná.

Vyrovnávanie opotrebenia SSD

S pomocou vyrovnávania opotrebenia môže FAST VP predĺžiť životnosť SSD, hoci táto funkcia priamo nesúvisí so Storage Tiering. Keďže údaje o teplote už existujú, aj počet operácií zápisu sa zohľadňuje, bloky údajov vieme presúvať, takže by bolo logické, aby FAST VP vyriešil aj túto úlohu.

V prípade, ak počet zápisov do jednej RAID skupiny značne prevyšuje počet zápisov do inej, FAST VP prerovná údaje podľa počtu operácií zápisu. Na jednej strane to znižuje záťaž a zachováva životnosť niektorých diskov, na druhej strane to pridáva ‚prácu‘ pre menej zaťažené disky, čím zvyšuje celkový výkon.

Takto FAST VP preberá tradičné úlohy Storage Tiering a robí ešte niečo navyše. To všetko umožňuje pomerne efektívne uchovávať dáta v úložisku rodiny Unity.

Niekoľko rád

  1. Nehanbite sa čítať dokumentáciu. Existujú najlepšie praktiky, a fungujú celkom dobre. Ak sa nimi riadite, zvyčajne sa nevyskytnú vážne problémy. Ostatné rady väčšinou opakujú alebo dopĺňajú tieto.
  2. Ak ste nastavili a aktivovali FAST VP, je lepšie ho nechať zapnutý. Nech sa data počas prideleného času distribuujú po malých častiach, než raz za rok s vážnym dopadom na výkon iných úloh. V takých prípadoch môže presun dát trvať dlho.
  3. Dôkladne zvážte výber okna na relokáciu. Aj keď je to zrejmé, snažte sa vybrať čas s najmenšou záťažou na Unity a vyčleňte dostatok času.
  4. Plánujte rozšírenie úložného systému, robte to včas. Toto je všeobecné odporúčanie, ktoré je dôležité aj pre FAST VP. Ak je objem voľného miesta veľmi malý, presun dát sa spomalí alebo sa stane nemožným. Najmä ak ste ignorovali bod 2.
  5. Pri rozširovaní poolu s aktívnym FAST VP by ste nemali začínať s najpomalšími diskami. Teda buď pridajte všetky plánované RAID skupiny naraz, alebo najprv pridajte najrýchlejšie disky. V takom prípade presun dát na nové 'rýchle' disky zvýši celkovú rýchlosť poolu. Inak, ak začnete s 'pomalými' diskami, môžete sa dostať do veľmi nepríjemnej situácie. Najprv dôjde k presunu dát na nové, relatívne pomalé disky a potom, pri pridávaní rýchlejších, opačne. Tu sú určité nuansy spojené s rôznymi politikami FAST VP, ale vo všeobecnosti je takáto situácia možná.

Ak sa zaujímate o tento produkt, môžete si vyskúšať Unity zadarmo stiahnutím Unity VSA virtuálneho zariadenia.

FAST VP v úložisku Unity: ako to funguje

Na záver materiálu zdieľam niekoľko užitočných odkazov:

Záver

O mnohom by som chcel napísať, ale chápem, že nie všetky detaily budú pre čitateľa zaujímavé. Napríklad, môžeme podrobnejšie hovoriť o kritériách, podľa ktorých FAST VP rozhoduje o presune dát, o procesoch analýzy štatistiky vstupu-výstupu. Tiež sa úplne nevenuje téme interakcie s Dynamické pooly, čo si žiada samostatný článok. Môžeme sa dokonca zamyslieť nad rozvojom tejto technológie. Dúfam, že to nebolo nudné a nevyčerpal som vás. Dovidenia nabudúce!

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster