Blog (66)
Komentarze (4.8k)
Recenzje (2)
@bachusRAIDers of the lost drive

RAIDers of the lost drive

03.05.2013 19:17, aktualizacja: 04.05.2013 17:00

Większość czytelników blogów Dobrych Programów wie, co oznacza akronim RAID, albo przynajmniej ma skojarzenia, że to coś związanego z dyskami twardymi. Nie będę się rozwodzić za bardzo nad rodzajami macierzy RAID (Wikipedia podaje bardzo dobre przykłady, więc nie ma co ich tutaj przeklejać). Dla przypomnienia cytując przypomne dwa najważniejsze aspekty:

RAID (ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków) – polega na współpracy dwóch lub więcej dysków twardych w taki sposób, aby zapewnić dodatkowe możliwości, nieosiągalne przy użyciu jednego dysku jak i kilku dysków podłączonych jako oddzielne

Dla wbicia do głowy, że RAID to nie backup (RAID5, 6, 1+0 i pochodne):

RAID używa się w następujących celach: [list] [item]zwiększenie niezawodności (odporność na awarie),[/item][item]zwiększenie wydajności transmisji danych,[/item][item]powiększenie przestrzeni dostępnej jako jedna całość.[/item][/list]

Warto jeszcze dodać przypomnienie o standardowych "poziomach" RAID:

[źródło: Wikipedia]
[źródło: Wikipedia]
[przykład:  RAID5]
[przykład: RAID5]

Domyślam się także, że część czytelników nie ma dostępu do serwerów średniej i wysokiej klasy: z tego też powodu wrzucę kilka przydatnych informacji.

Dopóty dysk dane nosi, póki mu bootsector nie padnie

W 'labie' mam HP ProLiant DL380 G7 :

[HP ProLiant DL380 G7]
[HP ProLiant DL380 G7]

Dostępna jest już generacja ósma z nowym 'designem' dysków SAS, ale o tym może później. Sam sprzęt oferuje już całkiem ciekawe możliwości do nawer ciężkich zastosowań:

  • obsługa Intel® Xeon® 5600/5500,
  • do 384GB DDR3 (po 9 slotów na procesor),
  • maksimum 16 dysków.

Więcej informacji można uzyskać na stronie producenta.

Ogólnie bardzo lubię serię DL380 G7 ze względu na niską awaryjność, relatywnie dobrą cenę i dobrą współpracę z VMware i Hyper-V.

465168
[Windows taskmgr]
[Windows taskmgr]

Na twardzielu dioda gore

Najczęściej stosowanymi dyskami w serwerach są dyski SAS 2.5 cala, czyli następca SCSI :

465172

Stosuje się oczywiście także dyski 3.5‑calowe, karty rozszerzeń SSD, czy w tanich rozwiązaniach standardowe napędy SATA. W przypadku SASów ceny mogą przestraszyć: HP 146GB 10K RPM Dual Port 2.5" za kosztuje €215, 300GB 6G SAS 15K €420, oraz coraz częściej stosowane są dyski 2.5 cala 600GB (cena spadła poniżej €400), natomiast ostatnio kupowałem HP M6612 600GB 6G SAS 15Krpm (dual port) za €1650 (około 7000zł).

Jak ktoś pewnie zwróci uwagę: pojemności tych dysków mogą zdziwić, szczególnie w stosunku do ceny/MB. Nie o to do końca chodzi. Co dają dyski SAS:

  • najważniejsze, hot-swap: w przypadku awarii jednego napędu (lub więcej, zależne od konfiguracji) istnieje możliwość wymiany dysku przy włączonym serwerze w ciągu 10 sekund - wystarczy nacisnąć zaślepkę (w nowych dyskach generacji G8 przycisk) i wymienić uszkodzony dysk. Przebudowa RAID nastąpi automatycznie. W tym przypadku o tyle ważne jest mieć gwarancję na dyski, lub wykupiony 'care pack' - nawet przy standardowej gwaracji NBD (Next Business Day), zgłoszenie do HP awarii skutkuje dostarczeniem w następny dzień roboczy sprawnego dysku, lub w razie potrzeby wizytę inżyniera (on-site support),
  • szybkość działania: 15K i w przypadku RAID0 bardzo dobra wydajność,
  • całkiem wysoka niezawodność (chociaż kilka rzutów dysków Hitachi instalowanych w HP w ostatnich 2 latach padają jak muchy).

