RAID - przegląd

Zadaniem technologii RAID jest zwiększenie niezawodności i wydajności systemów twardych dysków - również w komputerach biurkowych ambitnych użytkowników. Do dyspozycji jest osiem wariantów, każdy ze specyficznymi zaletami i wadami.

Zadaniem technologii RAID jest zwiększenie niezawodności i wydajności systemów twardych dysków - również w komputerach biurkowych ambitnych użytkowników. Do dyspozycji jest osiem wariantów, każdy ze specyficznymi zaletami i wadami.

Gdy przed kilkunastoma laty technologia RAID ujrzała światło dzienne na Uniwersytecie Kalifornijskim w Berkeley, przechowywanie dużych ilości danych wciąż było trudne. Używane w centrach obliczeniowych 14-calowe napędy SLED (Single Large Expensive Disk) miały, co prawda, dużą pojemność (2 do 3 GB), były jednak bardzo drogie. Alternatywnym rozwiązaniem pamięci masowej były stosunkowo nowe, "małe" napędy 5,25", dużo tańsze w stosunku do swojej pojemności. Ich stosowanie wiązało się jednak z pewnymi problemami.

Korekcja błędów za pomocą parzystości

Korekcja błędów za pomocą parzystości

Z jednej strony, przechowywanie danych na wielu małych dyskach, zamiast na jednym dużym powodowało problemy z zarządzaniem. W wypadku organizacji napędów w postaci JBOD (Just a Bunch of Disks), czyli po prostu pakietu dysków, wyszukiwanie wolnej przestrzeni czy wcześniej zapisanych danych byłoby bardzo skomplikowane. Z drugiej strony, zawodność małych napędów była dużo większa niż napędów SLED. Kolejnym utrudnieniem było to, że statystyczne prawdopodobieństwo utraty danych składowanych w wielu napędach, zamiast w jednym, wzrasta wraz z liczbą napędów.

Rozwiązanie problemu zaproponowali trzej doktoranci Berkeley: David Patterson, Garth Gibbon i Randy Katz. Polegało ono na kombinacji wielu małych napędów w jeden niezawodny zespół, wyposażony w mechanizm rozpoznawania i korekcji błędów. W opublikowanej w czerwcu 1988 pracy nadali też nowej technice własną nazwę. Jej tytuł brzmiał - "A Case for Redundant Arrays of Inexpensive Disks (RAID)". Narodził się RAID.

1. Szybkie i niezawodne

Typowy kontroler RAID, w tym wypadku firmy Adaptec, z wieloma kanałami i własnym procesorem.

Typowy kontroler RAID, w tym wypadku firmy Adaptec, z wieloma kanałami i własnym procesorem.

W swojej pierwszej publikacji Patterson, Gibbon i Katz zaproponowali pięć różnych metod połączenia poszczególnych napędów w jedną macierz. Oznaczyli je stosowanymi do dzisiaj nazwami RAID Level od 1 do 5. Ten trochę nieszczęśliwy wybór powoduje ciągłe nieporozumienia - mimo nazwy level nie chodzi o technologię polegającą na budowie kolejnych poziomów, lecz o wzajemnie niezależne techniki. Obok pierwotnie założonych celów - uzyskanie taniej pamięci masowej o dużej pojemności i niezawodności - udało się uzyskać także inne korzyści. Po pierwsze, system widzi macierz RAID jako pojedynczy wolumen logiczny. Zarządzanie jest więc tak proste, jak w wypadku pojedynczego napędu. Po drugie, wiele technik RAID odwołuje się do napędów równolegle, czyli są to rozwiązania szybsze od pojedynczego napędu. Tę zaletę można wykorzystać tylko wówczas, gdy jest dostatecznie dużo kanałów umożliwiających bezkolizyjne odwoływanie się do napędów.

Połączenie tylu zalet spowodowało, że pamięci masowe oparte na macierzy RAID rozpowszechniły się bardzo szybko, szczególnie w zastosowaniach serwerowych. Opracowano również dodatkowe warianty RAID, zoptymalizowane pod kątem specyficznych zastosowań i zalet. Obecnie zadowalająca jest przepustowość poziomów RAID 0 do RAID 7, do tego dochodzą technologie kombinowane, jak RAID 0-1, czy RAID 50.

2. RAID programowy kontra sprzętowy

