niedziela,
RAID: Bit parzystości – przykład
Bit parzystości w macierzach RAID (ang. Redundant Array of Independent Disks) służy do zapewnienia odporności na awarie poprzez umożliwienie odtworzenia danych z utraconego dysku. Załóżmy, że mamy prosty przykład RAID z parzystością, z trzema dyskami: dysk A, dysk B i dysk parzystości (P). Dane znajdują się na dwóch pierwszych i są przeplecione pomiędzy dyskami (jak w RAID 0), na dysku P zapisywane są bity parzystości.
Jak obliczyć bit parzystości i jak odzyskać dane w przypadku awarii któregoś z dysków? Dla uproszczenia przykład dotyczy tylko dwóch bajtów (16 bitów) danych. Oczywiście w przypadku RAID obliczeń dokonuje system, jednak warto znać zasadę działania.
Obliczenie bitu parzystości
- Dysk A zawiera bajt danych
10101010
. - Dysk B zawiera bajt danych
11001100
.
Obliczamy bit parzystości dla każdego bitu w bajtach danych na dysku A i B. Parzystość jest obliczana poprzez wykonanie operacji XOR (exclusive OR) na odpowiadających sobie bitach bajtów na Dysku A i B. W przypadku RAID z parzystością wynik operacji XOR dla dwóch bitów jest zapisywany na dysku parzystości. Operator XOR (exclusive OR) porównuje dwa bity i zwraca 1, jeśli bity są różne oraz 0, jeśli są takie same (oba 0 lub oba 1).
Jak to działa?
- bity na dysku A:
10101010
; - bity na dysku B:
11001100
,
Operacja XOR między bitami z dysków A i B daje nam bity parzystości, zapisywane na dysku P: 01100110
.
10101010
XOR
11001100
--------
01100110
Teraz mamy trzy dyski:
- dysk A:
10101010
; - dysk B:
11001100
; - dysk P (Parzystość):
01100110
.
Awaria dysku B
Załóżmy, że dysk B ulega awarii. Aby odtworzyć dane z dysku B, wykonujemy operację XOR między bitami na dysku A i dysku P:
- Bity na dysku A:
10101010
- Bity na dysku P:
01100110
Operacja XOR między dyskiem A i P daje nam oryginalne bity na Dysku B:
11001100
10101010 (dysk A) XOR 01100110 (dysk P) -------- 11001100
W ten sposób, jeśli jeden z dysków ulegnie awarii, możemy odtworzyć jego dane, korzystając z bitów parzystości. To zapewnia redundancję i zwiększa niezawodność w tablicach RAID.
Awaria dysku A
Gdyby dysk A uległ awarii, moglibyśmy użyć danych z dysku B oraz bitów parzystości z dysku P, aby odtworzyć utracone dane. Jak to zrobić, korzystając z danych z przykładu?
- Dysk B:
11001100
- Dysk P (Parzystość):
01100110
Aby odtworzyć dane z uszkodzonego dysku A, wykonujemy operację XOR między bitami na dysku B i dysku P.
11001100 (dysk B)
XOR
01100110 (dysk P)
––––––––––––
10101010
Wynik operacji XOR to 10101010
, co odpowiada oryginalnym danym z uszkodzonego dysku A.
Jak widać, jeśli dysk A ulegnie awarii, jesteśmy w stanie odtworzyć jego dane, wykorzystując informacje zapisane na pozostałych dyskach. Jest to kluczowa zaleta wykorzystania RAID z parzystością — zapewnia on odporność na awarie pojedynczego dysku, co jest bardzo cenne w systemach wymagających wysokiej dostępności danych.
Awaria dysku P
W przypadku awarii dysku P (dysku parzystości) w omawianej konfiguracji, nie tracimy żadnych danych. Jest to najprostsza i najbardziej oczywista sytuacja. Dysk parzystości służy wyłącznie do odtwarzania danych w przypadku awarii jednego z pozostałych dysków. Gdy tylko dysk parzystości ulegnie awarii, nie możemy odtwarzać danych w przypadku kolejnej awarii dysku, ale wszystkie aktualne dane są nadal dostępne i bezpieczne.
W normalnym użytkowaniu, bez awarii innych dysków, omawiany system RAID pozbawiony dysku parzystości działa jak standardowa tablica RAID bez redundancji. Oznacza to, że możemy czytać i zapisywać dane bez żadnych ograniczeń. Jednakże, do czasu zastąpienia i odbudowy uszkodzonego dysku parzystości, system jest podatny na utratę danych w przypadku awarii któregokolwiek z pozostałych dysków.
Dane zapisane na dyskach po awarii dysku P.
- Dysk A:
10101010
- Dysk B:
11001100
- Dysk P: Uszkodzony/Brak
W tej sytuacji nadal mamy dostęp do danych z dysków A i B. Operacje odczytu i zapisu są na tych dyskach wykonywane normalnie. Jednakże, jeśli którykolwiek z tych dysków (A lub B) ulegnie dodatkowej awarii przed odbudowaniem Dysku P, dane mogą zostać utracone, ponieważ mechanizm RAID nie będzie już w stanie odtworzyć brakujących danych bez dysku P. Ważne jest, aby jak najszybciej zastąpić i odbudować uszkodzony dysk parzystości w systemie, aby przywrócić pełną redundancję i ochronę przed awariami.