Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Technologien foar it ferbetterjen fan prestaasjes basearre op it gebrûk fan SSD's en in protte brûkt yn opslachsystemen binne al lang útfûn. Alderearst is it it brûken fan SSD as opslachromte, dat is 100% effektyf, mar djoer. Dêrom wurde wurch- en cachingtechnologyen brûkt, wêrby't SSD's allinich brûkt wurde foar de populêrste ("hot") gegevens. Tiering is goed foar senario's fan lange termyn (dagen-wiken) gebrûk fan "hot" gegevens. Caching, krekt oarsom, is foar koarte termyn (minuten-oeren) gebrûk. Beide fan dizze opsjes wurde ymplementearre yn it opslachsysteem QSAN XCubeSAN. Yn dit artikel sille wy sjen nei de ymplemintaasje fan it twadde algoritme - SSD caching.

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

De essinsje fan SSD-cachingtechnology is it gebrûk fan SSD's as in tuskenlizzende cache tusken hurde skiven en de RAM fan 'e controller. De prestaasjes fan 'e SSD binne fansels leger as de prestaasjes fan' e eigen cache fan 'e controller, mar it folume is in folume fan grutter. Dêrom krije wy in bepaald kompromis tusken snelheid en folume.

Yndikaasjes foar it brûken fan SSD-cache foar lêzen:

  • It oerwicht fan lêsoperaasjes boppe skriuwoperaasjes (meast typysk foar databases en webapplikaasjes);
  • De oanwêzigens fan in flessehals yn 'e foarm fan prestaasjes fan' e hurde skiif array;
  • De hoemannichte fereaske gegevens is minder dan de grutte fan 'e SSD-cache.

De oanwizings foar it brûken fan in lêzen + skriuwe SSD-cache binne itselde, útsein foar de aard fan 'e operaasjes - mingd type (bygelyks triemtsjinner).

De measte opslachleveransiers brûke allinich SSD-cache yn har produkten. It fûnemintele ferskil QSAN Se jouwe de mooglikheid om de cache ek te brûken foar skriuwen. Om de SSD-caching-funksjonaliteit te aktivearjen yn QSAN-opslachsystemen, moatte jo in aparte lisinsje keapje (elektroanysk levere).

De SSD-cache yn XCubeSAN wurdt fysyk ymplementearre yn 'e foarm fan aparte SSD-cache-pools. D'r kinne oant fjouwer fan har yn it systeem wêze. Elk swimbad brûkt fansels syn eigen set SSD's. En al yn 'e eigenskippen fan' e firtuele skiif bepale wy oft it in cache-pool sil brûke en hokker. It yn- en útskeakeljen fan cache-gebrûk foar folumes kin online dien wurde sûnder I/O te stopjen. Jo kinne ek hot tafoegje SSDs oan it swimbad en fuortsmite se dêrwei. By it oanmeitsjen fan in SSD-poolcache, moatte jo kieze yn hokker modus it sil wurkje: allinich lêze of lêze + skriuwe. De fysike organisaasje hinget hjirfan ôf. Om't d'r ferskate cache-pools kinne wêze, kin har funksjonaliteit ferskillend wêze (dat is, it systeem kin sawol lêzen as lêzen + skriuwe-cache-pools tagelyk hawwe).

As in read-allinnich cache pool wurdt brûkt, it kin bestean út 1-8 SSDs. Disken hoege net fan deselde kapasiteit en deselde ferkeaper te wêzen, om't se wurde kombineare yn in NRAID + struktuer. Alle SSD's yn it swimbad wurde dield. It systeem selsstannich besiket ynkommende oanfragen te parallelisearjen tusken alle SSD's om maksimale prestaasjes te berikken. As ien fan 'e SSD's mislearret, sil neat slims barre: de cache befettet ommers mar in kopy fan' e gegevens opslein op 'e array fan hurde skiven. It is gewoan dat it bedrach fan beskikbere SSD-cache sil ôfnimme (of nul wurde as jo de orizjinele SSD-cache brûke fan ien stasjon).

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

