Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Ang mga teknolohiya para sa pagpapabuti ng pagganap batay sa paggamit ng mga SSD at malawakang ginagamit sa mga sistema ng imbakan ay matagal nang naimbento. Una sa lahat, ito ay ang paggamit ng SSD bilang espasyo sa imbakan, na 100% epektibo, ngunit mahal. Samakatuwid, ang mga nakakapagod at nakaka-cache na teknolohiya ay ginagamit, kung saan ang mga SSD ay ginagamit lamang para sa pinakasikat na data ("mainit"). Maganda ang pag-tier para sa mga sitwasyon ng pangmatagalang (mga araw-linggo) na paggamit ng "mainit" na data. Ang pag-cache, sa kabaligtaran, ay para sa panandaliang (minuto-oras) na paggamit. Ang parehong mga opsyon na ito ay ipinatupad sa sistema ng imbakan QSAN XCubeSAN. Sa artikulong ito titingnan natin ang pagpapatupad ng pangalawang algorithm - Pag-cache ng SSD.

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Ang kakanyahan ng teknolohiya ng SSD caching ay ang paggamit ng mga SSD bilang isang intermediate cache sa pagitan ng mga hard drive at RAM ng controller. Ang pagganap ng SSD, siyempre, ay mas mababa kaysa sa pagganap ng sariling cache ng controller, ngunit ang volume ay isang order ng magnitude na mas mataas. Samakatuwid, nakakakuha kami ng isang tiyak na kompromiso sa pagitan ng bilis at dami.

Mga indikasyon para sa paggamit ng SSD cache para sa pagbabasa:

  • Ang pamamayani ng mga read operation kaysa sa write operations (kadalasan ay tipikal para sa mga database at web application);
  • Ang pagkakaroon ng isang bottleneck sa anyo ng pagganap ng hanay ng hard drive;
  • Ang dami ng kinakailangang data ay mas mababa sa laki ng SSD cache.

Ang mga indikasyon para sa paggamit ng read+write SSD cache ay pareho, maliban sa likas na katangian ng mga operasyon – halo-halong uri (halimbawa, file server).

Karamihan sa mga vendor ng storage ay gumagamit ng read-only na SSD cache sa kanilang mga produkto. Ang pangunahing pagkakaiba QSAN Nagbibigay din sila ng kakayahang gamitin ang cache para sa pagsusulat. Para i-activate ang SSD caching functionality sa QSAN storage system, dapat kang bumili ng hiwalay na lisensya (ibinigay sa elektronikong paraan).

Ang SSD cache sa XCubeSAN ay pisikal na ipinapatupad sa anyo ng magkahiwalay na SSD cache pool. Maaaring mayroong hanggang apat sa kanila sa system. Ang bawat pool, siyempre, ay gumagamit ng sarili nitong hanay ng mga SSD. At na sa mga katangian ng virtual disk natutukoy namin kung gagamit ito ng cache pool at kung alin. Ang pagpapagana at hindi pagpapagana ng paggamit ng cache para sa mga volume ay maaaring gawin online nang hindi humihinto sa I/O. Maaari ka ring magdagdag ng mga SSD sa pool at alisin ang mga ito mula doon. Kapag gumagawa ng SSD pool cache, kailangan mong piliin kung saang mode ito gagana: read-only o read+write. Ang pisikal na organisasyon nito ay nakasalalay dito. Dahil maaaring mayroong ilang mga cache pool, maaaring magkaiba ang kanilang functionality (iyon ay, ang system ay maaaring magkaroon ng parehong read at read+write cache pool sa parehong oras).

