Spis treści

·         1 Wprowadzenie

o    1.1 Różnica między dyskami fizycznymi a logicznymi

o    1.2 Odczytywanie i zapisywanie danych

o    1.3 Co to jest RAID?

o    1.4 Dlaczego używać macierzy RAID?

o    1.5 Historia

·         2 Podstawowe pojęcia stosowane w systemach RAID

o    2.1 Buforowanie

o    2.2 Odwzorowanie: Więcej niż jedna kopia danych

o    2.3 Striping: Część danych znajduje się na innym dysku

o    2.4 Korekta błędów i usterek

o    2.5 Gorące części zamienne: stosowanie większej liczby dysków niż jest to konieczne

o    2.6 Rozmiar pasków i wielkość fragmentów: rozkładanie danych na kilku dyskach

o    2.7 Łączenie dysków: JBOD, konkatenacja lub rozpiętość

o    2.8 Drive Clone

o    2.9 Różne konfiguracje

·         3 Podstawy: proste poziomy RAID

o    3.1 Powszechnie stosowane poziomy RAID

§  3.1.1 RAID 0 "striping"

§  3.1.2 RAID 1 "zwierciadło"

§  3.1.3 RAID 5 "striping z parytetem rozłożonym"

§  3.1.4 Zdjęcia

o    3.2 Poziomy RAID stosowane w mniejszym stopniu

§  3.2.1 RAID 2

§  3.2.2 RAID 3 "striping z dedykowanym parytetem"

§  3.2.3 RAID 4 "striping z dedykowanym parytetem".

§  3.2.4 RAID 6

§  3.2.5 Zdjęcia

o    3.3 Niestandardowe poziomy RAID

§  3.3.1 Parytet podwójny / Parytet przekątny

§  3.3.2 RAID-DP

§  3.3.3 RAID 1.5

§  3.3.4 RAID 5E, RAID 5EE i RAID 6E

§  3.3.5 RAID 7

§  3.3.6 Macierze RAID Intel Matrix

§  3.3.7 Sterownik MD RAID dla systemu Linux

§  3.3.8 RAID Z

§  3.3.9 Zdjęcia

·         4 Łączenie poziomów RAID

·         5 Tworzenie macierzy RAID

o    5.1 Oprogramowanie RAID

o    5.2 Sprzętowa macierz RAID

o    5.3 Sprzętowo wspomagana macierz RAID

·         6 Różne terminy związane z awariami sprzętu

o    6.1 Wskaźnik awaryjności

o    6.2 Średni czas do utraty danych

o    6.3 Średni czas do powrotu do zdrowia

o    6.4 Nieodzyskiwalna bitowa stopa błędów

·         7 Problemy z RAID

o    7.1 Dodawanie dysków w późniejszym czasie

o    7.2 Powiązane awarie

o    7.3 Atomowość

o    7.4 Dane nieodzyskiwalne

o    7.5 Niezawodność zapisu w pamięci podręcznej

o    7.6 Kompatybilność urządzeń

·         8 Co RAID może, a czego nie może zrobić

o    8.1 Co RAID może zrobić

o    8.2 Czego RAID nie może zrobić

·         9 Przykład

·         10 Referencje

·         11 Inne strony internetowe

RAID jest akronimem, który oznacza Redundant Array of Inexpensive Disks lub Redundant Array of Independent Disks. RAID jest terminem używanym w informatyce. Dzięki macierzy RAID kilka dysków twardych jest tworzonych w jednym dysku logicznym. Istnieją różne sposoby, aby to zrobić. Każda z metod łączenia dysków twardych ma pewne zalety i wady w porównaniu z wykorzystaniem dysków jako pojedynczych, niezależnych od siebie dysków. Głównymi powodami stosowania macierzy RAID są:

  • Aby utrata danych odbywała się rzadziej. Odbywa się to poprzez posiadanie kilku kopii danych.
  • Aby uzyskać więcej miejsca do przechowywania dzięki wielu mniejszym dyskom.
  • Aby uzyskać większą elastyczność (dyski mogą być zmieniane lub dodawane podczas pracy systemu)
  • Aby szybciej uzyskać dane.

