FAST VP u Unity pohrani: kako to radi

Danas ćemo govoriti o zanimljivoj tehnologiji implementiranoj u sustave za pohranu Unity/Unity XT – FAST VP. Ako prvi put čujete za Unity, karakteristike sustava možete provjeriti koristeći poveznicu na kraju članka. Radio sam na FAST VP-u u Dell EMC projektnom timu više od godinu dana. Danas želim detaljnije govoriti o ovoj tehnologiji i otkriti neke pojedinosti njezine implementacije. Naravno, samo one koje se smiju otkriti. Ako vas zanimaju pitanja učinkovite pohrane podataka ili jednostavno niste u potpunosti razumjeli dokumentaciju, onda će vam ovaj članak biti koristan i zanimljiv.

FAST VP u Unity pohrani: kako to radi

Odmah ću vam reći što neće biti u materijalu. Neće biti potrage za konkurentima i usporedbe s njima. Također ne planiram govoriti o sličnim tehnologijama otvorenog koda, jer znatiželjni čitatelj već zna za njih. I, naravno, neću ništa reklamirati.

Razina pohrane. Ciljevi i zadaci FAST VP

FAST VP je kratica za Fully Automated Storage Tiering for Virtual Pool. Malo teško? Nema problema, sad ćemo to shvatiti. Tiering je način organiziranja pohrane podataka u kojem postoji nekoliko razina (slojeva) na kojima se ti podaci pohranjuju. Svaki ima svoje karakteristike. Najvažnije: performanse, volumen i cijena pohrane jedinice informacije. Naravno, među njima postoji odnos.

Važna značajka slojeva je da se pristup podacima pruža ravnomjerno bez obzira na razinu pohrane na kojoj se trenutno nalaze, a veličina skupa jednaka je zbroju veličina resursa koji su u njega uključeni. Ovdje leže razlike u odnosu na predmemoriju: veličina predmemorije ne dodaje se ukupnom volumenu resursa (u ovom slučaju skupu), a podaci iz predmemorije dupliciraju neki fragment glavnih medijskih podataka (ili će se duplicirati ako podaci iz predmemorije još nisu upisani). Također, distribucija podataka po razinama skrivena je od korisnika. Odnosno, on ne vidi točno koji se podaci nalaze na svakoj razini, iako na to može neizravno utjecati postavljanjem politika (više o njima kasnije).

Sada pogledajmo značajke implementacije slojeva pohrane u Unityju. Unity ima 3 razine ili razine:

  • Ekstremne performanse (SSD-ovi)
  • Performanse (SAS HDD 10k/15k RPM)
  • Kapacitet (NL-SAS HDD 7200 RPM)

Prikazani su silaznim redoslijedom performansi i cijene. Ekstremne performanse uključuju samo solid state diskove (SSD). Druge dvije razine uključuju pogone magnetskog diska, koji se razlikuju u brzini rotacije i, sukladno tome, performansama.

Mediji za pohranu s iste razine i iste veličine kombiniraju se u RAID polje, tvoreći RAID grupu (RAID grupa, skraćeno RG); O dostupnim i preporučenim razinama RAID-a možete pročitati u službenoj dokumentaciji. Storage poolovi se formiraju od RAID grupa s jedne ili više razina, iz kojih se zatim distribuira slobodni prostor. A iz bazena se prostor dodjeljuje za datotečne sustave i LUN-ove.

FAST VP u Unity pohrani: kako to radi

Zašto mi treba Tiering?

Ukratko i apstraktno: postići veće rezultate koristeći minimalne resurse. Točnije, rezultat se obično shvaća kao skup karakteristika sustava za pohranu - brzina i vrijeme pristupa, cijena pohrane i drugo. Minimum resursa znači najmanji izdatak: novac, energija i tako dalje. FAST VP implementira mehanizme za redistribuciju podataka preko različitih razina u sustavima za pohranu Unity/Unity XT. Ako mi vjerujete, onda možete preskočiti sljedeći paragraf. Za ostalo, reći ću vam još malo.

