Założono w 2008 · Wydanie cyfrowe · 19 czerwiec 2026

SMB IT Journal

Źródło wiedzy o technologiach informatycznych dla małych firm

Polski
Pamięć masowa

RAID z perspektywy czasu

Kiedy byłem początkującym technikiem serwisowym i ledwo wiedziałem cokolwiek o administracji systemami, jednym z nielicznych tematów, które zawsze musieliśmy znać na wylot, był RAID – Redundant Array of Inexpensive Disks. Był odpowiedzią na wszystkie nasze problemy z pamięcią masową. Dzięki RAID mogliśmy skalować nasze systemy plików, uzyskać lepszą przepustowość, a nawet dodać nadmiarowość, pozwalającą przeżyć utratę dysku, co szczególnie w tamtych czasach zdarzało się dość regularnie. Wraz z rozwojem urządzeń pamięci masowej NAS i SAN, umiejętność zejścia do poziomu fizycznej pamięci masowej i dostosowania jej do potrzeb konkretnego systemu szybko zanika. To nie jest dobra tendencja. Sam fakt, że przenosimy pamięć masową na zewnętrzne urządzenia, nie zmienia faktu, że musimy dogłębnie rozumieć naszą pamięć masową i konfigurować ją odpowiednio do specyficznych potrzeb naszych systemów.

Błędne przekonanie, które wydaje się zaistniało w branży w ciągu ostatnich pięciu do dziesięciu lat, to wiara, że RAID w jakiś sposób stanowi backup systemu. Tak nie jest. RAID jest formą odporności na awarie. Backup i odporność na awarie to dwa bardzo różne pojęcia. Backup jest zaprojektowany tak, aby umożliwić odtworzenie systemu po katastrofie. Odporność na awarie jest zaprojektowana tak, aby zmniejszyć szansę katastrofy. Wyobraź sobie odporność na awarie jako budowanie ogrodzenia na szczycie klifu, a backup jako budowanie szpitala u jego podstawy. Nigdy nie chcesz być w sytuacji bez zarówno ogrodzenia, jak i szpitala, ale to zdecydowanie różne rzeczy.

Gdy wdrażamy RAID dla naszych dysków, zarówno podłączonych lokalnie, jak i na zdalnym urządzeniu takim jak SAN, mamy dzisiaj do wyboru cztery kluczowe rozwiązania RAID dla biznesu: RAID 1 (mirroring), RAID 5 (striping z parzystością), RAID 6 (striping z podwójną parzystością) i RAID 10 (mirroring ze stripingiem). Istnieją inne, jak RAID 0, które powinny być używane tylko w rzadkich okolicznościach, gdy naprawdę rozumiemy potrzeby naszego podsystemu dysków. RAID 50 i 51 są również stosowane, ale znacznie rzadziej i nie są tak skuteczne. Dziesięć lat temu RAID 1 i RAID 5 były popularne, ale dziś mamy więcej opcji.

Przejdźmy przez opcje i omówmy kilka podstawowych liczb. W naszych przykładach użyjemy n do reprezentowania liczby dysków w naszej macierzy oraz s do reprezentowania rozmiaru dowolnego pojedynczego dysku. Używając ich możemy wyrazić użyteczną przestrzeń dyskową macierzy, ułatwiając porównania pod względem pojemności pamięci masowej.

RAID 1: W tym typie RAID dyski są mirrorowane. Masz dwa dyski, które robią wszystko razem w tym samym czasie, stąd “mirroring”. Mirroring jest niezwykle stabilny, ponieważ proces jest tak prosty, ale wymaga zakupu dwa razy więcej dysków niż potrzebowałbyś bez RAID, ponieważ drugi dysk jest dedykowany nadmiarowości. Zaletą jest pewność, że każdy bit zapisywany na dysku jest zapisywany dwukrotnie dla ochrony. Tak więc w RAID 1 pojemność obliczamy jako (n*s/2). RAID 1 cierpi na minimalne przyrosty wydajności w stosunku do dysków bez RAID. Prędkości zapisu są równoważne systemowi bez RAID, podczas gdy prędkości odczytu są prawie dwa razy szybsze w większości sytuacji, ponieważ podczas operacji odczytu dyski mogą działać równolegle, zwiększając przepustowość. RAID 1 jest ograniczony do zestawów dwóch dysków.