Ważne jest także, że dyski są podłączone do tzw. sprzętowego kontrolera RAID, w tym przypadku Smart Array P410i. Jego przewaga na programowami konfiguracjami 'fake RAID' głównie polega na wsparciu obliczeniowym: np. w starych macierzach HP Eva przebudowa (czyli przeliczenie sum kontrolnych) RAID5 po wymianie dysku potrafiła trwać 2 dni, lub dłużej. Najprościej: system operacyjny nie zobaczy fizycznego dysku, ale np. dwa dyski 300 GB w konfiguracji RAID0 jako 600GB. W przypadku 'fake raid' (obecnie obsługuje go większość płyt głównych w domowych komputerach) jest to tylko wskazówka dla OS, co użytkownik zamierza zrobić, nie obędzie się jednak bez odpowiednich sterowników i rozwiązań programowych.

Z próżnego i recover nie odzyska

Nowy serwer dostarczany jest najczęściej bez dysków (lub z jedną sztuką), jednym modułem modułem RAM i procesorem.

465179

Reszta gratów, czyli dodatkowa pamięć, dyski, zasilacz(-e), procesory dostarczane są w osobnych, sporych pudełach. Mistrzem w tym jest IBM, który pakuje kable zasilające w opakowaniach, których można przewieźć średniej wielkości żyrafę - ot, ekologia.

465181

Po wyciągnięciu maskownic, wypada wsadzić odpakowane wcześniej dyski na swoje docelowe miejsce:

465183
(na temat niebieskiego LEDa później)
(na temat niebieskiego LEDa później)

Gotowe, można przystąpić do konfiguracji.

Z próżnego i recover nie odzyska

Pierwsza myśl co do ustawień dysków to w czasie startu komputera i wyświetlania komunikatów POST, przejście do ustawień BIOSu płyty głównej (HP: klawisz F9), lub bezpośrednio kontrolera RAID (klawisz: F8). Konfiguracja jest oczywiście możliwa, jednak do 'dobrych praktyk' w przypadku sprzętu HP należy uruchomienie serwera z dołączonej płytki 'SmartCD':

465188

Oprogramowanie to, poza narzędziami diagnostycznymi, pomocą przy instalacji OS ('wstrzykiwanie' sterowników), posiada właśnie całkiem pomocny moduł konfiguracji RAID.

465190

W najnowszej generacji (G8) 'Intelligent Provisioning' jest wbudowany w serwer. Jest to o tyle wygodne, że nie trzeba uruchamiać go z zewnętrznych nośników - nie zawsze sprzęt wyposażony jest w napęd optyczny, czy wolne porty USB:

[Intelligent Provisioning w HP G8]
[Intelligent Provisioning w HP G8]
465193
465194

Po wybraniu odpowiedniego kontrolera RAID (może ich być w serwerze kilka), wyświetlą się fizyczne napędy dysków twardych:

465196

Wcześniej już wspomniałem o niebieskiej diodzie na jednym z dysków: zaświeca się ona po podświetleniu 'fizycznego' dysku w konfiguratorze - dzięki temu w niektórych warunkach (dziesiątki serwerów, setki dysków) łatwiej zlokalizować napęd, np. gdy należy go wskazać zdalnie serwisantowi nie znającego naszego środowiska serwerowego:

465198
465199

Gdzie dysków sześć tam dużo formatowania

Napędów fizycznie jest szcześć, każdy po 300GB. Dla fascynatów backupowania internetu i ściągania odcinków 'Game of Thrones' w HD teoretyczna pojemność rzędu 1.8TB (6x300GB) wyda się komiczna a jeszcze większe oczy zrobią, że za sprawą przykładu i  'RAIDowego marnotrastwa' zrobi się z tego 1.2TB. Przejdźmy więc do utworzenia pierwszej macierzy:

465202

Użyjemy do tego dwóch fizycznych dysków, należy je więc w konfiguratorze zaznaczyć:

