HDD

Typy macierzy RAID

przeczytasz w 5 min.

Wymieniliśmy już podstawowe możliwości "programowego" podniesienia wydajności pojedynczych lub wielu niezależnych dysków twardych. Przejdźmy więc do omówienia macierzy RAID.

Wszystko zaczęło się w 1987 roku, kiedy Panowie Patterson, Gibson i Katz z Uniwersytetu Kalifornii w Barkley opublikowali dokument o nazwie: "A Case for Redundant Arrays of Inexpensive Dinks (RAID)" Dokument opisywał różne rodzaje (poziomy) macierzy RAID, z których większość jest używana do teraz, zaś niektóre, ze względów czysto technicznych wyszły z użycia.

Tryb Liniowy

Służy do połączenia wielu mniejszych dysków, w jeden większy logiczny. Pojemności dysków są po prostu dodawane do siebie. Pojemność poszczególnych dysków może być całkowicie dowolna. Ze względu na swoja specyfikę, nie zapewnia nadmiarowości ani wzrostu wydajności. Awaria jednego z urządzeń powoduje utratę danych z całej macierzy. Nie ma wymagań co do ilości dysków łączonych ze sobą. Ze względu na prostotę implementacji może być obsługiwany programowo. Pojemność macierzy można wyznaczyć dodając do siebie pojemność wszystkich dysków

Zalety

  • Brak nadmiarowości
  • Zwiększone ryzyko utraty danych
  • Prosta implementacja

RAID 0, striping

Pierwszy z poziomów RAID, chociaż z technicznego punktu widzenia nie zasługuje na tą nazwę, bowiem nie zapewnia nadmiarowości. Bardzo podobny do trybu liniowego. Z tym, ze dane są czytane i zapisywane jednocześnie na wszystkich dyskach połączonych w macierz. Główną zaletą tego poziomu jest wzrost wydajności liniowego odczytu/zapisu danych. Wadą natomiast zwiększone ryzyko utraty danych. Awaria jednego HDD z macierzy powoduje utratę wszystkich danych na niej zapisanych. W odróżnieniu od trybu liniowego, pojemność dysków łączonych w macierz powinna być jednakowa. W tym przypadku pojemność macierzy można wyznaczyć ze wzoru: Pojemność HDD * Ilość HDD.

Jeśli jednak w macierzy zastosowano dyski o różnej pojemności: Pojemność najmniejszego HDD * Ilość HDD.
Dla przykładu, łącząc w RAID-0 trzy dyski twarde o pojemności 100GB, otrzymamy macierz o pojemności 300GB. Jeśli w ten sam sposób połączymy dyski 80, 100 i 120 GB otrzymamy macierz o pojemności 240GB.

Zalecane aplikacje: Wszelkie wymagające dużych prędkości liniowego zapisu/odczytu danych. Np. edycja Video.

Zalety

  • Brak nadmiarowości
  • Zwiększone ryzyko utraty danych
  • Prosta implementacja
  • Wzrost wydajności liniowego odczytu/zapisu danych


RAID 1, mirroring

Pierwszy poziom zasługujący w pełni na określenie RAID. Zapewnia pełna nadmiarowość składowanych danych. Wymaga parzystej liczby dysków twardych w macierzy. Minimalna liczba urządzeń to dwie sztuki. Dane zapisywane za równocześnie na przynajmniej dwóch dyskach, które posiadają lustrzane odbicie przechowywanych na sobie danych. Największy narzut wymagany do pełnej redundancji - 100%.

Dla przykładu, macierz stworzona z dwóch dysków twardych 100GB będzie miała efektywną pojemność 100GB.
Bez utraty danych wytrzymuje awarie 50% dysków z macierzy, ale tylko w przypadku, gdy awarii ulegają pojedyncze dyski z kolejnych par. W przypadku gdy uszkodzona zostanie jedna cała para, wszystkie dane z macierzy ulegają utracie. RAID 1 nie wymaga odbudowy danych po awarii dysku, a co się z tym wiąże nie posiada zdegradowanego trybu pracy. O ile kontroler potrafi zapisywać dane jednocześnie na dwóch napędach, wydajność zapisu do macierzy jest porównywalna z pojedynczym dyskiem. Wydajność odczytu podobnie jak w RAID-0 zależna od ilości dysków w macierzy.

