Oghje parlemu di una tecnulugia interessante implementata in i sistemi di almacenamiento Unity / Unity XT - FAST VP. Sè questu hè a vostra prima volta à sente parlà di Unity, allora pudete verificà e caratteristiche di u sistema usendu u ligame à a fine di l'articulu. Aghju travagliatu in FAST VP in u gruppu di prughjettu Dell EMC per più di un annu. Oghje vogliu parlà di sta tecnulugia in più detail è revelà qualchi dettagli di a so implementazione. Di sicuru, solu quelli chì sò permessi di esse revelati. Sè site interessatu in tematiche di almacenamentu di dati efficiente o simpricimenti ùn avete micca capitu cumplettamente a documentazione, allora questu articulu serà certamente utile è interessante.
Vi dicu subitu ciò chì ùn serà micca in u materiale. Ùn ci sarà micca ricerca di cuncurrenti è paraguni cun elli. Ùn aghju micca pensatu ancu di parlà di tecnulugii simili da open source, perchè u curiosu lettore sapi digià di elli. È, sicuru, ùn aghju micca fà publicità nunda.
Tiring di Storage. Obiettivi è obiettivi di FAST VP
FAST VP significa Tiring di Storage Fully Automated for Virtual Pool. Un pocu difficiule? Nisun prublema, avemu da capisce avà. Tiring hè una manera di urganizà u almacenamentu di dati in quale ci sò parechji livelli (tiers) induve sta dati hè almacenatu. Ognunu hà e so caratteristiche. U più impurtante: u rendiment, u voluminu è u prezzu di almacenà una unità di informazioni. Di sicuru, ci hè una relazione trà elli.
Una funzione impurtante di u tiering hè chì l'accessu à i dati hè furnitu in modu uniforme, indipendentemente da u livellu di almacenamento à quale hè attualmente situatu, è a dimensione di a piscina hè uguale à a summa di e dimensioni di e risorse incluse in questu. Hè quì chì e sferenze da u cache si trovanu: a dimensione di u cache ùn hè micca aghjuntu à u voluminu tutale di a risorsa (piscina in questu casu), è i dati di u cache duplicate qualchì frammentu di i dati principali di i media (o duplicà si dati da a cache ùn sò micca stati scritti). Inoltre, a distribuzione di dati per livelli hè oculata da l'utilizatore. Questu hè, ùn vede micca esattamente ciò chì i dati sò situati à ogni livellu, ancu s'ellu pò influenzà questu indirettu per stabilisce e pulitiche (più nantu à elli dopu).
Avà guardemu à e caratteristiche di l'implementazione di i livelli di almacenamento in Unity. Unità hà 3 livelli, o tier:
Prestazioni estreme (SSD)
Prestazione (SAS HDD 10k/15k RPM)
Capacità (NL-SAS HDD 7200 RPM)
Sò presentati in ordine decrescente di prestazione è prezzu. A prestazione estrema include solu unità di stati solidi (SSD). L'altri dui livelli includenu unità di discu magneticu, chì sò diffirenti in a velocità di rotazione è, per quessa, u rendiment.
I media di almacenamento da u listessu livellu è a stessa dimensione sò cumminati in un array RAID, chì formanu un gruppu RAID (gruppu RAID, abbreviatu cum'è RG); Pudete leghje nantu à i livelli RAID dispunibuli è cunsigliati in a documentazione ufficiale. Piscine di almacenamiento sò furmati da gruppi RAID da unu o più livelli, da quale u spaziu liberu hè allora distribuitu. È da u spaziu di piscina hè attribuitu per i sistemi di schedari è LUN.
Perchè aghju bisognu di Tiering?
In breve è in astrattu: per ottene risultati maiò cù un minimu di risorse. Più specificamente, u risultatu hè generalmente capitu cum'è un inseme di caratteristiche di u sistema di almacenamento - rapidità è tempu d'accessu, costu di almacenamento è altri. U minimu di risorse significa u minimu spesa: soldi, energia, etc. FAST VP implementa meccanismi per a ridistribuzione di dati in diversi livelli in i sistemi di almacenamiento Unity / Unity XT. Se mi credi, allora pudete saltà u prossimu paragrafu. Per u restu, vi dicu un pocu di più.
A distribuzione curretta di dati à traversu i livelli di almacenamento permette di risparmià u costu generale di u almacenamentu sacrificendu a velocità d'accessu à alcune informazioni raramente usate, è migliurà a prestazione movendu e dati aduprati spessu in media più veloci. Quì qualchissia puderia argumentà chì ancu senza tiering, un amministratore normale sapi induve mette quale dati, quale sò e caratteristiche desiderate di un sistema di almacenamiento per u so compitu, etc. Questu hè senza dubbitu veru, ma a distribuzione manuale di dati hà i so inconvenienti:
richiede u tempu è l'attenzione di l'amministratore;
Ùn hè micca sempre pussibule di "redraw" risorse di almacenamiento per adattà à e cundizioni cambianti;
un vantaghju impurtante sparisce: accessu unificatu à e risorse situate à diversi livelli di almacenamento.
Per fà chì l'amministratori di l'almacenamiento si preoccupanu menu di a sicurità di u travagliu, aghju aghjunghje chì a pianificazione di risorse cumpetente hè necessariu ancu quì. Avà chì i travaglii di i livelli sò stati brevemente delineati, fighjemu un ochju à ciò chì pudete aspittà da FAST VP. Avà hè u tempu di vultà à a definizione. I primi dui paroli - Completamente Automatizatu - sò literalmente tradutti cum'è "completamente automatizatu" è significanu chì a distribuzione trà i livelli si faci automaticamente. Ebbè, Virtual Pool hè un pool di dati chì include risorse da diversi livelli di almacenamiento. Questu hè ciò chì pare:
Fighjendu avanti, diceraghju chì FAST VP move dati solu in una piscina, è micca trà parechje piscine.
I prublemi risolti da FAST VP
Parlemu prima in astrattu. Avemu una piscina è un pocu miccanisimu chì ponu redistribuisce dati in questa piscina. Ricurdativi chì u nostru scopu hè di ottene a produtividade massima, ci dumandemu: chì manere pudemu ghjunghje ? Ci ponu esse parechji di elli, è quì FAST VP hà qualcosa da offre à l'utilizatori, postu chì a tecnulugia hè qualcosa di più cà solu di almacenamentu. Eccu alcuni modi chì FAST VP pò aumentà u rendiment di a piscina:
Distribuzione di dati in diversi tipi di discu, livelli
Distribuzione di dati trà dischi di u listessu tipu
Distribuzione di dati quandu espansione a piscina
Prima di guardà cumu si sò risolti sti travaglii, avemu bisognu di sapè alcuni fatti necessarii nantu à cumu funziona FAST VP. FAST VP opera cù blocchi di una certa dimensione - 256 megabytes. Questu hè u più chjucu "chunk" contiguu di dati chì pò esse spustatu. In a ducumentazione questu hè ciò chì chjamanu: slice. Da u puntu di vista di FAST VP, tutti i gruppi RAID sò custituiti da un inseme di tali "pezzi". Per quessa, tutte e statistiche I / O sò accumulate per tali blocchi di dati. Perchè hè stata scelta questa dimensione di bloccu è serà ridutta? U bloccu hè abbastanza grande, ma questu hè un cumprumissu trà a granularità di e dati (una dimensione di bloccu più chjuca significa una distribuzione più precisa) è e risorse informatiche dispunibuli: datu i stretti limitazioni esistenti nantu à a RAM è un gran numaru di blocchi, i dati di statistiche ponu piglià. troppu, è u numeru di calculi cresce proporzionalmente.
Cumu FAST VP attribuisce dati à a piscina. I pulitichi
Per cuntrullà u piazzamentu di dati in una piscina cù FAST VP attivatu, esiste e seguenti pulitiche:
U più altu livellu dispunibule
Auto-Tier
Start High poi Auto-Tier (predefinitu)
U livellu più bassu dispunibule
Affettanu sia l'allocazione iniziale di bloccu (dati scritti prima) è a riallocazione successiva. Quandu i dati sò digià situati nantu à i dischi, a redistribuzione serà iniziata secondu un schedariu o manualmente.
U più altu livellu dispunibile prova di mette un novu bloccu à u livellu più altu di rendiment. Se ùn ci hè micca abbastanza spaziu nantu à questu, hè piazzatu à u prossimu livellu più produtivu, ma poi i dati ponu esse spustati à un livellu più produtivu (se ci hè spaziu o spustendu altre dati). Auto-Tier mette novi dati à diversi livelli sicondu a quantità di spaziu dispunibule, è hè ridistribuitu secondu a dumanda è u spaziu liberu. Start High allora Auto-Tier hè a pulitica predeterminata è ancu cunsigliatu. Quandu si mette inizialmente, funziona cum'è u Livellu più altu dispunibule, è dopu i dati sò spustati secondu e so statistiche d'usu. A pulitica di u livellu più bassu dispunibile cerca di mette i dati in u livellu menu produttivu.
U trasferimentu di dati si trova cù priorità bassa per ùn interferiscenu micca cù l'operazione utile di u sistema di almacenamento, in ogni modu, ci hè un paràmetru di "Tassa di trasferimentu di dati" chì cambia a priorità. Ci hè una peculiarità quì: micca tutti i blocchi di dati anu u listessu ordine di redistribuzione. Per esempiu, i blocchi marcati cum'è metadata seranu spustati prima à un livellu più veloce. Metadata hè, per dì cusì, "dati nantu à i dati", una certa infurmazione supplementaria chì ùn hè micca dati di l'utilizatori, ma guarda a so descrizzione. Per esempiu, l'infurmazioni in u sistema di fugliale nantu à quale bloccu si trova un schedariu particulari. Questu significa chì a vitezza di l'accessu à e dati dipende da a velocità di l'accessu à i metadati. Siccomu chì i metadati sò tipicamente assai più chjuchi in grandezza, i beneficii di trasfurmà à i dischi di più altu rendiment sò previsti per esse più grande.
Criteriums chì Fast VP usa in u so travagliu
U criteriu principalu per ogni blocu, assai apprussimatamente, hè a caratteristica di a "esigenza" di e dati, chì dipende da u numeru di operazioni di lettura è scrittura di un fragmentu di dati. Chjamemu sta caratteristica "Temperatura". Ci hè dumandata (calda) dati chì hè "più caldu" chè dati unclaimed. Hè calculatu periodicamente, per difettu à intervalli di una ora.
A funzione di calculu di temperatura hà e seguenti proprietà:
In assenza di I/O, i dati "si raffreddano" con il tempo.
Sottu carica più o menu uguali à u tempu, a temperatura prima aumenta è poi stabilizza in un certu intervallu.
Dopu, e pulitiche descritte sopra è u spaziu liberu à ogni livellu sò cunsiderate. Per a chjarità, daraghju una foto da a documentazione. Quì i culori rossi, gialli è blu indicanu blocchi cù temperature alte, medie è bassu, rispettivamente.
Ma tornemu à i travaglii. Allora, pudemu cumincià à analizà ciò chì hè fattu per risolve i prublemi FAST VP.
A. Distribuzione di dati à traversu diversi tipi di discu, livelli
In realtà, questu hè u compitu principale di FAST VP. U restu, in un sensu, sò derivati di questu. Sicondu a pulitica selezziunata, i dati seranu distribuiti in diversi livelli di almacenamento. Prima di tuttu, a pulitica di piazzamentu hè presa in contu, dopu a temperatura di u bloccu è a dimensione / velocità di i gruppi RAID.
Per e pulitiche di Livellu più altu / più bassu dispunibule tuttu hè abbastanza simplice. Per l'altri dui questu hè u casu. I dati sò distribuiti in diversi livelli, tenendu in contu a dimensione è a prestazione di i gruppi RAID: cusì chì u rapportu di a "temperatura" tutale di i blocchi à a "prestazione massima cundizionale" di ogni gruppu RAID hè apprussimatamente a stessa. Cusì, a carica hè distribuita più o menu uniforme. Più dati in-demand hè spustatu à i media veloci, è i dati raramente usati sò spustati in media più lenti. Idealmentu, a distribuzione deve esse simile à questu:
B. Distribuzione di dati trà dischi di u listessu tipu
Ricurdativi, à u principiu aghju scrittu chì i media di almacenamiento da unu o più i livelli sò cumminati in una sola piscina? In u casu di un unicu livellu, FAST VP hà ancu travagliu da fà. Per ottene u massimu rendiment à ogni livellu, hè cunsigliatu di distribuisce e dati in modu uniforme trà i dischi. Questu vi permetterà (in teoria) di ottene a quantità massima di IOPS. I dati in un gruppu RAID pò esse cunsideratu distribuitu uniformemente in i dischi, ma questu ùn hè micca sempre u casu trà i gruppi RAID. In l'eventu di un sbilanciamentu, FAST VP moverà e dati trà i gruppi RAID in proporzione à u so voluminu è "prestazioni cundiziunali" (in termini numerichi). Per a chjarità, mustraraghju un schema di riequilibriu trà trè gruppi RAID:
B. Distribuzione di dati quandu espansione a piscina
Stu compitu hè un casu speciale di u precedente è hè realizatu quandu un gruppu RAID hè aghjuntu à a piscina. Per assicurà chì u gruppu RAID novu aghjuntu ùn resta micca inattivu, alcuni di i dati seranu trasferiti à questu, chì significa chì a carica serà ridistribuita in tutti i gruppi RAID.
SSD Wear Leveling
Utilizendu u nivellu di usura, FAST VP pò allargà a vita di un SSD, anche se sta funzione ùn hè micca direttamente ligata à Storage Tiering. Siccomu i dati di temperatura hè digià dispunibule, u numeru di operazioni di scrittura hè ancu pigliatu in contu, è sapemu cumu si move i blocchi di dati, saria logicu per FAST VP per risolve stu prublema.
Se u numeru di entrate in un gruppu RAID supera significativamente u nùmeru di entrate in un altru, FAST VP redistribuisce e dati in cunfurmità cù u numeru di operazioni di scrittura. Per una banda, questu allevia a carica è salva a risorsa di certi dischi, da l'altra banda, aghjunghje "travagliu" per i menu carichi, aumentendu u rendiment generale.
In questu modu, FAST VP assume i sfidi tradiziunali di Storage Tiering è face un pocu più di questu. Tuttu chistu permette di almacenà e dati in modu abbastanza efficace in u sistema di almacenamiento Unity.
A picca minichichje
Ùn trascurate micca a lettura di a documentazione. Ci sò e migliori pratiche, è travaglianu abbastanza bè. Se li seguitate, allora, in regula, ùn ci sò micca prublemi serii. U restu di i cunsiglii basicamente ripeti o cumplementa.
Se avete cunfiguratu è attivatu FAST VP, hè megliu lascià attivatu. Lasciate distribuisce e dati in u so tempu attribuitu è pocu à pocu più di una volta à l'annu è avè un impattu seriu nantu à a realizazione di altre attività. In tali casi, a redistribuzione di dati pò piglià assai tempu.
Attenti quandu sceglite una finestra di trasferimentu. Ancu s'ellu hè ovvi, pruvate à sceglie un tempu cù u minimu di carica nantu à Unità è attribuisce un periudu di tempu abbastanza.
Pianu di espansione u vostru sistema di almacenamiento, fate à tempu. Questa hè una raccomandazione generale chì hè impurtante ancu per FAST VP. Se a quantità di spaziu liberu hè assai chjuca, allora u muvimentu di dati rallenta o diventa impussibile. Soprattuttu se avete trascuratu u puntu 2.
Quandu espansione una piscina cù FAST VP attivatu, ùn deve micca principià cù i dischi più lenti. Questu hè, o aghjunghje tutti i gruppi RAID pianificati in una volta, o aghjunghje i dischi più veloci prima. In questu casu, a ridistribuzione di dati à novi dischi "rapidi" aumenterà a veloce generale di a piscina. Altrimenti, principiatu cù dischi "lenti" pò purtà à una situazione assai dispiacevule. Prima, i dati saranu trasferiti à novi dischi relativamente lenti, è dopu, quandu sò aghjuntu più veloci, in a direzzione opposta. Ci sò sfumature quì ligati à e diverse pulitiche FAST VP, ma in generale, una situazione simili hè pussibule.
Sè vo circate stu pruduttu, pudete pruvà Unity gratuitamente scaricando l'apparechju virtuale Unity VSA.
À a fine di u materiale, sparte parechji ligami utili:
Mi piacerebbe scrive assai, ma capiscu chì micca tutti i dettagli seranu interessanti per u lettore. Per esempiu, pudete parlà in più detail nantu à i criteri per quale FAST VP face decisioni nantu à u trasferimentu di dati, nantu à i prucessi di analizà e statistiche I / O. Inoltre, u tema di l'interazzione cù Piscine dinamiche, è questu merita un articulu separatu. Pudete ancu fantastichi nantu à u sviluppu di sta tecnulugia. Spergu chì ùn era micca noiosa è ùn vi aghju micca stancu. Ci si vede di novu !