KIIRE VP Unity salvestusruumis: kuidas see töötab

Täna räägime huvitavast Unity/Unity XT salvestussüsteemides rakendatud tehnoloogiast - FAST VP. Kui kuulete Unityst esimest korda, saate süsteemi omadusi vaadata, kasutades artikli lõpus olevat linki. Töötasin Delli EMC projektimeeskonnas FAST VP-na üle aasta. Täna tahan sellest tehnoloogiast üksikasjalikumalt rääkida ja paljastada selle rakendamise mõned üksikasjad. Muidugi ainult need, mida lubatakse avaldada. Kui olete huvitatud tõhusa andmesalvestuse küsimustest või pole lihtsalt dokumentatsioonist täielikult aru saanud, on see artikkel kindlasti kasulik ja huvitav.

KIIRE VP Unity salvestusruumis: kuidas see töötab

Ma ütlen teile kohe, mida materjalis pole. Konkurentide otsimist ja nendega võrdlemist ei toimu. Samuti ei plaani ma rääkida sarnastest avatud lähtekoodiga tehnoloogiatest, sest uudishimulik lugeja teab neist juba. Ja loomulikult ei hakka ma midagi reklaamima.

Ladustamise tasand. FAST VP eesmärgid ja eesmärgid

FAST VP tähendab Fully Automated Storage Tiring for Virtual Pool. Natuke raske? Pole probleemi, me mõtleme selle nüüd välja. Tasendamine on andmesalvestuse korraldamise viis, kus neid andmeid hoitakse mitmel tasandil (tasand). Igal neist on oma omadused. Kõige olulisem: teabeühiku salvestamise jõudlus, maht ja hind. Muidugi on nende vahel suhe.

Tasanduse oluliseks tunnuseks on see, et juurdepääs andmetele on tagatud ühtlaselt sõltumata salvestustasemest, millel need praegu asuvad, ja kogumi suurus võrdub selles sisalduvate ressursside suuruste summaga. Siin peituvad erinevused vahemälust: vahemälu suurust ei lisata ressursi kogumahule (antud juhul kogumile) ja vahemälu andmed dubleerivad osa põhimeediumiandmetest (või dubleerivad, kui andmed vahemälust pole veel kirjutatud). Samuti on kasutaja eest varjatud andmete jaotus tasemete kaupa. See tähendab, et ta ei näe täpselt, millised andmed igal tasandil asuvad, kuigi ta saab seda kaudselt mõjutada poliitikaid kehtestades (nendest lähemalt hiljem).

Vaatame nüüd Unity salvestustasandi rakendamise funktsioone. Ühtsusel on 3 taset või taset:

  • Äärmuslik jõudlus (SSD-d)
  • Jõudlus (SAS HDD 10k/15k RPM)
  • Mahutavus (NL-SAS HDD 7200 RPM)

Need on esitatud jõudluse ja hinna kahanevas järjekorras. Äärmuslik jõudlus hõlmab ainult pooljuhtkettaid (SSD). Ülejäänud kaks taset hõlmavad magnetilisi kettaseadmeid, mis erinevad pöörlemiskiiruse ja vastavalt ka jõudluse poolest.

Samal tasemel ja sama suurusega andmekandjad ühendatakse RAID-massiiviks, moodustades RAID-rühma (RAID-rühm, lühendatult RG); Saadaolevate ja soovitatavate RAID-tasemete kohta saate lugeda ametlikust dokumentatsioonist. Salvestuskogumid moodustatakse ühelt või mitmelt tasemelt pärinevatest RAID-rühmadest, millest seejärel jagatakse vaba ruumi. Ja basseinist eraldatakse ruumi failisüsteemide ja LUN-ide jaoks.

KIIRE VP Unity salvestusruumis: kuidas see töötab

Miks ma vajan Taseringut?

Lühidalt ja abstraktselt: saavutada minimaalseid ressursse kasutades suuremaid tulemusi. Täpsemalt mõistetakse tulemuse all tavaliselt salvestussüsteemi omaduste kogumit – kiirus ja juurdepääsuaeg, salvestuskulu ja muud. Ressursi miinimum tähendab kõige väiksemaid kulutusi: raha, energia jne. FAST VP rakendab Unity/Unity XT salvestussüsteemide eri tasanditel andmete ümberjaotamise mehhanisme. Kui usute mind, võite järgmise lõigu vahele jätta. Ülejäänud osas räägin teile natuke rohkem.

