Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Tehnologiile de îmbunătățire a performanței bazate pe utilizarea SSD-urilor și utilizate pe scară largă în sistemele de stocare au fost inventate de mult. În primul rând, este utilizarea SSD-ului ca spațiu de stocare, care este 100% eficient, dar costisitor. Prin urmare, sunt folosite tehnologii obositoare și de stocare în cache, unde SSD-urile sunt folosite doar pentru cele mai populare date („fierbinte”). Nivelul este bun pentru scenariile de utilizare pe termen lung (zile-săptămâni) a datelor „fierbinte”. Caching-ul, dimpotrivă, este pentru utilizare pe termen scurt (minute-ore). Ambele opțiuni sunt implementate în sistemul de stocare QSAN XCubeSAN. În acest articol ne vom uita la implementarea celui de-al doilea algoritm - Cache SSD.

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Esența tehnologiei de cache SSD este utilizarea SSD-urilor ca cache intermediară între hard disk-uri și memoria RAM a controlerului. Performanța SSD-ului este, desigur, mai mică decât performanța propriului cache al controlerului, dar volumul este cu un ordin de mărime mai mare. Prin urmare, obținem un anumit compromis între viteză și volum.

Indicații pentru utilizarea cache-ului SSD pentru citire:

  • Predominanța operațiunilor de citire asupra operațiunilor de scriere (cel mai adesea tipice pentru baze de date și aplicații web);
  • Prezența unui blocaj sub forma performanței matricei de hard disk;
  • Cantitatea de date necesare este mai mică decât dimensiunea cache-ului SSD.

Indicațiile pentru utilizarea unui cache SSD de citire+scriere sunt aceleași, cu excepția naturii operațiunilor – tip mixt (de exemplu, server de fișiere).

Majoritatea furnizorilor de stocare folosesc cache SSD doar pentru citire în produsele lor. Diferența fundamentală QSAN Ele oferă posibilitatea de a folosi memoria cache și pentru scriere. Pentru a activa funcționalitatea de stocare în cache SSD în sistemele de stocare QSAN, trebuie să achiziționați o licență separată (furnizată electronic).

Cache-ul SSD din XCubeSAN este implementat fizic sub formă de pool-uri separate de cache SSD. În sistem pot fi până la patru. Fiecare grup, desigur, folosește propriul set de SSD-uri. Și deja în proprietățile discului virtual determinăm dacă va folosi un pool de cache și care. Activarea și dezactivarea utilizării cache-ului pentru volume se poate face online fără a opri I/O. Puteți, de asemenea, să adăugați SSD-uri la piscină și să le eliminați de acolo. Când creați un cache de pool SSD, trebuie să alegeți în ce mod va funcționa: numai citire sau citire+scriere. Organizarea sa fizică depinde de asta. Deoarece pot exista mai multe pool-uri de cache, funcționalitatea acestora poate fi diferită (adică sistemul poate avea atât pool-uri de cache de citire, cât și de citire+scriere în același timp).

Dacă se utilizează un pool de cache numai pentru citire, acesta poate consta din 1-8 SSD-uri. Discurile nu trebuie să aibă aceeași capacitate și același furnizor, deoarece sunt combinate într-o structură NRAID+. Toate SSD-urile din pool sunt partajate. Sistemul încearcă în mod independent să paralelizeze cererile primite între toate SSD-urile pentru a obține performanță maximă. Dacă unul dintre SSD-uri eșuează, nu se va întâmpla nimic rău: la urma urmei, memoria cache conține doar o copie a datelor stocate pe matricea de hard disk. Doar că cantitatea de cache SSD disponibilă va scădea (sau va deveni zero dacă utilizați memoria cache SSD originală de pe o unitate).

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Dacă memoria cache este utilizată pentru operațiuni de citire + scriere, atunci numărul de SSD-uri din pool ar trebui să fie un multiplu de doi, deoarece conținutul este reflectat pe perechi de unități (este utilizată structura NRAID 1+). Duplicarea memoriei cache este necesară deoarece poate conține date care nu au fost încă scrise pe hard disk. Și în acest caz, defecțiunea SSD-ului din pool-ul de cache ar duce la pierderea informațiilor. În cazul NRAID 1+, o defecțiune a SSD-ului va duce pur și simplu la transferarea memoriei cache într-o stare de numai citire, datele nescrise fiind descărcate pe matricea de hard disk. După înlocuirea SSD-ului defect, memoria cache va reveni la modul de funcționare inițial. Apropo, pentru o mai mare securitate, puteți aloca componente de rezervă dedicate unui cache de citire + scriere.

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Când utilizați funcția de cache SSD în XCubeSAN, există o serie de cerințe pentru cantitatea de memorie a controlerelor de stocare: cu cât este mai multă memorie de sistem, cu atât va fi disponibil mai mare cache-ul.

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Spre deosebire de majoritatea producătorilor de sisteme de stocare, care oferă doar o opțiune de a activa/dezactiva memoria cache SSD, QSAN oferă mai multe opțiuni. În special, puteți selecta modul de funcționare cache în funcție de natura încărcării. Există trei șabloane prestabilite care sunt cel mai apropiate în funcționarea lor de serviciile corespunzătoare: bază de date, sistem de fișiere, serviciu web. În plus, administratorul își poate crea propriul profil setând valorile parametrilor necesare:

  • Dimensiunea blocului (Dimensiunea blocului cache) – 1/2/4 MB
  • Numărul de solicitări de citire a unui bloc, astfel încât acesta să fie copiat în cache (Pragul de populare la citire) – 1..4
  • Numărul de solicitări de scriere a unui bloc, astfel încât acesta să fie copiat în cache (Pragul de populare la scriere) – 0..4

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Profilurile pot fi schimbate din mers, dar, desigur, cu conținutul resetat cache-ului și noua sa „încălzire”.

