RAID
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ść.
Podczas projektowania macierzy RAID uwzględniane są różnorodne zastosowania pamięci masowej. Przeznaczenie macierzy implikuje wybór odpowiednich technologii w zakresie dysków, kontrolerów, pamięci cache, sposobu przesyłania danych oraz poziomu niezawodności (odpowiedniej nadmiarowości/redundancji podzespołów i połączeń). W macierzach RAID stosuje się wszystkie produkowane obecnie rodzaje dysków twardych: ATA (wycofane), SATA, SCSI (wycofane), SAS, Fibre Channel. Dominują jednak rozwiązania oparte o serwerowe wersje SATA, SAS i FC. Rośnie udział dysków SSD w rozwiązaniach wymagających krótkiego czasu dostępu do rozproszonych danych.
Spis treści |
[edytuj] Projektowanie
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/SATA lub zastosowanie droższych 2-portowych dysków FC i podłączenia do odpowiedniego kontrolera (lub kontrolerów). Spotykane są zarówno rozwiązania programowe, gdy odpowiedni moduł systemu operacyjnego zajmuje się odczytem/zapisem danych w macierzy, jak również sprzętowe, dzięki zastosowaniu dedykowanych sprzętowych kontrolerów RAID dołączonych do systemów za pomocą redundantnych magistral (SCSI) lub kanałów komunikacyjnych (Fibre Channel).
Każde z wymienionych rozwiązań ma swoje zalety i wady.
| RAID sprzętowy | RAID programowy |
|---|---|
| większa wydajność poprzez zmniejszenie obciążenia CPU, gdyż przeliczaniem sum kontrolnych zajmuje się wówczas dedykowany kontroler | relatywnie mniejsza wydajność związana z większym obciążeniem CPU, gdyż przeliczaniem sum kontrolnych zajmuje się jednostka centralna |
| możliwość bezpośredniego startu systemu z macierzy dyskowej w związku z przezroczystością macierzy dyskowej dla systemu operacyjnego | partycja startowa powinna znajdować się poza macierzą, co wiąże się z koniecznością zastosowania dodatkowego nośnika wyłącznie do celu ładowania systemu |
| większa kompatybilność z mniej popularnymi systemami operacyjnymi, konfiguracja macierzy odbywa się poprzez menu podobne do menu BIOS dostępne jeszcze przed startem systemu operacyjnego, dla którego sama macierz jest zupełnie przezroczysta, przez co z punktu widzenia OS zachowuje się ona jak każdy inny dysk twardy | nie wszystkie systemy operacyjne obsługują technologię RAID, co czasami może oznaczać instalację dodatkowego oprogramowania dedykowanego dla danego systemu |
| niestandardowy sposób zapisu danych na nośnikach wykorzystujący własnościowe protokoły i struktury danych inne dla każdego producenta, a nawet mogące się różnić w obrębie różnych modeli kontrolerów tego samego producenta, co w przypadku uszkodzenia kontrolera może uniemożliwić odzyskanie danych pomimo sprawnie działających dysków twardych | standardowy (często również otwarty) sposób zapisu danych pozwalający na korzystanie z macierzy dyskowej po podłączeniu do innego systemu obsługującego ten standard |
| możliwość łączenia różnych interfejsów takich jak ATA, SCSI, SATA, USB w obrębie jednej macierzy |
Istnieją też rozwiązania łączące obydwie metody np. FakeRAID, gdzie BIOS wspomaga ustawianie macierzy, monitorowanie wykonane jest w oprogramowaniu, a odbudowę macierzy czy obliczanie sum sprawdzających podczas zapisu zleca się głównym procesorom komputera.
Możliwości, jakie daje RAID, nie należy mylić z kopią zapasową danych (data back up), która jest zupełnie odrębnym zagadnieniem. Utrata ważnych danych może nastąpić nie tylko z powodu awarii fizycznego nośnika, ale również z powodu błędów systemu operacyjnego, działalności wirusów komputerowych lub innego szkodliwego oprogramowania, jak również na skutek umyślnej lub nieumyślnej działalności użytkowników danego systemu. Z powyższych powodów nie należy rezygnować z regularnego wykonywania kopii zapasowych danych wyłącznie dlatego, że wdrożyliśmy technologię RAID w naszym systemie.
[edytuj] Standardowe poziomy RAID
[edytuj] Tabela
| Poziom RAID | Minimalna liczba dysków (N) | Dostępna przestrzeń | Maksymalna liczba dysków, które mogą ulec awarii bez utraty danych |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[edytuj] RAID 0
Polega na połączeniu ze sobą dwóch lub więcej dysków fizycznych tak, aby były widziane jako jeden dysk logiczny. Powstała w ten sposób przestrzeń ma rozmiar taki jak N*rozmiar najmniejszego z dysków. Dane są przeplecione pomiędzy dyskami. Dzięki temu uzyskujemy znaczne przyśpieszenie operacji zapisu i odczytu ze względu na zrównoleglenie tych operacji na wszystkie dyski w macierzy. Warunkiem uzyskania takiego przyśpieszenia jest operowanie na blokach danych lub sekwencjach bloków danych większych niż pojedynczy blok danych macierzy RAID 0 - ang. stripe unit size.
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 oznacza skrócenie żywotności dysków - zwiększa się teoretyczna możliwość awarii. O ile w przypadku RAID 0 mówimy o utracie danych w przypadku awarii jednego z dysków, to jest to sytuacja tożsama z tą, gdy posiadamy jeden dysk - uszkodzenie jednego dysku również powoduje utratę danych.
[edytuj] Przykład 1
Trzy dyski po 500 GB zostały połączone w RAID 0. Powstała przestrzeń ma rozmiar 1,5 TB. Szybkość zapisu lub odczytu jest prawie trzykrotnie większa niż na pojedynczym dysku. Oczywiście sumaryczna szybkość jest 3-krotnością szybkoś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.
[edytuj] Przykład 2
Trzy dyski: 160 GB, 500 GB i 80 GB zostały połączone w RAID 0. Powstała w ten sposób przestrzeń ma rozmiar taki jak N*rozmiar najmniejszego z dysków, czyli 3·80 GB = 240 GB. Szybkość jest ograniczona szybkością najwolniejszego dysku, analogicznie do poprzedniego przykładu.
[edytuj] Zastosowanie RAID 0
Rozwiązanie do budowy tanich i wydajnych macierzy, służących do przetwarzania dużych plików multimedialnych. Przechowywanie danych na macierzy RAID 0 wiąże się jednak ze zwiększonym ryzykiem utraty tych danych - w przypadku awarii jednego z dysków tracimy wszystkie dane.
Podobne korzyści kosztem mniejszej wydajności możemy uzyskać stosując technologię LVM, która charakteryzuje się mniejszym ryzykiem utraty danych - w przypadku awarii jednego z dysków istnieje teoretyczna możliwość odzyskania danych znajdujących się na sprawnym dysku, gdyż - w przeciwieństwie do RAID 0 - LVM nie przeplata danych pomiędzy wieloma dyskami.
[edytuj] RAID 1 (lustrzany)
Polega na replikacji pracy dwóch lub więcej dysków fizycznych. Powstała przestrzeń ma rozmiar najmniejszego nośnika. RAID 1 jest zwany również lustrzanym (ang. mirroring). Szybkość zapisu i odczytu zależy od zastosowanej strategii:
- Zapis:
- zapis sekwencyjny na kolejne dyski macierzy - czas trwania operacji równy sumie czasów trwania wszystkich operacji
- zapis równoległy na wszystkie dyski macierzy - czas trwania równy czasowi trwania operacji na najwolniejszym dysku
- Odczyt:
- odczyt sekwencyjny z kolejnych dysków macierzy (ang. round-robin) - przy pewnej charakterystyce odczytów możliwe osiągnięcie szybkości takiej jak w RAID 0
- odczyt wyłącznie ze wskazanych dysków - stosowane w przypadku znacznej różnicy w szybkościach odczytu z poszczególnych dysków
Korzyści:
- odporność na awarię N - 1 dysków przy N-dyskowej macierzy
- możliwe zwiększenie szybkości odczytu
- możliwe zmniejszenie czasu dostępu
Wady:
- możliwa zmniejszona szybkość zapisu
- utrata pojemności (całkowita pojemność jest taka jak pojemność najmniejszego dysku)
[edytuj] Przykład
Trzy dyski po 250GB zostały połączone w RAID 1. Powstała w ten sposób przestrzeń ma rozmiar 250 GB. Jeden lub dwa dyski w pewnym momencie ulegają uszkodzeniu. Cała macierz nadal działa.
[edytuj] RAID 2
Dane na dyskach są paskowane. Zapis następuje po 1 bicie na pasek. Potrzebujemy minimum 8 powierzchni do obsługi danych oraz dodatkowe dyski do przechowywania informacji generowanych za pomocą kodu Hamminga potrzebnych do korekcji błędów. Liczba dysków używanych do przechowywania tych informacji jest proporcjonalna do logarytmu liczby dysków, które są przez nie chronione. Połączone dyski zachowują się jak jeden duży dysk. Dostępna pojemność to suma pojemności dysków przechowujących dane.
Korzyści:
- każdy dowolny dysk (zarówno 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 (w przeciwnym wypadku dezorganizacja i całkowita nieprzydatność tych dysków)
- długotrwałe generowanie kodu Hamminga przekładające się na wolną pracę całego systemu
[edytuj] RAID 3
Dane składowane są na N-1 dyskach. Ostatni dysk służy do przechowywania sum kontrolnych. Działa jak striping (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 z powodu konieczności kalkulowania sum kontrolnych (eliminowana poprzez zastosowanie sprzętowych kontrolerów RAID)
- w przypadku awarii dysku dostęp do danych jest spowolniony z powodu obliczeń sum kontrolnych
- odbudowa macierzy po wymianie dysku jest operacją kosztowną obliczeniowo i powoduje spowolnienie operacji odczytu i zapisu
- pojedynczy, wydzielony dysk na sumy kontrolne zazwyczaj jest wąskim gardłem w wydajności całej macierzy
[edytuj] Przykład
Pięć dysków po 250GB zostało połączonych w RAID 3. Powstała w ten sposób przestrzeń ma rozmiar 1TB (250 GB zarezerwowane 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ę.
[edytuj] RAID 4
RAID 4 jest bardzo zbliżony do RAID 3, z tą różnicą, że dane są dzielone na większe bloki (16, 32, 64 lub 128 kB). Takie 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. Parametry RAID 4 są bardzo dobre dla sekwencyjnego zapisu i odczytu danych (operacje na bardzo dużych plikach). Jednorazowy zapis małej porcji danych potrzebuje modyfikacji odpowiednich bloków parzystości dla każdej operacji I/O. W efekcie, za każdym razem przy zapisie danych system czekałby na modyfikacje bloków parzystości, co przy częstych operacjach zapisu bardzo spowolniłoby pracę systemu.
[edytuj] RAID 5
Poziom piąty pracuje bardzo podobnie do poziomu czwartego z tą różnicą, iż bity parzystości nie są zapisywane na specjalnie do tego przeznaczonym dysku, lecz są rozpraszane po całej strukturze macierzy. RAID 5 umożliwia odzyskanie danych w razie awarii jednego z dysków przy wykorzystaniu danych i kodów korekcyjnych zapisanych na pozostałych dyskach (zamiast tak jak w 3. na jednym specjalnie do tego przeznaczonym, co nieznacznie zmniejsza koszty i daje lepsze gwarancje bezpieczeństwa). RAID 5 oferuje większą prędkość odczytu niż lustrzany (ang. mirroring) ale przy jego zastosowaniu nieznacznie spada prędkość zapisu. Poziom piąty jest całkowicie bezpieczny dla danych - w razie awarii system automatycznie odbuduje utracone dane, tak by mogły być odczytywane, zmniejszając jednak bieżącą wydajność macierzy. Spowolnienie jest chwilowe. Po zamontowaniu nowego dysku i odtworzeniu danych wydajność macierzy wraca do normy.
Macierz składa się z 3 lub więcej dysków. Przy macierzy liczącej N dysków jej objętość wynosi N - 1 dysków. Przy łączeniu dysków o różnej pojemności otrzymujemy objętość najmniejszego dysku razy N - 1. 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.
Korzyści:
- odporność na awarię jednego dysku
- zwiększona szybkość odczytu - porównywalna do macierzy RAID 0 złożonej z N-1 dysków
Wady:
- zmniejszona szybkość zapisu z powodu konieczności kalkulowania sum kontrolnych (eliminowana poprzez zastosowanie sprzętowego kontrolera RAID5)
- w przypadku awarii dysku dostęp do danych jest spowolniony z powodu obliczeń sum kontrolnych
- odbudowa macierzy po wymianie dysku jest operacją kosztowną obliczeniowo i powoduje spowolnienie operacji odczytu i zapisu
[edytuj] Przykład
Pięć dysków po 250GB zostaje połączonych w RAID 5. Powstała w ten sposób przestrzeń ma rozmiar 1 TB. Jeden dysk w pewnym momencie ulega uszkodzeniu. Cała macierz nadal działa. Po wymianie uszkodzonego dysku na nowy jego zawartość zostaje odtworzona.
[edytuj] RAID 6
Rozbudowana, o dodatkowy dysk, macierz typu 5 (często pojawia się zapis RAID 5+1). Zawiera dwie niezależne sumy kontrolne. Nieco kosztowniejsza w implementacji niż RAID 5, ale dająca większą niezawodność. Awarii muszą ulec jednocześnie trzy dyski by samoodtworzenie systemu, po uzupełnieniu wadliwych dysków, było niemożliwe.
Korzyści:
- odporność na awarię maksimum 2 dysków (dwa razy większa niezawodność niż w RAID 5)
- szybkość pracy większa niż szybkość pojedynczego dysku.
[edytuj] 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. Potrzebne są minimum 4 dyski o tej samej pojemności.
Korzyści:
- szybkość macierzy RAID 0
- bezpieczeństwo macierzy RAID 1 - w szczególnym wypadku nawet większa (awaria więcej niż jednego dysku tego samego mirrora)
- 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
[edytuj] 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
[edytuj] Matrix RAID
Polega na połączeniu ze sobą dwóch dysków fizycznych tak, aby część dysku działała jak RAID 0 (striping), 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 wynikają z połączenia zalet poszczególnych trybów RAID:
- ważne pliki, takie jak dokumenty czy inne informacje, których odtworzenie w razie awarii byłoby zbyt kosztowne, czasochłonne lub wręcz niemożliwe, mogą być zduplikowane na obu dyskach (np. katalogi /home, /var, C:\Documents and Settings),
- mniej istotne dane, na których często wykonywane są operacje dyskowe, pliki i biblioteki systemu operacyjnego (np. /usr, C:\WINDOWS), pliki wykonywalne bądź biblioteki zainstalowanych aplikacji (np. /usr, C:\Program Files), pliki wymiany, partycja SWAP), mogą być wykonywane ze zwiększoną szybkością.
Wady:
- częściowy spadek pojemności (część mirrorowana)
- część danych jest podatna na awarię (część w stripingu)
[edytuj] Przykład
Dwa identyczne dyski 10 GB zostały połączone w Matrix RAID. Utworzono na nich dwie partycje - każda zajmuje połowę każdego dysku. Pierwsza polega na dzieleniu danych (striping) więc ma pojemność 10 GB, druga polega na duplikowaniu (mirroring) ma więc 5 GB.
Pierwsza z nich charakteryzuje się teoretycznie dwukrotną prędkością wykonywania na niej operacji zarówno przy odczycie jak i zapisie danych. Druga zaś gwarantuje bezpieczeństwo danych w razie awarii jednego z dysków, podwójną prędkość odczytu oraz pojedynczą prędkość zapisu.
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
| Ta sekcja linków zewnętrznych wymaga weryfikacji. Aby pomóc, przeczytaj zasady wstawiania linków zewnętrznych i usuń niepotrzebne linki. |
- Tworzymy macierz RAID 5 przy pomocy Windows XP
- Jak przyśpieszyć i zbudować RAID 0
- Tworzymy macierz RAID przy pomocy Linuksa PLD
- Przenosimy Linuksa z pojedynczego dysku na RAID 1
- Przechowywanie danych i RAID
- Raid Controller & Raid Systeme (niem.)