Standardowe poziomy RAID — Standard RAID levels

W pamięci komputera , gdy standardowe poziomy RAID zawierać podstawowy zestaw RAID ( „ Redundant Array of Independent Disks «lub» Redundant Array niedrogich dysków ”) konfiguracje, które wykorzystują techniki striping , mirroring lub parytetu do tworzenia dużych wiarygodnych sklepów danych z wiele dysków twardych ogólnego przeznaczenia do komputerów (HDD). Najczęstsze typy to RAID 0 (striping), RAID 1 (dublowanie) i jego warianty, RAID 5 (rozproszona parzystość) i RAID 6 (podwójna parzystość). Wiele poziomów RAID można również łączyć lub zagnieżdżać , na przykład RAID 10 (striping of mirrors) lub RAID 01 (mirroring stripesets). Poziomy RAID i powiązane z nimi formaty danych są standaryzowane przez stowarzyszenie Storage Networking Industry Association (SNIA) w standardzie Common RAID Disk Drive Format (DDF). Wartości liczbowe służą jedynie jako identyfikatory i nie oznaczają wydajności, niezawodności, generacji ani żadnych innych mierników.

Podczas gdy większość poziomów RAID może zapewnić dobrą ochronę przed defektami sprzętowymi lub wadliwymi sektorami/błędami odczytu (błędy twarde ) i ich odzyskiwanie , nie zapewniają one żadnej ochrony przed utratą danych z powodu katastrofalnych awarii (pożar, woda) lub błędów miękkich, takich jak błąd użytkownika , awaria oprogramowania lub infekcja złośliwym oprogramowaniem. W przypadku cennych danych macierz RAID jest tylko jednym z elementów większego schematu zapobiegania utracie danych i ich odzyskiwania — nie może zastąpić planu tworzenia kopii zapasowych .

RAID 0

Schemat konfiguracji RAID 0

RAID 0 (znany również jako zestaw z paskiem lub paski objętości ) szczelinami ( „ paski ”) danych równomiernie na dwóch lub więcej dysków, bez parzystości informacji, redundancji lub odporności na uszkodzenia . Ponieważ RAID 0 nie zapewnia odporności na błędy ani nadmiarowości, awaria jednego dysku spowoduje awarię całej macierzy; w wyniku rozłożenia danych na wszystkich dyskach awaria spowoduje całkowitą utratę danych. Ta konfiguracja jest zazwyczaj realizowana z szybkością jako zamierzonym celem. RAID 0 jest zwykle używany do zwiększenia wydajności, chociaż może być również używany jako sposób na utworzenie dużego woluminu logicznego z dwóch lub więcej dysków fizycznych.

Konfigurację RAID 0 można utworzyć z dyskami o różnych rozmiarach, ale przestrzeń dyskowa dodawana do macierzy przez każdy dysk jest ograniczona do rozmiaru najmniejszego dysku. Na przykład, jeśli dysk 120 GB zostanie rozłożony razem z dyskiem 320 GB, rozmiar macierzy wyniesie 120 GB × 2 = 240 GB. Jednak niektóre implementacje RAID umożliwiają wykorzystanie pozostałych 200 GB do innych celów.

Diagram w tej sekcji pokazuje, w jaki sposób dane są rozłożone na paski A x na dwóch dyskach, z A1:A2 jako pierwszym paskiem, A3:A4 jako drugim itd. Po zdefiniowaniu rozmiaru paska podczas tworzenia macierzy RAID 0 tablica, musi być utrzymywana przez cały czas. Ponieważ paski są dostępne równolegle, n- dyskowa macierz RAID 0 pojawia się jako pojedynczy duży dysk z szybkością transmisji danych n razy większą niż szybkość pojedynczego dysku.

Występ

Macierz RAID 0 składająca się z n dysków zapewnia szybkość odczytu i zapisu danych nawet n razy wyższą niż szybkość poszczególnych dysków, ale bez nadmiarowości danych. W rezultacie RAID 0 jest używany przede wszystkim w aplikacjach, które wymagają wysokiej wydajności i są w stanie tolerować niższą niezawodność, takich jak obliczenia naukowe lub gry komputerowe .

