Technológie zvyšovania výkonu založené na použití SSD, ktoré sa široko uplatňujú v SÚS, boli už dávno vynájdené. Predovšetkým ide o použitie SSD ako miesta na ukladanie dát, čo je na 100 % efektívne, ale drahé. Preto sa využívajú technológie tiering a caching, kde sa SSD používajú len pre najžiadanejšie („horúce“) dáta. Tiering je vhodný pre scenáre dlhodobého (dni-týždne) používania „horúcich“ dát. Naopak, caching je pre krátkodobé (minúty-hodiny) použitie. Obe tieto možnosti sú implementované v SÚS. . V tomto článku sa pozrieme na implementáciu druhého algoritmu – .

Podstata technológie SSD caching spočíva v použití SSD ako medzistupňa medzi pevným diskom a operačnou pamäťou radiča. Výkon SSD je síce nižší ako výkon vlastného cache radiča, avšak objem je na porovnanie oveľa vyšší. Tým pádom sa získava určitý kompromis medzi rýchlosťou a objemom.
Indikácie na používanie SSD cache na čítanie:
- Prevaha operácií čítania nad operáciami zápisu (najčastejšie charakteristické pre databázy a webové aplikácie);
- Existencia úzkeho hrdla vo forme výkonu poľa pevných diskov;
- Objem žiadaných dát je menší ako objem SSD cache.
Indikácie na používanie SSD cache na čítanie a zápis sú rovnaké, s výnimkou charakteru operácií – zmiešaný typ (napríklad súborový server).
Väčšina dodávateľov SÚS využíva vo svojich produktoch SSD cache len pre operácie čítania. Podstatným rozdielom od nich je možnosť používania cache aj pre zápis. Na aktiváciu funkcie SSD caching v SÚS QSAN je potrebné zakúpenie samostatnej licencie (distribuovanej v elektronickej forme).
SSD cache in XCubeSAN is physically implemented as separate SSD cache pools. The system can have up to four of these. Each pool, of course, uses its own set of SSDs. In the properties of the virtual disk, we determine whether it will use a cache pool and which one specifically. Enable and disable cache usage for volumes can be performed online without stopping input/output operations. SSDs can also be added to or removed from the pool while hot. When creating an SSD cache pool, it's necessary to choose the mode in which it will operate: read-only or read+write. This affects its physical organization. Since there can be multiple cache pools, their functionality can differ (meaning the system can simultaneously have cache pools for reading and for reading+writing).
If the cache pool is used for read-only purposes, it can consist of 1-8 SSDs. The disks do not necessarily have to be of the same capacity or vendor, as they are integrated into an NRAID+ structure. All SSDs in the pool are used collectively. The system itself tries to parallelize incoming requests across all SSDs to achieve maximum performance. If one of the SSDs fails, it is not a disaster: the cache only contains a copy of the data stored on the hard drive array. The available SSD cache size will simply decrease (or become zero in the case of a single SSD cache).

If the cache is used for read + write operations, then the number of SSDs in the pool must be even since the content is mirrored across pairs of drives (NRAID 1+ structure is used). Cache duplication is necessary because it may contain data that has not yet been written to the hard drives. In this case, a failure of an SSD in the cache pool would lead to data loss. In the case of NRAID 1+, the failure of an SSD simply puts the cache into 'read-only' mode while flushing unwritten data to the hard drive array. After replacing the faulty SSD, the cache will return to its original operating mode. Additionally, for greater safety, a dedicated hot spare can be assigned to the cache operating in read + write mode.

Pri používaní funkcie SSD cache v XCubeSAN existuje niekoľko požiadaviek na veľkosť pamäte riadiacich jednotiek SANS: čím viac systémovej pamäte, tým väčší objem cache poolu bude k dispozícii.

Na rozdiel od väčšiny výrobcov SANS, ktorí v rámci nastavenia SSD cache ponúkajú iba možnosť zapnúť/vypnúť, QSAN poskytuje širšie možnosti. Konkrétne je možné zvoliť režim fungovania cache v závislosti od charakteru zaťaženia. Existujú tri predvoľby, ktoré sú najbližšie k príslušným službám: databáza, súborový systém, webová služba. Okrem toho môže administrátor vytvoriť svoj vlastný profil, stanoviť požadované hodnoty parametrov:
- Veľkosť bloku (Cache Block Size) – 1/2/4 MB
- Počet požiadaviek na čítanie bloku, aby bol skopírovaný do cache (Populate-on-Read Threshold) – 1..4
- Počet požiadaviek na zápis bloku, aby bol skopírovaný do cache (Populate-on-Write Threshold) – 0..4

Profily je možné meniť „za behu“, samozrejme, s vymazaním obsahu cache a jeho novým „ohrievaním“.
Pri zvažovaní princípu fungovania SSD cache možno vyvstávať hlavné operácie pri práci s ním:

