Jak działa parzystość na macierzy RAID-5?

31

Chcę zbudować ładną macierz RAID dla dedykowanych kopii zapasowych. Chciałbym mieć około 2-4 TB dostępnej przestrzeni, ponieważ mam ten paskudny mały zwyczaj digitalizowania wszystkiego. Dlatego potrzebuję dużo pamięci masowej i dużo redundancji w przypadku awarii dysku. Zasadniczo będę tworzyć kopie zapasowe 2-3 komputerów ” /home foldery używające jednego z klonów „Time Machine” dla Linuksa. Ta tablica będzie dostępna w mojej sieci lokalnej za pośrednictwem SSH.

Mam trudności ze zrozumieniem, w jaki sposób RAID-5 osiąga równość i ile dysków jest rzeczywiście wymaganych. Można założyć, że potrzebuje 5 dysków, ale mogę się mylić. Większość diagramów, które widziałem, jeszcze mnie zdezorientowała. Wygląda na to, że tak działa RAID-5, popraw mnie, ponieważ jestem pewien, że nie rozumiem go właściwie:

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

Wydaje się, że dyski 1-3 pojawiają się i działają jako pojedynczy, ogromny dysk ( capacity * number_of_drives ) i napęd (y) parzystości tworzą kopie zapasowe tych dysków. To, co wydaje mi się dziwne, to to, że zwykle widzę dyski pamięci 3+ na diagramie tylko dla 1 lub 2 dysków parzystości. Powiedzmy, że uruchamiamy 4 dyski 1 TB w macierzy RAID-5, 3 działające pamięci i 1 działającą parzystość, mamy 3 TB rzeczywistej pamięci, ale tylko 1 TB parzystości!

Wiem, że coś tu brakuje, ktoś może mi pomóc? Co więcej, w moim przypadku użycia, co byłoby lepsze, RAID-5 lub RAID-6? Odporność na awarie jest dla mnie najwyższym priorytetem w tym momencie, ponieważ będzie działać w sieci tylko do użytku domowego, prędkość nie jest ogromnie krytyczny.

Naftuli Kay
źródło

Odpowiedzi:

30

To po prostu XORs każdy odpowiadający mu bit z każdego dysku - Jeśli stracisz dysk, możesz odbudować brakujące dane.

W tle:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

Załóżmy, że D jest XORem pozostałych kolumn, więc dopóki stracisz tylko jeden dysk, możesz dowiedzieć się, co straciłeś.

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

Czasami bit pasków będzie dystrybuowany na dyskach, ale koncepcja jest taka sama.

Tak więc w przypadku RAID-5, niezależnie od liczby dysków, wystarczy 1 dysk dla parzystości równej lub większej niż najmniejszy dysk w macierzy, którą chcesz RAID.

RAID-5 do użytku osobistego jest prawdopodobnie najlepszy, ponieważ złożoność obliczeniowa jest znacznie niższa niż RAID-6.

RAID-6 jest bardziej skomplikowany w użyciu Pola Galois obliczyć parzystość. A to może opodatkować obliczenia parzystości. Możesz jednak stracić więcej dysków, ale jeśli odbudujesz macierz natychmiast po wystąpieniu pojedynczej awarii, powinieneś dobrze trzymać się RAID-5.

Matt
źródło
Doskonała odpowiedź. Myślałem o zbyt dużej skali, na rzeczywistej kompletnej bazie dysku twardego, a nie na poziomie bitowym. Czy RAID-5 używa dedykowanego dysku do parzystości, czy raczej wszystkich napędów do parzystości? Jestem na to zmieszany.
Naftuli Kay
2
Wierzę, że nowoczesne podejście polega na rozłożeniu parzystości po przekątnej na wszystkie dyski. Efektem tego jest przyspieszenie czasu odczytu do bitów parzystości, ponieważ wiele żądań IO może być wysyłanych równolegle do różnych napędów, ale nie cytuj mnie na ten temat.
Matt
Czy istnieje formuła matematyczna, której mogę użyć do określenia podanej pojemności x dyski i y GB dostępne na każdym dysku?
Naftuli Kay
2
Tak, to (najmniejszy rozmiar dysku) * (liczba dysków w tablicy - 1)
Matt
1
Jeśli parzystość jest tylko XORem dwóch innych dysków, skąd wiesz, który z dwóch dysków był uszkodzony? Czy odrobina odwrócenia jednego z dysków nie spowodowałaby odwrócenia parytetu?
Jay Sullivan
7