Niektóre testy porównawcze aplikacji komputerowych pokazują, że wydajność RAID 0 jest nieznacznie lepsza niż w przypadku pojedynczego dysku. W innym artykule przeanalizowano te twierdzenia i stwierdzono, że „striping nie zawsze zwiększa wydajność (w niektórych sytuacjach będzie faktycznie wolniejszy niż konfiguracja bez RAID), ale w większości sytuacji przyniesie znaczną poprawę wydajności”. Syntetyczne testy porównawcze pokazują różne poziomy poprawy wydajności, gdy w konfiguracji RAID 0 używanych jest wiele dysków HDD lub SSD, w porównaniu z wydajnością pojedynczego dysku. Jednak niektóre syntetyczne testy porównawcze również wykazują spadek wydajności dla tego samego porównania.

RAID 1

Schemat konfiguracji RAID 1

RAID 1 składa się z dokładnej kopii (lub lustrzanego odbicia ) zestawu danych na dwóch lub więcej dyskach; klasyczna para lustrzana RAID 1 zawiera dwa dyski. Ta konfiguracja nie oferuje parzystości, pasków ani dzielenia przestrzeni dyskowej na wiele dysków, ponieważ dane są dublowane na wszystkich dyskach należących do macierzy, a macierz może być tak duża, jak najmniejszy dysk członkowski. Ten układ jest przydatny, gdy wydajność odczytu lub niezawodność jest ważniejsza niż wydajność zapisu lub wynikowa pojemność przechowywania danych.

Macierz będzie działać tak długo, jak będzie działał co najmniej jeden dysk członkowski.

Występ

Każde żądanie odczytu może być obsługiwane i obsługiwane przez dowolny dysk w macierzy; w związku z tym, w zależności od charakteru obciążenia we/wy, wydajność odczytu losowego macierzy RAID 1 może być równa sumie wydajności każdego elementu, podczas gdy wydajność zapisu pozostaje na poziomie pojedynczego dysku. Jeśli jednak w macierzy RAID 1 używane są dyski o różnych szybkościach, ogólna wydajność zapisu jest równa szybkości najwolniejszego dysku.

Syntetyczne testy porównawcze pokazują różne poziomy poprawy wydajności, gdy w konfiguracji RAID 1 używanych jest wiele dysków HDD lub SSD, w porównaniu z wydajnością pojedynczego dysku. Jednak niektóre syntetyczne testy porównawcze również wykazują spadek wydajności dla tego samego porównania.

RAID 2

Schemat konfiguracji RAID 2

RAID 2 , który jest rzadko używany w praktyce, rozkłada dane na poziomie bitowym (a nie blokowym) i wykorzystuje kod Hamminga do korekcji błędów . Dyski są synchronizowane przez kontroler, aby obracały się w tej samej orientacji kątowej (osiągają indeks w tym samym czasie), więc generalnie nie może obsługiwać wielu żądań jednocześnie. Jednak, w zależności od kodu Hamminga o wysokiej szybkości , wiele wrzecion działałoby równolegle, aby jednocześnie przesyłać dane, dzięki czemu możliwe są "bardzo wysokie szybkości przesyłania danych", jak na przykład w DataVault, gdzie jednocześnie przesyłano 32 bity danych.

Przy wszystkich dyskach twardych implementujących wewnętrzną korekcję błędów, złożoność zewnętrznego kodu Hamminga zapewniała niewielką przewagę nad parzystością, więc RAID 2 był rzadko wdrażany; jest to jedyny oryginalny poziom RAID, który nie jest obecnie używany.

RAID 3

Schemat konfiguracji RAID 3 z sześciobajtowymi blokami i dwoma bajtami parzystości , pokazano dwa bloki danych w różnych kolorach.

