JĂ”udluse paranemise tehnoloogiad, mis pĂ”hinevad SSD-de kasutamisel ja levinud andmesalvestusseadmetes, on juba ammu vĂ€lja mĂ”eldud. Esiteks on see SSD-de kasutamine salvestusruumina, mis on 100% efektiivne, kuid kallis. SeetĂ”ttu kasutatakse tirimist ja vahemĂ€lustamist, kus SSD-sid kasutatakse ainult kĂ”ige nĂ”udlike (âkuumadeâ) andmete jaoks. Tirimine on hea stseenideks pikaajaliseks (pĂ€evad-nĂ€dalad) kuumade andmete kasutamiseks. VahemĂ€lu aga lĂŒhiajalise (minutid-tunnid) kasutamiseks. MĂ”lemad variandid on rakendatud andmesalvestusseadmetes. . KĂ€esolevas artiklis vaatleme teise algoritmi rakendamist â .

SSD vahemÀlustamise tehnoloogia olemus seisneb selles, et SSD-d kasutatakse vahemÀluna kÔvaketaste ja kontrolleri töömÀlu vahel. SSD jÔudlus on muidugi madalam kui kontrolleri enda vahemÀlu jÔudlus, kuid see-eest on maht kordades suurem. Seega saavutame teatud kompromissi kiirus ja mahu vahel.
Viidatud SSD vahemÀlu kasutamise nÀidustused lugemiseks:
- Lugemisoperatsioonide ĂŒlekaal kirjutamisoperatsioonide ĂŒle (tavaliselt iseloomulik andmebaasidele ja veebirakendustele);
- Kitsaskohaks on kĂ”vaketaste sĂŒsteemi jĂ”udlus;
- NÔutavate andmete maht on vÀiksem kui SSD vahemÀlu maht.
SSD vahemĂ€lu kasutamise nĂ€idustused lugemiseks ja kirjutamiseks on samad pĂ”hjused, vĂ€lja arvatud operatsioonide iseloom â segatĂŒĂŒp (nĂ€iteks failiserver).
Enamik andmesalvestusseadmete tarnijaid kasutab oma toodetes SSD vahemĂ€lu ainult lugemisoperatsioonide jaoks. Oluline erinevus nende seas on vĂ”imalus kasutada vahemĂ€lu ka kirjutamiseks. SSD vahemĂ€lustamise funktsiooni aktiveerimiseks QSAN-andmesalvestusseadmetes on vaja soetada eraldi litsents (mĂŒĂŒakse elektrooniliselt).
SSD vahemĂ€lu XCubeSANis on fĂŒĂŒsiliselt teostatav eraldi SSD vahemĂ€lu basseinidena. SĂŒsteemis vĂ”ib neid olla kuni neli. Igal basseinil on loomulikult oma SSD-de kogum. Virtuaalse kĂ”vaketta omadustes mÀÀrame, kas see kasutab vahemĂ€lu basseini ja millist. VahemĂ€lu kasutamise lubamine ja keelamine mahutite jaoks on vĂ”imalik teha online-reĆŸiimis ilma sissetuleva/vĂ€ljamineva liikluse peatamiseta. Samuti saab âkuumaltâ basseini lisada vĂ”i sealt eemaldada SSD-sid. SSD vahemĂ€lu basseini loomisel tuleb valida, millises reĆŸiimis see töötab: ainult lugemine vĂ”i lugemine + kirjutamine. Sellest sĂ”ltub selle fĂŒĂŒsiline korraldus. Kuna vahemĂ€lu basseinid vĂ”ivad olla mitmed, vĂ”ivad nende funktsioonid olla erinevad (st sĂŒsteemis vĂ”ivad samal ajal olla lugemiseks ja lugemiseks + kirjutamiseks vahemĂ€lu basseini).
Kui vahemĂ€lu basseini kasutatakse ainult lugemiseks, vĂ”ib see koosneda 1-8 SSD-st. Diskid ei pea tingimata olema sama suurusega ja sama tootjaga, kuna need ĂŒhendatakse NRAID+ struktuuri. KĂ”ik SSD-d basseinis kasutatakse ĂŒhiselt. SĂŒsteem pĂŒĂŒab automaatselt jaotada sisenevad pĂ€ringud kĂ”igi SSD-de vahel maksimaalse jĂ”udluse saavutamiseks. Kui ĂŒks SSD-d ebaĂ”nnestub, ei juhtu midagi halba: vahemĂ€lu sisaldab ainult koopiat andmetest, mis on salvestatud kĂ”vakettade kogumisse. Lihtsalt kergelt vĂ€heneb saadaval oleva SSD vahemĂ€lu maht (vĂ”i muutub nulliks, kui kasutatakse algset SSD vahemĂ€lud ainult ĂŒhe ketasena).