Nie jest możliwe osiągnięcie wszystkich tych celów w tym samym czasie, dlatego należy dokonać wyboru.

Są też pewne złe rzeczy:

  • Niektóre wybory mogą chronić przed utratą danych z powodu awarii jednego (lub kilku) dysków. Nie chronią one jednak przed usunięciem lub nadpisaniem danych.
  • W niektórych konfiguracjach, RAID może tolerować, że jeden lub kilka dysków zawiedzie. Po wymianie uszkodzonych dysków, dane muszą zostać zrekonstruowane. W zależności od konfiguracji i rozmiaru dysków rekonstrukcja ta może trwać długo.
  • Pewne rodzaje błędów uniemożliwiają odczytanie danych

Większość prac nad macierzą RAID opiera się na dokumencie napisanym w 1988 roku.

Firmy używają systemów RAID do przechowywania swoich danych od momentu powstania technologii. Istnieją różne sposoby, w których systemy RAID mogą być wykonane. Od czasu jej odkrycia, koszt budowy systemu RAID znacznie spadł. Z tego powodu, nawet niektóre komputery i urządzenia, które są używane w domu mają pewne funkcje RAID. Takie systemy mogą być wykorzystywane do przechowywania muzyki lub filmów, na przykład.

1. Wprowadzenie — doprecyzowanie

RAID to technika łączenia kilku fizycznych dysków w jedną logiczną jednostkę widoczną dla systemu operacyjnego. Celem może być zwiększenie wydajności (szybsze odczyty/zapisy), zwiększenie pojemności lub zapewnienie odporności na awarie dysków. W praktyce implementacje RAID łączą te cele w różnym stopniu — wybór poziomu RAID zależy od priorytetów: wydajność, pojemność czy dostępność danych.

1.1 Różnica między dyskami fizycznymi a logicznymi

Dysk fizyczny to rzeczywiste urządzenie magazynujące (HDD, SSD). Dysk logiczny to abstrakcja tworzona przez kontroler RAID lub oprogramowanie (np. system plików widzi jeden wolumin, podczas gdy w rzeczywistości dane są rozdzielone na wiele nośników). Dzięki temu administrator widzi jeden dysk, choć dane fizycznie rozkładają się na kilka urządzeń.

1.2 Odczytywanie i zapisywanie danych

W zależności od poziomu RAID mechanizmy odczytu i zapisu działają inaczej:

  • Striping (RAID 0): dane dzielone są na bloki (stripe) i rozkładane kolejno na dyskach — poprawia przepustowość odczytu i zapisu, ale brak redundancji.
  • Mirroring (RAID 1): identyczne kopie danych zapisuje się na dwóch lub więcej dyskach — odczyty mogą być szybsze (wykorzystywanie wielu dysków), zapisy są wolniejsze lub równoległe, ale nadmiarowość zapewnia ochronę przed awarią jednego dysku.
  • Parytet (RAID 5/6): obliczana jest wartość parzystości (lub dwie wartości parzystości), która pozwala odtworzyć dane po awarii dysku — zapis jest kosztowniejszy (konieczność aktualizacji parytetu), odczyty zwykle szybkie.
Przy zapisie operacje często wymagają dodatkowych odczytów i obliczeń (np. przed aktualizacją parytetu), co wpływa na wydajność zapisu. Kontrolery z pamięcią podręczną (cache) i baterią lub inną formą trwałego buforowania zmniejszają ryzyko utraty danych w trakcie operacji zapisu.

1.3 Co to jest RAID?

RAID to zbiór metod organizacji wielu dysków w celu uzyskania określonych właściwości: zwiększenia wydajności, pojemności lub odporności na awarie. Poziomy RAID (oznaczenia liczbowo-literowe) opisują sposób rozkładania danych i redundancji. Najpopularniejsze poziomy to RAID 0, 1, 5, 6, 10, lecz istnieje wiele wariantów i kombinacji (np. RAID 50, RAID 60, RAID-Z).

1.4 Dlaczego używać macierzy RAID?