RAID 3 , który jest rzadko używany w praktyce, składa się z stripingu na poziomie bajtów z dedykowanym dyskiem z kontrolą parzystości . Jedną z cech RAID 3 jest to, że generalnie nie może obsługiwać wielu żądań jednocześnie, co dzieje się, ponieważ każdy pojedynczy blok danych będzie z definicji rozłożony na wszystkich członków zestawu i będzie znajdować się w tej samej fizycznej lokalizacji na każdym dysku. Dlatego każda operacja we/wy wymaga aktywności na każdym dysku i zwykle wymaga zsynchronizowanych wrzecion.

Dzięki temu nadaje się do zastosowań, które wymagają najwyższych szybkości transferu w długich sekwencyjnych odczytach i zapisach, na przykład podczas edycji nieskompresowanego wideo . Aplikacje, które wykonują małe odczyty i zapisy z losowych lokalizacji na dysku, uzyskają najgorszą wydajność z tego poziomu.

Wymóg, aby wszystkie dyski obracały się synchronicznie (w lockstepie ), dodał względy projektowe, które nie zapewniały znaczącej przewagi nad innymi poziomami RAID. Zarówno RAID 3, jak i RAID 4 zostały szybko zastąpione przez RAID 5. RAID 3 był zwykle implementowany sprzętowo, a problemy z wydajnością rozwiązywano przy użyciu dużych pamięci podręcznych dysków.

RAID 4

Diagram 1: Konfiguracja RAID 4 z dedykowanym dyskiem parzystości, w którym każdy kolor reprezentuje grupę bloków w odpowiednim bloku parzystości (pasek)

RAID 4 składa się z stripingu na poziomie bloków z dedykowanym dyskiem z kontrolą parzystości . W wyniku swojego układu, RAID 4 zapewnia dobrą wydajność losowych odczytów, podczas gdy wydajność losowych zapisów jest niska ze względu na konieczność zapisywania wszystkich danych parzystości na jednym dysku, chyba że system plików jest świadomy RAID-4 i kompensuje że.

Zaletą macierzy RAID 4 jest to, że można ją szybko rozszerzyć online, bez ponownego obliczania parzystości, o ile nowo dodane dyski są całkowicie wypełnione 0-bajtami.

Na diagramie 1 żądanie odczytu dla bloku A1 byłoby obsługiwane przez dysk 0. Jednoczesne żądanie odczytu dla bloku B1 musiałoby poczekać, ale żądanie odczytu dla B2 mogłoby być obsługiwane jednocześnie przez dysk 1.

RAID 5

Schemat układu RAID 5 z każdym kolorem reprezentującym grupę bloków danych i powiązany blok parzystości (pasek). Ten diagram pokazuje układ lewostronny asynchroniczny

RAID 5 składa się z stripingu na poziomie bloków z rozproszoną parzystością. W przeciwieństwie do RAID 4 informacje o parzystości są rozprowadzane między dyskami. Wymaga obecności wszystkich napędów oprócz jednego. W przypadku awarii pojedynczego dysku, kolejne odczyty można obliczyć na podstawie rozproszonej parzystości, tak aby żadne dane nie zostały utracone. RAID 5 wymaga co najmniej trzech dysków.

Istnieje wiele układów danych i parzystości w macierzy dyskowej RAID 5 w zależności od kolejności zapisu na dyskach, czyli:

  1. sekwencja zapisanych bloków danych, od lewej do prawej lub od prawej do lewej na macierzy dyskowej, dysków od 0 do N, oraz
  2. położenie bloku parzystości na początku lub na końcu paska, oraz
  3. położenie pierwszego bloku paska w stosunku do parzystości poprzedniego paska.

Rysunek po prawej pokazuje 1) bloki danych zapisane od lewej do prawej, 2) blok parzystości na końcu paska i 3) pierwszy blok następnego paska nie na tym samym dysku, co blok parzystości poprzedniego paska. Może być wyznaczony jako układ Left Asynchronous RAID 5 i jest to jedyny układ zidentyfikowany w ostatnim wydaniu The Raid Book opublikowanym przez nieistniejącą Radę Doradczą Raid. W układzie synchronicznym pierwszy blok danych następnego paska jest zapisywany na tym samym dysku, co blok parzystości poprzedniego paska.