Având în vedere principiul de funcționare al cache-ului SSD, putem evidenția principalele operațiuni atunci când lucrăm cu acesta:

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Citirea datelor atunci când nu sunt în cache

  1. O solicitare de la gazdă ajunge la controlor;
  2. Întrucât cele solicitate nu se află în cache-ul SSD, acestea sunt citite de pe hard disk;
  3. Datele citite sunt trimise gazdei. În același timp, se face o verificare pentru a vedea dacă aceste blocuri sunt „fierbinte”;
  4. Dacă da, atunci acestea sunt copiate în memoria cache SSD pentru utilizare ulterioară.

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Citiți datele atunci când sunt prezente în cache

  1. O solicitare de la gazdă ajunge la controlor;
  2. Deoarece datele solicitate se află în memoria cache SSD, acestea sunt citite de acolo;
  3. Datele citite sunt trimise gazdei.

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Scrierea datelor atunci când utilizați memoria cache de citire

  1. O solicitare de scriere de la gazdă ajunge la controler;
  2. Datele sunt scrise pe hard disk;
  3. Un răspuns care indică înregistrarea reușită este returnat gazdei;
  4. În același timp, se verifică dacă blocul este „fierbinte” (se compară parametrul Populate-on-Write Threshold). Dacă da, atunci este copiat în memoria cache SSD pentru o utilizare ulterioară.

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Scrierea datelor atunci când utilizați un cache de citire+scriere

  1. O solicitare de scriere de la gazdă ajunge la controler;
  2. Datele sunt scrise în memoria cache SSD;
  3. Un răspuns care indică înregistrarea reușită este returnat gazdei;
  4. Datele din memoria cache SSD sunt scrise pe hard disk-uri în fundal;

Verificați în acțiune

stand de testare

2 servere (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) sunt conectate prin două porturi prin Fibre Channel 16G direct la sistemul de stocare XCubeSAN XS5224D (16GB RAM/controller).

Am folosit 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, combinate în RAID5 (15+1), pentru matricea de date și 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SASs as cache 12Gb

Au fost create 2 volume: câte unul pentru fiecare server.

Test 1. Cache SSD doar pentru citire de la 1-8 SSD-uri

Cache SSD

  • Tip I/O: Personalizare
  • Dimensiunea blocului cache: 4MB
  • Pragul de populare la citire: 1
  • Pragul de populare la scriere: 0

Model I/O

  • Instrument: IOmeter V1.1.0
  • Muncitori: 1
  • Remarcabil (adâncime coadă): 128
  • Specificații de acces: 4KB, 100% citit, 100% aleatoriu

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

În teorie, cu cât sunt mai multe SSD-uri în memoria cache, cu atât performanța este mai mare. În practică, acest lucru a fost confirmat. Singura creștere semnificativă a numărului de SSD-uri cu un număr mic de volume nu duce la un efect exploziv.

Test 2. Cache SSD în modul citire + scriere cu 2-8 SSD-uri

Cache SSD

  • Tip I/O: Personalizare
  • Dimensiunea blocului cache: 4MB
  • Pragul de populare la citire: 1
  • Pragul de populare la scriere: 1

Model I/O

  • Instrument: IOmeter V1.1.0
  • Muncitori: 1
  • Remarcabil (adâncime coadă): 128
  • Specificații de acces: 4KB, 100% scriere, 100% aleatoriu

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

Același rezultat: creșterea explozivă a performanței și scalarea pe măsură ce numărul de SSD-uri crește.

În ambele teste, cantitatea de date de lucru a fost mai mică decât dimensiunea totală a memoriei cache. Prin urmare, în timp, toate blocurile au fost copiate în cache. Iar munca, de fapt, a fost deja realizată cu SSD-uri, practic fără a afecta hard disk-urile. Scopul acestor teste a fost acela de a demonstra clar eficacitatea încălzirii cache-ului și scalarea performanței acestuia în funcție de numărul de SSD-uri.

Acum să revenim pe pământ și să verificăm o situație mai realistă, când cantitatea de date este mai mare decât dimensiunea cache-ului. Pentru ca testul să treacă într-o perioadă rezonabilă de timp (perioada de „încălzire” a cache-ului crește foarte mult pe măsură ce dimensiunea volumului crește), vom limita dimensiunea volumului la 120 GB.

Test 3. Emularea bazei de date

Cache SSD

  • Tip I/O: bază de date
  • Dimensiunea blocului cache: 1MB
  • Pragul de populare la citire: 2
  • Pragul de populare la scriere: 1

Model I/O

  • Instrument: IOmeter V1.1.0
  • Muncitori: 1
  • Remarcabil (adâncime coadă): 128
  • Specificații de acces: 8KB, 67% citit, 100% aleatoriu

Implementarea memoriei cache SSD în sistemul de stocare QSAN XCubeSAN

verdict

Concluzia evidentă, desigur, este eficiența bună a utilizării unui cache SSD pentru a îmbunătăți performanța oricărui sistem de stocare. Aplicat QSAN XCubeSAN Această declarație se aplică pe deplin: funcția de cache SSD este implementată perfect. Aceasta se referă la suportul pentru modurile citire și citire + scriere, setări flexibile pentru orice scenariu de utilizare, precum și performanța generală a sistemului în ansamblu. Prin urmare, pentru un cost foarte rezonabil (prețul licenței este comparabil cu costul a 1-2 SSD-uri), puteți crește semnificativ performanța generală.

Sursa: www.habr.com

Adauga un comentariu