Główne powody stosowania RAID:

  • Ochrona przed awarią pojedynczego dysku (redundancja).
  • Zwiększenie wydajności odczytu i/lub zapisu (rozproszenie pracy na wiele dysków).
  • Zwiększenie efektywnej pojemności przez łączenie dysków.
  • Zwiększenie dostępności systemu — szybka wymiana dysku i odbudowa danych (rebuild) bez przerywania pracy w wielu konfiguracjach).
Ważne: RAID nie zastępuje kopii zapasowych. Nie chroni przed przypadkowym usunięciem plików, ransomware, pożarem czy kradzieżą — dlatego należy utrzymywać regularne backupy.

1.5 Historia

Podstawy koncepcji RAID opisano w pracy naukowej z 1988 roku, która zapoczątkowała wiele dalszych rozwiązań. Początkowo RAID był domeną serwerów i dużych systemów, ale wraz z obniżeniem kosztów i rozwojem kontrolerów, RAID stał się powszechny także w systemach konsumenckich i NAS. Współcześnie pojawiły się także alternatywy i rozszerzenia, np. rozwiązania programowe (mdadm, ZFS) i zaawansowane algorytmy parytetowe (RAID-Z, RAID-DP).

2. Podstawowe pojęcia stosowane w systemach RAID

Najważniejsze terminy:

  • Buforowanie (cache) — pamięć pośrednia na kontrolerze lub w systemie plików, przyspiesza operacje I/O; istotna jest trwałość zapisu w cache (bateria, kondensator lub trwały cache).
  • Odwzorowanie (mirroring) — przechowywanie więcej niż jednej kopii tych samych danych (np. RAID 1).
  • Striping — dzielenie danych na kawałki i rozkładanie ich na kolejnych dyskach (poprawia przepustowość).
  • Parytet — dodatkowe dane obliczane z bloków informacji, wykorzystywane do odtworzenia danych przy awarii dysku.
  • Gorące części zamienne (hot spare) — dysk zapasowy podłączony i gotowy do automatycznego przejęcia roli uszkodzonego dysku podczas rebuildu.
  • Rozmiar paska (stripe size) — rozmiar bloku danych rozkładanego na pojedynczym dysku w stripe; wpływa na wydajność zależnie od typu obciążeń.
  • JBOD (Just a Bunch Of Disks) — łączenie dysków bez RAID (konkatenacja); widoczne jako pojedynczy duży wolumin, bez redundancji.
  • Drive Clone — tworzenie kopii jednego dysku na inny; różni się od ciągłej redundancji RAID.

3. Podstawy: proste poziomy RAID

Poniżej opis najczęściej spotykanych poziomów — ich zachowanie, korzyści i ograniczenia.

3.1 Powszechnie stosowane poziomy RAID

3.1.1 RAID 0 — "striping"

Opis: Dane dzielone na bloki i rozkładane na wszystkich dyskach. Brak redundancji.

Zalety: Maksymalna pojemność (suma pojemności dysków) i zwiększona wydajność zapisu/odczytu przy dużych transferach sekwencyjnych.

Wady: Brak odporności — awaria jednego dysku skutkuje utratą wszystkich danych.

3.1.2 RAID 1 — "zwierciadło"

Opis: Dane zapisywane są jednocześnie na co najmniej dwóch dyskach w postaci dokładnej kopii.

Zalety: Wysoka odporność na awarię pojedynczego dysku; prosty proces odzyskiwania (wymiana i synchronizacja).

Wady: Efektywna pojemność to połowa sumy (przy dwóch dyskach); kosztowny jeżeli zależy nam na dużej pojemności.

3.1.3 RAID 5 — "striping z parytetem rozłożonym"

Opis: Dane i parytet rozkładane są na wszystkie dyski (minimum 3). Parytet umożliwia odzyskanie danych po awarii jednego dysku.

Zalety: Dobra równowaga między pojemnością, wydajnością odczytu i odpornością przy użyciu jednej jednostki pojemności na parytet (efektywna pojemność = (N-1) * rozmiar_dysku).

Wady: Zapis jest obciążony dodatkowymi operacjami parytetu (mniejsze prędkości zapisu); ryzyko podczas odbudowy przy dużych dyskach — możliwe wystąpienie błędu nieodwracalnego odczytu (URE).