W porównaniu do RAID 4, rozproszona parzystość RAID 5 wyrównuje obciążenie dedykowanego dysku parzystości wśród wszystkich członków RAID. Ponadto wydajność zapisu jest zwiększona, ponieważ wszyscy członkowie RAID uczestniczą w obsłudze żądań zapisu. Chociaż nie będzie to tak wydajne, jak konfiguracja stripingu (RAID 0), ponieważ nadal trzeba zapisywać parzystość, nie jest to już wąskie gardło.

Ponieważ obliczanie parzystości odbywa się na pełnym pasku, niewielkie zmiany w tablicy powodują wzmocnienie zapisu : w najgorszym przypadku, gdy ma zostać zapisany pojedynczy sektor logiczny, należy odczytać sektor oryginalny i odpowiadający mu sektor parzystości, oryginalne dane zostanie usunięty z parzystości, nowe dane zostaną przeliczone do parzystości i zostaną zapisane zarówno nowy sektor danych, jak i nowy sektor parzystości.

RAID 6

Schemat konfiguracji RAID 6, która jest identyczna z RAID 5 z wyjątkiem dodania drugiego bloku parzystości

RAID 6 rozszerza RAID 5 o kolejny blok parzystości ; w ten sposób, że używa blokowania -level przeplot z dwóch bloków parzystości rozproszonych na wszystkich dyskach członkowskich.

Podobnie jak w RAID 5, istnieje wiele układów macierzy dyskowych RAID 6 w zależności od kierunku zapisywania bloków danych, lokalizacji bloków parzystości w odniesieniu do bloków danych oraz tego, czy zapisywany jest pierwszy blok danych kolejnego paska na ten sam dysk, co ostatni blok parzystości poprzedniego paska. Rysunek po prawej to tylko jeden z wielu takich układów.

Według organizacji Storage Networking Industry Association (SNIA) definicja RAID 6 to: „Każda forma RAID, która może kontynuować wykonywanie żądań odczytu i zapisu na wszystkich dyskach wirtualnych macierzy RAID w przypadku wystąpienia dwóch współbieżnych awarii dysków. Kilka metod, w tym obliczenia danych podwójnego sprawdzenia (parzystość i Reed-Solomon ), ortogonalne dane podwójnej kontroli parzystości i parzystość diagonalna, zostały użyte do wdrożenia poziomu RAID 6."

Występ

RAID 6 nie ma kary wydajności dla operacji odczytu, ale ma karę wydajności dla operacji zapisu ze względu na obciążenie związane z obliczeniami parzystości. Wydajność różni się znacznie w zależności od tego, jak RAID 6 jest zaimplementowany w architekturze pamięci masowej producenta — w oprogramowaniu, oprogramowaniu układowym lub przy użyciu oprogramowania układowego i wyspecjalizowanych układów ASIC do intensywnych obliczeń parzystości. RAID 6 może czytać z taką samą szybkością jak RAID 5 przy tej samej liczbie dysków fizycznych.

Gdy używana jest podwójna parzystość diagonalna lub ortogonalna, dla operacji zapisu konieczne jest obliczenie drugiej parzystości. Podwaja to obciążenie procesora dla zapisów RAID-6 w porównaniu z poziomami RAID z pojedynczą parzystością. Gdy używany jest kod Reeda Solomona, drugie obliczenie parzystości nie jest konieczne. Reed Solomon ma tę zaletę, że pozwala na umieszczenie wszystkich informacji o nadmiarowości w danym pasku.

Uproszczony przykład z parzystością

Załóżmy, że chcielibyśmy dystrybuować nasze dane na porcje. Naszym celem jest zdefiniowanie dwóch wartości parzystości i , znanych jako syndromy , co skutkuje powstaniem systemu popędów fizycznych odpornych na utratę dowolnych dwóch z nich. Aby wygenerować więcej niż jeden niezależny syndrom, będziemy musieli wykonać nasze obliczenia parzystości na porcjach danych o rozmiarze . Typowym wyborem w praktyce jest rozmiar porcji , tj. rozłożenie danych na bajt. Oznaczymy reprezentację bazy 2 porcji danych jako , gdzie każda ma wartość 0 lub 1.

