Šodien runāsim par interesantu tehnoloģiju, kas īstenota glabāšanas sistēmā Unity/Unity XT – FAST VP. Ja jūs pirmo reizi dzirdat par Unity, tad saite raksta beigās ļaus jums iepazīties ar sistēmas specifikācijām. Dell EMC projektiem es strādāju pie FAST VP vairāk nekā gadu. Šodien vēlos sīkāk pastāstīt par šo tehnoloģiju un atklāt dažus tās īstenošanas aspektus. Protams, tikai tos, kurus atļauts atklāt. Ja jūs interesē efektīvās datu glabāšanas jautājumi vai vienkārši nav pilnīgas skaidrības par dokumentāciju, tad šis raksts noteikti būs noderīgs un interesants.

Uzreiz jāpasaka, ka materiālā nebūs salīdzināšanas ar konkurentiem. Tāpat neplānoju stāstīt par līdzīgām atvērtā koda tehnoloģijām, jo ziņkārīgais lasītājs par tām jau zina. Un, protams, es necenšos neko reklamēt.
Datu glabāšanas slāņošana. FAST VP mērķi un uzdevumi
FAST VP tiek atšifrēts kā Fully Automated Storage Tiering for Virtual Pool. Sarežģīti? Nē, tagad noskaidrosim. Slāņošana – tas ir datu glabāšanas organizācijas veids, kurā tiek izmantoti vairāki līmeņi (tiers), kur šie dati tiek glabāti. Katram ir savas īpašības. Visimportantākās: veiktspēja, apjoms un cenas par informācijas vienības glabāšanu. Protams, starp tām ir savstarpēja saistība.
Svarīga slāņošanas iezīme ir tā, ka piekļuve datiem tiek nodrošināta vienveidīgi neatkarīgi no tā, kurā glabāšanas līmenī tie šobrīd atrodas, un pūla lielums ir vienāds ar resursu, kas tajā ietilpst, kopējo izmēru. Šeit slēpjas atšķirības no kešatmiņas: kešatmiņas lielums nepievienojas kopējam resursu apjomam (šajā gadījumā pūlam), un kešatmiņas dati dublē jebkuru galveno nesēju datu fragmentu (vai tiks dublēti, ja kešatmiņas dati vēl nav ierakstīti). Tāpat datu sadalījums pa līmeņiem lietotājam nav redzams. Tas nozīmē, ka viņš neredz, kuri tieši dati atrodas katrā līmenī, kaut arī var ietekmēt to netieši, nosakot politikas (par tām vēlāk).
Tagad aplūkosim glabāšanas slāņošanas īstenošanas iezīmes Unity. Unity izdala 3 līmeņus, vai tierus:
- Ekstremāla veiktspēja (SSD)
- Veiktspēja (SAS HDD 10k/15k RPM)
- Jauda (NL-SAS HDD 7200 RPM)
Tie ir sakārtoti pēc veiktspējas un cenas samazināšanās kārtībā. Extreme performance ietver tikai cietvielu diskus (SSD). Divos citos līmeņos ir magnētiskie diski, kuru atšķirības ir griešanās ātrumā un attiecīgi veiktspējā.
Informācijas nesēji no viena līmeņa un viena izmēra apvienojas RAID masīvā, veidojot RAID grupu (RAID group, īsi – RG); par pieejamajiem un ieteicamajiem RAID līmeņiem var izlasīt oficiālajā dokumentācijā. No RAID grupām, kas veidotas no viena vai vairākiem līmeņiem, veidojas datu glabāšanas baseini (Storage pool), no kuriem pēc tam tiek sadalīta brīvā vieta. Un no baseina tiek piešķirta vieta failu sistēmām un LUN'iem.