Kui vahemĂ€lu kasutatakse lugemise + kirjutamise operatsioonide jaoks, peab basseinis olema SSD-de arv olema paaris, kuna sisu peegeldatakse paaridesse. Kasutatakse NRAID 1+ struktuuri. VahemĂ€lu dubleerimine on vajalik, kuna seal vĂ”ivad olla andmed, mis pole veel kĂ”vakettale salvestunud. Sellisel juhul tĂ€hendaks SSD ebaĂ”nnestumine vahemĂ€lu andmete kadumist. NRAID 1+ korral pĂ”hjustab SSD rike lihtsalt vahemĂ€lu ĂŒlemineku olekusse âainult lugemineâ koos salvestamata andmete edastamisega kĂ”vakettale. PĂ€rast rikke tĂ”ttu vahetatud SSD-d naaseb vahemĂ€lu oma algsesse tööreĆŸiimi. Muide, suurema turvalisuse jaoks, kui vahemĂ€lu töötab lugemise + kirjutamise reĆŸiimis, vĂ”ib sellele mÀÀrata eraldi hot spare.

SSD-vahemĂ€lu funktsiooni kasutamisel XCubeSAN-is tuleb jĂ€rgida kontrollerite mĂ€lu mahtude nĂ”udeid: mida suurem on sĂŒsteemimĂ€lu, seda suurem on saadaolev vahemĂ€lu kogus.

Erinevalt enamikest SAN-i tootjatest, kes pakuvad SSD-vahemĂ€lu seadistamiseks ainult lĂŒlitamis- ja vĂ€lja-lĂŒlitamisvĂ”imalust, pakub QSAN suuremaid vĂ”imalusi. EelkĂ”ige saab valida vahemĂ€lu tööreĆŸiimi sĂ”ltuvalt koormuse iseloomust. Saadaval on kolm eelnevalt seadistatud mustrit, mis on oma töölt kĂ”ige lĂ€hemal vastavatele teenustele: andmebaas, failisĂŒsteem, veebiteenus. Lisaks sellele saab administraator luua oma profiili, mÀÀrates vajalikud parameetrite vÀÀrtused:
- Bloki suurus (Cache Block Size) â 1/2/4 MB
- Lugemisettepanekute arv blokile, et see saaks vahemĂ€llu kopeerida (Populate-on-Read Threshold) â 1..4
- Kirjete arv blokile, et see saaks vahemĂ€llu kopeerida (Populate-on-Write Threshold) â 0..4

Profiile saab muuta "otsi", kuid loomulikult koos vahemĂ€lu sisu tĂŒhjendamise ja selle uue "soojendamisega".
SSD-vahemÀlu tööpÔhimÔtte seisukohalt saab vÀlja tuua peamised tehingud selle kasutamisel:

Andmete lugemine, kui need ei ole vahemÀlus
- KĂŒsimus hostilt saabub kontrollerisse;
- Kuna taotletavad andmed ei ole SSD-vahemÀlus, loetakse need kÔvaketastelt;
- Lugemisandmed saadetakse hostile. Samal ajal kontrollitakse, kas need plokid on "kuumad";
- Kui jah, siis kopeeritakse need SSD-vahemÀlusse edasiseks kasutamiseks.

Andmete lugemine, kui need on vahemÀlus
- KĂŒsimus hostilt saabub kontrollerisse;
- Kuna taotletavad andmed on SSD-vahemÀlus, loetakse need sealt;
- Lugemisandmed saadetakse hostile.

Andmete kirjutamine, kui kasutatakse lugemisavaemÀlu
- Kirjete pÀring hostilt saabub kontrollerisse;
- Andmed salvestatakse kÔvaketastele;
- Hostile saadetakse vastus eduka kirjutamise kohta;
- Samal ajal kontrollitakse, kas plokk on "kuum" (vÔrreldakse parameetrit Populate-on-Write Threshold). Kui jah, siis kopeeritakse see SSD-vahemÀlusse edasiseks kasutamiseks.

