FAST VP op Unity opslach: hoe't it wurket

Hjoed sille wy prate oer in nijsgjirrige technology ymplementearre yn Unity / Unity XT opslachsystemen - FAST VP. As dit jo earste kear is dat jo oer Unity hearre, dan kinne jo de systeemkenmerken kontrolearje mei de keppeling oan 'e ein fan it artikel. Ik wurke mear as in jier oan FAST VP op it Dell EMC-projektteam. Hjoed wol ik yn mear detail oer dizze technology prate en guon details fan har ymplemintaasje iepenbierje. Fansels, allinnich dejingen dy't meie wurde iepenbiere. As jo ​​​​ynteressearre binne yn problemen fan effisjinte gegevensopslach of de dokumintaasje gewoan net folslein begrepen, dan sil dit artikel grif nuttich en ynteressant wêze.

FAST VP op Unity opslach: hoe't it wurket

Ik sil jo daliks fertelle wat der net yn it materiaal komt. D'r sil gjin sykjen nei konkurrinten en fergeliking mei har wêze. Ik bin ek net fan plan om te praten oer ferlykbere technologyen út iepen boarne, om't de nijsgjirrige lêzer der al oer wit. En ik sil fansels neat advertearje.

Opslach Tiering. Doelen en doelstellingen fan FAST VP

FAST VP stiet foar Fully Automated Storage Tiering foar Virtual Pool. In bytsje dreech? Gjin probleem, wy sille it no útfine. Tiering is in manier om gegevens opslach te organisearjen wêryn d'r ferskate nivo's (tiers) binne wêryn dizze gegevens wurde opslein. Elk hat syn eigen skaaimerken. It wichtichste: prestaasjes, folume en priis fan it bewarjen fan in ienheid fan ynformaasje. Fansels is der in relaasje tusken harren.

In wichtich skaaimerk fan tiering is dat tagong ta gegevens unifoarm wurdt levere, nettsjinsteande it opslachnivo wêrop it op it stuit leit, en de grutte fan it swimbad is gelyk oan 'e som fan' e grutte fan 'e boarnen dy't dêryn opnommen binne. Dit is wêr't de ferskillen fan 'e cache lizze: de grutte fan' e cache wurdt net tafoege oan it totale folume fan 'e boarne (pool yn dit gefal), en de cachegegevens duplikearje wat fragmint fan' e haadmediagegevens (of sil duplikearje as de gegevens fan 'e cache binne noch net skreaun). Ek is de ferdieling fan gegevens troch nivo's ferburgen foar de brûker. Dat is, hy sjocht net krekt hokker gegevens op elk nivo sitte, hoewol hy dit yndirekt beynfloedzje kin troch it ynstellen fan belied (mear oer har letter).

