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

Dnes si povieme niečo o zaujímavej technológii implementovanej v úložných systémoch Unity/Unity XT – FAST VP. Ak o Unity počujete prvýkrát, môžete si pozrieť charakteristiky systému pomocou odkazu na konci článku. Viac ako rok som pracoval na FAST VP v projektovom tíme Dell EMC. Dnes chcem o tejto technológii hovoriť podrobnejšie a odhaliť niektoré podrobnosti o jej implementácii. Samozrejme, len tie, ktoré je dovolené odhaliť. Ak vás zaujímajú otázky efektívneho ukladania údajov alebo ste jednoducho úplne nepochopili dokumentáciu, tento článok bude určite užitočný a zaujímavý.

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

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

Skladovanie Tiering. Ciele a zámery FAST VP

FAST VP znamená Plne automatizované vrstvenie úložiska pre virtuálny fond. Trochu ťažké? Žiadny problém, teraz na to prídeme. Tiering je spôsob organizácie ukladania dát, v ktorom existuje niekoľko úrovní (vrstvov), kde sú tieto dáta uložené. Každý má svoje vlastné charakteristiky. Najdôležitejšie: výkon, objem a cena uloženia jednotky informácie. Samozrejme, existuje medzi nimi vzťah.

Dôležitou vlastnosťou vrstvenia je, že prístup k údajom je poskytovaný jednotne bez ohľadu na úroveň úložiska, na ktorej sa práve nachádza, a veľkosť fondu sa rovná súčtu veľkostí zdrojov, ktoré sú v ňom zahrnuté. V tomto spočívajú rozdiely oproti vyrovnávacej pamäti: veľkosť vyrovnávacej pamäte sa nepripočítava k celkovému objemu zdroja (v tomto prípade fondu) a údaje vyrovnávacej pamäte duplikujú časť údajov hlavného média (alebo sa duplikujú, ak údaje z vyrovnávacej pamäte ešte neboli zapísané). Taktiež distribúcia údajov podľa úrovní je pred používateľom skrytá. To znamená, že presne nevidí, aké údaje sa na jednotlivých úrovniach nachádzajú, hoci to môže nepriamo ovplyvniť nastavením politík (o nich neskôr).

Teraz sa pozrime na funkcie implementácie vrstvenia úložiska v Unity. Unity má 3 úrovne alebo úrovne:

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

Sú uvedené v zostupnom poradí podľa výkonu a ceny. Extrémny výkon zahŕňa iba disky SSD (Solid State Drive). Ďalšie dve vrstvy zahŕňajú magnetické diskové jednotky, ktoré sa líšia rýchlosťou otáčania a podľa toho aj výkonom.

Pamäťové médiá rovnakej úrovne a rovnakej veľkosti sa spoja do poľa RAID, čím sa vytvorí skupina RAID (skupina RAID, skrátene RG); O dostupných a odporúčaných úrovniach RAID si môžete prečítať v oficiálnej dokumentácii. Úložné oblasti sú tvorené zo skupín RAID z jednej alebo viacerých úrovní, z ktorých sa potom distribuuje voľný priestor. A z fondu sa prideľuje priestor pre súborové systémy a LUN.

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

Prečo potrebujem Tiering?

Stručne a abstraktne: dosiahnuť lepšie výsledky s použitím minima zdrojov. Presnejšie povedané, výsledok sa zvyčajne chápe ako súbor charakteristík úložného systému - rýchlosť a čas prístupu, náklady na úložisko a iné. Minimum zdrojov znamená najmenšie výdavky: peniaze, energie atď. FAST VP implementuje mechanizmy na redistribúciu údajov na rôznych úrovniach v úložných systémoch Unity/Unity XT. Ak mi veríte, môžete nasledujúci odsek preskočiť. K tomu zvyšku vám poviem trochu viac.