Zalety

  • Największy narzut wymagany do nadmiarowości, 100%
  • Konieczność przyłączania dysków parami.
  • Prosta implementacja
  • Pełna nadmiarowość
  • Brak konieczności odbudowy danych, po awarii napędu

RAID-2

Tryb opracowany na potrzeby dysków, które nie potrafiły same sprawdzać poprawności odczytywanych danych. Jako jedyny z oryginalnej specyfikacji, który wyszedł całkowicie z użycia. Podczas zapisu na podstawie prostych operacji matematycznych obliczane są kody ECC, które są następnie przechowywane na dedykowanych dyskach. Podczas operacji odczytu, dane są sprawdzane pod kątem poprawności kodów ECC. Błędy 1-bitowe są automatycznie korygowane, błędy 2-bitowe są sygnalizowane. Ilość napędów i pojemność macierzy zależy od implementacji i nie może być prosto wyznaczona. Im więcej napędów z danymi w macierzy, tym mniejszy narzut na nadmiarowość.

Dla przykładu, dla 10 dysków z danymi, wymagane są 4 dyski na kody ECC. Dla 32 dysków z danymi, wymagane jest 7 dysków kodami ECC.

Stosunkowo prosta konstrukcja kontrolera, niemniej nie istnieją żadne implementacje programowe. Wytrzymuje awarie jednego dowolnego dysku z macierzy. Ze względu na prostotę formuły obliczającej kody ECC tryb zdegradowany ma bardzo wysoką wydajność. Główną wadą jest nadmierne obciążenie napędów przechowujących kody nadmiarowe.

Na dzień dzisiejszy nie istnieją komercyjne implementacje tego standardu.

Zalety

  • W obecnych czasach praktycznie nieprzydatny.
  • Brak implementacji programowych.
  • Stosunkowo duży narzut na nadmiarowość
  • Przeciążenie napędów odpowiedzialnych za przechowywanie kodów nadmiarowych
  • Prosta konstrukcja kontrolera, w porównaniu do poziomów 3,4,5
  • Wysoka wydajność trybu zdegradowanego
  • Korekta pojedynczych błędów w locie.

RAID-3

Rozwinięcie poziomu 0 z uwzględnieniem dedykowanego dysku na potrzeby danych nadmiarowych. Dane dzielone są na paski dynamicznie na poziomie bajtów, nie można więc ustalić określonej minimalnej wielkości paczki danych. Każda operacja I/O na macierzy wiąże się również z dostępem do dysku z danymi nadmiarowymi, przez co ten ostatni często staje się wąskim gardłem macierzy. Minimalna liczba napędów w macierzy to trzy sztuki. Pojemność macierzy można wyznaczyć ze wzoru: Pojemność HDD * (Ilość HDD -1)

Podobnie jak w innych poziomach, dyski powinny być tej samej pojemności, w przeciwnym wypadku większe są automatycznie logicznie redukowane do pojemności najmniejszego napędu.

Jest to pierwszy poziom RAID, którego implementacja programowa jest bardzo skomplikowana, a gotowe rozwiązania programowe ze względu na skale obliczeń są bardzo wolne. Macierz wytrzymuje awarie jednego dowolnego dysku, również tego który przechowuje dane nadmiarowe. Po awarii działa w trybie zdegradowanym i musi zostać odbudowana aby uzyskać ponownie pełna wydajność. Jeśli podczas pracy w trybie zdegradowanym, bądź w trakcie odbudowy zawiedzie kolejny napęd, następuje utrata danych z całej macierzy. RAID-3 ma jednak dość poważna wadę. Do pracy wymaga synchronizacji osi napędów dyskowych. Dziś co prawda to nie jest już problem ponieważ nawet tanie dyski IDE potrafią tego dokonać, ale w momencie wypuszczenia specyfikacji była to bardzo istotna wada.