Ispravna distribucija podataka po razinama pohrane omogućuje vam uštedu na ukupnim troškovima pohrane žrtvovanjem brzine pristupa nekim rijetko korištenim informacijama i poboljšanje performansi premještanjem često korištenih podataka na brže medije. Ovdje bi netko mogao tvrditi da čak i bez slojeva normalni administrator zna gdje treba smjestiti koje podatke, koje su poželjne karakteristike sustava za pohranu za njegov zadatak, itd. To je nedvojbeno točno, ali ručna distribucija podataka ima svoje nedostatke:

  • zahtijeva vrijeme i pažnju administratora;
  • Nije uvijek moguće "precrtati" resurse za pohranu kako bi odgovarali promjenjivim uvjetima;
  • nestaje važna prednost: objedinjeni pristup resursima koji se nalaze na različitim razinama pohrane.

Kako bi administratori pohrane manje brinuli o sigurnosti posla, dodat ću da je i ovdje potrebno kompetentno planiranje resursa. Sada kada su zadaci razvrstavanja ukratko opisani, pogledajmo što možete očekivati ​​od FAST VP-a. Sada je vrijeme da se vratimo na definiciju. Prve dvije riječi - Fully Automated - doslovno su prevedene kao "potpuno automatizirano" i znače da se raspodjela između razina događa automatski. Pa, Virtual Pool je skup podataka koji uključuje resurse s različitih razina pohrane. Ovako to izgleda:

FAST VP u Unity pohrani: kako to radi

Gledajući unaprijed, reći ću da FAST VP premješta podatke samo unutar jednog bazena, a ne između nekoliko bazena.

Probleme rješava FAST VP

Razgovarajmo prvo apstraktno. Imamo skup i neki mehanizam koji može redistribuirati podatke unutar tog skupa. Sjetimo se da je naš cilj postići maksimalnu produktivnost, zapitajmo se: na koje načine to možemo postići? Može ih biti nekoliko, a ovdje FAST VP ima što ponuditi korisniku, budući da je tehnologija nešto više od pukog razvrstavanja pohrane. Evo nekoliko načina na koje FAST VP može povećati izvedbu bazena:

  • Distribucija podataka po različitim vrstama diskova, razinama
  • Distribucija podataka među diskovima iste vrste
  • Distribucija podataka prilikom proširenja skupa

Prije nego što pogledamo kako se ti zadaci rješavaju, moramo znati neke potrebne činjenice o tome kako FAST VP radi. FAST VP radi s blokovima određene veličine - 256 megabajta. Ovo je najmanji neprekinuti "komad" podataka koji se može premjestiti. U dokumentaciji to zovu: kriška. Sa stajališta FAST VP-a, sve RAID grupe sastoje se od skupa takvih "komada". Sukladno tome, sve I/O statistike se akumuliraju za takve blokove podataka. Zašto je odabrana ova veličina bloka i hoće li se smanjiti? Blok je prilično velik, ali ovo je kompromis između granularnosti podataka (manja veličina bloka znači točniju distribuciju) i dostupnih računalnih resursa: s obzirom na postojeća stroga ograničenja RAM-a i veliki broj blokova, statistički podaci mogu zauzeti previše, a broj izračuna će se proporcionalno povećati.

Kako FAST VP dodjeljuje podatke skupu. Političari

Za kontrolu smještaja podataka u skup s omogućenim FAST VP postoje sljedeća pravila:

  • Najviša dostupna razina
  • Automatska razina
  • Započni visoko, a zatim automatski sloj (zadano)
  • Najniža dostupna razina

Oni utječu i na početnu dodjelu bloka (podaci koji su prvi put upisani) i na naknadnu ponovnu dodjelu. Kada se podaci već nalaze na diskovima, redistribucija će se pokrenuti prema rasporedu ili ručno.

Highest Available Tier pokušava postaviti novi blok na najučinkovitiji sloj. Ako na njemu nema dovoljno prostora, postavlja se na sljedeću najproduktivniju razinu, ali tada se podaci mogu premjestiti na produktivniju razinu (ako ima prostora ili premještanjem drugih podataka). Auto-Tier postavlja nove podatke na različite razine ovisno o količini dostupnog prostora, a oni se redistribuiraju ovisno o potražnji i slobodnom prostoru. Start High then Auto-Tier je zadano pravilo koje se također preporučuje. Kada se inicijalno postavi, radi kao najviša dostupna razina, a zatim se podaci premještaju ovisno o statistici korištenja. Politika najniže dostupne razine nastoji smjestiti podatke u najmanje produktivnu razinu.

