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

Porównanie RAID 10 i RAID 01

Te dwa poziomy RAID często wywołują ogromne zamieszanie – częściowo dlatego, że są niepoprawnie stosowane zamiennie, a często po prostu dlatego, że są słabo rozumiane.

Po pierwsze, należy zaznaczyć, że każdy z nich może być zapisywany ze znakiem plus lub bez: RAID 10 to RAID 1+0, a RAID 01 to RAID 0+1. Co ciekawe, RAID 10 prawie nigdy nie jest zapisywany ze znakiem plus, a RAID 01 prawie zawsze bez niego. Inżynierowie ds. pamięci masowych są zgodni, że znak plus nie jest używany, ponieważ jest zbędny.

Oba te poziomy RAID są poziomami „złożonymi”, powstałymi z połączenia dwóch różnych, prostych typów RAID. Oba są złożonymi lub zagnieżdżonymi RAID opartymi na lustrowaniu, bez parytetu. Oba mają zasadniczo identyczne charakterystyki wydajności – minimalny narzut i opóźnienia, prędkość odczytu NX oraz prędkość zapisu (NX)/2, gdzie N to liczba dysków w macierzy, a X to wydajność pojedynczego dysku w macierzy.

To, co odróżnia te dwa poziomy RAID, to sposób obsługi awarii dysku. W skrócie: RAID 10 jest wyjątkowo bezpieczny w niemal wszystkich rozsądnych scenariuszach. RAID 01 natomiast staje się coraz bardziej ryzykowny wraz ze wzrostem rozmiaru macierzy.

W RAID 10 utrata dowolnego pojedynczego dysku skutkuje degradacją jednego zestawu RAID 1 wewnątrz paska RAID 0. Poziom paska nie ulega degradacji – tylko ten jeden, konkretny mirror RAID 1 jest dotknięty. Wszystkie pozostałe mirrory pozostają nienaruszone. Oznacza to, że nasze jedyne zwiększone ryzyko polega na tym, że ten jeden dysk działa teraz bez redundancji i nie ma żadnej ochrony. Wszystkie inne zestawy lustrzane nadal zachowują pełną ochronę. Nasze narażenie to zatem pojedynczy, niezabezpieczony dysk – podobnie jak można by się spodziewać w komputerze stacjonarnym.

Naprawa macierzy w zdegradowanym RAID 10 to najszybszy możliwy scenariusz naprawy. Po wymianie uszkodzonego dysku jedyne, co się dzieje, to odbudowanie tego jednego mirrora – co jest prostą operacją kopiowania zachodzącą na poziomie RAID 1, poniżej paska RAID 0. Oznacza to, że jeśli cała macierz jest bezczynna, proces mirrorowania może przebiegać z pełną prędkością, a cała macierz nie ma nawet pojęcia, że cokolwiek się dzieje. Kopia dysk-na-dysk jest wyjątkowo szybka, wydajna i niezawodna. To idealny scenariusz odtwarzania. Nawet jeśli wiele mirrorów jednocześnie ulega degradacji i jednocześnie się odbudowuje, nie ma dodatkowego wpływu, ponieważ odbudowywanie jednego nie wpływa na inne. Zarówno ryzyko RAID 10, jak i wpływ naprawy skalują się wyjątkowo dobrze.

RAID 01 natomiast, gdy traci jeden dysk, natychmiast traci cały pasek RAID 0. W typowym mirrze RAID 01 istnieją dwa paski RAID 0. Oznacza to, że połowa całej macierzy uległa awarii. Jeśli mówimy o macierzy RAID 01 złożonej z ośmiu dysków, awaria jednego dysku sprawia, że cztery dyski stają się natychmiast nieoperacyjne i efektywnie uszkodzone (sprzęt nie musi być wymieniany, ale dane na dyskach są nieaktualne i muszą zostać odbudowane, aby były użyteczne). Zatem z perspektywy ryzyka możemy patrzeć na to jak na awarię całego paska.