Kung gumamit ng read-only na cache pool, maaari itong binubuo ng 1-8 SSD. Ang mga disk ay hindi kailangang may parehong kapasidad at parehong vendor, dahil pinagsama ang mga ito sa isang istraktura ng NRAID+. Nakabahagi ang lahat ng SSD sa pool. Independiyenteng sinusubukan ng system na iparallelize ang mga papasok na kahilingan sa pagitan ng lahat ng SSD para makamit ang maximum na performance. Kung nabigo ang isa sa mga SSD, walang masamang mangyayari: pagkatapos ng lahat, ang cache ay naglalaman lamang ng isang kopya ng data na nakaimbak sa hanay ng mga hard drive. Ang dami lang ng available na SSD cache ay bababa (o magiging zero kung gagamitin ang orihinal na SSD cache mula sa isang drive).

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Kung ang cache ay ginagamit para sa read + write operations, ang bilang ng mga SSD sa pool ay dapat na maramihang dalawa, dahil ang mga nilalaman ay naka-mirror sa mga pares ng mga drive (ang NRAID 1+ na istraktura ay ginagamit). Kinakailangan ang pagdoble sa cache dahil maaaring naglalaman ito ng data na hindi pa naisulat sa mga hard drive. At sa kasong ito, ang pagkabigo ng SSD mula sa cache pool ay hahantong sa pagkawala ng impormasyon. Sa kaso ng NRAID 1+, ang pagkabigo ng SSD ay hahantong lamang sa paglilipat ng cache sa isang read-only na estado, na may hindi nakasulat na data na itinapon sa hanay ng hard drive. Pagkatapos palitan ang may sira na SSD, babalik ang cache sa orihinal nitong operating mode. Sa pamamagitan ng paraan, para sa higit na seguridad, maaari kang magtalaga ng mga nakalaang hot spares sa isang read + write cache.

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Kapag ginagamit ang SSD caching function sa XCubeSAN, mayroong ilang mga kinakailangan para sa dami ng memorya ng mga controllers ng imbakan: mas maraming memorya ng system, mas malaki ang cache pool na magagamit.

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Hindi tulad ng karamihan sa mga manufacturer ng storage system, na nag-aalok lamang ng opsyon para i-on/i-off ang SSD cache, nagbibigay ang QSAN ng higit pang mga opsyon. Sa partikular, maaari mong piliin ang cache operating mode depende sa likas na katangian ng pag-load. May tatlong preset na template na pinakamalapit sa kanilang operasyon sa mga kaukulang serbisyo: database, file system, web service. Bilang karagdagan, ang administrator ay maaaring lumikha ng kanyang sariling profile sa pamamagitan ng pagtatakda ng mga kinakailangang halaga ng parameter:

  • Laki ng block (Laki ng Block ng Cache) – 1/2/4 MB
  • Bilang ng mga kahilingan na basahin ang isang bloke upang ito ay makopya sa cache (Populate-on-Read Threshold) – 1..4
  • Bilang ng mga kahilingang magsulat ng block upang ito ay makopya sa cache (Populate-on-Write Threshold) – 0..4

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Ang mga profile ay maaaring mabago sa mabilisang, ngunit, siyempre, kasama ang mga nilalaman ng pag-reset ng cache at ang bagong "warming up" nito.

Isinasaalang-alang ang prinsipyo ng pagpapatakbo ng SSD cache, maaari naming i-highlight ang mga pangunahing operasyon kapag nagtatrabaho dito:

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Nagbabasa ng data kapag wala ito sa cache

  1. Isang kahilingan mula sa host ang dumating sa controller;
  2. Dahil ang mga hiniling ay wala sa SSD cache, binabasa sila mula sa mga hard drive;
  3. Ang nabasang data ay ipinapadala sa host. Kasabay nito, ang isang pagsusuri ay ginawa upang makita kung ang mga bloke na ito ay "mainit";
  4. Kung oo, ang mga ito ay kinopya sa SSD cache para sa karagdagang paggamit.

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Basahin ang data kapag naroroon ito sa cache

  1. Isang kahilingan mula sa host ang dumating sa controller;
  2. Dahil ang hiniling na data ay nasa cache ng SSD, binabasa ito mula doon;
  3. Ang nabasang data ay ipinapadala sa host.

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Pagsusulat ng data kapag gumagamit ng read cache

  1. Isang kahilingan sa pagsulat mula sa host ang dumating sa controller;
  2. Ang data ay isinulat sa mga hard drive;
  3. Isang tugon na nagsasaad ng matagumpay na pag-record ay ibinalik sa host;
  4. Kasabay nito, sinusuri kung ang bloke ay "mainit" (ang parameter ng Populate-on-Write Threshold ay inihambing). Kung oo, ito ay kinopya sa SSD cache para magamit sa ibang pagkakataon.

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Pagsusulat ng data kapag gumagamit ng read+write cache

  1. Isang kahilingan sa pagsulat mula sa host ang dumating sa controller;
  2. Ang data ay nakasulat sa SSD cache;
  3. Isang tugon na nagsasaad ng matagumpay na pag-record ay ibinalik sa host;
  4. Ang data mula sa cache ng SSD ay isinulat sa mga hard drive sa background;