Správna distribúcia údajov naprieč vrstvami úložiska vám umožňuje ušetriť na celkových nákladoch na úložisko obetovaním rýchlosti prístupu niektorým zriedka používaným informáciám a zlepšiť výkon presunom často používaných údajov na rýchlejšie médiá. Tu by niekto mohol namietať, že aj bez vrstvenia bežný správca vie, kam umiestniť aké dáta, aké sú žiaduce vlastnosti úložného systému pre jeho úlohu atď. To je nepochybne pravda, ale ručná distribúcia údajov má svoje nevýhody:

  • vyžaduje čas a pozornosť správcu;
  • Nie je vždy možné „prekresliť“ úložné zdroje tak, aby vyhovovali meniacim sa podmienkam;
  • zmizne dôležitá výhoda: jednotný prístup k zdrojom umiestneným na rôznych úrovniach úložiska.

Aby sa správcovia úložiska menej starali o bezpečnosť práce, dodám, že aj tu je potrebné kompetentné plánovanie zdrojov. Teraz, keď boli úlohy vrstvenia stručne načrtnuté, poďme sa pozrieť na to, čo môžete očakávať od FAST VP. Teraz je čas vrátiť sa k definícii. Prvé dve slová – Fully Automated – sú doslovne preložené ako „plne automatizované“ a znamenajú, že rozdelenie medzi úrovňami prebieha automaticky. Virtuálny fond je dátový fond, ktorý zahŕňa zdroje z rôznych úrovní úložiska. Takto to vyzerá:

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

Pri pohľade do budúcnosti poviem, že FAST VP presúva údaje iba v rámci jedného fondu, a nie medzi niekoľkými fondmi.

Problémy rieši FAST VP

Hovorme najprv abstraktne. Máme fond a nejaký mechanizmus, ktorý dokáže redistribuovať údaje v rámci tohto fondu. Pamätajúc na to, že naším cieľom je dosiahnuť maximálnu produktivitu, položme si otázku: akými spôsobmi to môžeme dosiahnuť? Môže ich byť niekoľko a tu má FAST VP užívateľovi čo ponúknuť, keďže technológia je niečo viac ako len vrstvenie úložiska. Tu je niekoľko spôsobov, ako môže FAST VP zvýšiť výkon bazéna:

  • Distribúcia dát cez rôzne typy diskov, úrovne
  • Distribúcia údajov medzi disky rovnakého typu
  • Distribúcia dát pri rozširovaní bazéna

Predtým, ako sa pozrieme na to, ako sa tieto úlohy riešia, musíme vedieť niekoľko potrebných faktov o tom, ako FAST VP funguje. FAST VP pracuje s blokmi určitej veľkosti - 256 megabajtov. Toto je najmenší súvislý „kus“ údajov, ktorý je možné presúvať. V dokumentácii sa tomu hovorí: plátok. Z pohľadu FAST VP sa všetky RAID skupiny skladajú zo sady takýchto „kúskov“. Podľa toho sa pre takéto dátové bloky zhromažďujú všetky I/O štatistiky. Prečo bola zvolená táto veľkosť bloku a bude zmenšená? Blok je pomerne veľký, ale ide o kompromis medzi granularitou údajov (menšia veľkosť bloku znamená presnejšiu distribúciu) a dostupnými výpočtovými zdrojmi: vzhľadom na existujúce prísne obmedzenia pamäte RAM a veľký počet blokov môžu štatistické údaje zaberať príliš veľa a počet výpočtov sa úmerne zvýši.

Ako FAST VP prideľuje údaje do fondu. Politici

Na riadenie umiestňovania údajov do fondu s povoleným FAST VP existujú nasledujúce zásady:

  • Najvyššia dostupná úroveň
  • Auto-Tier
  • Začať vysoko, potom Automaticky (predvolené)
  • Najnižšia dostupná úroveň

Ovplyvňujú počiatočnú alokáciu bloku (prvý zápis údajov) a následné prerozdelenie. Keď sú údaje už umiestnené na diskoch, redistribúcia sa spustí podľa plánu alebo manuálne.

Najvyššia dostupná úroveň sa pokúša umiestniť nový blok na najvýkonnejšiu úroveň. Ak na ňom nie je dostatok miesta, umiestni sa na ďalšiu najproduktívnejšiu úroveň, ale potom sa údaje môžu presunúť na produktívnejšiu úroveň (ak je priestor alebo vytesnením iných údajov). Auto-Tier umiestňuje nové údaje na rôzne úrovne v závislosti od množstva dostupného priestoru a prerozdeľuje ich v závislosti od dopytu a voľného miesta. Predvolená a tiež odporúčaná zásada je Štart High, potom Auto-Tier. Pri prvom umiestnení funguje ako najvyššia dostupná úroveň a potom sa údaje presúvajú v závislosti od štatistík používania. Politika najnižšej dostupnej úrovne sa snaží umiestniť údaje do najmenej produktívnej úrovne.