Po awarii jednego dysku pozostaje tylko jeden, niezabezpieczony pasek RAID 0. Jest to znacznie bardziej niebezpieczne niż równoważna awaria RAID 10, ponieważ zamiast jednego izolowanego dysku twardego narażonego na ryzyko, teraz minimalnie dwa dyski – a potencjalnie wiele więcej – są narażone, a każdy dysk narażony na to ryzyko znacznie je powiększa.

Dla przykładu, w najmniejszej możliwej macierzy RAID 10 lub 01 mamy cztery dyski. W RAID 10, jeśli jeden dysk ulegnie awarii, naszym ryzykiem jest to, że jego partner również ulegnie awarii przed odbudowaniem macierzy. Martwimy się tylko o ten jeden dysk; wszystkie pozostałe dyski w zestawie RAID 10 są nadal chronione i bezpieczne. Tylko ten jeden budzi obawy. W RAID 01, gdy pierwszy dysk ulegnie awarii, jego partner w zestawie RAID 0 staje się natychmiast bezużyteczny i efektywnie uszkodzony, ponieważ nie może już funkcjonować w macierzy. Pozostają dwa dyski bez żadnej ochrony, działające wyłącznie jako RAID 0, więc mamy to samo ryzyko co RAID 10, ale dwukrotnie. Każdy dysk ma takie samo ryzyko, jakie miał jeden dysk wcześniej. To sprawia, że nasze ryzyko w najlepszym przypadku jest znacznie wyższe.

Ale dla bardziej dramatycznego przykładu przyjrzyjmy się dużej macierzy RAID 10 i RAID 01 złożonej z dwudziestu czterech dysków. Ponownie, w RAID 10, jeśli jeden dysk ulegnie awarii, wszystkie pozostałe, z wyjątkiem jednego partnera, są nadal chronione. Większy rozmiar macierzy dodał prawie zerowe dodatkowe ryzyko. Nadal obawiamy się tylko awarii tego jednego samotnego dysku. W przeciwieństwie do RAID 01, gdzie jedna macierz RAID 0 uległaby awarii, usuwając jednocześnie dwanaście dysków z awarii jednego, pozostawiając pozostałe dwanaście dysków w RAID 0 bez żadnej formy ochrony. Prawdopodobieństwo awarii jednego z dwunastu dysków jest oczywiście znacznie wyższe niż prawdopodobieństwo awarii jednego dysku.

To nie jest pełny obraz. Odtwarzanie pojedynczego dysku RAID 10 jest szybkie – to prosta operacja kopiowania z jednego dysku na drugi. Wykorzystuje minimalne zasoby i trwa tylko tyle czasu, ile potrzeba, aby pojedynczy dysk mógł odczytać i zapisać siebie w całości. RAID 01 nie ma tego szczęścia. W przeciwieństwie do RAID 10, który odbudowuje tylko mały podzbiór całej macierzy – podzbiór, który nie rośnie wraz z macierzą (czas odtwarzania czterodyskowego RAID 10 lub czterdziestodyskowego RAID 10 po awarii jest identyczny) – RAID 01 musi odbudować całą połowę nadrzędnej macierzy. W przypadku macierzy czterodyskowej oznacza to dwukrotnie więcej pracy odbudowania niż w RAID 10, ale w przypadku macierzy dwudziestoczterodyskowej jest to dwunastokrotna ilość pracy do wykonania. Zatem odbudowywanie RAID 01 trwa dłużej, podczas gdy przez cały ten czas jest narażone na znacznie większe ryzyko.

Istnieje dość trwały mit, że RAID 01 i RAID 10 mają różne charakterystyki wydajności, ale tak nie jest. Oba używają zwykłego stripingu i mirrorowania, które są operacjami praktycznie zerowymi pod względem narzutu, wymagającymi minimalnych zasobów obliczeniowych. Oba uzyskują pełną wydajność odczytu od każdego podłączonego urządzenia dyskowego, a każde traci połowę wydajności zapisu na rzecz operacji mirrorowania (zakładając lustra dwukierunkowe, co jest jedynym powszechnym zastosowaniem obu typów macierzy). Po prostu nie ma niczego, co sprawiałoby, że RAID 01 lub RAID 10 byłby szybszy lub wolniejszy od drugiego. Oba są wyjątkowo szybkie.