Kāpēc man nepieciešams tiering?
Īsumā un abstrakti: lai sasniegtu labākus rezultātus, izmantojot minimālos resursus. Ja runājam konkrētāk, tad rezultāts parasti tiek saprasts kā SХD kopējās īpašības – ātrums un piekļuves laiks, glabāšanas izmaksas un citas. Minimālie resursi nozīmē vismazākos izdevumus: naudu, enerģiju un tā tālāk. FAST VP tieši realizē datu pārdalīšanas mehānismus pa dažādiem līmeņiem SХD Unity/Unity XT. Ja jūs man ticat, varat izlaist nākamo rindkopu. Pārējiem pastāstīšu nedaudz sīkāk.
Pareiza datu sadale pa glabāšanas līmeņiem ļauj ietaupīt uz visām SХD izmaksām, upurējot piekļuves ātrumu noteiktai reti izmantotai informācijai, un uzlabot veiktspēju, pārvietojot bieži izmantotos datus ātrākajos nesējos. Šeit kāds var iebilst, ka arī bez tiering’a normāls administrators zina, kur ievietot kādus datus, kādas vēlamas īpašības SХD atbilst viņa uzdevumam utt. Neapšaubāmi, tas tā ir, bet datu sadale "roku darbu" ir saistīta ar saviem trūkumiem:
- prasa administratora laiku un uzmanību;
- ne vienmēr izdevīgs "pārveidot" SХD resursus pēc mainītajiem apstākļiem;
- izzūd svarīga priekšrocība: vienotā piekļuve resursiem, kas atrodas uz dažādiem glabāšanas līmeņiem.
Lai storage administratori mazāk uztraucas par darba drošību, pievienošu, ka resursu pareiza plānošana ir nepieciešama arī šeit. Tagad, kad tieringa uzdevumi ir īsi izklāstīti, aplūkosim, ko no FAST VP var gaidīt. Šeit ir īstais brīdis atgriezties pie definīcijas. Pirmie divi vārdi – Fully Automated – tieši tulkojas kā „pilnībā automatizēts” un nozīmē, ka sadalījums pēc līmeņiem notiek automātiski. Nu, bet Virtual Pool – tas ir datu pools, kurā ietilpst resursi no dažādiem uzglabāšanas līmeņiem. Lūk, kā tas izskatās:

Lai ātri izsacītu, FAST VP pārvieto datus tikai viena pool iekšienē, nevis starp vairākām poolām.
FAST VP risināmās problēmas
Vispirms runāsim abstrakti. Mums ir pool un kāds mehānisms, kas var pārdalīt datus šī pool iekšienē. Atceroties, ka mūsu uzdevums ir maksimālās veiktspējas sasniegšana, uzdosim jautājumu: kādas metodes to var sasniegt? To var būt vairākas, un šeit FAST VP piedāvā lietotājam vairāk nekā tikai storage tiering. Lūk, kā FAST VP var palielināt pool veiktspēju:
- Datu sadalīšana pa dažādiem disku veidiem, līmeņiem
- Datu sadalīšana starp viena veida diskiem
- Datu sadalīšana, paplašinot pool
Pirms apspriest, kā šos uzdevumus risina, mums jāzina daži nepieciešamie fakti par FAST VP darbību. FAST VP darbojas ar noteikta lieluma blokiem – 256 megabaitiem. Tas ir minimālais nepārtrauktais „gabals” datu, kas var tikt pārvietots. Dokumentācijā to sauc tieši tā – slice. FAST VP skatījumā visas RAID grupas sastāv no šādu „gabalu” kopas. Atbilstoši tam visa ievades-izvades statistika uzkrājas šādiem datu blokiem. Kāpēc izvēlēts tieši šāds bloka lielums un vai tas tiks samazināts? Bloks ir pietiekami liels, taču tas ir kompromiss starp datu granulu (mazāks bloka izmērs – precīzāks sadalījums) un esošajām skaitļošanas iespējām: ņemot vērā esošos stingros ierobežojumus operatīvajā atmiņā un lielo blokku skaitu, datu statistika var aizņemt pārāk daudz, un aprēķinu skaits pieaugs proporcionāli.
Kā FAST VP izvieto datus poolā. Politikas
Lai pārvaldītu datu izvietojumu FAST VP poolā, pastāv šādas politikas:
- Augstākā pieejamā slāņa
- Automātiskā slāņošana
- Sākt augstu, pēc tam automātiskā slāņošana (pēc noklusējuma)
- Zemākā pieejamā slāņa
Tās ietekmē gan sākotnējo bloka izvietojumu (dati, kas pirmo reizi tiek ierakstīti), gan turpmāko pārvietošanu. Kad dati ir jau izvietoti diskos, pārvietošana tiks iniciēta saskaņā ar grafiku vai manuāli.
Augstākā pieejamā slāņa cenšas izvietot jaunu bloku visproduktīvākajā līmenī. Ja tur nav pietiekami daudz vietas, tad nākamajā produktīvākajā līmenī, bet pēc tam dati var tikt pārvietoti uz produktīvāku līmeni (ja ir vieta vai izspiežot citus datus). Automātiskā slāņošana izvieto jaunus datus dažādos līmeņos atkarībā no pieejamā vietas izmēra, un pārvietošana notiek atkarībā no pieprasījuma un brīvas vietas. Sākt augstu, pēc tam automātiskā slāņošana ir noklusējuma politika, kā arī ieteicamā. Sākotnējā izvietojumā tā darbojas kā augstākā pieejamā slāņa, bet pēc tam notiek datu pārvietošana atkarībā no to izmantošanas statistikas. Zemākā pieejamā slāņa politika cenšas izvietot datus zemāk produktīvā līmenī.
Datu pārvietošana notiek ar zemu prioritāti, lai netraucētu glabāšanas sistēmas darbību; tomēr ir iestatījums "Datu pārvietošanas ātrums", kas maina prioritāti. Šeit ir iezīme: ne visi datu bloki ir ar vienādu pārvietošanas secību. Piemēram, bloki, kas marķēti kā metadati, tiks pārvietoti uz ātrāku līmeni vispirms. Metadati ir, ja var teikt, "dati par datiem", papildinformācija, kas nav lietotāja dati, bet saglabā to aprakstu. Piemēram, informācija failu sistēmā par to, kurā blokā atrodas konkrēts fails. Tātad piekļuves ātrums datiem ir atkarīgs no piekļuves ātruma metadatiem. Ņemot vērā, ka metadati parasti ir daudz mazāki, ieguvums no to pārvietošanas uz produktīvākiem diskdziņiem tiek sagaidīts lielāks.
Kriteriji, ko Fast VP izmanto darbībā
Galvenais kritērijs katram blokam, ja ļoti rupji, ir datu "pieprasījuma" raksturojums, kas atkarīgs no lasīšanas un rakstīšanas operāciju skaita fragmentā. Šo raksturojumu mēs saucām par "Temperatūru". Ir pieprasīti (siltie) dati, kuri ir "karstāki" par nepiekristiem. Tas tiek aprēķināts periodiski, pēc noklusējuma ar stundu intervālu.
Temperatūras aprēķina funkcijai ir šādas īpašības:
- Ja nav ievades-izejas, dati laika gaitā "atdziest".
- Pie vairāk vai mazāk vienādas slodzes laika gaitā temperatūra vispirms pieaug, un pēc tam stabilizējas noteiktā diapazonā.
Tālāk tiek ņemtas vērā iepriekš aprakstītās politikas un brīvā vieta katrā slānī. Piemēram, ilustrācijai es sniegšu attēlu no dokumentācijas. Šeit sarkanas, dzeltenas un zilas krāsas attēlo augstas, vidējas un zemas temperatūras blokiem attiecīgi.