Prenos údajov prebieha s nízkou prioritou, aby nenarúšal užitočnú prevádzku úložného systému, avšak existuje nastavenie „Rýchlosť premiestňovania údajov“, ktoré mení prioritu. Je tu zvláštnosť: nie všetky dátové bloky majú rovnaké poradie prerozdeľovania. Napríklad bloky označené ako metadáta budú najskôr presunuté na rýchlejšiu úroveň. Metaúdaje sú takpovediac „údaje o údajoch“, niektoré dodatočné informácie, ktoré nie sú používateľskými údajmi, ale uchovávajú ich popis. Napríklad informácie v súborovom systéme o tom, v ktorom bloku sa konkrétny súbor nachádza. To znamená, že rýchlosť prístupu k údajom závisí od rýchlosti prístupu k metaúdajom. Vzhľadom na to, že veľkosť metaúdajov je zvyčajne oveľa menšia, očakáva sa, že výhody ich presunu na výkonnejšie disky budú väčšie.

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

Hlavným kritériom pre každý blok je veľmi zhruba charakteristika „dopytu“ dát, ktorá závisí od počtu operácií čítania a zápisu dátového fragmentu. Túto vlastnosť nazývame „teplota“. Existujú požadované (horúce) údaje, ktoré sú „horúcejšie“ ako nevyžiadané údaje. Vypočítava sa pravidelne, štandardne v intervaloch jednej hodiny.

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

  • Pri absencii I/O údaje časom „vychladnú“.
  • Pri viac-menej rovnakom zaťažení v priebehu času sa teplota najskôr zvýši a potom sa ustáli v určitom rozsahu.

Ďalej sa berú do úvahy vyššie opísané zásady a voľný priestor na každej úrovni. Pre názornosť uvediem obrázok z dokumentácie. Tu červená, žltá a modrá farba označujú bloky s vysokou, strednou a nízkou teplotou.

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

Ale vráťme sa k úlohám. Takže môžeme začať analyzovať, čo sa robí na vyriešenie problémov FAST VP.

A. Distribúcia dát cez rôzne typy diskov, úrovne

V skutočnosti je to hlavná úloha FAST VP. Ostatné sú v istom zmysle jeho derivátmi. V závislosti od zvolenej politiky budú údaje distribuované na rôznych úrovniach úložiska. V prvom rade sa berie do úvahy politika umiestnenia, potom teplota bloku a veľkosť/rýchlosť RAID skupín.

Pre politiku najvyššej/najnižšej dostupnej úrovne je všetko celkom jednoduché. Pre ostatných dvoch je to tak. Údaje sú distribuované na rôznych úrovniach s prihliadnutím na veľkosť a výkon skupín RAID: takže pomer celkovej „teploty“ blokov k „podmienenému maximálnemu výkonu“ každej skupiny RAID je približne rovnaký. Záťaž je teda rozložená viac-menej rovnomerne. Viac požadovaných údajov sa presúva na rýchle médiá a zriedka používané údaje sa presúvajú na pomalšie médiá. V ideálnom prípade by distribúcia mala vyzerať takto:

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

B. Distribúcia údajov medzi disky rovnakého typu

Pamätajte, že na začiatku som napísal, že pamäťové médium z jeden alebo viac úrovne sú spojené do jedného bazéna? V prípade single levelu má FAST VP tiež čo robiť. Pre dosiahnutie maximálneho výkonu na akejkoľvek úrovni je vhodné rozložiť dáta medzi disky rovnomerne. To vám (teoreticky) umožní získať maximálne množstvo IOPS. Dáta v rámci skupiny RAID možno považovať za rovnomerne rozložené medzi diskami, ale nie vždy to platí medzi skupinami RAID. V prípade nerovnováhy FAST VP presunie údaje medzi skupinami RAID v pomere k ich objemu a „podmienenému výkonu“ (číselne). Pre prehľadnosť ukážem schému opätovného vyváženia medzi tromi skupinami RAID:

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