Prijenos podataka odvija se s niskim prioritetom kako se ne bi ometao koristan rad sustava za pohranu, međutim, postoji postavka "Brzina premještanja podataka" koja mijenja prioritet. Ovdje postoji jedna osobitost: nemaju svi podatkovni blokovi isti redoslijed redistribucije. Na primjer, blokovi označeni kao metapodaci prvo će se premjestiti na bržu razinu. Metapodaci su, da tako kažemo, “podatak o podatku”, neka dodatna informacija koja nije korisnički podatak, ali pohranjuje njegov opis. Na primjer, informacije u datotečnom sustavu o tome u kojem se bloku nalazi određena datoteka. To znači da brzina pristupa podacima ovisi o brzini pristupa metapodacima. S obzirom na to da su metapodaci obično mnogo manje veličine, očekuje se da će prednosti njihovog premještanja na diskove viših performansi biti veće.

Kriteriji koje Fast VP koristi u svom radu

Glavni kriterij za svaki blok, vrlo grubo, je karakteristika "zahtjeva" podataka, koja ovisi o broju operacija čitanja i pisanja fragmenta podataka. Ovu karakteristiku nazivamo “temperatura”. Postoje traženi (vrući) podaci koji su "vrući" od podataka koji nisu zatraženi. Izračunava se periodički, prema zadanim postavkama u intervalima od jednog sata.

Funkcija izračuna temperature ima sljedeća svojstva:

  • U nedostatku ulaza/izlaza, podaci se s vremenom "hlade".
  • Pri koliko-toliko jednakom opterećenju tijekom vremena temperatura prvo raste, a zatim se stabilizira u određenom rasponu.

Zatim se u obzir uzimaju gore opisana pravila i slobodan prostor na svakoj razini. Radi jasnoće, dat ću sliku iz dokumentacije. Ovdje crvena, žuta i plava boja označavaju blokove s visokim, srednjim i niskim temperaturama.

FAST VP u Unity pohrani: kako to radi

No, vratimo se zadacima. Dakle, možemo početi analizirati što se radi na rješavanju problema FAST VP-a.

A. Distribucija podataka po različitim vrstama diskova, razinama

Zapravo, to je glavni zadatak FAST VP-a. Ostatak su, u određenom smislu, njegovi derivati. Ovisno o odabranoj politici, podaci će biti raspoređeni na različite razine pohrane. Prije svega, uzima se u obzir politika postavljanja, zatim temperatura bloka i veličina/brzina RAID grupa.

Za politike najviše/najniže dostupne razine sve je vrlo jednostavno. Za druga dva je to slučaj. Podaci se raspoređuju na različite razine uzimajući u obzir veličinu i performanse RAID grupa: tako da je omjer ukupne "temperature" blokova i "uvjetne maksimalne performanse" svake RAID grupe približno isti. Dakle, opterećenje se raspoređuje više ili manje ravnomjerno. Podaci koji se više traže premještaju se na brze medije, a podaci koji se rijetko koriste premještaju se na sporije medije. Idealno bi distribucija trebala izgledati ovako:

FAST VP u Unity pohrani: kako to radi

B. Distribucija podataka među diskovima iste vrste

Zapamtite, na početku sam napisao da mediji za pohranu iz jedan ili više razine spojene u jedan bazen? U slučaju jedne razine, FAST VP također ima posla. Za postizanje maksimalnih performansi na bilo kojoj razini, preporučljivo je ravnomjerno rasporediti podatke između diskova. To će vam (u teoriji) omogućiti da dobijete maksimalnu količinu IOPS-a. Podaci unutar RAID grupe mogu se smatrati ravnomjerno raspoređenim po diskovima, ali to nije uvijek slučaj između RAID grupa. U slučaju neravnoteže, FAST VP će premjestiti podatke između RAID grupa proporcionalno njihovom volumenu i "uvjetnoj izvedbi" (u numeričkom smislu). Radi jasnoće, pokazat ću shemu ponovnog balansiranja između tri RAID grupe:

FAST VP u Unity pohrani: kako to radi

B. Distribucija podataka prilikom proširenja skupa

Ovaj zadatak je poseban slučaj prethodnog i izvodi se kada se RAID grupa doda u skup. Kako bi se osiguralo da novododana RAID grupa ne ostane neaktivna, neki od podataka bit će prebačeni u nju, što znači da će se opterećenje preraspodijeliti na sve RAID grupe.

Niveliranje istrošenosti SSD-a

Korištenjem wear levelinga, FAST VP može produžiti život SSD-a, iako ova značajka nije izravno povezana s Storage Tieringom. Budući da su podaci o temperaturi već dostupni, vodi se računa i o broju operacija upisa, a znamo kako premještati podatkovne blokove, logično bi bilo da FAST VP riješi ovaj problem.

Ako broj unosa u jednoj RAID grupi značajno premašuje broj unosa u drugoj, FAST VP će redistribuirati podatke u skladu s brojem operacija pisanja. S jedne strane, ovo rasterećuje i štedi resurs nekih diskova, s druge strane, dodaje "posao" za manje opterećene, povećavajući ukupnu izvedbu.

Na ovaj način FAST VP preuzima tradicionalne izazove Storage Tieringa i čini malo više od toga. Sve to vam omogućuje prilično učinkovito pohranjivanje podataka u sustav za pohranu Unity.

Nekoliko savjeta

  1. Nemojte zanemariti čitanje dokumentacije. Postoje najbolji primjeri iz prakse i prilično dobro funkcioniraju. Ako ih slijedite, tada u pravilu ne nastaju ozbiljni problemi. Ostali savjeti ih u osnovi ponavljaju ili nadopunjuju.
  2. Ako ste konfigurirali i omogućili FAST VP, bolje je da ga ostavite uključenim. Neka distribuira podatke u dodijeljenom vremenu i malo po malo od jednom godišnje i imajući ozbiljan utjecaj na izvedbu drugih zadataka. U takvim slučajevima redistribucija podataka može potrajati dugo.
  3. Budite oprezni pri odabiru prozora za preseljenje. Iako je to očito, pokušajte odabrati vrijeme s najmanjim opterećenjem Unityja i dodijelite dovoljno vremena.
  4. Planirajte proširiti svoj sustav skladištenja, učinite to na vrijeme. Ovo je opća preporuka koja je važna i za FAST VP. Ako je količina slobodnog prostora vrlo mala, kretanje podataka će se usporiti ili postati nemoguće. Pogotovo ako ste zanemarili točku 2.
  5. Kada proširujete skup s uključenim FAST VP, ne biste trebali započeti s najsporijim diskovima. To jest, ili dodajemo sve planirane RAID grupe odjednom, ili prvo dodajemo najbrže diskove. U ovom slučaju, redistribucija podataka na nove "brze" diskove povećat će ukupnu brzinu skupa. U suprotnom, početak rada s “sporim” diskovima može dovesti do vrlo neugodne situacije. Prvo će se podaci prenijeti na nove, relativno spore diskove, a zatim, kada se dodaju brži, u suprotnom smjeru. Ovdje postoje nijanse koje se odnose na različita FAST VP pravila, ali općenito je slična situacija moguća.

Ako gledate ovaj proizvod, možete besplatno isprobati Unity preuzimanjem Unity VSA virtualnog uređaja.

FAST VP u Unity pohrani: kako to radi

Na kraju materijala dijelim nekoliko korisnih poveznica:

Zaključak

Htio bih pisati o puno toga, ali razumijem da neće svi detalji biti zanimljivi čitatelju. Na primjer, možete detaljnije govoriti o kriterijima prema kojima FAST VP donosi odluke o prijenosu podataka, o procesima analize I/O statistike. Također, tema interakcije sa Dinamički bazeni, a to zaslužuje poseban članak. Možete čak i maštati o razvoju ove tehnologije. Nadam se da nije bilo dosadno i da vam nisam dosadio. Vidimo se opet!

Izvor: www.habr.com

Dodajte komentar