As de cache wurdt brûkt foar lês- en skriuwoperaasjes, dan moat it oantal SSD's yn it swimbad in mearfâld fan twa wêze, om't de ynhâld wurdt spegele op pearen fan skiven (de NRAID 1+-struktuer wurdt brûkt). It duplikearjen fan de cache is nedich, om't it gegevens kin befetsje dy't noch net skreaun binne nei de hurde skiven. En yn dit gefal soe it mislearjen fan 'e SSD fan' e cachepool liede ta ferlies fan ynformaasje. Yn it gefal fan NRAID 1+ sil in mislearring fan 'e SSD gewoan liede ta it cache dat wurdt oerbrocht nei in lês-allinnich steat, mei ûnskreaune gegevens dy't op 'e hurde skiif array wurde dumpt. Nei it ferfangen fan de defekte SSD sil de cache weromgean nei syn oarspronklike bestjoeringsmodus. Troch de wei, foar gruttere feiligens, kinne jo tawize tawijd hot spares oan in lêzen + skriuwe cache.

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

By it brûken fan de SSD-caching-funksje yn XCubeSAN binne d'r in oantal easken foar de hoemannichte ûnthâld fan opslachkontrôles: hoe mear systeemûnthâld, hoe grutter de cachepool sil beskikber wêze.

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Oars as de measte fabrikanten fan opslachsysteem, dy't allinich in opsje biede om de SSD-cache yn / út te skeakeljen, biedt QSAN mear opsjes. Benammen kinne jo de cache-operaasjemodus selektearje ôfhinklik fan 'e aard fan' e lading. D'r binne trije ynstelde sjabloanen dy't yn har wurking it tichtst binne by de oerienkommende tsjinsten: databank, bestânsysteem, webtsjinst. Derneist kin de behearder syn eigen profyl oanmeitsje troch de fereaske parameterwearden yn te stellen:

  • Block grutte (Cache Block Grutte) - 1/2/4 MB
  • Oantal fersiken om in blok te lêzen sadat it wurdt kopiearre nei de cache (Populate-on-Read Threshold) - 1..4
  • Oantal fersiken om in blok te skriuwen sadat it wurdt kopiearre nei de cache (Populate-on-Write Threshold) - 0..4

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Profilen kinne wurde feroare op 'e fly, mar, fansels, mei de ynhâld fan' e cache reset en syn nije "warming up".

Sjoen it prinsipe fan wurking fan 'e SSD-cache, kinne wy ​​​​de wichtichste operaasjes markearje by it wurkjen mei it:

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Gegevens lêze as it net yn 'e cache is

  1. In fersyk fan de host komt by de controller;
  2. Sûnt de oanfrege binne net yn 'e SSD-cache, wurde se lêzen fan' e hurde skiven;
  3. De lêzen gegevens wurdt stjoerd nei de host. Tagelyk wurdt in kontrôle makke om te sjen oft dizze blokken "hot" binne;
  4. As ja, dan wurde se kopiearre nei de SSD-cache foar fierder gebrûk.

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Lês gegevens as it oanwêzich is yn 'e cache

  1. In fersyk fan de host komt by de controller;
  2. Sûnt de frege gegevens binne yn 'e SSD-cache, wurdt it dêrwei lêzen;
  3. De lêzen gegevens wurdt stjoerd nei de host.

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Gegevens skriuwe by it brûken fan lêscache

  1. In skriuwfersyk fan de host komt by de controller;
  2. Gegevens wurde skreaun nei hurde skiven;
  3. In antwurd oer suksesfolle opname wurdt weromjûn oan de host;
  4. Tagelyk wurdt kontrolearre oft it blok "hot" is (de parameter Populate-on-Write Threshold wurdt fergelike). As ja, dan wurdt it kopiearre nei de SSD-cache foar letter gebrûk.

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Gegevens skriuwe by it brûken fan in lês+skriuwcache

  1. In skriuwfersyk fan de host komt by de controller;
  2. Gegevens wurde skreaun nei de SSD-cache;
  3. In antwurd oer suksesfolle opname wurdt weromjûn oan de host;
  4. Gegevens fan it SSD-cache wurde skreaun nei hurde skiven op 'e eftergrûn;