B. Distribúcia údajov pri rozširovaní fondu

Táto úloha je špeciálnym prípadom predchádzajúcej úlohy a vykoná sa, keď sa do oblasti pridá skupina RAID. Aby sa zabezpečilo, že novo pridaná skupina RAID nezostane nečinná, prenesú sa do nej niektoré údaje, čo znamená, že záťaž sa prerozdelí medzi všetky skupiny RAID.

Vyrovnávanie opotrebovania SSD

Pomocou vyrovnávania opotrebovania môže FAST VP predĺžiť životnosť SSD, hoci táto funkcia priamo nesúvisí s vrstvením úložiska. Keďže údaje o teplote sú už dostupné, berie sa do úvahy aj počet operácií zápisu a vieme, ako presúvať dátové bloky, bolo by logické, keby tento problém vyriešil FAST VP.

Ak počet záznamov v jednej skupine RAID výrazne prevyšuje počet záznamov v inej skupine, FAST VP prerozdelí dáta v súlade s počtom operácií zápisu. Na jednej strane to uvoľňuje záťaž a šetrí zdroje niektorých diskov, na druhej strane to pridáva „prácu“ pre menej zaťažené, čím sa zvyšuje celkový výkon.

Týmto spôsobom FAST VP preberá tradičné výzvy Storage Tiering a robí o niečo viac. To všetko vám umožňuje pomerne efektívne ukladať dáta do úložného systému Unity.

niekoľko tipov

  1. Nezanedbávajte čítanie dokumentácie. Existujú osvedčené postupy a fungujú celkom dobre. Ak ich budete dodržiavať, spravidla nevznikajú žiadne vážne problémy. Zvyšok rád ich v podstate opakuje alebo dopĺňa.
  2. Ak ste nakonfigurovali a povolili FAST VP, je lepšie nechať ho zapnuté. Nechajte ho distribuovať údaje vo svojom pridelenom čase a postupne ako raz za rok s vážnym dopadom na plnenie iných úloh. V takýchto prípadoch môže redistribúcia údajov trvať dlho.
  3. Buďte opatrní pri výbere sťahovacieho okna. Aj keď je to zrejmé, skúste si vybrať čas s čo najmenšou záťažou na Unity a vyhraďte si dostatočný časový úsek.
  4. Naplánujte si rozšírenie úložného systému, urobte to včas. Toto je všeobecné odporúčanie, ktoré je dôležité aj pre FAST VP. Ak je množstvo voľného miesta veľmi malé, pohyb údajov sa spomalí alebo znemožní. Najmä ak ste zanedbali bod 2.
  5. Pri rozširovaní fondu s povoleným FAST VP by ste nemali začínať s najpomalšími diskami. To znamená, že buď pridáme všetky plánované skupiny RAID naraz, alebo najskôr pridáme najrýchlejšie disky. V tomto prípade redistribúcia údajov na nové „rýchle“ disky zvýši celkovú rýchlosť fondu. V opačnom prípade môže začiatok s „pomalými“ diskami viesť k veľmi nepríjemnej situácii. Najprv sa budú dáta prenášať na nové, relatívne pomalé disky a potom, keď pribudnú rýchlejšie, v opačnom smere. Existujú nuansy súvisiace s rôznymi politikami FAST VP, ale vo všeobecnosti je podobná situácia možná.

Ak sa pozeráte na tento produkt, môžete si Unity bezplatne vyskúšať stiahnutím virtuálneho zariadenia Unity VSA.

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

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

Záver

Chcel by som písať o veľa, ale chápem, že nie všetky detaily budú pre čitateľa zaujímavé. Môžete napríklad podrobnejšie hovoriť o kritériách, podľa ktorých FAST VP rozhoduje o prenose údajov, o procesoch analýzy I/O štatistík. Tiež téma interakcie s Dynamické bazény, a toto si zaslúži samostatný článok. Môžete dokonca fantazírovať o vývoji tejto technológie. Dúfam, že to nebola nuda a ja som vás nenudil. Uvídime sa znovu!

Zdroj: hab.com

Pridať komentár