Zalety

  • Skomplikowany obliczeniowo, przez co trudny w programowej implementacji
  • Rozwiązanie programowe maja bardzo ograniczona wydajność
  • Przeciążenie dysku z danymi nadmiarowymi
  • Wolne działanie w trybie zdegradowanym, nawet na specjalizowanych kontrolerach.
  • Mały narzut na nadmiarowość. Tym mniejszy im większa jest liczba napędów macierzy.
  • Wysoka wydajność rozwiązań sprzętowych, szczególnie odczytu

RAID-4

Jest de-facto tylko nieznaczna modyfikacja poziomu trzeciego. Główną zmiana jest zwiększenie rozmiaru pasków na które dzielone są dane do przynajmniej 32kB. Często jednak przyjmuje się, że rozmiar paska ma wielkość dokładnie taka, jak pojedynczy blok danych na dysku. Posiada wszystkie wady i zalety RAID-3, ale w niektórych zastosowaniach jest nieco wydajniejszy. Często zdarza się, iż producenci implementując ten poziom w swoich kontrolerach nazywają go RAID-3 co nie jest jakąś specjalna wada, ale drobna niezgodnością ze specyfikacja.

RAID-5

Ewolucyjny starszy brat RAID-3 i RAID-4. Poziom w którym zlikwidowano główną wadę poprzednich dwóch poziomów. W tym przypadku dane nadmiarowe są rozproszone na wszystkich dyskach z danymi, nie ma więc wąskiego gardła w postaci pojedynczego dysku. Macierz wytrzymuje awarię jednego dowolnego dysku, po której działa w trybie zdegradowanym i wymaga odbudowy. Jeśli w tym stanie nastąpi awaria kolejnego dysku, następuje utrata danych z całej macierzy. W stosunku do poprzedników zastosowano jeszcze bardziej skomplikowane obliczeniowo algorytmy, które są dobierane odpowiednio w zależności od tego ile danych jest zapisywanych/modyfikowanych. Dzięki takiemu zróżnicowaniu strategii zapisu macierz RAID-5 może pracować optymalnie przy różnych scenariuszach dostępu do dysku. Jednak operacje zapisu przebiegają tu i tak wolniej niż w RAID-0, a przy wielu drobnych operacjach zapisu mogą spaść nawet do poziomu 25 % wydajności pojedynczego dysku.

Natomiast przy zapisie dużych bloków danych RAID-5 pracuje szybciej niż RAID-1. Rozwiązania programowe nawet na obecnych komputerach są bardzo wolne i nie pozwalają na osiągniecie w skrajnie dobrych warunkach przy zapisie wydajności większej jak około 20-25MB/s. Podczas odczytu w sprzyjających wypadkach zachowuje się podobnie jak RAID-0. Minimalna liczba napędów w macierzy to trzy sztuki. Wszystkie dyski powinny być tej samej wielkości, w przeciwnym wypadku większe zostaną zredukowane logicznie do pojemności najmniejszego.

Pojemność macierzy można obliczyć ze wzoru: Pojemność HDD * (Ilość HDD -1). Jest to ostatni i zarazem najbardziej popularny podstawowy poziom macierzy pochodzący z oryginalnej specyfikacji. RAID-5 podobnie jak RAID-3 i 4 posiada najmniejszy narzut na nadmiarowość.

Zalety

  • Skomplikowana konstrukcja kontrolera, a co się z tym wiąże, jego wysoka cena.
  • Powolna praca w trybie programowym.
  • Bardzo wysoka wydajność rozwiązań sprzętowych, głównie odczytu
  • Niski narzut na nadmiarowość


Większość kontrolerów macierzy RAID posiada jeszcze jeden tryb pracy. Nazwany JBOD (Just A Bunch Of Disks). W tym trybie każdy z podłączonych dysków jest obsługiwany rozdzielnie jako pojedynczy logiczny napęd (kontroler macierzy pełni funkcję standardowego kontrolera dysków twardych). Dane nie są dzielone na paski , nie ma tez funkcji zabezpieczenia danych.