RAID level 0 - przyspiesza, co prawda odwołania do napędów, nie zapisuje jednak danych w sposób nadmiarowy.

RAID level 0 - przyspiesza, co prawda odwołania do napędów, nie zapisuje jednak danych w sposób nadmiarowy.

We wprowadzających nieco w błąd określeniach "RAID programowy" i "sprzętowy" - w końcu oba warianty wymagają oprogramowania do pracy - chodzi w gruncie rzeczy o sposób wdrożenia.

W wypadku programowej macierzy RAID sterowaniem zespołu napędów zajmuje się oprogramowanie działające na procesorze hosta. Niektóre systemy operacyjne są wyposażone w potrzebne składniki. Windows NT obsługuje na przykład RAID 0 oraz RAID 1 i 5 - ten ostatni poziom tylko w wersji serwerowej. Linux obsługuje generalnie poziomy 0, 1, 4 i 5.

Programowa macierz RAID jest więc często najtańszym i najprostszym rozwiązaniem. Można je także łatwo dostosować do rosnących wymagań poprzez wymianę procesora na wydajniejszy. Programowa macierz RAID powoduje jednak duże obciążenie procesora i siłą rzeczy jest związana z platformą i systemem operacyjnym. Poza tym w zwykłych warunkach do dyspozycji jest tylko jedno lub dwa przyłącza do sterowania napędów, co w znacznym stopniu ogranicza możliwości równoległych odwołań do napędów, a zatem i wydajność.

Na pewniaka - RAID 1 tworzy na drugim dysku identyczną kopię danych użytecznych.

Na pewniaka - RAID 1 tworzy na drugim dysku identyczną kopię danych użytecznych.

Odmienne rozwiązanie to sprzętowa macierz RAID - sterowanie napędów przejmuje wyspecjalizowany kontroler. Korzyść polega na odciążeniu procesora i wzroście wydajności. Dodatkowo kontroler RAID odwołuje się do dysków za pośrednictwem wielu kanałów, co umożliwia odwołania równoległe i zwiększa szerokość pasma. Jak zwykle w takich wypadkach, rozwiązanie to ma swoją - wyższą - cenę. Sprzętowe macierze RAID pracują w sposób niezależny od platformy, potrzebują jednak również oprogramowania, które musi być dostosowane do systemu operacyjnego.

3. Weź kilka dowolnych dysków...

Jeszcze przed kilku laty kontrolery RAID nie pozostawiały wiele swobody, jeśli chodzi o dobór współpracujących dysków. Musiały to być SCSI, wszystkie o jednakowej pojemności. Często nawet dochodziło do tego, że w macierzy musiały pracować dyski z tej samej serii produkcyjnej. Z czasem poziom tych wymagań znacznie spadł. W serwerach, ze względu na wydajność, nadal stosuje się napędy SCSI, względnie ich następców - dyski Fibre Channel. Do komputerów typu desktop są już kontrolery ze złączem Ultra ATA/66 i Ultra ATA/100.

Obliczanie informacji o parzystości

Obliczanie informacji o parzystości

Nowoczesne kontrolery i programowe rozwiązania RAID dopuszczają nawet stosowanie w pakiecie dysków o różnej pojemności, ale w takim wypadku macierz nie wykorzystuje całej dostępnej pojemności netto wszystkich dysków. Ponieważ zasada jej działania wymaga jednak stosowania dysków o jednakowej pojemności, w konfiguracji złożonej z napędów o różnej pojemności wykorzystuje się na każdym pojemność równą pojemności najmniejszego dysku w zestawie. Na przykład w macierzy składającej się z jednego dysku 20 GB i dwóch dysków 30 GB dostępna pojemność wynosi 3 x 20 GB.

4. RAID Level 0

Macierz RAID Level 0 nie jest - jak wskazuje 0 w nazwie - rozwiązaniem nadmiarowym. Chodzi wyłącznie o przyspieszenie odwołań do dysków. W tym celu RAID łączy dwa lub więcej dysków w jeden napęd logiczny, a następnie rozdziela dane w następujących kolejno po sobie blokach (stripes) równomiernie na wszystkich dyskach. Dlatego RAID Level 0 bywa określany jako striping.

Równoległy zapis, względnie odczyt, na wielu dyskach zwiększa, co prawda, przepustowość, zmniejsza jednak poziom bezpieczeństwa. W razie awarii jednego napędu wszystkie dane są tracone.


Zobacz również