3.1.4 RAID 6

Opis: Podobny do RAID 5, ale wykorzystuje podwójny parytet — pozwala na awarię dwóch dysków równocześnie (minimum 4 dyski).

Zalety: Wyższa odporność niż RAID 5 — bezpieczniejszy przy dużych dyskach i długim czasie rebuildu.

Wady: Większe koszty pojemności (dwa dyski przeznaczone na parytet) i większa złożoność obliczeń.

RAID 10 (1+0) — zagnieżdżony

Opis: Połączenie mirroringu i stripingu: tworzy się zestawy lustrzane, które następnie są łączone w stripe (minimum 4 dyski).

Zalety: Bardzo dobra wydajność i odporność — szybkie odczyty i zapisy oraz wysoka dostępność.

Wady: Kosztowny pod względem pojemności (efektywnie połowa sumy przy dwóch kopiach).

3.2 Poziomy RAID stosowane w mniejszym stopniu

RAID 2, 3 i 4 są rzadziej używane w praktyce — mają specyficzne wymagania (np. synchronizacja obrotów, dedykowany dysk parytetowy) i zostały w dużej mierze zastąpione przez bardziej elastyczne rozwiązania (RAID 5/6).

3.3 Niestandardowe poziomy i rozszerzenia

Istnieją warianty i rozszerzenia: RAID 5E/5EE/6E (zintegrowany hot spare), RAID-DP (podwójny parytet w systemach NetApp), RAID-Z (implementacja parytetu w ZFS zapobiegająca tzw. "write hole"), Macierz Intel Matrix (umożliwia tworzenie woluminów o różnych RAID na tym samym zestawie dysków). Sterowniki MD RAID w Linuksie pozwalają na programowe realizowanie wielu poziomów RAID.

4. Łączenie poziomów RAID

Łączenie (nested RAID) np. RAID 50 (striping nad RAID 5) lub RAID 60 (striping nad RAID 6) łączy korzyści różnych poziomów: wyższą odporność i lepszą wydajność przy dużej liczbie dysków. Wybór zależy od wymagań dotyczących IOPS, przepustowości, pojemności i tolerancji awarii.

5. Tworzenie macierzy RAID

5.1 Oprogramowanie RAID

Realizowane przez system operacyjny lub specjalne narzędzia (np. mdadm w Linux). Zalety: elastyczność, brak dodatkowego kosztu sprzętowego, łatwiejsze przenoszenie zestawu dysków między maszynami. Wady: większe zużycie CPU, czasami niższa wydajność niż w przypadku wyspecjalizowanego kontrolera sprzętowego.

5.2 Sprzętowa macierz RAID

Wykorzystywany jest dedykowany kontroler RAID z własnym procesorem i pamięcią cache. Zalety: wysoka wydajność, odciążenie CPU, zaawansowane funkcje (BBU, cache, offload obliczeń parytetu). Wady: koszt, zależność od producenta kontrolera (migracja między kontrolerami może być problematyczna).

5.3 Sprzętowo wspomagana macierz RAID (tzw. "fake RAID")

Rozwiązanie hybrydowe — sprzęt zapewnia część funkcji, ale odtwarzanie/algorytmy są realizowane przez sterowniki systemu. Czasem bywa mniej stabilne i przenośne niż klasyczny sprzętowy RAID.

6. Różne terminy związane z awariami sprzętu

  • Wskaźnik awaryjności / MTBF — parametr określający średni czas między awariami; użyteczny przy planowaniu redundancji.
  • MTTDL (Mean Time To Data Loss) — statystyczna miara ryzyka utraty danych; zależy od liczby dysków, poziomu RAID i czasu odbudowy.
  • MTTR (Mean Time To Repair) — średni czas przywrócenia poprawnej pracy po awarii (wymiana dysku + rebuild).
  • Nieodzyskiwalna bitowa stopa błędów (UBER) — prawdopodobieństwo wystąpienia błędu przy dużych transferach; istotna podczas rebuildów, bo URE może uniemożliwić odzyskanie danych w RAID 5 przy jednym dysku parzystości.