Andmete kirjutamine, kui kasutatakse lugemis- ja kirjutavaemÀlu
- Kirjete pÀring hostilt saabub kontrollerisse;
- Andmed salvestatakse SSD-vahemÀllu;
- Hostile saadetakse vastus eduka kirjutamise kohta;
- SSD vahemÀlu andmed taustal salvestatakse kÔvaketastele;
Kontroll kohtus
Testseade
2 serverit (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) on ĂŒhendatud kahe pordi kaudu otse Fibre Channel 16G XCubeSAN XS5224D (16GB RAM/kontroller) sĂŒsteemiga.
Kasutati 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, mis on ĂŒhendatud RAID5 (15+1) konfiguratsioonis andmemassi jaoks, ja 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb/s vahemĂ€luna.
Loodud oli 2 mahtu: ĂŒks igale serverile.
Test 1. SSD vahemĂ€lu ainult lugemisreĆŸiimis 1-8 SSD
SSD VahemÀlu
- I/O TĂŒĂŒp: Kohandamine
- VahemÀlu ploki suurus: 4MB
- Populate-on-read kĂŒnnis: 1
- Populate-on-write kĂŒnnis: 0
I/O Muster
- Tööriist: IOmeter V1.1.0
- Töötajad: 1
- Ootel (jĂ€rjekorra sĂŒgavus): 128
- JuurdepÀÀsu spetsifikatsioonid: 4KB, 100% Lugemine, 100% Juhuslik


Teoorias, mida rohkem SSD jaotises vahemÀlus, seda kÔrgem on jÔudlus. Praktikas on see ka kinnitust leidnud. Ainuke, signifitseeriv suurendamine SSD-de arvu juures vÀheste mahutite korral ei too plahvatuslikku efekti.
Test 2. SSD vahemĂ€lu lugemise + kirjutamise reĆŸiimis 2-8 SSD
SSD VahemÀlu
- I/O TĂŒĂŒp: Kohandamine
- VahemÀlu ploki suurus: 4MB
- Populate-on-read kĂŒnnis: 1
- Populate-on-write kĂŒnnis: 1
I/O Muster
- Tööriist: IOmeter V1.1.0
- Töötajad: 1
- Ootel (jĂ€rjekorra sĂŒgavus): 128
- JuurdepÀÀsu spetsifikatsioonid: 4KB, 100% Kirjutamine, 100% Juhuslik


Sama tulemus: plahvatuslik jÔudluse kasv ja skaleerimine SSDde arvu suurenemisel.
MÔlema testi korral oli tööandmete maht vÀiksem kui vahemÀlu kogumaht. SeetÔttu kopeeriti aja jooksul kÔik plokid vahemÀllu. Ja töö kÀidi juba pÔhimÔtteliselt SSD-lt, praktiliselt puudutamata kÔvakettasid. Nende testide eesmÀrk oli ilmekalt nÀidata vahemÀlu soojendamise efektiivsust ja selle jÔudluse skaleerimist sÔltuvalt SSDde arvust.
NĂŒĂŒd tuleme tagasi reaalsusesse ja kontrollime elu lĂ€hedasemat olukorda, kus andmete maht on suurem kui vahemĂ€lu suurus. Et test toimuks mĂ”istliku ajaga (vahemĂ€lu "soojendamise" aeg suureneb mahuti suuruse kasvu tĂ”ttu), piirdume 120GB mahuga.
Test 3. Andmebaasi töö simuleerimine
SSD VahemÀlu
- I/O TĂŒĂŒp: Andmebaas
- VahemÀlu ploki suurus: 1MB
- Populate-on-read kĂŒnnis: 2
- Populate-on-write kĂŒnnis: 1
I/O Muster
- Tööriist: IOmeter V1.1.0
- Töötajad: 1
- Ootel (jĂ€rjekorra sĂŒgavus): 128
- JuurdepÀÀsu spetsifikatsioonid: 8KB, 67% Lugemine, 100% Juhuslik

Otsus
Selge jĂ€reldusena, on ilmselgelt SSD vahemĂ€lu kasutamise tĂ”husus igasuguse salvestuslahenduse toimivuse parandamiseks. Seoses sellega See vĂ€ide kehtib tĂ€ielikult: SSD vahemĂ€lu funktsioon on suurepĂ€raselt rakendatud. See puudutab lugemise ja lugemise + kirjutamise reĆŸiimide toetust, paindlikku seadistamist mistahes kasutusstsenaariumide jaoks ning sĂŒsteemi lĂ”ppvĂ”imekust ĂŒldiselt. SeetĂ”ttu vĂ”ib ĂŒsna mĂ”istliku hinna (licentsi hind on vĂ”rreldav 1-2 SSD hinnaga) mĂ€rgatavalt suurendada kogu sĂŒsteemi sooritusvĂ”imet.
Allikas: habr.com