Jeśli używamy małej liczby kawałków , możemy użyć prostego obliczenia parzystości, które pomoże zmotywować do użycia systemu Reed-Solomon w ogólnym przypadku. Dla naszej pierwszej wartości parzystości obliczamy prosty XOR danych na paskach, tak jak w przypadku RAID 5. To jest napisane

gdzie oznacza operator XOR. Druga wartość parzystości jest analogiczna, ale z każdą porcją danych przesuniętą bitowo o inną wartość. Pisząc , definiujemy
W przypadku awarii pojedynczego dysku, dane można przeliczyć tak samo, jak w przypadku RAID 5. Pokażemy, że możemy również odzyskać dane z jednoczesnej awarii 2 dysków. Jeśli stracimy fragment danych i , możemy odzyskać pozostałe dane, wykorzystując fakt, że . Załóżmy, że w systemie porcji dysk zawierający porcję uległ awarii. Możemy obliczyć

i odzyskaj utracone dane , cofając przesunięcie bitowe. Możemy również odzyskać od awarii dwóch dysków danych poprzez obliczenie XOR oraz z pozostałymi danymi. Gdyby w poprzednim przykładzie chunk również został utracony, obliczylibyśmy

Na poziomie bitowym reprezentuje to układ równań w niewiadomych, które jednoznacznie określają utracone dane.

Ten system nie będzie już działał na większej liczbie dysków . Dzieje się tak, ponieważ jeśli wielokrotnie zastosujemy czasy operatora shift do kawałka długości , wrócimy do miejsca, w którym zaczęliśmy. Gdybyśmy spróbowali zastosować powyższy algorytm do systemu zawierającego dyski z danymi, prawa strona drugiego równania byłaby równa , która jest taka sama jak pierwszy zestaw równań. Dałoby to tylko połowę równań potrzebnych do znalezienia brakujących wartości.

Ogólny system parzystości

Możliwa jest obsługa znacznie większej liczby napędów poprzez bardziej ostrożny wybór funkcji parzystości. Problemem, przed którym stoimy, jest zapewnienie, że układ równań nad ciałem skończonym ma unikalne rozwiązanie, więc przejdziemy do teorii równań wielomianowych. Rozważmy pole Galois z . Pole to jest izomorficzne z polem wielomianowym dla odpowiedniego nierozkładalnego wielomianu stopnia powyżej . Będziemy reprezentować elementy danych jako wielomiany w polu Galois. Niech odpowiadają paskom danych na dyskach twardych zakodowanych w ten sposób jako elementy pola. Użyjemy do oznaczenia dodawania w polu, a konkatenacji do oznaczenia mnożenia. Ponowne użycie jest celowe: dzieje się tak, ponieważ dodawanie w polu skończonym reprezentuje operator XOR, więc obliczenie sumy dwóch elementów jest równoważne obliczeniu XOR na współczynnikach wielomianu.

Generatora pola jest elementem zakresie takim, że jest różne dla każdego przypadku ujemny . Oznacza to, że każdy element pola, z wyjątkiem wartości , może być zapisany jako potęga pola Skończone pole gwarantuje, że ma co najmniej jeden generator. Wybrać jeden taki generator i definiują i w następujący sposób:

Tak jak poprzednio, pierwsza suma kontrolna to po prostu XOR każdego paska, choć teraz interpretowana jako wielomian. Efekt można traktować jako działanie starannie dobranego rejestru przesuwnego z liniowym sprzężeniem zwrotnym na porcję danych. W przeciwieństwie do przesunięcia bitowego w uproszczony przykład, który może być zastosowany tylko razy przed kodowanie zaczął powtarzać, stosując operator wielokrotnie jest gwarantowany produkować unikalne funkcje odwracalne, które pozwolą długości fragment obsługiwać do kawałków danych.

