1
Macierze Dyskowe
RAID
2
Definicja
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.
RAID używa się w następujących celach:
zwiększenie niezawodności (odporność na awarie)
przyspieszenie transmisji danych
powiększenie przestrzeni dostępnej jako jedna
całość.
3
Nadmiarowa macierz...
Czasami mówi się o Redundant Array of Inexpensive Disks, czyli
nadmiarowa macierz
tanich dysków, co dobrze odpowiada rzeczywistości, ponieważ można
stworzyć dużą i
niezawodną przestrzeń dyskową, używając dysków SCSI oraz niedrogich,
standardowych IDE/ATA lub SATA.
Podczas projektowania macierzy należy zwrócić uwagę na sposób
podłączenia dysków.
Zapewnienie wysokiej dostępności do dysków wymaga dołączenia tych
dysków do oddzielnych kanałów SCSI/IDE
zastosowanie droższych 2-portowych dysków FC i podłączenia do
odpowiedniego
kontrolera(ów) zwiększa wydajność
Najlepsze efekty można osiągnąć dzięki zastosowaniu specjalnych
sprzętowych kontrolerów RAID dołączonych do systemów
4
Kto i po co stworzył
MACIERZ?
W 1987 roku, gdy moc obliczeniowa systemów komputerowych wzrastała już
dość szybko, a nie można było tego jeszcze powiedzieć o pamięciach
masowych, trzej profesorowie z kalifornijskiego uniwersytetu w Berkeley
– Garth Gibson, Randy Katz i David Patterson – opublikowali pracę pod
tytułem A Case for Redundant Arrays of Inexpensive Disks (RAID).
Przewidywali oni ogromny wzrost zapotrzebowania na szybkie i tanie
pamięci masowe, a rozwiązaniem miał być właśnie RAID. Początkowo
założeniem wcale nie było zabezpieczanie danych czy zwiększanie
wydajności, lecz osiągnięcie niskich kosztów przy dużej pojemności.
Dzięki połączeniu w jedną całość kilku dysków możliwe okazało się
stworzenie systemu szybszego i znacznie tańszego niż jeden duży dysk.
Podczas opracowywania RAID wykorzystano urządzenia dyskowe IBM,
Fujitsu i Conner. Ten pierwszy to model IBM 3380 – szafa wysokości
niemal dwóch metrów, zaprojektowana do współpracy z systemami
mainframe, o ogromnej jak na tamte czasy pojemności 7500 MB i
wydajności na poziomie 3 MB/s. Niestety, urządzenie kosztowało aż 100
tys. USD! Drugi wykorzystany w projekcie napęd to Fujitsu M2361A o
pojemności 600 MB, wydajności 2,5 MB/s i również dość wysokiej cenie
12 tys. USD. Natomiast najtańszy uwzględniony w projekcie Conner
oznaczony symbolem CP3100 oferował pojemność 100 MB, wydajność na
poziomie 1 MB/s, ale kosztował tylko 1000 dolarów. Tak więc koszt 1 MB
przestrzeni dyskowej był paradoksalnie najmniejszy w najtańszym dysku.
5
Już w pierwszych projektach zauważono, że połączenie wielu dysków w
jedną całość bardzo źle wpływa na niezawodność całego
rozwiązania. Prosty rachunek wykazał, że czas bezawaryjnej pracy
jest odwrotnie proporcjonalny do liczby dysków zastosowanych w
macierzy – im jest ich więcej, tym większa szansa uszkodzenia
któregoś z nich, co oczywiście wiąże się z utratą danych
.
Zatem wszystkie konfiguracje oznaczone numerami 1-5 zyskały
mechanizmy pomagające chronić dane poprzez zapis informacji
nadmiarowych. Na szczęście rozpowszechniła się także
konfiguracja RAID 0 nie oferująca żadnych zabezpieczeń – teraz
jest ona najpopularniejszym rozwiązaniem macierzowym w
domowych pecetach.
6
Poziom
RAID
N = liczba
dysków
Dostępna
przestrzeń
Odporność na
awarię
RAID 0
2
N
0
RAID 1
2+
1
N - 1
RAID 2
3+
N - log N
1
RAID 3
3+
N - 1
1
RAID 5
3+
N - 1
1
RAID 6
4+
N - 2
min. 2
RAID 1+0
4 + N * 2
N /2
min. 1
RAID 0+1
4 + N * 2
N /2
1
Porównanie wydajności i awaryjności
różnych rozwiązań macierzowych RAID
7
RAID 0
Połączeniu ze sobą dwóch lub więcej dysków fizycznych tak, aby były
widziane jako jeden dysk logiczny.
Powstała przestrzeń ma rozmiar taki jak N*rozmiar najmniejszego z dysków.
Dane są przeplecione pomiędzy dyskami - uzyskujemy znaczne przyśpieszenie
operacji zapisu i odczytu ze względu na zrównoleglenie tych operacji na
wszystkie dyski w macierzy.
Korzyści:
+ przestrzeń wszystkich dysków jest widziana jako całość
+ przyspieszenie zapisu i odczytu w porównaniu do pojedynczego dysku
Wady:
- brak odporności na awarię dysków
- N*rozmiar najmniejszego z dysków
-
zwiększenie awaryjności nie znaczy skrócenie żywotności dysków.
-
Uszkodzenie jednego jedynego dysku też powoduje utratę danych.
8
Przykłady RAID 0
Przykład
Trzy dyski po 10GB zostały połączone w RAID 0. Powstała
przestrzeń ma rozmiar 30GB. Szybkość zapisu lub odczytu jest
prawie trzykrotnie większa niż na pojedynczym dysku.
Oczywiście sumaryczna szybkość jest 3-krotnością
najwolniejszego z dysków, gdyż kontroler raid podczas
zapisu/odczytu musi poczekać na najwolniejszy dysk. Stąd też
sugeruje się dyski identyczne, o identycznej szybkości i
pojemności.
Przykład 2
Trzy dyski: 10 GB, 10 GB, 5GB zostały połączone w RAID 0.
Powstała w ten sposób przestrzeń ma rozmiar taki jak N*rozmiar
najmniejszego z dysków, 3x5GB = 15GB. Szybkość zapisu lub
odczytu jest prawie trzykrotnie większa niż na pojedynczym
dysku. Oczywiście sumaryczna szybkość jest 3-krotnością
najwolniejszego z dysków, gdyż kontroler raid podczas
zapisu/odczytu musi poczekać na najwolniejszy dysk. Stąd też
sugeruje się dyski identyczne, o identycznej wielkości.
9
Zastosowanie RAID 0
Rozwiązanie do budowy tanich i
wydajnych macierzy, służących do
przechowywania dużych plików
multimedialnych
10
RAID 1
Polega na replikacji pracy dwóch lub więcej dysków
fizycznych
.
Powstała przestrzeń ma rozmiar pojedynczego nośnika.
RAID 1 jest zwany również mirroringiem. Szybkość
zapisu i odczytu zależy od zastosowanej strategii:
Korzyści:
odporność na awarię N - 1 dysków przy N-dyskowej
macierzy
możliwe zwiększenie szybkości odczytu
Wady:
zmniejszona szybkość zapisu
utrata pojemności (dokładnie pojemności N - 1 dysków)
11
Przykłady RAID 1
Trzy dyski po 1GB zostały połączone w
RAID 1. Powstała w ten sposób
przestrzeń ma rozmiar 1GB
(3x1GB). Jeden lub dwa dyski w
pewnym momencie ulegają
uszkodzeniu. Cała macierz nadal
działa.
12
Zastosowanie RAID 1
RAID 1 znajduje zastosowanie głównie
w serwerach gdzie wymagane jest
duże bezpieczeństwo danych np. w
Bankach lub Instytucjach
Rządowych
13
RAID 2
Dane na dyskach są paskowane.
Zapis następuje po 1 bicie na pasek
.
Stosowanie min 8 powierzchni do obsługi danych oraz dodatkowe dyski do
przechowywania informacji potrzebnych do korekcji błędów - kod
Hamminga.
Korzyści:
każdy dowolny dysk (z danymi jak i z kodem Hamminga) może w razie
uszkodzenia zostać odbudowany przez pozostałe dyski
Wady:
konieczność dokładnej synchronizacji wszystkich dysków zawierających kod
Hamminga
długotrwałe generowanie kodu Hamminga przekładające się na wolną pracę
całego systemu
14
RAID 3
Dane składowane są na N-1 dyskach. Ostatni dysk służy
do przechowywania sum kontrolnych.
Działa jak string (RAID 0), ale w macierzy jest dodatkowy
dysk, na którym zapisywane są kody parzystości obliczane
przez specjalny procesor
Korzyści:
odporność na awarię 1 dysku
zwiększona szybkość odczytu
Wady:
zmniejszona szybkość zapisu i dostępu do danych z powodu konieczności
kalkulowania sum kontrolnych
odbudowa macierzy po wymianie dysku jest operacją kosztowną
obliczeniowo i powoduje spowolnienie operacji odczytu i zapisu
pojedynczy, dedykowany dysk na sumy kontrolne zazwyczaj jest wąskim
gardłem w wydajności całej macierzy
15
Przykład RAID 3
Pięć dysków po 1GB zostało połączonych
w RAID 3. Powstała w ten sposób
przestrzeń ma rozmiar 4GB (1GB
odpada na sumy kontrolne). Jeden
dysk w pewnym momencie ulega
uszkodzeniu. Cała macierz nadal
działa. Po włożeniu nowego dysku na
miejsce uszkodzonego jego zawartość
odtwarza się.
16
RAID 4
Bardzo zbliżony do RAID 3, z tą różnicą, że dane są
dzielone na większe bloki
(16,32, 64 lub 128 Kbajtów).
pakiety zapisywane są na dyskach podobnie do rozwiązania
RAID 0.
Dla każdego rzędu zapisywanych danych blok parzystości
zapisywany jest na dysku parzystości.
Przy uszkodzeniu dysku dane mogą być odtworzone przez
odpowiednie operacje matematyczne.
Jednorazowy zapis małej porcji danych potrzebuje modyfikacji
odpowiednich bloków parzystości dla każdej operacji I/O.
17
RAID 5
Sumy kontrolne danych dzielone są na N części, przy czym każda część składowana jest na innym
dysku a wyliczana jest z odpowiedniego fragmentu danych składowanych na pozostałych N-1
dyskach.
Macierz składa się z 3 lub więcej dysków.
Dla macierzy liczącej N dysków jej objętość wynosi N - 1
Przy łączeniu dysków o różnej pojemności otrzymujemy objętość najmniejszego dysku razy N - 1.
Korzyści:
odporność na awarię 1 dysku i zwiększona szybkość odczytu - porównywalna do macierzy RAID0
złożonej z N-1 dysków
Wady:
zmniejszona szybkość zapisu - konieczności kalkulowania sum kontrolnych
w przypadku awarii dysku dostęp do danych jest powolny z powodu obliczeń sum kontrolnych
odbudowa macierzy po wymianie dysku jest operacją kosztowną obliczeniowo i powoduje
spowolnienie operacji odczytu i zapisu
18
Przykład RAID 5
Pięć dysków po 1GB zostaje
połączonych w RAID 5. Powstała w
ten sposób przestrzeń ma rozmiar
4GB. Jeden dysk w pewnym
momencie ulega uszkodzeniu. Cała
macierz nadal działa. Po wymianie
uszkodzonego dysku na nowy jego
zawartość zostaje odtworzona.
19
RAID 6
Rozbudowana macierz typu 5
(często pojawia się zapis RAID
5+1).
Zawiera dwie niezależne sumy kontrolne.
Kosztowna w implementacji, ale dająca bardzo wysokie
bezpieczeństwo.
Korzyści:
odporność na awarię maximum 2 dysków
szybkość pracy większa niż szybkość pojedynczego dysku
ekstremalnie wysokie bezpieczeństwo.
20
RAID 0+1
Macierz realizowana jako RAID 1, którego elementami są macierze RAID 0. Macierz taka
posiada zarówno zalety macierzy RAID 0 - szybkość w operacjach zapisu i odczytu - jak i
macierzy RAID 1 - zabezpieczenie danych w przypadku awarii pojedynczego dysku.
Pojedyncza awaria dysku powoduje, że całość staje się w praktyce RAID 0.minimum 4 dyski o
tej samej pojemności
Korzyści:
szybkość macierzy RAID 0
bezpieczeństwo macierzy RAID 1
znacznie prostsza w implementacji niż RAID 3, 5 i 6
Wady:
wymagana odbudowa całej macierzy RAID 100 w przypadku awarii pojedynczego dysku
awaria pojedynczego dysku powoduje utratę zabezpieczenia danych
większy koszt przechowywania danych niż w przypadku RAID 0,2,3,4,5,6
21
RAID 1+0
Nazywana także RAID 10. Macierz realizowana jako RAID 0, którego elementami są macierze
RAID 1. W porównaniu do swojego poprzednika (RAID 0+1) realizuje tę samą koncepcję
połączenia zalet RAID 0 - szybkość - i RAID 1 - bezpieczeństwo - lecz w odmienny sposób.
Tworzony jest duży stripe małych mirrorów, dzięki czemu podczas wymiany uszkodzonego
dysku odbudowywany jest tylko fragment całej macierzy.
Korzyści:
szybkość macierzy RAID 0
bezpieczeństwo macierzy RAID 1 - w szczególnym wypadku nawet większa (awaria więcej
niż jednego dysku różnych mirrorów)
znacznie prostsza w implementacji niż RAID 3, 5 i 6
Wady:
większy koszt przechowywania danych niż w przypadku RAID 0,2,3,4,5,6
22
Matrix RAID
Matrix RAID
Polega na połączeniu ze sobą dwóch dysków
fizycznych tak, aby część dysku działała jak RAID
0 (stripping), a inna część jak RAID 1 (mirroring)
(szczegóły działania macierzy RAID 0 i RAID 1
znajdziesz powyżej). Jest to chyba najlepsza
opcja w warunkach "domowych", łącząca zalety
obu trybów i pozbawiona ich wad.
Korzyści:
połączenie zalet poszczególnych trybów RAID -
ważne informacje mogą być bezpieczne (z
duplikowane na obu dyskach), zaś operacje na
często używanych, ale mniej istotnych danych,
mogą być wykonywane ze zwiększoną
szybkością.
Wady:
częściowy spadek pojemności (część
mirrorowana)
część danych jest podatna na awarię (część w
strippingu)
23
Przykłady Matrix RAID
Dwa dyski po 10GB zostały połączone w
Matrix RAID. Utworzono na nich 2
partycje - każda zajmuje połowę każdego
dysku. Pierwsze polega na dzieleniu
danych (stripping) więc ma pojemość
10GB, druga polega na duplikowaniu
(mirroring) ma więc 5GB. Pierwsza z nich
charakteryzuje się teoretycznie dwukrotną
prędkością wykonywania na niej operacji,
druga zaś gwarantuje bezpieczeństwo
danych w razie awarii jednego z dysków.
24
JBOD
JBOD (ang. Just a Bunch Of Disks) – połączenie dysków
twardych bez wykorzystania technologii RAID. JBOD,
w przeciwieństwie do RAID, nie daje korzyści w
postaci przyspieszenia operacji zapisu/odczytu czy
zwiększenia bezpieczeństwa danych. JBOD jest
zwykłą półką na dyski (macierzą dyskową), które są
bezpośrednio widoczne przez systemy komputerowe
bez pośrednictwa specjalnego kontrolera RAID
zarządzającego dostępem do dysków. Zazwyczaj
dyski przyłaczane są za pomocą osobnego lub
osobnych kontrolerów SCSI. W zależności od rodzaju
macierzy, może istnieć możliwość podłaczenie
dysków z półki za pomocą osobych kontrolerów SCSI.
25
JBOD
Zasada działania
26
Jak widać, twórcy technologii RAID opracowali kilka
konfiguracji dyskowych, posługujących się różnymi
metodami zwiększania pojemności, wydajności i
niezawodności macierzy. Striping, który jest fundamentem
RAID, zastosowany w większości konfiguracji pozwala na
zapis i odczyt danych jednocześnie z kilku napędów, dzięki
czemu możliwe jest zwielokrotnienie wydajności. Z kolei
dwa mechanizmy zabezpieczania danych – mirroring i
kody parzystości – umożliwiają zabezpieczenie przed
awarią jednego z dysków w macierzy. W jednej z
konfiguracji wykorzystano także kody ECC, które przez
lata nie były wykorzystywane, dopiero ostatnio powracają
do łask, choć w zupełnie innej postaci. W dalszej części
artykułu przedstawimy najpopularniejsze konfiguracje, ich
rzeczywistą wydajność, wybrane funkcje kontrolerów
macierzowych, a także kilka egzotycznych pomysłów na
RAID.
27
28
29
30
KONTROLERY
31
Wprowadzenie
Kontrolery maja za zadanie z dwóch
dysków fizycznych utworzyć jeden
dysk logiczny. To dzięki kontrolerom
możemy stworzyć w naszym
komputerze macierz.
32
Najprostsze
kontrolery macierzowe potrafią
stworzyć na dyskach fizycznych tylko
jeden dysk logiczny, tzn. dysponując
dwoma dyskami można utworzyć na nich
RAID 0 lub RAID 1.
Technologia Matrix RAID umożliwia
stworzenie dwóch dysków logicznych, a
więc para dysków wystarczy do tego, by
utworzyć na nich jednocześnie
Kontrolery SCSI RAID nie nakładają
żadnych ograniczeń co do liczby
tworzonych wolumenów, a każdy z nich
jest widoczny przez system jako osobny
napęd, który można dowolnie
partycjonować.
RAID - uwagi
33
Możliwa jest zmiana poziomu
macierzy RAID bez usuwania
danych, choć podczas takiej operacji
zawsze istnieje pewne ryzyko.
Migracja macierzy wiąże się z
pewnymi ograniczeniami, np. RAID
0 zazwyczaj nie może być
przekształcony na RAID 1, ponieważ
macierz wynikowa jest mniejsza niż
pierwotna.
Migracja macierzy RAID
34
Ważną funkcją, szczególnie w serwerach,
jest obsługa dysków zapasowych (tzw.
hot-spare).
Macierz zapewniająca ochronę danych może
mieć dodatkowy dysk zapasowy, który w
razie awarii automatycznie przejmuje
rolę dysku uszkodzonego i dane są
synchronizowane między napędami
W ten sposób macierz szybciej powraca do
normalnego stanu pracy i odzyskuje
pełną wydajność i niezawodność.
Obsługa dysków
zapasowych
35
Praca dwóch kontrolerów w trybie active-passive lub
active-active pozwala zabezpieczyć przed awarią
jednego z nich. W tym pierwszym przypadku
kontroler zapasowy przejmuje rolę kontrolera
głównego, gdy ten ulegnie uszkodzeniu. Natomiast w
drugim przypadku oba kontrolery mogą pracować
jednocześnie, obsługiwać macierze wykorzystujące
te same napędy i równoważyć obciążenie (każdy
dysk jest podłączony do dwóch macierzy
jednocześnie. W przypadku tanich kontrolerów taka
funkcja nie wchodzi w grę, jednak pewnym
ratunkiem jest to, że konfiguracja macierzy
najczęściej nie jest przechowywana w kontrolerze,
lecz w pierwszych sektorach dysków – w razie
uszkodzenia kontrolera macierz można przełożyć do
innego komputera (z takim samym kontrolerem).
36
Standard Serial ATA wniósł kilka
nowości, które nie są jeszcze
powszechnie stosowane – to m.in.
funkcja Port Selector, pozwalająca
na podłączenie jednego dysku do
dwóch różnych portów kontrolera,
za pomocą oddzielnych kabli. W ten
sposób uzyskuje się bardziej
niezawodne połączenie między
elementami macierzy.
37
Zawsze słabym punktem kontrolerów,
szczególnie tych dużych, był bufor zapisu –
gdy ma pojemność rzędu setek MB, jego
awaria lub nagłe odłączenie zasilania można
oznaczać utratę sporej ilości danych. Istnieją
przynajmniej dwa sposoby by temu zapobiec
– podtrzymanie zawartości bufora za pomocą
baterii, która przeważnie może go zasilać
przez 3 doby, a także przełączenie bufora w
tryb pracy write-through, który informuje
system operacyjny o udanym zapisie dopiero
wtedy, gdy dane rzeczywiście trafią na dysk
(często jest to domyślny tryb pracy
kontrolera).
38
Liczne funkcje i standardy
monitorowania macierzy, m.in.
specyfikacja SAF-TE wykorzystująca
dodatkowe komendy SCSI do
kontroli temperatury, zasilania i
pracy wiatraków, monitorowanie
macierzy za pomocą protokołu
SNMP czy przez przeglądarkę.