Bet atgriezīsimies pie uzdevumiem. Tātad, varam sākt izskatīt, ko darām, lai atrisinātu FAST VP uzdevumus.
A. Datu sadale pa dažādiem disku veidiem, līmeņiem
Pats par sevi tas ir galvenais FAST VP uzdevums. Pārējie, kādā ziņā, ir atvasināti no tā. Atkarībā no izvēlētās politikas dati tiks sadalīti pa dažādiem glabāšanas līmeņiem. Vispirms tiek ņemta vērā izvietošanas politika, tad blokos esošā temperatūra un RAID grupu izmērs/ātrums.
Attiecībā uz politikām Highest/Lowest Available Tier viss ir diezgan vienkārši. Pārējām divām situācija ir šāda. Dati tiek sadalīti pa dažādiem līmeņiem, ņemot vērā RAID grupu izmēru un veiktspēju: tā, lai kopējā blokos esošās "temperatūras" attiecība pret katras RAID grupas "nosacīto maksimālo veiktspēju" būtu aptuveni vienāda. Tādējādi slodze tiek sadalīta vairāk vai mazāk vienmērīgi. Vairāk pieprasītie dati pārvietojas uz ātrākiem nesējiem, reti izmantotie – uz lēnākiem. Ideālā gadījumā sadalījumam vajadzētu būt aptuveni šādam:

B. Datu sadale starp viena veida diskiem
Atcerieties, sākumā es rakstīju, ka informācijas nesēji no viena vai vairākiem Cik līmeņi tiek apvienoti vienā grupā? Ja ir viena līmeņa FAST VP, tam arī ir darbs. Lai kāda līmeņa veiktspēja būtu maksimāla, vēlams vienmērīgi sadalīt datus starp diskdziņiem. Tas, teorētiski, ļautu sasniegt maksimālo IOPS skaitu. Datus RAID grupā var uzskatīt par vienmērīgi sadalītiem pa diskiem, taču starp RAID grupām tas ne vienmēr ir tā. Ja ir disbalanss, FAST VP pārvietos datus starp RAID grupām proporcionāli to apjomam un 'nosacītai veiktspējai' (skaitliskā izteiksmē). Lai vizualizētu, parādīšu pārbalansēšanas shēmu trīs RAID grupu vidū:

V. Datu sadalījums grupas paplašināšanas laikā
Šī uzdevums ir iepriekšējā specifisks gadījums un tiek veikts, kad grupā pievieno RAID grupu. Lai jaunpieņemta RAID grupa nepaliktu neizmantota, daļa datu tiks pārvietota uz to, līdz ar to novadot slodzi visās RAID grupās.
SSD nodiluma izlīdzināšana
Izmantojot FAST VP nodiluma izlīdzināšanu, var pagarināt SSD kalpošanas laiku, kaut arī šī funkcija nav tieši saistīta ar Storage Tiering. Ņemot vērā, ka temperatūras dati jau ir pieejami, rakstīšanas operāciju skaits arī tiek ņemts vērā, un mēs spējam pārvietot datu blokos, būtu loģiski, ka FAST VP risina arī šo uzdevumu.
Ja rakstīšanas operāciju skaits uz vienu RAID grupu ievērojami pārsniedz skaitu pretējo, tad FAST VP pārvietos datus atbilstoši rakstīšanas operāciju skaitam. No vienas puses, tas samazina slodzi un saglabā resursus vieniem diskiem, no otras puses, palielina 'darbu' mazāk noslogotiem diskiem, paaugstinot vispārējo veiktspēju.
Tādējādi FAST VP uzņemas tradicionālās Storage Tiering uzdevumus un dara vēl kaut ko papildus. Visi šie aspekti ļauj diezgan efektīvi glabāt datus Unity ražotāja uzglabāšanas sistēmās.
Daži ieteikumi
- Nepalaidiet garām dokumentācijas lasīšanu. Ir labākās prakses, un tās darbojas diezgan labi. Ja tām sekojat, nopietnas problēmas parasti nerodas. Pārējie ieteikumi galvenokārt atkārto vai papildina tās.
- Ja, ja esat iestatījis un aktivizējis FAST VP, vislabāk to atstāt ieslēgtu. Lai tas sadala datus tam paredzētajā laikā un pakāpeniski, nevis reizi gadā, radot būtisku ietekmi uz citu uzdevumu veiktspēju. Šādos gadījumos datu pārkārtošana var ilgt ilgu laiku.
- Rūpīgi izvēlieties pārvietošanās logu. Lai gan tas var šķist acīmredzami, cenšaties izvēlēties laiku ar vismazāko slodzi uz Unity un atvēlēt pietiekami ilgu laiku.
- Plānojiet uzglabāšanas paplašināšanu, veiciet to laikā. Tā ir vispārēja rekomendācija, kas ir svarīga arī FAST VP. Ja pieejamais brīvais vietas apjoms ir ļoti mazs, datu pārvietošanās palēninās vai kļūs neiespējama. Īpaši, ja esat ignorējuši 2. punktu.
- Paplašinot pool ar ieslēgtu FAST VP, nevajadzētu sākt ar vislēnākajiem diskiem. Tas nozīmē, ka vai nu pievienojam visas plānotās RAID grupas uzreiz, vai vispirms pievienojam visātrākos diskus. Šajā gadījumā datu pārdalīšana jaunajos "ātrajos" diskos palielinās kopējo pool ātrumu. Pretējā gadījumā, sākot ar "lēnajiem" diskiem, var rasties ļoti nepatīkama situācija. Vispirms notiks datu pārvietošana uz jaunajiem, salīdzinoši lēnajiem diskiem, bet vēlāk, pievienojot ātrākus, notiks pārvietošana pretējā virzienā. Šeit ir nianses, kas saistītas ar dažādām FAST VP politikām, bet vispārējā gadījumā šāda situācija ir iespējama.
Ja jūs interesē šis produkts, varat izmēģināt Unity bez maksas, lejupielādējot Unity VSA virtuālo ierīci.

Noslēgumā dalos ar dažām noderīgām saitēm:
- Lappuse
- – īss funkcijas apraksts
- , pdf formātā
Secinājums
Es vēlētos daudz rakstīt, bet saprotu, ka ne visas detaļas interesēs lasītāju. Piemēram, varētu sīkāk izstāstīt par kritērijiem, kuriem FAST VP pieņem lēmumu par datu pārvietošanu, par ievades-izvades statistikas analīzes procesiem. Arī vispār nav pieskāriena tēmai par , un tas būtu jāapspriež atsevišķā rakstā. Varbūt pat varam spekulēt par šīs tehnoloģijas attīstību. Ceru, ka nebija garlaicīgi un es jūs nenogurdināju. Līdz nākamajām tikšanās reizēm!
Avots: habr.com