RAID 5: Striping z pojedynczą parzystością. W tym typie RAID dane są zapisywane w złożonym pasmie (stripe) na wszystkich dyskach macierzy z rozproszonym blokiem parzystości, który istnieje na wszystkich dyskach. Dzięki temu RAID 5 może korzystać z macierzy o dowolnym rozmiarze składającej się z trzech lub więcej dysków i traci jedynie pojemność równoważną pojedynczemu dyskowi na parzystość, choć parzystość jest rozproszona i nie istnieje wyłącznie na żadnym jednym fizycznym dysku. RAID 5 jest często stosowany ze względu na jego opłacalność wynikającą z niewielkiej utraty pojemności w dużych macierzach. W przeciwieństwie do mirroringu, striping z parzystością wymaga wykonania obliczeń dla każdego paska zapisu na dyskach, co tworzy pewien narzut. Dlatego przepustowość nie zawsze jest oczywistym obliczeniem i jest silnie zależna od mocy obliczeniowej systemu wykonującego obliczenia parzystości. Obliczanie pojemności RAID 5 jest dość proste: ((n-1)*s). Macierz RAID 5 może przeżyć utratę dowolnego pojedynczego dysku w macierzy.

RAID 6: Redundantny striping z podwójną parzystością. RAID 6 jest praktycznie identyczny z RAID 5, ale używa dwóch bloków parzystości na pasmo zamiast jednego, aby zapewnić dodatkową ochronę przed awariami dysków. RAID 6 jest nowszym członkiem rodziny RAID, dodanym kilka lat po standaryzacji innych poziomów. RAID 6 jest wyjątkowy tym, że pozwala na awarię dowolnych dwóch dysków w macierzy bez utraty danych. Aby jednak pomieścić dodatkowy poziom nadmiarowości, macierz RAID 6 traci pojemność równoważną dwóm dyskom i wymaga co najmniej czterech dysków. Możemy obliczyć pojemność macierzy RAID 6 za pomocą ((n-2)*s).

RAID 10: Mirroring plus striping. Technicznie RAID 10 jest hybrydowym typem RAID obejmującym zestaw mirrorów RAID 1 istniejących w pasmie bez parzystości (RAID 0). Wielu dostawców używa terminu RAID 10 (lub RAID 1+0) mówiąc o tylko dwóch dyskach w macierzy, ale technicznie jest to RAID 1, ponieważ striping nie może wystąpić do momentu, gdy w macierzy jest co najmniej cztery dyski. W RAID 10 dyski muszą być dodawane parami, więc w macierzy może istnieć tylko parzysta liczba dysków. RAID 10 może przeżyć utratę do połowy całkowitego zestawu dysków, ale maksymalnie jednego z każdej pary. RAID 10 nie wymaga obliczania parzystości, co daje mu przewagę wydajnościową nad RAID 5 lub RAID 6 i wymaga mniejszej mocy obliczeniowej do napędzania macierzy. RAID 10 zapewnia najlepszą wydajność odczytu spośród wszystkich popularnych typów RAID, ponieważ wszystkie dyski w macierzy mogą być używane jednocześnie podczas operacji odczytu, choć jego wydajność zapisu jest znacznie niższa. Obliczenie pojemności RAID 10 jest identyczne z RAID 1: (n*s/2).