Check in action

Test stand

2 server (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) ay konektado sa pamamagitan ng dalawang port sa pamamagitan ng Fiber Channel 16G nang direkta sa XCubeSAN XS5224D storage system (16GB RAM/controller).

Gumamit kami ng 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, pinagsama sa RAID5 (15+1), para sa data array at 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12GB

2 volume ang nilikha: isa para sa bawat server.

Pagsubok 1. Read-only SSD cache mula sa 1-8 SSD

SSD Cache

  • Uri ng I/O: Pag-customize
  • Laki ng Cache Block: 4MB
  • Populate-on-read na Threshold: 1
  • Populate-on-write Threshold: 0

I/O Pattern

  • Tool: IOmeter V1.1.0
  • Manggagawa: 1
  • Natitirang (Queue Depth): 128
  • Mga Detalye ng Pag-access: 4KB, 100% Nabasa, 100% Random

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Sa teorya, mas maraming SSD sa cache pool, mas mataas ang pagganap. Sa pagsasagawa, ito ay nakumpirma. Ang tanging makabuluhang pagtaas sa bilang ng mga SSD na may maliit na bilang ng mga volume ay hindi humahantong sa isang paputok na epekto.

Subukan ang 2. SSD cache sa read + write mode na may 2-8 SSD

SSD Cache

  • Uri ng I/O: Pag-customize
  • Laki ng Cache Block: 4MB
  • Populate-on-read na Threshold: 1
  • Populate-on-write Threshold: 1

I/O Pattern

  • Tool: IOmeter V1.1.0
  • Manggagawa: 1
  • Natitirang (Queue Depth): 128
  • Mga Detalye ng Access: 4KB, 100% Sumulat, 100% Random

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Ang parehong resulta: sumasabog na paglaki ng performance at pag-scale habang tumataas ang bilang ng mga SSD.

Sa parehong mga pagsubok, ang dami ng gumaganang data ay mas mababa sa kabuuang laki ng cache. Samakatuwid, sa paglipas ng panahon, ang lahat ng mga bloke ay kinopya sa cache. At ang gawain, sa katunayan, ay natupad na sa mga SSD, halos hindi naaapektuhan ang mga hard drive. Ang layunin ng mga pagsubok na ito ay upang malinaw na ipakita ang pagiging epektibo ng pag-init ng cache at pag-scale ng pagganap nito depende sa bilang ng mga SSD.

Ngayon ay bumalik tayo sa lupa at suriin ang isang mas makatotohanang sitwasyon, kapag ang dami ng data ay mas malaki kaysa sa laki ng cache. Upang makapasa ang pagsubok sa isang makatwirang tagal ng oras (ang panahon ng "warm-up" ng cache ay tumataas nang husto habang tumataas ang laki ng volume), lilimitahan namin ang laki ng volume sa 120GB.

Pagsubok 3. Pagtulad sa database

SSD Cache

  • Uri ng I/O: Database
  • Laki ng Cache Block: 1MB
  • Populate-on-read na Threshold: 2
  • Populate-on-write Threshold: 1

I/O Pattern

  • Tool: IOmeter V1.1.0
  • Manggagawa: 1
  • Natitirang (Queue Depth): 128
  • Mga Detalye ng Pag-access: 8KB, 67% Nabasa, 100% Random

Pagpapatupad ng SSD caching sa QSAN XCubeSAN storage system

Pasya

Ang malinaw na konklusyon, siyempre, ay ang mahusay na kahusayan ng paggamit ng SSD cache upang mapabuti ang pagganap ng anumang storage system. Inilapat sa QSAN XCubeSAN Ang pahayag na ito ay ganap na naaangkop: ang SSD caching function ay ganap na ipinatupad. Ito ay may kinalaman sa suporta para sa read at read + write mode, mga flexible na setting para sa anumang senaryo ng paggamit, pati na rin ang pangkalahatang pagganap ng system sa kabuuan. Samakatuwid, para sa isang napaka-makatwirang gastos (ang presyo ng lisensya ay maihahambing sa halaga ng 1-2 SSD), maaari mong makabuluhang taasan ang pangkalahatang pagganap.

Pinagmulan: www.habr.com

Magdagdag ng komento