Andmete õige jaotamine salvestustasandite vahel võimaldab säästa salvestuse üldkulusid, ohverdades harva kasutatava teabe juurdepääsukiirust, ja parandada jõudlust, teisaldades sageli kasutatavad andmed kiiremale andmekandjale. Siin võib keegi vastu vaielda, et isegi ilma astmestamiseta teab tavaline administraator, kuhu milliseid andmeid paigutada, millised on tema ülesande jaoks soovitavad salvestussüsteemi omadused jne. See on kahtlemata tõsi, kuid andmete käsitsi levitamisel on oma puudused:

  • nõuab administraatorilt aega ja tähelepanu;
  • Alati ei ole võimalik salvestusressursse muutuvate tingimuste järgi ümber joonistada;
  • kaob oluline eelis: ühtne juurdepääs erinevatel salvestustasemetel asuvatele ressurssidele.

Et laohaldurid töökoha turvalisuse pärast vähem muretseksid, lisan, et ka siin on vajalik pädev ressursside planeerimine. Nüüd, kui astmestamise ülesanded on lühidalt kirjeldatud, vaatame, mida võite FAST VP-lt oodata. Nüüd on aeg definitsiooni juurde tagasi pöörduda. Esimesed kaks sõna – Fully Automated – on sõna-sõnalt tõlgitud kui "täielikult automatiseeritud" ja tähendavad, et jaotus tasemete vahel toimub automaatselt. Noh, Virtual Pool on andmekogum, mis sisaldab ressursse erinevatelt salvestustasemetelt. See näeb välja selline:

KIIRE VP Unity salvestusruumis: kuidas see töötab

Tulevikku vaadates ütlen, et FAST VP liigutab andmeid ainult ühe basseini piires, mitte mitme basseini vahel.

Probleemid lahendas FAST VP

Räägime kõigepealt abstraktselt. Meil on kogum ja mehhanism, mis saab selles kogumis andmeid ümber jaotada. Pidades meeles, et meie eesmärk on saavutada maksimaalne tootlikkus, küsigem endalt: millistel viisidel seda saavutada? Neid võib olla mitu ja siin on FAST VP-l kasutajale midagi pakkuda, kuna tehnoloogia on midagi enamat kui lihtsalt salvestustase. Siin on mõned viisid, kuidas FAST VP saab basseini jõudlust suurendada.

  • Andmete jaotus erinevat tüüpi ketaste vahel, tasemed
  • Andmete jaotamine sama tüüpi ketaste vahel
  • Andmete jaotus basseini laiendamisel

Enne kui vaatame, kuidas neid ülesandeid lahendatakse, peame teadma mõningaid vajalikke fakte FAST VP toimimise kohta. FAST VP töötab teatud suurusega plokkidega - 256 megabaiti. See on väikseim külgnev andmete "tükk", mida saab teisaldada. Dokumentatsioonis nimetatakse seda nii: viil. FAST VP seisukohast koosnevad kõik RAID-rühmad selliste "tükkide" komplektist. Sellest lähtuvalt kogutakse selliste andmeplokkide kohta kogu I/O statistika. Miks valiti selline ploki suurus ja kas seda vähendatakse? Plokk on üsna suur, kuid see on kompromiss andmete detailsuse (väiksem ploki suurus tähendab täpsemat jaotust) ja saadaolevate arvutusressursside vahel: arvestades olemasolevaid rangeid piiranguid RAM-ile ja suurt hulka plokke, võivad statistika andmed kuluda. liiga palju ja arvutuste arv suureneb proportsionaalselt.

Kuidas FAST VP basseinile andmeid eraldab. poliitikud

Andmete paigutamise kontrollimiseks kogumis, kui FAST VP on lubatud, kehtivad järgmised eeskirjad.

  • Kõrgeim saadaolev tase
  • Automaatne tasand
  • Alusta kõrgelt, seejärel automaatne tase (vaikimisi)
  • Madalaim saadaolev tase

Need mõjutavad nii esialgset ploki eraldamist (andmed kirjutatakse esmalt) kui ka järgnevat ümberjaotamist. Kui andmed on juba ketastel, algatatakse ümberjagamine vastavalt ajakavale või käsitsi.

Kõrgeim saadaolev tasand üritab paigutada uue ploki kõige paremini toimivale tasemele. Kui sellel pole piisavalt ruumi, paigutatakse see järgmisele tootlikkuse tasemele, kuid seejärel saab andmed viia produktiivsemale tasemele (ruumi olemasolul või muude andmete väljatõrjumisega). Auto-Tier paigutab uued andmed erinevatele tasemetele olenevalt vaba ruumi hulgast ning need jaotatakse ümber vastavalt nõudlusele ja vabale ruumile. Start High, siis Auto-Tier on vaikepoliitika ja ka soovitatav. Algselt paigutatuna töötab see kõrgeima saadaoleva tasemena ja seejärel liigutatakse andmeid sõltuvalt nende kasutusstatistikast. Madalaima saadaoleva tasandi poliitika eesmärk on paigutada andmed kõige vähem tootlikule tasemele.

Andmeedastus toimub madala prioriteediga, et mitte segada salvestussüsteemi kasulikku tööd, kuid prioriteeti muudab seade „Andmete ümberpaigutamise kiirus”. Siin on omapära: kõigil andmeplokkidel ei ole sama ümberjaotamise järjekord. Näiteks metaandmetena märgitud plokid teisaldatakse esmalt kiiremale tasemele. Metaandmed on niiöelda “andmed andmete kohta”, mingi lisainfo, mis ei ole kasutajaandmed, vaid salvestab selle kirjelduse. Näiteks failisüsteemi teave selle kohta, millises plokis konkreetne fail asub. See tähendab, et andmetele juurdepääsu kiirus sõltub metaandmetele juurdepääsu kiirusest. Arvestades, et metaandmed on tavaliselt palju väiksema suurusega, on nende suurema jõudlusega ketastele teisaldamise eelised eeldatavasti suuremad.

Kriteeriumid, mida Fast VP oma töös kasutab

Iga ploki peamiseks kriteeriumiks on väga umbkaudselt andmete "nõudluse" omadus, mis sõltub andmefragmendi lugemis- ja kirjutamisoperatsioonide arvust. Me nimetame seda omadust "temperatuuriks". On nõutud (kuumad) andmed, mis on "kuumemad" kui taotlemata andmed. Seda arvutatakse perioodiliselt, vaikimisi ühetunniste intervallidega.

Temperatuuri arvutamise funktsioonil on järgmised omadused:

  • I/O puudumisel andmed aja jooksul "jahtuvad".
  • Aja jooksul enam-vähem võrdse koormuse korral temperatuur esmalt tõuseb ja seejärel stabiliseerub teatud vahemikus.

Järgmisena võetakse arvesse ülalkirjeldatud eeskirju ja iga tasandi vaba ruumi. Selguse huvides annan pildi dokumentatsioonist. Siin tähistavad punased, kollased ja sinised värvid vastavalt kõrge, keskmise ja madala temperatuuriga plokke.

KIIRE VP Unity salvestusruumis: kuidas see töötab

Aga tuleme tagasi ülesannete juurde. Seega saame hakata analüüsima, mida FAST VP probleemide lahendamiseks tehakse.

A. Andmete jaotus eri tüüpi ketaste vahel, tasemed

Tegelikult on see FAST VP peamine ülesanne. Ülejäänud on teatud mõttes selle tuletised. Olenevalt valitud poliitikast jaotatakse andmed erinevatele salvestustasemetele. Kõigepealt võetakse arvesse paigutuspoliitikat, seejärel ploki temperatuuri ja RAID-gruppide suurust/kiirust.

Kõrgeima/madalaima saadaoleva astme poliitika puhul on kõik üsna lihtne. Ülejäänud kahe puhul on see nii. Andmed jaotatakse erinevatele tasanditele, võttes arvesse RAID-rühmade suurust ja jõudlust: nii et plokkide kogutemperatuuri ja iga RAID-rühma "tingimusliku maksimaalse jõudluse" suhe on ligikaudu sama. Seega jaotub koormus enam-vähem ühtlaselt. Rohkem nõutud andmeid liigutatakse kiirele andmekandjale ja harva kasutatavad andmed aeglasemale meediumile. Ideaalis peaks jaotus välja nägema umbes selline:

KIIRE VP Unity salvestusruumis: kuidas see töötab

B. Andmete jaotamine sama tüüpi ketaste vahel

Pidage meeles, et alguses kirjutasin, et andmekandja alates üks või mitu tasemed on ühendatud üheks basseiniks? Ühe taseme puhul on tööd ka FAST VP-l. Maksimaalse jõudluse saavutamiseks igal tasemel on soovitatav jagada andmed ketaste vahel ühtlaselt. See (teoreetiliselt) võimaldab teil saada maksimaalse IOPS-i. RAID-rühmas olevaid andmeid võib pidada ketaste vahel ühtlaselt jaotatuks, kuid see ei ole alati nii RAID-rühmade vahel. Tasakaalustamatuse korral liigutab FAST VP andmeid RAID-rühmade vahel proportsionaalselt nende mahu ja "tingimusliku jõudlusega" (numbriliselt). Selguse huvides näitan kolme RAID-rühma tasakaalustamisskeemi:

