- 7 stycznia, 2018
- Posted by: admin
- Category: Serwery i macierze

Pierwszy skomplikowany poziom macierzy RAID, który poddamy diagnostyce to RAID 5. Poziom ten jest podobny do RAID 0, bo w jego przypadku dane też są dzielone na paski. RAID 5 dodatkowo jeszcze oblicza parzystość, czym nie cechuje się poziom 0. RAID ten charakteryzuje się najniższym wśród poziomów redundancyjnych macierzy narzutem w redukowaniu dostępnej przestrzeni. RAID 5 może funkcjonować z min. trzema dyskami, przy czym toleruje awarię tylko jednego. Dla porównania, w cztero-dyskowej konfiguracji macierzy RAID 1 tolerowana jest awaria trzech dysków, natomiast w RAID 1E, 5EE, 6 i 10 awarii ulec mogą maksymalnie dwa dyski.
Oczywiście zalety i wady każdego z poziomów są zrównoważone. W RAID 5, dane zapisywane są w formie N-1 pasków i jednego paska parzystości. W przeciwieństwie do macierzy RAID 3 i 4 (których nie będziemy tu opisywać, bo RAID 5 je zastąpił), dane parzystości są zapisywane na wszystkich dyskach omawianej macierzy. Macierz RAID 5 ma cechę wspólną z tą pierwszego poziomu, a mianowicie oba przypadki charakteryzuje asymetria między prędkością odczytu, która jest lepsza niż na pojedynczym dysku, a zależną od rodzaju implementacji prędkością zapisu. Dodatkowo, wydajność wadliwej macierzy może być zmniejszona.
Na każdy „rząd” pasków znajdujących się na każdym dysku należących do macierzy, przypada jeden blok stanowiący sumę kontrolną reszty. W przypadku awarii komputera, blok parzystości najprawdopodobniej nie będzie zgodny z blokami, na których się znajdują dane.
Jeśli przed awarią dysku lub uszkodzeniem bloku użytkownik nie zdaje sobie sprawy z wystąpienia takiej sytuacji, rekonstrukcja danych może się odbyć nieprawidłowo (zjawisko potocznie nazywane ‘write hole’). Zapobiec czemuś takiemu może akumulator zabezpieczający pamięć podręczną. Przy nadpisywaniu jednego lub większej ilości bloków, nadpisana musi zostać również (ponownie przeliczona) suma kontrolna. Ma to skutek w ogromnym narzucie na kontroler i dyski podczas wykonywanych operacji na bardzo małych plikach. Tak więc proces ten jest ograniczony do:
- Odczytania starego bloku danych
- Odczytania starego bloku parzystości
- Porównania starego bloku do żądania zapisu i przeliczenia parzystości
- Zapisania nowego bloku danych
- Zapisania nowego bloku parzystości
Można więc powiedzieć, że operacje wykorzystujące dyski i przepustowość między nimi a kontrolerem w omawianej macierzy, należą do tych bardziej wymagających. Dodatkowo, w przypadku RAID programowego czy firmware, wszelkie obliczanie sum kontrolnych jest wykonywane przez procesor. Bloki parzystości nie są odczytywane przy normalnym odczytywaniu danych, ponieważ wymagałoby to dużego narzutu oraz oznaczałoby zmniejszenie wydajności. Te bloki są natomiast odczytywane w przypadku, gdy bloki na jednym ze dysków składowych macierzy zostaną uszkodzone. W takiej sytuacji suma kontrolna jest użyta do odbudowy danych. Podobnie jest w przypadku awarii całego dysku, kiedy to dane parzystości wykorzystuje się do natychmiastowej odbudowy. Jest to tzw. tymczasowy tryb rekonstrukcji danych, który polega na tym, że komputer wykrywa awarię macierzy, o czym powiadamiany jest administrator, podczas gdy wszystkie aplikacje są nadal zdolne do odczytu i zapisu danych. Oczywiście skutkuje to w degradacji wydajności.
Jeśli potrzebujesz odzyskać dane z dysku należącego do macierzy RAID 5, (kliknij tutaj)
Jeśli operacje są wykonywane na plikach o rozmiarach mniejszych niż paska, cykl „odczytaj-zmodyfikuj-zapisz”, który jest przedstawiony wyżej, wpływa to na wydajność macierzy RAID 5. Dzieje się tak, ponieważ każdy blok parzystości musi zostać nadpisany przez nowo obliczoną sumę kontrolną. Przy większej ilości dysków oznacza to wielokrotne nadpisywanie tego samego blogu parzystości w przypadku zapisywania danych na wszystkich blokach znajdujących się w jednym „rzędzie”. Z tego powodu wydajność macierzy RAID 5 jest niezadowalająca podczas losowego zapisu (np. baz danych). Bardziej zaawansowane implementacje tej macierzy używają nieulotnej pamięci podręcznej, która „magazynuje” wszystkie mniejsze polecenia zapisu, po czym dokonuje pełnego zapisu rzędu bloków danych. W ten sposób wszystkie bloki z danymi oraz blok z obliczoną sumą kontrolną zostają „zmagazynowane” za jednym zamachem. Jakość odczytu jest taka sama jak w macierzy RAID 0 z tą samą ilością dysków. Forma zapisywania poza paskiem parzystości też jest praktycznie taka sama jak w przypadku RAID 0, a jedyna różnica jest związana z omijaniem bloków parzystości.