FAST VP v shrambi Unity: kako deluje

Danes bomo govorili o zanimivi tehnologiji, implementirani v sistemih za shranjevanje Unity/Unity XT - FAST VP. Če prvič slišite za Unity, si lahko ogledate značilnosti sistema s povezavo na koncu članka. Več kot eno leto sem delal na FAST VP v projektni skupini Dell EMC. Danes želim podrobneje govoriti o tej tehnologiji in razkriti nekaj podrobnosti njenega izvajanja. Seveda le tiste, ki jih je dovoljeno razkriti. Če vas zanimajo vprašanja učinkovitega shranjevanja podatkov ali preprosto niste popolnoma razumeli dokumentacije, bo ta članek zagotovo koristen in zanimiv.

FAST VP v shrambi Unity: kako deluje

Takoj vam povem, česa ne bo v gradivu. Ne bo iskanja tekmecev in primerjanja z njimi. O podobnih odprtokodnih tehnologijah tudi ne nameravam govoriti, ker jih radovedni bralec že pozna. In seveda ne bom ničesar reklamiral.

Storage Tiering. Cilji in cilji FAST VP

FAST VP je kratica za Fully Automated Storage Tiering for Virtual Pool. Malo težko? Ni problema, zdaj bomo ugotovili. Tiering je način organiziranja shranjevanja podatkov, v katerem je več nivojev (tiers), kjer so ti podatki shranjeni. Vsak ima svoje značilnosti. Najpomembnejše: zmogljivost, obseg in cena shranjevanja enote informacije. Seveda med njima obstaja odnos.

Pomembna značilnost razporeditve je, da je dostop do podatkov zagotovljen enakomerno, ne glede na nivo shranjevanja, na katerem se trenutno nahajajo, velikost bazena pa je enaka vsoti velikosti virov, ki so vanj vključeni. Tu so razlike od predpomnilnika: velikost predpomnilnika ni dodana skupnemu obsegu vira (v tem primeru bazenu), podatki predpomnilnika pa podvojijo del glavnih medijskih podatkov (ali se bodo podvojili, če podatki iz predpomnilnika še niso bili zapisani). Prav tako je uporabniku skrita razporeditev podatkov po nivojih. Se pravi, da ne vidi natančno, kateri podatki se nahajajo na posameznem nivoju, čeprav lahko na to posredno vpliva z nastavitvijo politik (več o njih kasneje).

Zdaj pa si poglejmo značilnosti implementacije večplastnega shranjevanja v Unity. Unity ima 3 ravni ali stopnje:

  • Ekstremna zmogljivost (SSD)
  • Zmogljivost (SAS HDD 10k/15k RPM)
  • Kapaciteta (NL-SAS HDD 7200 RPM)

Predstavljeni so v padajočem vrstnem redu zmogljivosti in cene. Ekstremna zmogljivost vključuje samo pogone SSD (SSD). Druga dva nivoja vključujeta magnetne diske, ki se razlikujejo po hitrosti vrtenja in temu primerno zmogljivosti.

Mediji za shranjevanje z iste ravni in enake velikosti so združeni v polje RAID, ki tvori skupino RAID (skupina RAID, skrajšano kot RG); O razpoložljivih in priporočenih nivojih RAID lahko preberete v uradni dokumentaciji. Pomnitvena področja so oblikovana iz skupin RAID z enega ali več nivojev, iz katerih se nato porazdeli prosti prostor. In iz bazena je prostor dodeljen za datotečne sisteme in LUN-e.

FAST VP v shrambi Unity: kako deluje

Zakaj potrebujem Tiering?

Na kratko in abstraktno: doseči večje rezultate z minimalnimi sredstvi. Natančneje, rezultat običajno razumemo kot niz značilnosti sistema za shranjevanje - hitrost in dostopni čas, stroški shranjevanja in drugo. Najmanj virov pomeni najmanj izdatkov: denarja, energije itd. FAST VP izvaja mehanizme za prerazporeditev podatkov na različnih ravneh v sistemih za shranjevanje Unity/Unity XT. Če mi verjamete, potem lahko naslednji odstavek preskočite. Za ostalo vam povem malo več.