W dzisiejszym środowisku korporacyjnym rzadko zdarza się, aby dział IT miał poważną potrzebę rozważenia jakiejkolwiek konfiguracji dysków spoza czterech wymienionych tutaj, niezależnie od tego, czy wdrażany jest software RAID, czy hardware RAID. Tradycyjnie największą troską przy wyborze macierzy RAID była użyteczna pojemność. Wynikało to z tego, że dyski były drogie i małe. Dziś dyski są tak duże, że pojemność pamięci masowej rzadko stanowi problem, przynajmniej nie tak jak jeszcze kilka lat temu, a koszty spadły tak, że zakup dodatkowych dysków niezbędnych do lepszej nadmiarowości dysków jest generalnie kwestią drugorzędną. Gdy pojemność jest w cenie, RAID 5 jest popularnym wyborem, ponieważ traci najmniej pojemności w porównaniu z innymi typami macierzy, a w dużych macierzach utrata pamięci masowej jest nominalna.

Dziś mamy generalnie inne obawy, przede wszystkim bezpieczeństwo danych i wydajność. Wydanie nieco więcej, aby zapewnić ochronę danych, powinno być oczywistym wyborem. RAID 5 ma wadę polegającą na tym, że może utracić tylko jeden dysk. W macierzy złożonej z zaledwie trzech dysków jest to tylko nieznacznie bardziej niebezpieczne niż ochrona oferowana przez RAID 1. Możemy przeżyć utratę jednego z trzech dysków. Niezbyt przerażające w porównaniu z utratą jednego z dwóch dysków. Ale co z dużą macierzą, powiedzmy szesnaście dysków? Możliwość bezpiecznej utraty tylko jednego z szesnastu dysków powinna skłonić nas do głębszego przemyślenia niezawodności.

Właśnie tutaj RAID 6 wkroczył, aby wypełnić tę lukę. RAID 6, stosowany w dużej macierzy, wprowadza bardzo małą utratę pojemności i wydajności, zapewniając jednocześnie pewność możliwości utraty dowolnych dwóch dysków. Zwolennicy stripingu z parzystością często przytaczają te liczby, aby zapewnić kierownictwo, że RAID 5/6 może zapewnić odpowiedni stosunek “jakości do ceny” w podsystemach pamięci masowej, ale w grę wchodzą inne czynniki.

Prawie całkowicie pomijane w dyskusjach na temat niezawodności RAID – zbyt rzadko poruszany temat – jest pytanie o niezawodność obliczeń parzystości. W RAID 1 lub RAID 10 nie jest wykonywane żadne “obliczenie” w celu utworzenia pasma z parzystością. Dane są po prostu zapisywane w stabilny sposób. Gdy dysk zawiedzie, jego partner przejmuje obciążenie, a wydajność dysków jest nieznacznie obniżona do czasu wymiany partnera. Nie ma procesu odbudowy, który wpływa na istniejące elementy dysków. Inaczej jest w przypadku pasm z parzystością.

Macierze RAID z parzystością mają operacje polegające na obliczaniu tego, co jest i co powinno być na dyskach. Chociaż obliczenie to jest bardzo proste, stwarza okazję do błędów. Kontroler macierzy, który zawiedzie z RAID 1 lub RAID 10, mógłby teoretycznie zapisać złe dane na dyskach, ale nie ma procesu, w którym kontroler samodzielnie dokonuje zmian na dyskach, więc jest to niezwykle mało prawdopodobne, ponieważ nigdy nie ma procesu “odbudowy” z wyjątkiem tworzenia mirrora.

Gdy macierze z parzystością wykonują operację odbudowy, przeprowadzają złożony proces, w którym przechodzą przez całą zawartość macierzy i zapisują brakujące dane z powrotem na wymieniony dysk. Sam w sobie jest to stosunkowo prosty proces i nie powinien budzić niepokoju. Co ja i inni widzieliśmy na własne oczy to nieco inny scenariusz obejmujący dyski, które utraciły łączność z powodu luźnych złącz z macierzą. Dyski mogą często “wytrząsnąć” się w czasie, siedząc w serwerze, szczególnie po kilku latach pracy w systemie zawsze włączonym.