Ze względu na charakterystykę obu typów macierzy jest jasne, że RAID 10 jest jedynym typem spośród tych dwóch, który powinien istnieć w ramach jednego kontrolera macierzy. RAID 01 jest niepotrzebnie niebezpieczny i nie niesie żadnych korzyści. Używają tego samego narzutu pojemnościowego, mają tę samą wydajność, kosztują tyle samo do wdrożenia, ale RAID 10 jest znacznie bardziej niezawodny.

Dlaczego więc RAID 01 w ogóle istnieje? Częściowo istnieje z powodu ignorancji lub dezorientacji. Wiele osób wdrażających własne złożone macierze RAID wybiera RAID 01, ponieważ słyszało mit, że jest szybszy i – jak to zazwyczaj bywa z RAID – nie sprawdza dlaczego miałby być szybszy i zapomina zbadać jego niezawodność i inne czynniki. RAID 01 w lokalnych macierzach jest wdrażany wyłącznie przez pomyłkę.

Jednak kiedy przenosimy RAID na warstwę sieciową, pojawiają się nowe czynniki do rozważenia i RAID 01 może stać się ważny, podobnie jak jego rzadki kuzyn RAID 61. Oznaczamy za pomocą Notacji Sieciowej RAID, gdzie istnieje lokalna, a gdzie sieciowa warstwa RAID. W tym przypadku mamy na myśli RAID 0(1) LUB RAID 6(1). Nawiasy oznaczają, że mirror RAID 1 – „najwyższa” część stosu RAID – jest realizowany przez połączenie sieciowe, a nie na lokalnym kontrolerze RAID.

Jak wyglądałoby to w RAID 0(1)? Jeśli masz dwa serwery, każdy ze standardową macierzą RAID 0, i chcesz je zsynchronizować, aby działały jako jedna, niezawodna macierz, możesz użyć technologii takiej jak DRBD (na Linux) lub HAST (na FreeBSD), aby stworzyć sieciową macierz RAID 1 z lokalnej pamięci masowej każdego serwera. Oczywiście wiąże się to z dużym narzutem wydajności, ponieważ macierz RAID 1 musi być synchronizowana przez połączenie LAN o wysokim opóźnieniu i niskiej przepustowości. RAID 0(1) to notacja dla takiej konfiguracji. Gdyby każda lokalna macierz RAID 0 została zastąpiona bardziej niezawodnym RAID 6, cały setup zapisalibyśmy jako RAID 6(1).

Dlaczego akceptujemy ryzyko RAID 01 w sieci, a nie lokalnie? Wynika to z natury łącza sieciowego. W przypadku RAID 10 polegamy na niskiej warstwie RAID 1 stosu RAID dla ochrony, a RAID 0 znajduje się na górze. Jeśli replikujemy to na poziomie sieciowym jako RAID 1(0), efektem jest sytuacja, w której każdy host ma pojedynczy mirror reprezentujący tylko część danych macierzy. Gdyby cokolwiek stało się z jakimkolwiek węzłem w macierzy lub gdyby połączenie sieciowe uległo awarii, macierz zostałaby natychmiast zniszczona, a każdy węzeł zostałby z bezużytecznymi, niekompletnymi danymi. To właśnie natura wysokiego ryzyka awarii węzłów i ryzyka na poziomie połączenia sieciowego sprawia, że decyzje dotyczące RAID w środowisku sieciowym są diametralnie inne. Staje się to złożonym tematem samym w sobie.

Wystarczy powiedzieć, że pracując z normalnymi kontrolerami macierzy RAID lub z lokalną pamięcią masową i programowym RAID, należy wyłącznie używać RAID 10 i nigdy RAID 01.

Otagowanoraid raid 01 raid 10

Reklama

SMB IT Journal — the IT resource for small business