Litte wy no sjen nei de funksjes fan 'e ymplemintaasje fan opslachtiering yn Unity. Unity hat 3 nivo's, of tier:

  • Ekstreme prestaasjes (SSD's)
  • Prestaasje (SAS HDD 10k/15k RPM)
  • Kapasiteit (NL-SAS HDD 7200 RPM)

Se wurde presintearre yn ôfnimmende folchoarder fan prestaasjes en priis. Ekstreme prestaasjes omfetsje allinich solid state-skiven (SSD's). De oare twa lagen omfetsje magnetyske skiven, dy't ferskille yn rotaasjesnelheid en, dus, prestaasjes.

Storage media út itselde nivo en deselde grutte wurde kombinearre yn in RAID array, foarmje in RAID groep (RAID groep, ôfkoarte as RG); Jo kinne lêze oer beskikbere en oanrikkemandearre RAID-nivo's yn 'e offisjele dokumintaasje. Opslachpools wurde foarme út RAID-groepen fan ien of mear nivo's, wêrfan frije romte dan ferdield wurdt. En út it swimbad romte wurdt tawiisd foar triem systemen en LUNs.

FAST VP op Unity opslach: hoe't it wurket

Wêrom haw ik Tiering nedich?

Koartsein en abstrakt: om gruttere resultaten te berikken mei in minimum fan middels. Mear spesifyk wurdt it resultaat meastentiids begrepen as in set fan skaaimerken fan opslachsysteem - snelheid en tagongstiid, opslachkosten, en oaren. It minimum oan middels betsjut de minste útjeften: jild, enerzjy, ensfh. FAST VP ymplemintearret meganismen foar it fersprieden fan gegevens oer ferskate nivo's yn Unity / Unity XT opslachsystemen. As jo ​​my leauwe, dan kinne jo de folgjende paragraaf oerslaan. Foar de rest sil ik jim noch wat mear fertelle.

Goede ferdieling fan gegevens oer opslachlagen kinne jo besparje op 'e totale kosten fan opslach troch it offerjen fan tagongssnelheid oan guon selden brûkte ynformaasje, en ferbetterje prestaasjes troch faak brûkte gegevens nei flugger media te ferpleatsen. Hjir kin immen stelle dat sels sûnder tiering, in normale admin wit wêr't te pleatsen hokker gegevens, wat binne de winske eigenskippen fan in opslachsysteem foar syn taak, ensfh. Dit is sûnder mis wier, mar it manuell fersprieden fan gegevens hat syn neidielen:

  • freget tiid en oandacht fan 'e behearder;
  • It is net altyd mooglik om "opnij" opslach middels te passe feroarjende betingsten;
  • in wichtich foardiel ferdwynt: ferienige tagong ta middels dy't lizze op ferskate opslachnivo's.

Om opslachbehearders har minder soargen te meitsjen oer wurkfeiligens, sil ik tafoegje dat kompetinte boarneplanning hjir ek nedich is. No't de taken fan tiering koart binne sketst, litte wy ris sjen wat jo kinne ferwachtsje fan FAST VP. No is it tiid om werom te gean nei de definysje. De earste twa wurden - Fully Automated - wurde letterlik oerset as "folslein automatisearre" en betsjutte dat de ferdieling tusken nivo's automatysk bart. No, Virtual Pool is in gegevenspool dy't boarnen omfettet fan ferskate opslachnivo's. Dit is hoe't it derút sjocht:

FAST VP op Unity opslach: hoe't it wurket

Foarútsjen sil ik sizze dat FAST VP gegevens allinich binnen ien pool ferpleatst, en net tusken ferskate swimbaden.

Problemen oplost troch FAST VP

Lit ús earst abstrakt prate. Wy hawwe in pool en wat meganisme dat kin fersprieden gegevens binnen dizze pool. Unthâld dat ús doel is om maksimale produktiviteit te berikken, litte wy ússels ôffreegje: hokker manieren kinne wy ​​it berikke? D'r kinne ferskate fan har wêze, en hjir hat FAST VP wat de brûker te bieden, om't de technology wat mear is as allinich opslachtiering. Hjir binne wat manieren wêrop FAST VP de prestaasjes fan it swimbad kin ferheegje:

  • Ferdieling fan gegevens oer ferskate soarten skiven, nivo's
  • It fersprieden fan gegevens ûnder skiven fan itselde type
  • Gegevensferdieling by it útwreidzjen fan it swimbad

Foardat wy sjogge nei hoe't dizze taken wurde oplost, wy moatte witte wat nedige feiten oer hoe't FAST VP wurket. FAST VP wurket mei blokken fan in bepaalde grutte - 256 megabytes. Dit is de lytste oanslutende "brok" ​​fan gegevens dy't kin wurde ferpleatst. Yn de dokumintaasje neame se dat: slice. Ut it eachpunt fan FAST VP besteane alle RAID-groepen út in set fan sokke "stikken". Dêrtroch wurde alle I / O-statistiken sammele foar sokke gegevensblokken. Wêrom waard dizze blokgrutte keazen en sil it wurde fermindere? It blok is frij grut, mar dit is in kompromis tusken de granulariteit fan 'e gegevens (lytsere blokgrutte betsjut krekter ferdieling) en beskikbere komputerboarnen: sjoen de besteande strikte beheiningen op RAM en in grut oantal blokken, kinne statistyske gegevens opnimme te folle, en it oantal berekkeningen sil tanimme proporsjoneel.

Hoe FAST VP allocates gegevens oan it swimbad. Politisy

Om de pleatsing fan gegevens yn in swimbad te kontrolearjen mei FAST VP ynskeakele, bestiet it folgjende belied:

  • Heechste Beskikbere Tier
  • Auto-Tier
  • Start Heech dan Auto-Tier (standert)
  • Leechste Beskikbere Tier

Se beynfloedzje sawol de inisjele blokallokaasje (gegevens earst skreaun) en de folgjende weryndieling. As de gegevens al op skiven lizze, sil werferdieling ynsteld wurde neffens in skema of mei de hân.

Heechste beskikbere tier besiket in nij blok te pleatsen op it heechst prestearjende tier. As der net genôch romte op is, wurdt it op it folgjende meast produktive nivo pleatst, mar dan kinne de gegevens nei in mear produktyf nivo ferpleatst wurde (as der romte is of troch oare gegevens te ferpleatsen). Auto-Tier pleatst nije gegevens op ferskillende nivo 's ôfhinklik fan it bedrach fan beskikbere romte, en it wurdt ferdield ôfhinklik fan fraach en frije romte. Start Heech dan Auto-Tier is it standertbelied en ek oan te rieden. As it yn earste ynstânsje pleatst, wurket it as de Heechste Beskikbere Tier, en dan wurde de gegevens ferpleatst ôfhinklik fan har gebrûkstatistiken. It belied foar leechste beskikbere tier besiket gegevens te pleatsen yn 'e minst produktive tier.

Gegevensferfier bart mei lege prioriteit om net te bemuoien mei de nuttige wurking fan it opslachsysteem, lykwols is d'r in ynstelling "Dataferhuzingsrate" dy't de prioriteit feroaret. D'r is hjir in eigenaardichheid: net alle gegevensblokken hawwe deselde werferdielingsfolchoarder. Bygelyks, blokken markearre as metadata wurde earst ferpleatst nei in flugger nivo. Metadata binne, om sa te sizzen, "gegevens oer gegevens", wat ekstra ynformaasje dy't gjin brûkersgegevens binne, mar de beskriuwing dêrfan opslaan. Bygelyks ynformaasje yn it bestânsysteem oer hokker blok in bepaald bestân yn sit. Dit betsjut dat de snelheid fan tagong ta gegevens hinget ôf fan 'e snelheid fan tagong ta metadata. Sjoen dat metadata typysk folle lytser binne yn grutte, wurde de foardielen fan it ferpleatsen nei skiven mei hegere prestaasjes ferwachte grutter te wêzen.

Kritearia dy't Fast VP brûkt yn har wurk

It wichtichste kritearium foar elke blok, heul rûchwei, is it karakteristyk fan 'e "fraach" fan 'e gegevens, dy't ôfhinklik is fan it oantal lês- en skriuwoperaasjes fan in gegevensfragmint. Wy neame dit karakteristyk "Temperatuer". D'r binne easke (hite) gegevens dy't "hierder" binne as net-opfrege gegevens. It wurdt periodyk berekkene, standert mei yntervallen fan ien oere.

De temperatuerberekkeningsfunksje hat de folgjende eigenskippen:

  • By it ûntbrekken fan I / O, gegevens "cool down" oer de tiid.
  • By min of mear gelikense lading yn 'e rin fan' e tiid nimt de temperatuer earst omheech en stabilisearret dan yn in bepaald berik.

Dêrnei wurde it hjirboppe beskreaune belied en de frije romte op elke tier yn rekken brocht. Foar dúdlikens sil ik in foto fan 'e dokumintaasje leverje. Hjir jouwe reade, giele en blauwe kleuren blokken oan mei respektivelik hege, medium en lege temperatueren.

FAST VP op Unity opslach: hoe't it wurket

Mar litte wy weromgean nei de taken. Dat, wy kinne begjinne te analysearjen wat wurdt dien om FAST VP-problemen op te lossen.

A. Ferdieling fan gegevens oer ferskate soarten skiven, nivo's

Eins is dit de haadtaak fan FAST VP. De rest, yn in sin, binne der ôfliedingen fan. Ofhinklik fan it selekteare belied, wurde gegevens ferdield oer ferskate opslachnivo's. Alderearst wurdt it pleatsingsbelied rekken holden, dan de bloktemperatuer en de grutte / snelheid fan RAID-groepen.

Foar Heechste / Leechste Beskikbere Tier belied is alles frij simpel. Foar de oare twa is dat it gefal. Gegevens wurde ferdield oer ferskate nivo's mei rekken hâldend mei de grutte en prestaasjes fan RAID-groepen: sadat de ferhâlding fan 'e totale "temperatuer" fan 'e blokken nei de "betingsten maksimale prestaasjes" fan elke RAID-groep sawat itselde is. Sa wurdt de lading min of mear gelyk ferdield. Mear yn-fraach gegevens wurdt ferpleatst nei flugge media, en selden brûkte gegevens wurdt ferpleatst nei trager media. Ideal soe de ferdieling der sa útsjen moatte:

FAST VP op Unity opslach: hoe't it wurket

B. Ferdieling fan gegevens ûnder skiven fan itselde type

Tink derom, oan it begjin skreau ik dat opslachmedia fan ien of mear nivo wurde kombinearre yn ien pool? Yn it gefal fan ien nivo hat FAST VP ek wurk te dwaan. Om maksimale prestaasjes op elk nivo te berikken, is it oan te rieden om gegevens lykwichtich te fersprieden tusken skiven. Dit sil (yn teory) tastean jo te krijen it maksimum bedrach fan IOPS. Gegevens binnen in RAID groep kin beskôge wurde ferdield lykmjittich oer skiven, mar dit is net altyd it gefal tusken RAID groepen. Yn it gefal fan in ûnbalâns sil FAST VP gegevens ferpleatse tusken RAID-groepen yn ferhâlding ta har folume en "betingsten prestaasjes" (yn numerike termen). Foar dúdlikens sil ik in rebalânsjeskema sjen litte tusken trije RAID-groepen:

FAST VP op Unity opslach: hoe't it wurket

B. Data distribúsje by it útwreidzjen fan it swimbad

Dizze taak is in spesjaal gefal fan 'e foarige en wurdt útfierd as in RAID-groep wurdt tafoege oan it swimbad. Om derfoar te soargjen dat de nij tafoege RAID-groep net idle bliuwt, sille guon fan 'e gegevens dernei wurde oerdroegen, wat betsjut dat de lading oer alle RAID-groepen opnij ferdield wurdt.

SSD Wear Leveling

Troch gebrûk fan wearnivellering kin FAST VP it libben fan in SSD ferlingje, hoewol dizze funksje net direkt relatearre is oan Storage Tiering. Sûnt temperatuer gegevens is al beskikber, it oantal skriuwoperaasjes wurdt ek rekken holden, en wy witte hoe te ferpleatsen gegevens blokken, it soe wêze logysk foar FAST VP in oplosse dit probleem.

As it oantal yngongen yn ien RAID-groep signifikant grutter is as it oantal yngongen yn in oare, sil FAST VP de gegevens opnij fersprieden yn oerienstimming mei it oantal skriuwoperaasjes. Oan 'e iene kant ferleget dit de lading en besparret de boarne fan guon skiven, oan' e oare kant foeget it "wurk" ta foar minder laden, en fergruttet de totale prestaasjes.

Op dizze manier nimt FAST VP de tradisjonele útdagings fan Storage Tiering oan en docht in bytsje mear dan dat. Dit alles lit jo gegevens frij effisjint opslaan yn it Unity-opslachsysteem.

In pear tips

  1. Ferjit net om de dokumintaasje te lêzen. D'r binne bêste praktiken, en se wurkje frij goed. As jo ​​​​se folgje, dan binne der as regel gjin serieuze problemen. De rest fan it advys werhellet of komplementearret har yn prinsipe.
  2. As jo ​​FAST VP hawwe ynsteld en ynskeakele, is it better om it ynskeakele te litten. Lit it de gegevens ferspriede yn har tawiisde tiid en stadichoan dan ien kear yn 't jier en in serieuze ynfloed hawwe op' e útfiering fan oare taken. Yn sokke gefallen kin de werferdieling fan gegevens in lange tiid duorje.
  3. Wês foarsichtich by it kiezen fan in ferhuzingsfinster. Hoewol dit fanselssprekkend is, besykje in tiid te kiezen mei de minste lading op Unity en allocearje in genôch perioade fan tiid.
  4. Plan om jo opslachsysteem út te wreidzjen, doch it op tiid. Dit is in algemiene oanbefelling dy't ek wichtich is foar FAST VP. As de hoemannichte frije romte heul lyts is, dan sil gegevensbeweging fertrage of ûnmooglik wurde. Benammen as jo punt 2 negeare.
  5. By it útwreidzjen fan in swimbad mei FAST VP ynskeakele, moatte jo net begjinne mei de stadichste skiven. Dat is, wy foegje alle plande RAID-groepen tagelyk ta, of foegje earst de fluchste skiven ta. Yn dit gefal sil werferdieling fan gegevens nei nije "snelle" skiven de totale snelheid fan it swimbad ferheegje. Oars, begjinnend mei "stadige" skiven kin liede ta in hiel onaangename situaasje. Earst wurde gegevens oerbrocht nei nije, relatyf stadige skiven, en dan, as flugger wurde tafoege, yn 'e tsjinoerstelde rjochting. D'r binne hjir nuânses yn ferbân mei ferskate FAST VP-belied, mar yn 't algemien is in ferlykbere situaasje mooglik.

As jo ​​​​nei dit produkt sjogge, kinne jo Unity fergees besykje troch Unity VSA firtuele apparaat te downloaden.

FAST VP op Unity opslach: hoe't it wurket

Oan 'e ein fan it materiaal diel ik ferskate nuttige keppelings:

konklúzje

Ik soe graach skriuwe oer in protte, mar ik begryp dat net alle details sille wêze nijsgjirrich foar de lêzer. Jo kinne bygelyks yn mear detail prate oer de kritearia wêrmei FAST VP besluten makket oer gegevensferfier, oer de prosessen fan analysearjen fan I / O-statistiken. Ek, it ûnderwerp fan ynteraksje mei Dynamic Pools, en dit fertsjinnet in apart artikel. Jo kinne sels fantasearje oer de ûntwikkeling fan dizze technology. Ik hoopje dat it net saai wie en dat ik dy net ferfeelde. Sjoch dy wer!

Boarne: www.habr.com

Add a comment