Osnovni elementi platforme za virtualizacijo Flash (FVP), del 2. Uporaba lastne platforme ali datotečnega sistema

Ena od tem, o kateri sem se pogovarjala s Satyamom in Murali Vilayannurjem, je bil datotečni sistem, ki se uporablja za shranjevanje podatkov o napravah flash. Ne smemo pozabiti na naslednja pomembna dejstva: Satyam je ustvaril VMFS3, Murali je bil vodilni razvijalec VMFS5. S tega vidika bi bila uporaba VMFS očitna. Vendar pa je bilo za mene veliko presenečenje dejstvo, da za flash naprave ne uporabljamo VMFS, še večje presenečenje je bilo, da datotečnega sistema sploh ne uporabljamo.

Zakaj ne VMFS?
Datotečni sistemi zagotavljajo funkcije, ki niso zahtevane in včasih celo v nasprotju z zahtevami platforme, ki obdeluje aktivne V / I v flash napravah. Eden od največjih težav pri uporabi datotečnega sistema, podobnega VMFS na napravi flash, je, da je optimiziran za SAN sisteme za shranjevanje in njihove modele za upravljanje podatkov; Satyam je napisal članek o tem za ACM med delom v VMware. Žal je zaradi tega datotečni sistem neprimerno orodje za FVP naloge.

Direktni naslovni datotečni sistemi preobremenijo bliskavice, zmanjšajo njihovo življenjsko dobo, ne obdelujejo optimalno poljubnih V / I operacij, preizkusijo njihove (pogosto zelo krhke) algoritme za zbiranje smeti za moč, njihovi objekti (datoteke in imenike) pa so manj primerni za raven virtualne naprave in kakovost upravljanja storitev, kar je izjemno pomembno za FVP naloge. Naslednji razdelek bo podrobno opisal problem upravljanja podatkov na napravi flash, vendar za zdaj kratek zaključek: če je vaša bliskovna naprava draga za vas, na njej ne postavljajte datotečnega sistema z neposredno obravnavo.

Datotečni sistemi prav tako zagotavljajo zmogljivosti, ki močno presegajo potrebe FVP. Na primer, zaklepanje diskov. VMFS ima napredni upravljalnik porazdeljenega zaklepanja, ki nadzoruje dostop različnih gostiteljev ESXi do diskov. FVP upravlja lokalne diske gostitelja in ne zahteva zaklepanja na drugih gostiteljih, zaradi česar razporejeni upravljalnik zaklepanja postane popolnoma odveč. Enako lahko rečemo o združljivosti POSIX in razdeljenih transakcijah. In tako naprej.

Operacije z nizko stopnjo bliskavice
Tukaj je primer, kako se pisanje na flash naprave bistveno razlikuje od zapisov na trdih diskih. Flash ne more prepisati obstoječih podatkov. Podatke v pomnilniku lahko zapišete samo na prazno stran. Značilnost flash pomnilnika je, da lahko snemanje poteka po straneh, brisanje pa se lahko izvede samo v blokih. Kaj je stran in kaj je blok? Flash shrani podatke v celice; celice so združene v strani (4 KB); strani so združene v bloke. Večina proizvajalcev združuje 128 strani v en blok. Če želite izbrisati stran, morate izbrisati celoten blok. Vse potrebne podatke iz drugih strani je treba shraniti drugje. Splošno znano je, da imajo bliskovne naprave omejeno število ciklov pisanja in brisanja.

Posledično ima lahko naključno pisanje V / I večji učinek, kot ste mislili. Problem je v tem, da je bila večina datotečnih sistemov razvita v 80. in 90. letih in od takrat še ni napredovala. Datotečni sistemi ne upoštevajo degradacije zmogljivosti, ki jo povzročajo napravam z bliskavico, ki uporabljajo operacije nizke ravni, namenjene za trde diske; Večina proizvajalcev bliskavic uporablja različne mehanizme, da bi upoštevala postopno degradacijo zmogljivosti. S pomočjo več shem upoštevamo te mehanizme in ugotovimo, zakaj fragmentacija vpliva na bliskovne naprave.

Upravljanje obrabe
Za enostavnost sem se odločil prikazati 9 strani v enem bloku namesto 128 strani na blok.

Začnimo s procesom obvladovanja obrabe. V tem primeru je aplikacija že ustvarila podatke in jih zabeležila na straneh A, B in C v bloku 1 (korak 1). Prihajajo novi podatki (2. korak), ki se zapiše na strani D, E in F. Aplikacija posodablja prejšnje podatke (AC) in namesto prejšnjih strani še naprej uporablja nove strani. Ti novi podatki so označeni z A-1, B-1 in C-1. Porazdelitev zapisov čim bolj enakomerno se imenuje "obvladovanje obrabe". Stare strani so zdaj označene kot potekle.

Zbiranje smeti in večkratni vstop
V tem primeru je blok A poln, kaj se zgodi, če je prostor, ki je uporabniku na voljo za snemanje, iztekel in so novi podatki prispeli?

Flash bo kopiral trenutne podatke v prazne celice. Dejanski podatki v bloku se berejo in zapišejo v drug blok. Zapuščeni podatki bodo ostali na njegovih straneh in bodo izbrisani skupaj z ostalimi stranmi z bloki. Ta proces se imenuje "zbiranje smeti".

