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.

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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).

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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.

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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.

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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:

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

Čitanje podataka kada nisu u cacheu

  1. Zahtjev od hosta stiže do kontrolera;
  2. Budući da traženi nisu u SSD cacheu, oni se čitaju s tvrdih diskova;
  3. Očitani podaci šalju se hostu. Istodobno se provjerava jesu li ti blokovi “vrući”;
  4. Ako da, tada se kopiraju u predmemoriju SSD-a za daljnju upotrebu.

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

Čitajte podatke kada su prisutni u predmemoriji

  1. Zahtjev od hosta stiže do kontrolera;
  2. Budući da se traženi podaci nalaze u SSD cacheu, oni se odande čitaju;
  3. Očitani podaci šalju se hostu.

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

Zapisivanje podataka pri korištenju predmemorije za čitanje

  1. Zahtjev za pisanje od hosta stiže do kontrolera;
  2. Podaci se zapisuju na tvrde diskove;
  3. Odgovor koji ukazuje na uspješno snimanje vraća se glavnom računalu;
  4. 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.

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

Zapisivanje podataka pri korištenju predmemorije za čitanje i pisanje

  1. Zahtjev za pisanje od hosta stiže do kontrolera;
  2. Podaci se zapisuju u predmemoriju SSD-a;
  3. Odgovor koji ukazuje na uspješno snimanje vraća se glavnom računalu;
  4. 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

SSD predmemorija

  • I/O Vrsta: Prilagodba
  • Veličina bloka predmemorije: 4 MB
  • Prag popunjavanja nakon čitanja: 1
  • Prag popunjavanja prilikom pisanja: 0

I/O uzorak

  • Alat: IOmeter V1.1.0
  • Radnici: 1
  • Izvanredan (dubina čekanja): 128
  • Specifikacije pristupa: 4KB, 100% čitanje, 100% nasumično

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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

SSD predmemorija

  • I/O Vrsta: Prilagodba
  • Veličina bloka predmemorije: 4 MB
  • Prag popunjavanja nakon čitanja: 1
  • Prag popunjavanja prilikom pisanja: 1

I/O uzorak

  • Alat: IOmeter V1.1.0
  • Radnici: 1
  • Izvanredan (dubina čekanja): 128
  • Specifikacije pristupa: 4KB, 100% pisanje, 100% nasumično

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

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.

Test 3. Emulacija baze podataka

SSD predmemorija

  • I/O Vrsta: Baza podataka
  • Veličina bloka predmemorije: 1 MB
  • Prag popunjavanja nakon čitanja: 2
  • Prag popunjavanja prilikom pisanja: 1

I/O uzorak

  • Alat: IOmeter V1.1.0
  • Radnici: 1
  • Izvanredan (dubina čekanja): 128
  • Specifikacije pristupa: 8KB, 67% čitanje, 100% nasumično

Implementacija SSD cachinga u QSAN XCubeSAN sustavu pohrane

presuda

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.

Izvor: www.habr.com

Dodajte komentar