465204

Druga metoda, to przypisanie 'zadań' danym dyskom:

465206
465207

Dyski są już ze sobą "powiązane", ale my chcemy na nich RAID1: czyli pojemność użyteczną zbliżoną do 300GB i w przypadku awarii jednego brak utraty danych:

465209

Domyślnie StripSize (odpowiednik znanego nam klastra, czyli jednej "porcji" danych zapisanych na dysku) jest ustawiony na 256KB. Warto się zastanowić, co dyski będą musiały "mielić" na danej macierzy - w przypadku np. SQL ustawiam na 64KB, wszystko jednak zależne od kilku czynników! Ostatnią opcją jest włączenie, lub wyłączenia akceleratora (Array Accelerator), czyli "battery-backed cache". Główną jego rolą (jak sama nazwa wskazuje) jest przyspieszenie operacji dyskowych a szczególnie zapisu za pomocą 'keszowania' porcji danych za pośrednictwem szybkiej pamięci DRAM i jest to rzeczywiście widoczne w użyciu. Dodatkowo może być też użyteczny przy migracji RAIDów (np. zapis konfiguracji - od kilku lat konfiguracja jest zapisywana na dyskach). W celu zapewnienia jednak bezpieczeństwa tych danych (DRAM to pamięć ulotna), do kontrolera powinien być podłączony akumulator, który np. w przypadku przerwy w zasilaniu podtrzyma dane:

465211

Pozostały nam 4 dyski, ale do utworzenia kolejnej macierzy (RAID5) wykorzystamy tylko 3, co da dostępną pojemność poniżej 600GB. W tym momencie wychodzi przewaga "sprzętowych" rozwiązań: przeliczanie sum konktrolnych jest wydajne i nie obciąża CPU (odsyłam do zapoznania się z różnicami między RAID1 i RAID5):

465213

Uzyskaliśmy więc sytuację, gdy w każdej macierzy może uszkodzić się jeden dysk a serwer nadal będzie działał. Pozostał nam jednak dysk: zwiększmy więc redundancję, ustawiając go jako tzw. "shared spare". W rozwiązaniach składających się z dziesiątek dysków jest całkiem prawdopodobna kolejna awaria, szczególnie że wspomagają ten proces prawa Murphy'ego. Zasada jest prosta: im więcej dysków, tym awaryjność serwera wzrasta drastycznie. "Dysk zapasowy", który do czasu awarii nudził się, jest praktycznie uśpiony: przypisałem go osobno do obu utworzonych macierzy (część zdjęć z procesu konfiguracji utraciłem po uszkodzeniu pamięci SD w moim telefonie):

465215
465216
465217

Jak to działa: uszkadza się dysk np. w macierzy pierwszej (RAID5). Z racji zasady działania, dane są nadal dostępne, jednak następny uszkodzony dysk spowoduje utratę zawartości. Rolę uszkodzonego zastępuje "spare disk" - przebudowywane są sumy kontrolne i macierz odzyskuje redundancję. W przypadku, gdy technik wymieni uszkodzony napęd "spare disk" wróci na swoje miejsce a jego rolę odzyska nowy dysk. Na tej zasadzie dysków zapasowych może być kilka*

* (w powyższym akapicie użyłem słowa "dysk" kilka razy, ale nie mam pomysłów na synonimy i jakieś Szekspirowskie opisy dysku, którym jest dyskiem...).

Nie chwal systemu przed pierwszym padem

Podsumowując przypomnę, że jest to bardzo luźny przykład: możliwości konfiguracji są dziesiątki, poszczególne dyski w macierzy wypada rozbić na 'klatki' - chociaż nie spotkałem się z uszkodzeniem jednego "cage". "Storage" jest dość złożonym zagadnieniem: odporność na awarie, fakty i mity dotyczące fragmentacji, NAS i SAN (oraz powiązane z nim iSCSI i pochodne), monitoring, różni producenci - o tym może napiszę przy najbliżej okazji...

[cx4-960: zabawka EMC]
[cx4-960: zabawka EMC]
Wybrane dla Ciebie
Komentarze (16)