Pravilna porazdelitev podatkov po nivojih shranjevanja vam omogoča, da prihranite pri skupnih stroških shranjevanja, tako da žrtvujete hitrost dostopa do nekaterih redko uporabljenih informacij, in izboljšate zmogljivost s premikanjem pogosto uporabljenih podatkov na hitrejše medije. Tukaj bi lahko kdo trdil, da tudi brez razporeditve običajen skrbnik ve, kam naj postavi katere podatke, kakšne so zaželene značilnosti sistema za shranjevanje za njegovo nalogo itd. To je nedvomno res, vendar ima ročna distribucija podatkov svoje pomanjkljivosti:

  • zahteva čas in pozornost skrbnika;
  • Ni vedno mogoče "preoblikovati" virov za shranjevanje, da bi ustrezali spreminjajočim se razmeram;
  • pomembna prednost izgine: enoten dostop do virov, ki se nahajajo na različnih ravneh shranjevanja.

Da bi skrbnike za shranjevanje manj skrbelo za varnost zaposlitve, bom dodal, da je tudi tukaj potrebno kompetentno načrtovanje virov. Zdaj, ko so na kratko opisane naloge razvrščanja, si poglejmo, kaj lahko pričakujete od FAST VP. Zdaj je čas, da se vrnemo k definiciji. Prvi dve besedi – Fully Automated – sta dobesedno prevedeni kot »popolnoma avtomatiziran« in pomenita, da se porazdelitev med ravnmi zgodi samodejno. No, Virtual Pool je zbirka podatkov, ki vključuje vire iz različnih ravni shranjevanja. Takole izgleda:

FAST VP v shrambi Unity: kako deluje

Če pogledam naprej, bom rekel, da FAST VP premika podatke samo znotraj enega bazena in ne med več bazeni.

Težave rešuje FAST VP

Najprej se pogovorimo abstraktno. Imamo bazen in nekaj mehanizmov, ki lahko prerazporejajo podatke znotraj tega bazena. Ob upoštevanju, da je naš cilj doseči največjo produktivnost, se vprašajmo: na kakšne načine lahko to dosežemo? Lahko jih je več in tukaj ima FAST VP nekaj za ponuditi uporabniku, saj je tehnologija nekaj več kot le shranjevanje po stopnjah. Tukaj je nekaj načinov, na katere lahko FAST VP poveča zmogljivost skupine:

  • Porazdelitev podatkov po različnih vrstah diskov, nivojih
  • Distribucija podatkov med diski iste vrste
  • Distribucija podatkov pri razširitvi bazena

Preden pogledamo, kako so te naloge rešene, moramo vedeti nekaj potrebnih dejstev o delovanju FAST VP. FAST VP deluje z bloki določene velikosti - 256 megabajtov. To je najmanjši neprekinjeni "kos" podatkov, ki ga je mogoče premakniti. V dokumentaciji temu pravijo: rezina. Z vidika FAST VP so vse skupine RAID sestavljene iz niza takih "kosov". V skladu s tem se vsa statistika V/I zbere za take podatkovne bloke. Zakaj je bila izbrana ta velikost bloka in ali se bo zmanjšala? Blok je precej velik, vendar je to kompromis med razdrobljenostjo podatkov (manjša velikost bloka pomeni natančnejšo porazdelitev) in razpoložljivimi računalniškimi viri: glede na obstoječe stroge omejitve RAM-a in veliko število blokov lahko statistični podatki zavzamejo preveč, število izračunov pa se bo sorazmerno povečalo.

Kako FAST VP dodeli podatke v skupino. Politiki

Za nadzor umestitve podatkov v bazen z omogočenim FAST VP obstajajo naslednji pravilniki:

  • Najvišja razpoložljiva stopnja
  • Samodejna stopnja
  • Začni visoko, nato samodejna stopnja (privzeto)
  • Najnižja razpoložljiva stopnja

Vplivajo tako na začetno dodelitev bloka (podatki, ki so najprej zapisani) kot na kasnejšo ponovno dodelitev. Ko se podatki že nahajajo na diskih, se sproži redistribucija po urniku ali ročno.

