ProHoster > Blog > uprava > Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane
Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane
Tehnologije za poboljšanje performansi koje se temelje na upotrebi SSD-ova i naširoko se koriste u sustavima za pohranu odavno su izumljene. Prije svega, to je korištenje SSD-a kao skladišnog prostora, što je 100% učinkovito, ali skupo. Stoga se koriste tehnologije zamaranja i predmemoriranja, gdje se SSD diskovi koriste samo za najpopularnije (“vruće”) podatke. Razvrstavanje je dobro za scenarije dugotrajne (dani-tjedni) upotrebe "vrućih" podataka. Predmemoriranje je, naprotiv, za kratkoročnu (minute-sati) upotrebu. Obje ove opcije implementirane su u sustav za pohranu QSAN XCubeSAN. U ovom članku ćemo pogledati implementaciju drugog algoritma - SSD predmemorija.
Bit tehnologije SSD predmemoriranja je korištenje SSD-ova kao međumemorije između tvrdih diskova i RAM-a kontrolera. Performanse SSD-a su, naravno, niže od performansi vlastite predmemorije kontrolera, ali je volumen za red veličine veći. Dakle, dobivamo određeni kompromis između brzine i volumena.
Indikacije za korištenje SSD predmemorije za čitanje:
Prevladavanje operacija čitanja nad operacijama pisanja (najčešće tipično za baze podataka i web aplikacije);
Prisutnost uskog grla u obliku izvedbe niza tvrdog diska;
Količina potrebnih podataka manja je od veličine SSD predmemorije.
Indikacije za korištenje SSD predmemorije za čitanje i pisanje su iste, osim prirode operacija – mješoviti tip (na primjer, poslužitelj datoteka).
Većina dobavljača pohrane u svojim proizvodima koristi SSD predmemoriju samo za čitanje. Temeljna razlika QSAN Oni također pružaju mogućnost korištenja predmemorije za pisanje. Da biste aktivirali funkciju SSD predmemoriranja u QSAN sustavima za pohranu, morate kupiti zasebnu licencu (isporučuje se elektronički).
SSD predmemorija u XCubeSAN-u fizički je implementirana u obliku zasebnih skupova SSD predmemorije. U sustavu ih može biti do četiri. Svaki skup, naravno, koristi vlastiti set SSD-ova. I već u svojstvima virtualnog diska određujemo hoće li koristiti cache pool i koji. Omogućavanje i onemogućavanje upotrebe predmemorije za volumene može se obaviti online bez zaustavljanja I/O. Također možete vruće dodati SSD-ove u skup i ukloniti ih od tamo. Kada stvarate predmemoriju skupa SSD-a, morate odabrati u kojem će načinu raditi: samo za čitanje ili čitanje+pisanje. O tome ovisi njegova fizička organizacija. Budući da može postojati nekoliko skupova predmemorije, njihova funkcionalnost može biti različita (to jest, sustav može imati i skupove predmemorije za čitanje i čitanje+pisanje u isto vrijeme).
Ako se koristi skup predmemorije samo za čitanje, može se sastojati od 1-8 SSD-ova. Diskovi ne moraju biti istog kapaciteta i istog dobavljača jer su spojeni u NRAID+ strukturu. Svi SSD-ovi u skupu su zajednički. Sustav neovisno pokušava paralelizirati dolazne zahtjeve između svih SSD-ova kako bi postigao maksimalne performanse. Ako jedan od SSD-ova pokvari, neće se dogoditi ništa loše: naposljetku, predmemorija sadrži samo kopiju podataka pohranjenih na nizu tvrdih diskova. Samo će se količina dostupne SSD predmemorije smanjiti (ili postati nula ako se koristi originalna SSD predmemorija s jednog pogona).
Ako se predmemorija koristi za operacije čitanja + pisanja, tada bi broj SSD-ova u skupu trebao biti višekratnik dva, jer se sadržaj zrcali na parovima pogona (koristi se struktura NRAID 1+). Umnožavanje predmemorije je neophodno jer može sadržavati podatke koji još nisu upisani na tvrde diskove. I u ovom slučaju, kvar SSD-a iz skupa predmemorije doveo bi do gubitka informacija. U slučaju NRAID 1+, kvar SSD-a jednostavno će dovesti do toga da se predmemorija prebaci u stanje samo za čitanje, s neupisanim podacima koji se bacaju na polje tvrdog diska. Nakon zamjene neispravnog SSD-a, predmemorija će se vratiti u prvobitni način rada. Usput, za veću sigurnost možete dodijeliti namjenske vruće rezervne memorije za čitanje i pisanje predmemorije.
Kada koristite funkciju predmemoriranja SSD-a u XCubeSAN-u, postoji niz zahtjeva za količinu memorije kontrolera za pohranu: što je više sistemske memorije, to će veći skup predmemorije biti dostupan.
Za razliku od većine proizvođača sustava za pohranu podataka, koji nude samo opciju uključivanja/isključivanja SSD predmemorije, QSAN nudi više opcija. Konkretno, možete odabrati način rada predmemorije ovisno o prirodi opterećenja. Postoje tri unaprijed postavljena predloška koji su po svom radu najbliži odgovarajućim uslugama: baza podataka, datotečni sustav, web usluga. Osim toga, administrator može kreirati vlastiti profil postavljanjem potrebnih vrijednosti parametara:
Veličina bloka (Cache Block Size) – 1/2/4 MB
Broj zahtjeva za čitanje bloka tako da se kopira u predmemoriju (Prag Populate-on-Read Threshold) – 1..4
Broj zahtjeva za pisanje bloka tako da se kopira u predmemoriju (Prag Populate-on-Write Threshold) – 0..4
Profile je moguće mijenjati u hodu, ali, naravno, uz resetiranje sadržaja cachea i njegovo novo “zagrijavanje”.
S obzirom na princip rada SSD predmemorije, možemo istaknuti glavne operacije pri radu s njom:
Budući da traženi nisu u SSD cacheu, oni se čitaju s tvrdih diskova;
Očitani podaci šalju se hostu. Istodobno se provjerava jesu li ti blokovi “vrući”;
Ako da, tada se kopiraju u predmemoriju SSD-a za daljnju upotrebu.
Čitajte podatke kada su prisutni u predmemoriji
Zahtjev od hosta stiže do kontrolera;
Budući da se traženi podaci nalaze u SSD cacheu, oni se odande čitaju;
Očitani podaci šalju se hostu.
Zapisivanje podataka pri korištenju predmemorije za čitanje
Zahtjev za pisanje od hosta stiže do kontrolera;
Podaci se zapisuju na tvrde diskove;
Odgovor koji ukazuje na uspješno snimanje vraća se glavnom računalu;
Istovremeno se provjerava je li blok “vruć” (uspoređuje se parametar Populate-on-Write Threshold). Ako da, tada se kopira u predmemoriju SSD-a za kasniju upotrebu.
Zapisivanje podataka pri korištenju predmemorije za čitanje i pisanje
Zahtjev za pisanje od hosta stiže do kontrolera;
Podaci se zapisuju u predmemoriju SSD-a;
Odgovor koji ukazuje na uspješno snimanje vraća se glavnom računalu;
Podaci iz predmemorije SSD-a zapisuju se na tvrde diskove u pozadini;
Provjera na djelu
Ispitno postolje
2 poslužitelja (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) povezana su s dva porta putem Fibre Channel 16G izravno na XCubeSAN XS5224D sustav za pohranu (16GB RAM/kontroler).
Koristili smo 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, kombiniranih u RAID5 (15+1), za niz podataka i 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb/s kao cache
Stvorena su 2 sveska: po jedna za svaki poslužitelj.
Test 1. SSD predmemorija samo za čitanje od 1-8 SSD-ova
U teoriji, što je više SSD-ova u spremištu predmemorije, veća je izvedba. U praksi se to i potvrdilo. Jedino značajno povećanje broja SSD-ova s malim brojem volumena ne dovodi do eksplozivnog učinka.
Test 2. SSD predmemorija u načinu čitanja + pisanja s 2-8 SSD-ova
Isti rezultat: eksplozivan rast performansi i skaliranje kako se broj SSD-ova povećava.
U oba testa količina radnih podataka bila je manja od ukupne veličine predmemorije. Stoga su s vremenom svi blokovi kopirani u predmemoriju. I posao je, zapravo, već obavljen sa SSD-ovima, praktički bez utjecaja na tvrde diskove. Svrha ovih testova bila je jasno pokazati učinkovitost zagrijavanja predmemorije i skaliranja njezine izvedbe ovisno o broju SSD-ova.
Sada se vratimo na zemlju i provjerimo realniju situaciju, kada je količina podataka veća od veličine predmemorije. Kako bi test prošao u razumnom vremenu (razdoblje "zagrijavanja" predmemorije uvelike se povećava kako se veličina volumena povećava), ograničit ćemo veličinu volumena na 120 GB.
Očigledan zaključak je, naravno, dobra učinkovitost korištenja SSD predmemorije za poboljšanje performansi bilo kojeg sustava za pohranu. Primijenjeno na QSAN XCubeSAN Ova izjava vrijedi u potpunosti: funkcija predmemoriranja SSD-a implementirana je savršeno. To se odnosi na podršku za načine čitanja i čitanja + pisanja, fleksibilne postavke za bilo koji scenarij upotrebe, kao i ukupne performanse sustava u cjelini. Stoga, za vrlo razumnu cijenu (cijena licence je usporediva s cijenom 1-2 SSD-a), možete značajno povećati ukupnu izvedbu.