Konfiguracja MegaRAID CacheCade firmy LSI

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

MegaRAID CacheCade to technologia firmy LSI, które umożliwiają wykorzystanie dysków SSD jako dodatkowego bufora kontrolera. Lista wspieranych kontrolerów znajduje się w artykule MegaRAID CacheCade firmy LSI. Dostępne są następujące tryby pracy pamięci cache: Write-Back, Write-Through i Forced Write-Back.

Informacje odnośnie buforowania SSD znajdują się również w artykule Flashcache i w prezentacji Thomas-Krenn.AG (j. niemiecki) z targów LinuxTag 2012: Event-News: LinuxTag 2012 MySQL Monitoring/Management und SSD Caching.

Tryby pracy pamięci cache

  1. Write-Back: vide Flashcache#Przegląd trybów cache'a
  2. Write-Through: vide Flashcache#Przegląd trybów cache'a
  3. Forced Write-Back: tryb ten dotyczy głównie bufora (logicznego wolumenu) składającego się z kilku dysków SSD. Cache policy takiego wolumenu w trybie Forced Write-Back po zmianie jego statusu w "degraded" nadal pozostaje w trybie Write-Back.[1]

Trwałość pamięci cache

Dane zawarte w CacheCade Virtual Drive, niezależnie od trybu (WB, WT, FWB) (również po restarcie), nie ulegają utracie.

Procedura w przypadku błędu

Procedura w przypadku wystąpienia błędu podczas korzystania z CacheCade jest istotna przede wszystkim dla zapobiegnięcia utracie danych. W szczególności kombinacja "awarii jednego dysku SSD" (w przypadku nieredundantnego cache'a) i "trybu Write-Back" prowadzi do utraty wszystkich danych, które znajdowały się w pamięci cache i nie zostały zapisane na dysku.

Odpowiednia procedura wolumenu może zapobiec temu zagrożeniu. LSI CacheCade w przypadku awarii jednego dysku SSD zachowuje się różnie, w zależności od poziomu RAID i Write Policy:

  1. Dyski SSD nie posiadają redundancji i tryb WT to odczyt jest przeprowadzany z HDD Virtual Drive. Awaria dysku SSD nie ma wpływu na pracę aplikacji. Dane nie są buforowane.
  2. Dyski SSD posiadają redundancję i tryb WT to odczyt jest nadal przeprowadzany z CacheCade Virtual Drive.
  3. Dyski SSD nie posiadają redundancji i tryb WB to korzystanie z Virtual Drive nie jest możliwe. Awaria dysku SSD wiąże się z utratą danych.
  4. Dyski SSD posiadają redundancję i tryb WB to CacheCade przełącza tryb Virtual Drive w WT, zapobiegając w ten sposób utracie danych w przypadku awarii kolejnego dysku SSD.
  5. Dyski SSD posiadają redundancję i tryb AWB (Always Write Back) to wolumen CacheCade jest nadal wykorzystywany na pozostałych dyskach SSD w trybie WB.

Dopóki dostęp (a więc z wyłączeniem punktu 3) do dysku wirtualnego jest możliwy to awaria dysku SSD nie ma wpływu na pracę aplikacji. MegaRAID Storage Manager zgłasza awarie dysków SSD.

Komendy CacheCade

Komendy MegaCli do zarządzania wolumenami CachCade.

Następujący przykład opisuje scenariusz:

  1. założenie prostego wolumenu składającego się z jednego dysku (JBOD)
  2. założenie jednego CacheCade Device z jednym dyskiem SSD
  3. dodanie dysku SSD jako Caching Device do wolumenu

Do założenia Logical Device zawsze wymagane jest Enclosure ID (E0,E1,...):

MegaCli -CfgLdAdd -rX[E0:S0,E1:S1,...] [WT|WB] [NORA|RA]
        [Direct|Cached] [CachedBadBBU|NoCachedBadBBU]
        [-szXXX [-szYYY ...]] [-strpszM] [-Hsp[E0:S0,...]]
        [-AfterLdX] [-Force]|[FDE|CtrlBased]

Przy wyświetlaniu Physical Devices zostaje pokazane:

# ./MegaCli64 -PDList -a0
                                     
Adapter #0

Enclosure Device ID: 252
Slot Number: 0
Enclosure position: 0
Device Id: 4
[...]

Jako pierwszy krok zostaje skonfigurowany jeden dysk jako JBOD (RAID-0 z jednym dyskiem):

# ./MegaCli64 -CfgLDAdd -R0[252:0] WB RA Cached CachedBadBBU -a0
[...]

Uwaga: Korzystanie z pamięci cache z niesprawnym BBU (CachedBadBBU) nie jest zalecane.

Kontrola właśnie utworzonej konfiguracji:

# ./MegaCli64 -LDInfo -Lall -a0
Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0
Size                : 1.818 TB
Parity Size         : 0
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 1
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Is VD Cached: No
[...]

Następujące kroki odnoszą się do istniejących dysków SSD. Device "physdrv[252:2]" identyfikuje dysk SSD w kontrolerze, tóry zostaje teraz dodany jako CacheCade-Device w trybie Write-Back:

:~# MegaCli -cfgcachecadeadd -physdrv[252:2] WB -a0
:~# MegaCli -LDSetProp CachedBadBBU -L1 -a0

Logical drive jest widoczny jako CacheCade Virtual Drive:

:~# MegaCli -LDInfo -L1 -a0
Adapter 0 -- Virtual Drive Information:
CacheCade Virtual Drive: 1 (Target Id: 1)
Virtual Drive Type: CacheCade 
Name:
Size:31.5 GB
Target Id of the Associated LDs : None
Default Cache Policy: WriteThrough, ReadAdaptive, Direct, Write Cache OK if Bad BBU
Current Cache Policy: WriteThrough, ReadAdaptive, Direct, Write Cache OK if Bad BBU
[...]

CacheCade-Device jest teraz tylko założony, nie jest jednak jeszcze wykorzystywany jako cache logicznego napędu (Logical Drive). Musi zostać przyporządkowany do odpowiedniego napędu:

# ./MegaCli64 -Cachecade -assign -L0 -a0
                                     
Successfully assigned VD to Cache  
[...]

Wiersze "Is VD Cached" i "Cache Cade Type" dostarczają informacji o opcji cache'a napędu logicznego 0:

:~# MegaCli -LDInfo -L0 -a0
Adapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0
Size                : 1.818 TB
Parity Size         : 0
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 1
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Current Cache Policy: WriteBack, ReadAhead, Cached, Write Cache OK if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Is VD Cached: Yes
Cache Cade Type : Read and Write

Exit Code: 0x00

Usuwanie wolumenu CacheCade

Wolumen CacheCade może zostać usunięty komendą remove:

MegaCli -Cachecade -remove -L0 -a0

Usunięcie kompletnej konfiguracji bez konieczności usunięcia logicznych wolumenów należy:

MegaCli -cfglddel -L0 -a0
MegaCli -cfglddel -L1 -a0

Po wprowadzeniu tych komend kontroler usuwa wolumeny, ale dopiero po tym jak wszystkie dane z wolumenu CacheCade zostaną zapisane na dyskach. Jest to powodem dlaczego komenda

MegaCli -LDInfo -LALL -a0

dopiero po pewnym czasie po usunięciu wyświetla wolumeny.

Odnośniki