W przypadku utraty jednej porcji danych sytuacja jest podobna do poprzedniej. W przypadku dwóch utraconych porcji danych możemy obliczyć formuły odzyskiwania algebraicznie. Załóżmy, że i są utraconymi wartościami z , a następnie, używając innych wartości , znajdujemy stałe i :

Możemy rozwiązać drugie równanie i podłączyć je do pierwszego, aby znaleźć , a następnie .

W przeciwieństwie do P , obliczenie Q wymaga stosunkowo dużej mocy obliczeniowej procesora, ponieważ obejmuje mnożenie wielomianu w . Można to złagodzić implementacją sprzętową lub FPGA .

Porównanie

Poniższa tabela zawiera przegląd niektórych kwestii dotyczących standardowych poziomów RAID. W każdym przypadku wydajność miejsca w tablicy jest podawana jako wyrażenie w postaci liczby dysków, n ; to wyrażenie oznacza wartość ułamkową od zera do jednego, reprezentującą ułamek sumy pojemności dysków, które są dostępne do użytku. Na przykład, jeśli trzy dyski są rozmieszczone w macierzy RAID 3, daje to wydajność przestrzeni macierzy wynoszącą 1 – 1/ n = 1 – 1/3 = 2/3 ≈ 67% ; zatem jeśli każdy dysk w tym przykładzie ma pojemność 250 GB, całkowita pojemność macierzy wynosi 750 GB, ale pojemność wykorzystywana do przechowywania danych wynosi tylko 500 GB.

Poziom Opis Minimalna liczba napędów Wydajność przestrzeni Tolerancja błędów Przeczytaj wydajność Zapisz wydajność
jako czynnik pojedynczego dysku
RAID 0 Stripowanie na poziomie bloków bez parzystości i dublowania 2 1 Nic n n
RAID 1 Odbicie lustrzane bez parzystości i pasków 2 1/n n − 1 awaria napędu n 1
RAID 2 Striping na poziomie bitowym z kodem Hamminga do korekcji błędów 3 1 − 1/nlog 2 ( n + 1) Awaria jednego dysku Zależy Zależy
RAID 3 Striping na poziomie bajtów z dedykowaną parzystością 3 1 − 1/n Awaria jednego dysku n − 1 n − 1
RAID 4 Stripowanie na poziomie bloków z dedykowaną parzystością 3 1 − 1/n Awaria jednego dysku n − 1 n − 1
RAID 5 Striping na poziomie bloków z rozproszoną parzystością 3 1 − 1/n Awaria jednego dysku n pojedynczy sektor: 1/4
pełny pasek: n − 1
RAID 6 Paski na poziomie bloków z podwójną parzystością rozłożoną 4 1 − 2/n Dwie awarie dysków n pojedynczy sektor: 1/6
pełny pasek: n − 2

Implikacje systemowe

W pomiarze wydajności we/wy pięciu systemów plików z pięcioma konfiguracjami pamięci masowej — z jednym dyskiem SSD, RAID 0, RAID 1, RAID 10 i RAID 5, wykazano, że F2FS na RAID 0 i RAID 5 z ośmioma dyskami SSD pięciokrotnie przewyższa EXT4 i 50 razy. Pomiary sugerują również, że kontroler RAID może być znaczącym wąskim gardłem w budowaniu systemu RAID z szybkimi dyskami SSD.

Zagnieżdżony RAID

Kombinacje dwóch lub więcej standardowych poziomów RAID. Znane są również jako RAID 0+1 lub RAID 01, RAID 0+3 lub RAID 03, RAID 1+0 lub RAID 10, RAID 5+0 lub RAID 50, RAID 6+0 lub RAID 60 i RAID 10+0 lub RAID 100.

Warianty niestandardowe

Oprócz standardowych i zagnieżdżonych poziomów RAID alternatywy obejmują niestandardowe poziomy RAID i architektury dysków inne niż RAID . Architektury dysków inne niż RAID są określane podobnymi terminami i akronimami, w szczególności JBOD („tylko kilka dysków”), SPAN/BIG i MAID („masywna tablica bezczynnych dysków”).

Uwagi

Bibliografia

Dalsza lektura

Linki zewnętrzne