7. Problemy z RAID

Typowe zagrożenia i ograniczenia:

  • Dodawanie dysków później: możliwe, ale wymaga rozszerzania woluminów i przeliczeń parytetu — ryzykowne przy złej implementacji.
  • Powiązane awarie: dyski kupione jednocześnie mogą wykazywać zbieżne awarie (np. wada fabryczna) — warto miksować partie i producentów.
  • Atomowość: RAID nie gwarantuje atomowych operacji na poziomie plików — możliwe uszkodzenia logiczne przy awariach w trakcie zapisu.
  • Dane nieodzyskiwalne: RAID chroni przed awarią urządzeń, ale nie przed URE, awarią kontrolera, uszkodzeniem logicznym czy atakiem malware.
  • Niezawodność zapisu w pamięci podręcznej: brak trwałego zabezpieczenia cache (BBU, kondensator, nieulotny cache) zwiększa ryzyko utraty danych przy utracie zasilania.
  • Kompatybilność urządzeń: migracja macierzy między różnymi kontrolerami może być utrudniona lub niemożliwa.

8. Co RAID może, a czego nie może zrobić

8.1 Co RAID może zrobić

  • Zwiększyć odporność na awarię jednego lub kilku dysków (w zależności od poziomu).
  • Zwiększyć wydajność I/O przez równoległe operacje na wielu dyskach.
  • Umożliwić płynną wymianę dysków bez przerywania pracy w wielu konfiguracjach (hot-swap).

8.2 Czego RAID nie może zrobić

  • Nie zastąpi kopii zapasowej — nie chroni przed przypadkowym usunięciem, wirusami, uszkodzeniem logicznym aplikacji czy katastrofami fizycznymi.
  • Nie gwarantuje całkowitej ochrony przy rosnących rozmiarach dysków — zwiększa się ryzyko URE podczas rebuildu (zwłaszcza w RAID 5).

9. Przykład

Przykład prosty: RAID 5 z trzema dyskami po 2 TB każdy:

  • Efektywna pojemność = (N - 1) * rozmiar_dysku = (3 - 1) * 2 TB = 4 TB.
  • System może tolerować awarię jednego dysku. Po wymianie uszkodzonego dysku kontroler odtwarza brakujące bloki używając parytetu — proces ten nazywa się rebuildem i może trwać wiele godzin (lub dni) zależnie od rozmiaru dysków i obciążenia systemu.
  • Jeśli podczas rebuildu wystąpi URE i brakujący sektor nie będzie możliwy do odczytania, przy RAID 5 może dojść do utraty danych. RAID 6 z dwoma parytetami zminimalizowałby to ryzyko.

10. Najlepsze praktyki i wskazówki

  • Nie polegaj wyłącznie na RAID jako na jedynej metodzie ochrony — regularne kopie zapasowe poza macierzą są konieczne.
  • Wybierz poziom RAID odpowiedni do potrzeb: RAID 1/10 dla krytycznych baz danych (niskie opóźnienia), RAID 6/60 dla dużych pojemności i bezpieczeństwa przy dyskach o dużych pojemnościach.
  • Monitoruj stan SMART dysków i ustaw alerty — wczesne wykrycie problemu pozwala działać zanim dojdzie do większej awarii.
  • Regularnie testuj procedury odzyskiwania i wymiany dysków.
  • Rozważ zastosowanie hot spare i kontrolera z trwałym cache dla bezpieczeństwa zapisu.

11. Podsumowanie

RAID to potężne narzędzie do poprawy wydajności i odporności systemów magazynowania danych, ale ma swoje ograniczenia i ryzyka. Wybór właściwego poziomu, odpowiednia konfiguracja sprzętowa/oprogramowania oraz dodatkowe kopie zapasowe i monitoring są kluczowe, by korzystać z zalet RAID bez narażania integralności danych.

Referencje i dalsze lektury: klasyczny artykuł z 1988 roku oraz dokumentacja techniczna producentów kontrolerów, artykuły dotyczące informatyki, narzędzi takich jak mdadm czy systemów plików jak ZFS (porównanie RAID i RAID-Z).