Čítanie dát, keď nie sú v cache
- Žiadosť od hostiteľa prichádza do riadiacej jednotky;
- Keďže požadované údaje nie sú v SSD cache, čítajú sa z pevných diskov;
- Prečítané údaje sa odosielajú hostiteľovi. Zároveň prebieha kontrola, či sú tieto bloky „horúce“;
- Ak áno, skopírujú sa do SSD cache na ďalšie použitie.

Čítanie dát, keď sú prítomné v cache
- Žiadosť od hostiteľa prichádza do riadiacej jednotky;
- Keďže požadované údaje sú v SSD cache, čítajú sa odtiaľ;
- Prečítané údaje sa odosielajú hostiteľovi.

Zápis dát pri použití cache na čítanie
- Žiadosť na zápis od hostiteľa prichádza do riadiacej jednotky;
- Údaje sa zapisujú na pevné disky;
- Hostiteľ dostáva odpoveď o úspešnom zápise;
- Zároveň sa kontroluje, či je blok „horúci“ (porovnáva sa parameter Populate-on-Write Threshold). Ak áno, skopíruje sa do SSD cache na ďalšie použitie.

Zápis dát pri použití cache na čítanie+zápis
- Žiadosť na zápis od hostiteľa prichádza do riadiacej jednotky;
- Údaje sa zapisujú do SSD cache;
- Hostiteľ dostáva odpoveď o úspešnom zápise;
- Údaje z SSD cache sa na pozadí zapisujú na pevné disky;
Prehľad v praxi
Testovací stánok
2 servere (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) sú pripojené dvoma portami priamo cez Fibre Channel 16G k SČD XCubeSAN XS5224D (16GB RAM / kontrolér).
Používalo sa 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, skombinované do RAID5 (15+1) pre dátový array a 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb/s ako cache.
Boli vytvorené 2 objemy: po jednom pre každý server.
Test 1. SSD cache iba na čítanie s 1-8 SSD
SSD Cache
- Typ I/O: Prispôsobenie
- Veľkosť bloku cache: 4MB
- Práh pre naplnenie pri čítaní: 1
- Práh pre naplnenie pri zápise: 0
I/O vzor
- Nástroj: IOmeter V1.1.0
- Pracovníci: 1
- Neukončené (Hĺbka frontu): 128
- Špecifikácie prístupu: 4KB, 100% Čítanie, 100% Náhodné


Teoreticky, čím viac SSD je v cache poole, tým vyšší výkon. V praxi sa to aj potvrdilo. Jediný významný nárast počtu SSD pri malom počte objemov nezabezpečuje explozívny efekt.
Test 2. SSD cache v režime čítanie + zápis s 2-8 SSD
SSD Cache
- Typ I/O: Prispôsobenie
- Veľkosť bloku cache: 4MB
- Práh pre naplnenie pri čítaní: 1
- Práh pre naplnenie pri zápise: 1
I/O vzor
- Nástroj: IOmeter V1.1.0
- Pracovníci: 1
- Neukončené (Hĺbka frontu): 128
- Špecifikácie prístupu: 4KB, 100% Zápis, 100% Náhodné


Tento istý výsledok: explozívny nárast výkonu a škálovanie pri zvyšovaní počtu SSD.
V oboch testoch bol objem pracovných dát menší ako súhrnný objem cache. Preto sa časom všetky bloky skopírovali do cache. A práca už bola v podstate vykonávaná s SSD, prakticky nezasahujúc do pevných diskov. Cieľom týchto testov bolo názorne ukázať efektívnosť procesu predohriatia cache a škálovania jeho výkonu v závislosti od počtu SSD.
Teraz sa vráťme z nebies na zem a overme si reálnejšiu situáciu, keď je objem dát väčší ako veľkosť cache. Aby test prebehol v primeranom čase (doba „predohriatia“ cache sa výrazne zvyšuje pri zvyšovaní veľkosti objemu), obmedzíme sa na veľkosť objemu 120GB.
Test 3. Emulácia databázovej práce
SSD Cache
- Typ I/O: Databáza
- Veľkosť bloku cache: 1MB
- Práh pre naplnenie pri čítaní: 2
- Práh pre naplnenie pri zápise: 1
I/O vzor
- Nástroj: IOmeter V1.1.0
- Pracovníci: 1
- Neukončené (Hĺbka frontu): 128
- Špecifikácie prístupu: 8KB, 67% Čítanie, 100% Náhodné

Verdikt
Ako zrejmý záver sa ponúka dobrá efektívnosť využitia SSD cache na zvýšenie výkonu akejkoľvek SČD. V súvislosti s Toto tvrdenie platí v plnej miere: funkcia SSD caching je skvele implementovaná. Týka sa to podpory režimov čítania a čítania + zápisu, flexibilného nastavenia pre rôzne scenáre použitia a celkovej výkonnosti systému. Preto za veľmi rozumnú cenu (cena licencie sa rovná cene 1-2 SSD) môžete výrazne zvýšiť celkovú výkonnosť.
Zdroj: habr.com