Oto, co uważam za lepszy schemat pokazujący, jak parzystość działa w RAID4 i RAID5

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4
camster342
źródło
4

Polecam przeczytanie tego artykułu w Wikipedii na temat Raid 5 i Raid 6

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

RAID 5 zapisuje blok parzystości w każdym pasku, więc dla Strip A 4 macierzy dyskowej zapisuje kontrolę parzystości na czwartym dysku, z danymi na dyskach 1, 2 i 3

W przypadku paska B blok parzystości znajduje się na dysku 3, z danymi na dyskach 1,2 i 4 itd.

Jeśli powiedzie się, że dysk 4 nie powiedzie się, dane można odzyskać dla paska B, ponieważ znasz dane na dysku 1 i 2 i masz kontrolę parzystości na dysku 3.

Jeśli pasek B ma parzystość „2”, a dysk 1 ma dane „1” i dane dysku 2 „0”, dysk 4 musi mieć dane równe „1”, więc dysk jest zapisywany z danymi = „1”

Cały dysk można odtworzyć w ten sposób, RAID 6 rozszerza to dzięki 2 blokom stron na pasek.

Jeśli chodzi o miejsce na Raid 5, tracisz tylko jeden dysk o wartości miejsca na parzystość, ponieważ zapisuje on tylko na bloku parzystości na pasek, podczas gdy na Raid 6 stracisz 2 dyski, ale możesz także stracić dwa dyski, a nie ten, który możesz stracić Raid 5;)

Artykuł w Wikipedii wyjaśnia to lepiej!

markfknight
źródło
3

RAID 5 używa jednego dysku do kontroli parzystości, niezależnie od liczby dysków danych w macierzy. Oznacza to, że staje się bardziej wydajny pod względem powierzchni użytkowej, tym więcej dysków jest dodawanych.

Parzystość osiąga się poprzez wykonanie operacji XOR w tym samym bloku w każdym napędzie; zawartość napędu parzystości jest dostosowywana tak, aby wszystkie napędy XOR do zera . Oznacza to, że RAID 5 jest ograniczony o najmniejszą pojemność wszystkich dysków w tablicy.

RAID 6 jest podobny, z tą różnicą, że dwie jednoczesne awarie dysków mogą być tolerowane. Jest to przydatne, ponieważ proces „ resilvering „tablica po awarii jednego dysku może być wystarczająco stresująca, aby spowodować awarię drugiego dysku.

sblair
źródło
Oznacza to, że ja mogą masz 4 dyski o pojemności 2 TB i 6 TB efektywnej, nadmiarowej pamięci?
Naftuli Kay
@TK Kocheran Z RAID 5, tak. Należy pamiętać, że efektywna pamięć masowa będzie nieco mniejsza ze względu na system plików. Na przykład mój NAS z 4 dyskami 2 TB w RAID-Z1 (wersja RAID 5 ZFS) ma powierzchnię użytkową 5,18 TB.
sblair
No tak, oczywiście :) Zawsze tak się dzieje. Następne pytanie dotyczy tego, jakiego systemu plików użyć ...
Naftuli Kay
0

Jeśli twoim celem jest odporność na błędy, RAID-6 zapewni wystarczającą nadmiarowość, aby stracić dwa dyski. Zazwyczaj RAID-5 toleruje tylko jedną awarię dysku.

Nate
źródło
Jaki jest stosunek napędów do parzystości (całkowita pamięć) dla RAID-6? drive_size * (drive_count - 2)?
Naftuli Kay
1
Oprócz odporności na awarie dla drugiego dysku, który jest zły, zanim będzie można wymienić pierwszy, jest jeszcze jedna sytuacja, w której jest świetny i natknąłem się na więcej niż jeden raz: dysk źle działa w macierzy RAID, a więc nowy dysk został zamówiony. Jakiś przypadkowy facet, który nic nie wie o macierzach RAID, wchodzi do serwerowni z nowym dyskiem w ręku, zmienia numerację i wyrzuca niewłaściwy napęd z macierzy w celu wymiany. Pod RAID5 twoja tablica jest wkręcona. RAID6 oznacza, że ​​nadal możesz odzyskać.
camster342