Kontrolearje yn aksje

test stand

2 tsjinners (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) wurde ferbûn troch twa havens fia Fibre Channel 16G direkt nei de XCubeSAN XS5224D opslach systeem (16GB RAM / controller).

Wy brûkten 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, kombinearre yn RAID5 (15+1), foar de gegevensarray en 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS as ca.

2 folumes waarden makke: ien foar elke tsjinner.

Test 1. Allinnich lêzen SSD-cache fan 1-8 SSDs

SSD Cache

  • I / O Type: Oanpassing
  • Cache Block Grutte: 4MB
  • Populate-on-read drompel: 1
  • Populate-on-write drompel: 0

I/O Pattern

  • Tool: IOmeter V1.1.0
  • wurknimmers: 1
  • Útsûnderlik (wachtrige djipte): 128
  • Tagong Spesifikaasjes: 4KB, 100% Lês, 100% Random

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Yn teory, hoe mear SSD's yn 'e cache-pool, hoe heger de prestaasjes. Yn de praktyk is dit befêstige. De ienige signifikante ferheging fan it oantal SSD's mei in lyts oantal folumes liedt net ta in eksplosyf effekt.

Test 2. SSD-cache yn lêzen + skriuwe modus mei 2-8 SSDs

SSD Cache

  • I / O Type: Oanpassing
  • Cache Block Grutte: 4MB
  • Populate-on-read drompel: 1
  • Populate-on-write drompel: 1

I/O Pattern

  • Tool: IOmeter V1.1.0
  • wurknimmers: 1
  • Útsûnderlik (wachtrige djipte): 128
  • Tagong Spesifikaasjes: 4KB, 100% Write, 100% Random

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Itselde resultaat: eksplosive prestaasjes groei en skaalfergrutting as it oantal SSD's tanimt.

Yn beide tests wie de hoemannichte wurkgegevens minder dan de totale cachegrutte. Dêrom, yn 'e rin fan' e tiid, alle blokken waarden kopiearre nei de cache. En it wurk waard feitlik al útfierd mei SSD's, praktysk sûnder hurde skiven te beynfloedzjen. It doel fan dizze tests wie om de effektiviteit fan it opwarmjen fan 'e cache dúdlik te demonstrearjen en de prestaasjes te skaaljen ôfhinklik fan it oantal SSD's.

Litte wy no werom nei ierde komme en in mear realistyske situaasje kontrolearje, as de hoemannichte gegevens grutter is dan de cachegrutte. Om de test yn in ridlike tiid troch te gean (de cache "opwaarming" perioade nimt sterk ta as de folumegrutte ferheget), sille wy de folumegrutte beheine ta 120GB.

Test 3. Databank emulaasje

SSD Cache

  • I/O Type: Databank
  • Cache Block Grutte: 1MB
  • Populate-on-read drompel: 2
  • Populate-on-write drompel: 1

I/O Pattern

  • Tool: IOmeter V1.1.0
  • wurknimmers: 1
  • Útsûnderlik (wachtrige djipte): 128
  • Tagong Spesifikaasjes: 8KB, 67% Lês, 100% Random

Implementaasje fan SSD-caching yn QSAN XCubeSAN opslachsysteem

Verdict

De fanselssprekkende konklúzje is fansels de goede effisjinsje fan it brûken fan in SSD-cache om de prestaasjes fan elk opslachsysteem te ferbetterjen. Oanfrege op QSAN XCubeSAN Dizze útspraak jildt folslein: de SSD-cachingfunksje is perfekt ymplementearre. Dit giet om stipe foar lês- en lês- + skriuwmodi, fleksibele ynstellingen foar elk gebrûkssenario, lykas de algemiene prestaasjes fan it systeem as gehiel. Dêrom, foar in heul ridlike kosten (de lisinsjepriis is te fergelykjen mei de kosten fan 1-2 SSD's), kinne jo de totale prestaasjes signifikant ferheegje.

Boarne: www.habr.com

Add a comment