Najvišja razpoložljiva stopnja poskuša postaviti nov blok na najučinkovitejšo raven. Če na njem ni dovolj prostora, se postavi na naslednjo najproduktivnejšo raven, potem pa se podatki lahko premaknejo na bolj produktivno raven (če je prostora ali s premestitvijo drugih podatkov). Auto-Tier postavi nove podatke na različne ravni glede na količino razpoložljivega prostora in se prerazporedi glede na povpraševanje in prosti prostor. Start High then Auto-Tier je privzeti pravilnik in tudi priporočljiv. Ko je prvotno postavljen, deluje kot najvišja razpoložljiva raven, nato pa se podatki premaknejo glede na statistiko uporabe. Politika najnižje razpoložljive ravni želi podatke postaviti v najmanj produktivno raven.

Prenos podatkov poteka z nizko prioriteto, da ne moti uporabnega delovanja sistema za shranjevanje, vendar obstaja nastavitev »Hitrost premestitve podatkov«, ki spremeni prioriteto. Tukaj je posebnost: vsi podatkovni bloki nimajo enakega vrstnega reda prerazporeditve. Na primer, bloki, označeni kot metapodatki, bodo najprej premaknjeni na hitrejšo raven. Metapodatki so tako rekoč »podatki o podatkih«, neka dodatna informacija, ki ni uporabniški podatek, ampak hrani njegov opis. Na primer informacije v datotečnem sistemu o tem, v katerem bloku se nahaja določena datoteka. To pomeni, da je hitrost dostopa do podatkov odvisna od hitrosti dostopa do metapodatkov. Glede na to, da so metapodatki običajno veliko manjši, je pričakovati, da bodo prednosti njihovega prenosa na zmogljivejše diske večje.

Kriteriji, ki jih Fast VP uporablja pri svojem delu

Glavni kriterij za vsak blok, zelo grobo, je značilnost "povpraševanja" po podatkih, ki je odvisna od števila operacij branja in pisanja fragmenta podatkov. To značilnost imenujemo "temperatura". Obstajajo zahtevani (vroči) podatki, ki so "bolj vroči" od nezahtevanih podatkov. Izračunava se periodično, privzeto v intervalih ene ure.

Funkcija izračuna temperature ima naslednje lastnosti:

  • V odsotnosti V/I se podatki sčasoma »ohladijo«.
  • Pri bolj ali manj enakomerni obremenitvi skozi čas se temperatura najprej poveča, nato pa se v določenem območju stabilizira.

Nato se upoštevajo zgoraj opisani pravilniki in prosti prostor na vsaki ravni. Zaradi jasnosti bom posredoval sliko iz dokumentacije. Tukaj rdeča, rumena in modra barva označujejo bloke z visokimi, srednjimi in nizkimi temperaturami.

FAST VP v shrambi Unity: kako deluje

A vrnimo se k nalogam. Tako lahko začnemo analizirati, kaj se dela za rešitev težav FAST VP.

A. Porazdelitev podatkov po različnih vrstah diskov, nivojih

Pravzaprav je to glavna naloga FAST VP. Ostalo so v nekem smislu njegove izpeljanke. Odvisno od izbranega pravilnika bodo podatki razporejeni po različnih ravneh shranjevanja. Najprej se upošteva politika postavitve, nato temperatura bloka in velikost/hitrost skupin RAID.

Za politike najvišje/najnižje razpoložljive stopnje je vse precej preprosto. Za druga dva je tako. Podatki so porazdeljeni po različnih nivojih ob upoštevanju velikosti in zmogljivosti skupin RAID: tako da je razmerje med skupno "temperaturo" blokov in "pogojno največjo zmogljivostjo" vsake skupine RAID približno enako. Tako je obremenitev bolj ali manj enakomerno porazdeljena. Več zahtevanih podatkov se premakne na hitre medije, redko uporabljeni podatki pa na počasnejše medije. V idealnem primeru bi morala distribucija izgledati nekako takole:

FAST VP v shrambi Unity: kako deluje

B. Porazdelitev podatkov med diski iste vrste

Ne pozabite, na začetku sem napisal, da pomnilniški medij iz enega ali več so stopnje združene v en bazen? V primeru enojne stopnje ima delo tudi FAST VP. Da bi dosegli največjo zmogljivost na kateri koli ravni, je priporočljivo, da podatke enakomerno porazdelite med diske. To vam bo (teoretično) omogočilo, da dobite največjo količino IOPS. Podatke znotraj skupine RAID je mogoče obravnavati kot enakomerno porazdeljene po diskih, vendar to ni vedno tako med skupinami RAID. V primeru neravnovesja bo FAST VP premaknil podatke med skupinami RAID sorazmerno z njihovo prostornino in "pogojno zmogljivostjo" (številčno). Zaradi jasnosti bom prikazal shemo ponovnega uravnoteženja med tremi skupinami RAID:

