Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Tehnologiile de creștere a performanței, bazate pe utilizarea SSD-urilor și utilizate pe scară largă în stocarea datelor, au fost inventate cu mult timp în urmă. În primul rând, aceasta este utilizarea SSD-urilor ca spațiu de stocare, ceea ce este 100% eficient, dar costisitor. Din acest motiv, sunt folosite tehnologiile de tiering și caching, unde SSD-urile sunt utilizate doar pentru cele mai solicitate („fierbinți”) date. Tieringul este bun pentru scenarii de utilizare pe termen lung (zile-săptămâni) ale datelor „fierbinți”. Cachingul, pe de altă parte, este destinat utilizării pe termen scurt (minute-ore). Ambele variante sunt implementate în stocarea datelor. QSAN XCubeSAN. În acest articol, vom analiza implementarea celui de-al doilea algoritm – caching SSD.

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Esenta tehnologiei de caching SSD constă în utilizarea SSD-ului ca memorie cache intermediară între hard disk-uri și memoria RAM a controlerului. Performanța SSD-ului este, desigur, mai mică decât performanța memoriei cache a controlerului, dar în schimb, capacitatea este cu un ordin mai mare. Prin urmare, obținem un anumit compromis între viteză și capacitate.

Indicațiile pentru utilizarea SSD-ului ca cache pentru citire sunt:

  • Predominanța operațiunilor de citire față de operațiunile de scriere (de obicei caracteristic pentru baze de date și aplicații web);
  • Existenta unui punct de congestie în ceea ce privește performanța array-ului de hard disk-uri;
  • Volumul datelor solicitate este mai mic decât capacitatea SSD-ului de cache.

Indicațiile pentru utilizarea SSD-ului ca cache pentru citire+scriere sunt aceleași, cu excepția tipului de operațiuni - tip mixt (de exemplu, server de fișiere).

Majoritatea furnizorilor de stocare a datelor utilizează în produsele lor SSD-uri ca cache doar pentru operațiunile de citire. Diferența principală QSAN față de aceștia este posibilitatea de a folosi cache-ul și pentru scriere. Pentru a activa funcționalitatea de caching SSD în stocarea datelor QSAN, este necesară achiziționarea unei licențe separate (furnizată în format electronic).

Cache SSD în XCubeSAN este implementat fizic sub formă de grupuri separate de SSD pentru cache. Sistemul poate avea până la patru astfel de grupuri. Fiecare grup, desigur, folosește propriul său set de SSD-uri. În proprietățile discului virtual, definim dacă va utiliza grupul de cache și care anume. Activarea și dezactivarea utilizării cache-ului pentru volume se poate face în mod online, fără a opri intrările sau ieșirile. De asemenea, SSD-uri pot fi adăugate sau eliminate din grup în mod 'hot'. La crearea grupului de cache SSD, este necesar să alegem în ce mod va funcționa: doar citire sau citire + scriere. Acest lucru afectează organizarea sa fizică. Deoarece pot exista mai multe grupuri de cache, acestea pot avea funcționalități diferite (adică sistemul poate avea simultan grupuri de cache pentru citire și pentru citire + scriere).

În cazul utilizării grupului de cache doar pentru citire, acesta poate consta din 1-8 SSD-uri. Discile nu trebuie neapărat să fie de aceeași capacitate și același furnizor, deoarece sunt unite într-o structură NRAID+. Toate SSD-urile din grup sunt utilizate împreună. Sistemul încearcă să paralelizeze cererile primite între toate SSD-urile pentru a atinge o performanță maximă. În cazul în care unul dintre SSD-uri eșuează, nu se va întâmpla nimic grav: cache-ul conține doar o copie a datelor stocate pe matricea de hard disk-uri. Pur și simplu, volumul de cache SSD disponibil se va micșora (sau va deveni zero în cazul utilizării inițiale a cache-ului SSD dintr-un singur dispozitiv).

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Dacă cache-ul este utilizat pentru operațiuni de citire + scriere, numărul de SSD-uri din grup trebuie să fie un multiplu de doi, deoarece conținutul este mirroring pe perechi de dispozitive (se folosește structura NRAID 1+). Duplicarea cache-ului este necesară deoarece poate conține date care nu s-au scris încă pe hard disk-uri. În acest caz, eșecul unui SSD din grupul de cache ar duce la pierderea informației. În cazul NRAID 1+, eșecul unui SSD va duce pur și simplu la trecerea cache-ului în starea de funcționare "doar pentru citire", cu resetarea datelor nescrise pe matricea de hard disk-uri. După înlocuirea SSD-ului defect, cache-ul va reveni la modul său inițial de funcționare. Apropo, pentru o mai mare siguranță, unui cache care funcționează pe citire + scriere i se pot aloca SSD-uri hot spare dedicate.

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