W ekstremalnych scenariuszach może zdarzyć się, że dobre dane na dyskach zostaną nadpisane przez złe dane parzystości, gdy kontroler macierzy uzna, że jeden lub więcej dysków kolejno zawiodło i zostało przywróconego do trybu online do odbudowy. W tym przypadku same dyski nie zawiodły i nie ma utraty danych. Wystarczyłoby jedynie ponowne osadzenie dysków. W systemach hot-swap zarządzanie odbudową dysków jest często automatyczne, oparte na usunięciu i wymianie uszkodzonego dysku. Tak więc ten proces utraty i wymiany dysku może nastąpić bez żadnej interwencji człowieka – i może rozpocząć się proces odbudowy. W trakcie tego procesu system dysków jest zagrożony i gdyby to samo zdarzenie nastąpiło ponownie, macierz dysków może, w zależności od stanu dysków, zacząć pasmować złe dane na dyskach, nadpisując dobry system plików. To jeden z najbardziej przygnębiających widoków dla administratora serwera, gdy system bez żadnych uszkodzonych dysków traci całą macierz z powodu niepotrzebnej operacji odbudowy.

Teoretycznie tego typu sytuacja nie powinna wystąpić i istnieją zabezpieczenia chroniące przed nią, ale określenie przez niskopoziomowy kontroler dysków stanu dysku w danym momencie i wcześniej oraz jakości danych na nim znajdujących się nie jest tak proste, jak mogłoby się wydawać, i możliwe jest popełnianie błędów. Chociaż sytuacja ta jest mało prawdopodobna, zdarza się i dodaje prawie niemożliwe do obliczenia ryzyko do systemów RAID 5 i RAID 6. Musimy brać pod uwagę ryzyko awarii parzystości oprócz tradycyjnego ryzyka obliczonego z liczby utrat dysków, które macierz może przeżyć z puli. W miarę jak dyski stają się bardziej niezawodne, znaczenie ryzyka awarii parzystości wzrasta.

Ponadto parzystość RAID 5 i RAID 6 wprowadza narzut systemowy ze względu na obliczenia parzystości, które są często obsługiwane przez dedykowany sprzęt RAID. To obliczenie wprowadza opóźnienie do podsystemu dysków, które dramatycznie różni się w zależności od implementacji zarówno w sprzęcie, jak i oprogramowaniu, co sprawia, że niemożliwe jest podanie liczb wydajnościowych poziomów RAID w stosunku do siebie, ponieważ każda implementacja będzie unikalna.

Być może największym problemem z dzisiejszymi wyborami RAID jest to, że łatwość uzyskania wskaźników efektywności pamięci masowej i przeżywalności utraty dysków maskuje ogólny obraz niezawodności i wydajności, ponieważ te statystyki są prawie całkowicie niedostępne. Jednym z niebezpieczeństw wskaźników jest to, że ludzie skupiają się na czynnikach, które można łatwo zmierzyć, i ignorują te, których nie można łatwo zmierzyć, niezależnie od ich potencjalnego wpływu.

Choć wszystkie nowoczesne poziomy RAID mają swoje miejsce, kluczowe jest, aby były rozważane w kontekście i ze zrozumieniem całego zakresu ryzyk. Powinniśmy ciężko pracować, aby przesunąć naszą branżę z domyślnego RAID 5 do domyślnego RAID 10. Dyski są tanie, a utrata danych jest droga.

[Edycja: W latach od pierwszego napisania tego artykułu wzrost ryzyka URE (Unrecoverable Read Errors) podczas operacji odbudowy przesunął główne ryzyka z wymienionych na ryzyka związane z URE dla macierzy z parzystością.]

Otagowanoraid storage

Reklama

SMB IT Journal — the IT resource for small business