FAST VP v shrambi Unity: kako deluje

B. Distribucija podatkov pri razširitvi bazena

Ta naloga je poseben primer prejšnje in se izvede, ko je skupina RAID dodana v področje. Za zagotovitev, da na novo dodana skupina RAID ne ostane nedejavna, bodo nekateri podatki preneseni vanjo, kar pomeni, da bo obremenitev prerazporejena po vseh skupinah RAID.

Izravnavanje obrabe SSD

Z uporabo izravnave obrabe lahko FAST VP podaljša življenjsko dobo SSD-ja, čeprav ta funkcija ni neposredno povezana s Storage Tiering. Ker so podatki o temperaturi že na voljo, upoštevano je tudi število zapisovalnih operacij in znamo premikati podatkovne bloke, bi bilo logično, da FAST VP reši ta problem.

Če število vnosov v eni skupini RAID znatno preseže število vnosov v drugi, bo FAST VP prerazporedil podatke v skladu s številom zapisovalnih operacij. Po eni strani to razbremeni in prihrani vir nekaterih diskov, po drugi strani pa doda "delo" za manj obremenjene, kar poveča splošno zmogljivost.

Na ta način FAST VP prevzame tradicionalne izzive Storage Tiering in naredi malo več kot to. Vse to vam omogoča precej učinkovito shranjevanje podatkov v sistemu za shranjevanje Unity.

Nekaj ​​nasvetov

  1. Ne zanemarite branja dokumentacije. Obstajajo najboljše prakse in zelo dobro delujejo. Če jih upoštevate, potem praviloma ne nastanejo resne težave. Ostali nasveti jih v bistvu ponavljajo ali dopolnjujejo.
  2. Če ste konfigurirali in omogočili FAST VP, je bolje, da ga pustite omogočenega. Naj distribuira podatke v svojem dodeljenem času in postopoma kot enkrat na leto in resno vpliva na izvajanje drugih nalog. V takih primerih lahko redistribucija podatkov traja dolgo.
  3. Bodite previdni pri izbiri okna za selitev. Čeprav je to očitno, poskusite izbrati čas z najmanjšo obremenitvijo Unityja in dodelite dovolj časa.
  4. Načrtujte razširitev svojega sistema za shranjevanje, storite to pravočasno. To je splošno priporočilo, ki je pomembno tudi za FAST VP. Če je količina prostega prostora zelo majhna, se bo premikanje podatkov upočasnilo ali postalo nemogoče. Še posebej, če ste zanemarili 2. točko.
  5. Ko širite bazen z omogočenim FAST VP, ne smete začeti z najpočasnejšimi diski. To pomeni, da dodamo vse načrtovane skupine RAID naenkrat ali pa najprej dodamo najhitrejše diske. V tem primeru bo prerazporeditev podatkov na nove "hitre" diske povečala skupno hitrost bazena. V nasprotnem primeru lahko zagon s "počasnimi" diski povzroči zelo neprijetno situacijo. Najprej se bodo podatki prenesli na nove, relativno počasne diske, nato pa ob dodajanju hitrejših še v obratni smeri. Tukaj so nianse, povezane z različnimi politikami FAST VP, vendar je na splošno možna podobna situacija.

Če si ogledujete ta izdelek, lahko brezplačno preizkusite Unity tako, da prenesete virtualno napravo Unity VSA.

FAST VP v shrambi Unity: kako deluje

Na koncu gradiva delim več uporabnih povezav:

Zaključek

Rad bi pisal o marsičem, vendar razumem, da vse podrobnosti ne bodo zanimive za bralca. Na primer, lahko podrobneje govorite o merilih, po katerih FAST VP sprejema odločitve o prenosu podatkov, o postopkih analize statistike V/I. Tudi tema interakcije z Dinamični bazeni, in to si zasluži ločen članek. Lahko celo fantazirate o razvoju te tehnologije. Upam, da ni bilo dolgočasno in da vas nisem dolgočasila. Se vidiva!

Vir: www.habr.com

Dodaj komentar