KIIRE VP Unity salvestusruumis: kuidas see töötab

B. Andmete jaotus kogumi laiendamisel

See ülesanne on eelmise erijuhtum ja seda tehakse siis, kui basseini lisatakse RAID-rühm. Tagamaks, et äsja lisatud RAID-rühm ei jääks jõude, kantakse osa andmetest sinna üle, mis tähendab, et koormus jaotatakse ümber kõigi RAID-rühmade vahel.

SSD kulumise tasandamine

Kulumistasandit kasutades saab FAST VP pikendada SSD eluiga, kuigi see funktsioon ei ole salvestustasemega otseselt seotud. Kuna temperatuuriandmed on juba olemas, arvestatakse ka kirjutamisoperatsioonide arvu ja me teame, kuidas andmeplokke liigutada, siis oleks loogiline, et FAST VP lahendaks selle probleemi.

Kui kirjete arv ühes RAID-rühmas ületab oluliselt teise kirjete arvu, jagab FAST VP andmed ümber vastavalt kirjutamistoimingute arvule. Ühelt poolt leevendab see koormust ja säästab mõne ketta ressurssi, teisalt lisab vähemkoormatud kettale “tööd”, suurendades üldist jõudlust.

Sel viisil võtab FAST VP vastu traditsioonilised Storage Tiringi väljakutsed ja teeb sellest veidi enamat. Kõik see võimaldab Unity salvestussüsteemis andmeid üsna tõhusalt salvestada.

Mõned nõuanded

  1. Ärge jätke tähelepanuta dokumentide lugemist. On olemas parimad tavad ja need toimivad üsna hästi. Kui neid järgite, siis reeglina tõsiseid probleeme ei teki. Ülejäänud nõuanded põhimõtteliselt kordavad või täiendavad neid.
  2. Kui olete FAST VP konfigureerinud ja lubanud, on parem see lubatuks jätta. Las ta levitab andmeid talle määratud ajal ja vähehaaval kui kord aastas ning avaldab tõsist mõju muude ülesannete täitmisele. Sellistel juhtudel võib andmete ümberjagamine võtta kaua aega.
  3. Olge kolimisakna valimisel ettevaatlik. Kuigi see on ilmselge, proovige valida Unityle kõige vähem koormatud aeg ja eraldada piisavalt aega.
  4. Plaanige oma salvestussüsteemi laiendada, tehke seda õigel ajal. See on üldine soovitus, mis on oluline ka FAST VP jaoks. Kui vaba ruumi on väga vähe, siis andmete liikumine aeglustub või muutub võimatuks. Eriti kui jätsid punkti 2 tähelepanuta.
  5. Kui laiendate basseini, kui FAST VP on lubatud, ei tohiks te alustada kõige aeglasemate ketastega. See tähendab, et lisame kõik planeeritud RAID-rühmad korraga või lisame kõigepealt kiireimad kettad. Sellisel juhul suurendab andmete ümberjagamine uutele "kiiretele" ketastele kogumi üldist kiirust. Vastasel juhul võib “aeglaste” ketastega alustamine põhjustada väga ebameeldiva olukorra. Esiteks kantakse andmed üle uutele suhteliselt aeglastele ketastele ja seejärel kiiremate lisamisel vastupidises suunas. Siin on nüansse, mis on seotud erinevate FAST VP poliitikatega, kuid üldiselt on sarnane olukord võimalik.

Kui vaatate seda toodet, saate Unityt tasuta proovida, laadides alla Unity VSA virtuaalse seadme.

KIIRE VP Unity salvestusruumis: kuidas see töötab

Materjali lõpus jagan mitmeid kasulikke linke:

Järeldus

Tahaksin kirjutada paljust, kuid mõistan, et kõik üksikasjad ei ole lugejale huvitavad. Näiteks saab täpsemalt rääkida kriteeriumidest, mille järgi FAST VP teeb andmeedastuse osas otsuseid, I/O statistika analüüsimise protsessidest. Samuti suhtlemise teema Dünaamilised basseinid, ja see väärib eraldi artiklit. Võite isegi fantaseerida selle tehnoloogia arengust. Loodan, et see ei olnud igav ja ma ei tüüdanud sind. Kohtumiseni jälle!

Allikas: www.habr.com

Lisa kommentaar