Zbiranje smeti je v redu, vendar pa večkratni vnos, ki se pojavi med njegovim delovanjem, povzroči veliko škodo napravam z bliskavico. Če želite posneti 3 strani, mora naprava za branje prebrati 6 strani in napisati 6 strani na drug kraj, preden lahko napiše nove podatke. In ne pozabite na cikel brisanja. Recimo, da je scenarij, v katerem je disk poln, kje bomo (začasno) premaknili podatke pred snemanjem novih podatkov? V mojem diagramu sem dodal blok B za to možnost. Če želite to narediti v resnični situaciji (pri uporabi datotečnega sistema), morate dodeliti presežek prostora, ki ga rezervira bliskavica krmilnika.

Če želite to narediti v resnični situaciji (pri uporabi datotečnega sistema), morate dodeliti presežek prostora, ki ga rezervira bliskavica krmilnika

Preveč prostora
Zmogljivost bliskavice je lahko rezervirana za procese, ki jih upravlja krmilnik bliskavice. To lahko stori tako proizvajalec naprave flash kot uporabnik. Na primer, ko kupite 160 GB flash PCIe pospeševalnika, dobite 192 GB kartico. Uporabniku je na voljo 160 GB in 32 GB je dodatno rezervirano za operacije na ravni krmilnika na ravni bliskavice, kot so zbiranje smeti, popravljanje napak in vdelana programska oprema krmilnika. Ko kupite neindustrijski SSD pogon, ponavadi dobite malo rezerviranega presežnega prostora. Ko formatirate to bliskovno napravo v katerem koli datotečnem sistemu, se morate zavedati teh funkcij in po možnosti rezervirati dodaten prostor zunaj razpoložljivih zmogljivosti. Trenutno ni standardiziranih priporočil za skaliranje, zato boste morali izbirati na podlagi lastnih izkušenj. V najslabšem primeru se boste znašli z razdrobljenim diskom in SSD bo moral nenehno prenašati podatke za pisanje novih. Predstavljajte si, da se otroci igrajo z oznako, le vzorec gibanja je malo bolj zapleten.

Ponovna proučitev upravljanja podatkov na bliskovnih napravah
Inženirji podjetja PernixData so razvili novo obliko za upravljanje podatkov o flash napravah za FVP. Podrobnosti bodo razkrite v naslednjih členih, zdaj pa nekaj temeljnih točk.

Optimizirano za bliskavico
Oblika je namenjena shranjevanju začasnih I / O podatkov z najmanjšim možnim nizom metapodatkov in delo z napravo flash z največjo razpoložljivo zmogljivostjo. Pretvori naključne vnose v zaporedne, da bi izkoristili večjo zmogljivost bliskavice v zaporednem načinu zapisovanja. S tem se zmanjša število redundantnih prepisov podatkov in ciklov brisanja. In algoritem ne vsebuje podedovanih omejitev datotečnih sistemov, kot so velike velikosti blokov, imeniki, datoteke, dolge transakcije, upravitelji zaklepanja itd.

Dinamična skupna zmogljivost med navideznimi stroji
Hvala globoko integracijo Z VMkernelom lahko FVP sledi podatkovnim blokom in ugotovi, ali njihov virtualni stroj bere ali piše. Neodvisno sledenje takšnim operacijam lahko platforma prilagodi bralnike za branje in pisanje v prostoru, ki je dodeljen virtualnemu stroju. FVP lahko predpomni ali izbriše poljuben nabor podatkov navideznega stroja iz predpomnilnika. Nasprotno pa bo politika evakuacije podatkov o tradicionalnem datotečnem sistemu za napravo flash podoptimalna in bo imela za posledico večkratno pisanje, ker datotečni sistem lahko zapiše podatke samo na konec datoteke ali pa tudi izbriše bloke.

Prav tako pomeni, da vam ni treba dodeliti konfiguracije statičnega prostora predpomnilnika za vsako navidezno napravo, kot bi bilo, če bi uporabljali datotečni sistem z neposrednim naslavljanjem. To je bila odlična odločitev za nas; uporabniška izkušnja izdelka mora biti čim bolj intuitivna.

Citiram našega produktnega vodjo Bala: »Eleganca izdelka, po mojem mnenju, je, da opravlja osnovne naloge, NE zahteva novih ali nenavadnih dejanj od uporabnika.«

Kar zadeva vsakodnevno delo, je to odlično: za vsak virtualni stroj ne potrebujete predhodnega prilagajanja predpomnilnika. To pomeni, da vam ni treba vedeti in predvideti prihodnje uporabe bliskavice - FVP bo naredil vse za vas. Pomanjkanje trdne dodelitve sredstev pomeni pomanjkanje premajhne uporabe bliskavice z raztovorjenimi virtualnimi stroji in pojav redundantnih ciklov čiščenja blokov za aktivne virtualne stroje z nezadostno velikostjo predpomnilnika. To zmanjšuje problem več posnetkov in zagotavlja maksimalno zmogljivost in zanesljivost naprav flash.

Izvirni članek .

Od leta 2016 se je FVP umaknil iz prodaje.

Zakaj ne VMFS?
Kaj je stran in kaj je blok?
Recimo, da je scenarij, v katerem je disk poln, kje bomo (začasno) premaknili podatke pred snemanjem novih podatkov?