În utilizarea funcției de caching SSD în XCubeSAN, există o serie de cerințe privind volumul de memorie al controlerelor de stocare: cu cât memoria de sistem este mai mare, cu atât un volum mai mare de pool de cache va fi disponibil.

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Spre deosebire de majoritatea producătorilor de stocare, care oferă doar opțiunea de activare/dezactivare a caching-ului SSD, QSAN oferă mai multe opțiuni. În special, puteți alege modul de funcționare al cache-ului în funcție de tipul de sarcină. Există trei șabloane presetate, cele mai apropiate de serviciile corespunzătoare: baza de date, sistem de fișiere, serviciu web. În plus, administratorul poate crea propriul profil specificând valorile dorite ale parametrilor:

  • Dimensiunea blocului (Cache Block Size) – 1/2/4 MB
  • Numărul de cereri de citire a blocului, astfel încât acesta să fie copiat în cache (Populate-on-Read Threshold) – 1..4
  • Numărul de cereri de scriere a blocului, astfel încât acesta să fie copiat în cache (Populate-on-Write Threshold) – 0..4

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Profilurile pot fi schimbate "din mers", dar, desigur, cu resetarea conținutului cache-ului și reîncălzirea acestuia.

Considerând principiul de funcționare al caching-ului SSD, putem evidenția principalele operațiuni în utilizarea acestuia:

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Citirea datelor atunci când acestea nu sunt disponibile în cache

  1. Cererea de la host ajunge la controler;
  2. Deoarece datele solicitate nu sunt în cache-ul SSD, acestea sunt citite de pe hard disk-uri;
  3. Datele citite sunt trimise la host. În același timp, se verifică dacă aceste blocuri sunt "fierbinți";
  4. Dacă da, acestea sunt copiate în cache-ul SSD pentru utilizare ulterioară.

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Citirea datelor atunci când acestea sunt prezente în cache

  1. Cererea de la host ajunge la controler;
  2. Deoarece datele solicitate sunt în cache-ul SSD, acestea sunt citite de acolo;
  3. Datele citite sunt trimise la host.

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Scrierea datelor folosind cache-ul pentru citire

  1. Cererea de scriere de la host ajunge la controler;
  2. Datele sunt scrise pe hard disk-uri;
  3. Hostului i se trimite un răspuns privind scrierea de succes;
  4. În același timp, se verifică dacă blocul este "fierbinte" (se compară parametrul Populate-on-Write Threshold). Dacă da, acesta este copiat în cache-ul SSD pentru utilizare ulterioară.

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Scrierea datelor folosind cache-ul pentru citire+scriere

  1. Cererea de scriere de la host ajunge la controler;
  2. Datele sunt scrise în cache-ul SSD;
  3. Hostului i se trimite un răspuns privind scrierea de succes;
  4. Datele din cache-ul SSD sunt scrise în fundal pe hard disk-uri;

Verificare în practică

Banc de testare

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

Au fost utilizate 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, SAS 12Gb/s ca cache.

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

Test 1. Cache SSD doar pentru citire cu 1-8 SSD-uri

Cache SSD

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

Tipar I/O

  • Instrument: IOmeter V1.1.0
  • Lucrători: 1
  • Outstanding (Adâncimea cozii): 128
  • Specificații de acces: 4KB, 100% citire, 100% aleatorie

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

În teorie, cu cât sunt mai multe SSD-uri în pool-ul de cache, cu atât performanța este mai ridicată. În practică, acest lucru s-a confirmat. Singura excepție este că o creștere semnificativă a numărului de SSD-uri cu un număr mic de volume nu conduce 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 de cache: 4MB
  • Prag de populare la citire: 1
  • Prag de populare la scriere: 1

Tipar I/O

  • Instrument: IOmeter V1.1.0
  • Lucrători: 1
  • Outstanding (Adâncimea cozii): 128
  • Specificații de acces: 4KB, 100% scriere, 100% aleatorie

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Același rezultat: o creștere explozivă a performanței și scalabilitate la creșterea numărului de SSD-uri.

În ambele teste, volumul de date de lucru a fost mai mic decât volumul total al cache-ului. De aceea, în timp, toate blocurile au fost copiate în cache. Lucrul s-a desfășurat practic cu SSD-uri, fără a afecta semnificativ hard disk-urile. Scopul acestor teste a fost de a demonstra eficiența încălzirii cache-ului și scalabilitatea performanței sale în funcție de numărul de SSD-uri.

Acum să revenim cu picioarele pe pământ și să verificăm o situație mai reală, în care volumul de date este mai mare decât dimensiunea cache-ului. Pentru ca testul să dureze un timp rezonabil (timpul de „încălzire” a cache-ului crește semnificativ cu dimensierea volumului), ne vom limita la dimensiunea unui volum de 120GB.

Test 3. Emularea funcționării unei baze de date

Cache SSD

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

Tipar I/O

  • Instrument: IOmeter V1.1.0
  • Lucrători: 1
  • Outstanding (Adâncimea cozii): 128
  • Specificații de acces: 8KB, 67% citire, 100% aleatorie

Implementarea caching-ului SSD în sistemele de stocare QSAN XCubeSAN

Verdict

Ca o concluzie evidentă, se impune o eficiență bună a utilizării cache-ului SSD pentru îmbunătățirea performanței oricărui sistem de stocare. QSAN XCubeSAN Această afirmație se aplică pe deplin: funcția de caching SSD este implementată excelent. Aceasta se referă la suportul pentru modurile de citire și citire + scriere, la configurarea flexibilă a operării pentru orice scenarii de utilizare, precum și la performanța finală a sistemului în ansamblu. Prin urmare, pentru un cost foarte rezonabil (prețul licenței este comparabil cu costul a 1-2 SSD-uri), se poate îmbunătăți semnificativ performanța generală.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster