Standard notacji sieciowej RAID (notacja SAM RAID)
W miarę jak krajobraz RAID staje się coraz bardziej złożony wraz z pojawieniem się sieciowego RAID, istnieje ważna potrzeba bardziej złożonego i zwięzłego systemu notacji dla poziomów RAID obejmujących komponent sieciowy.
Tradycyjny RAID używa jednocyfrowej notacji, a dostępne poziomy to 0, 1, 2, 3, 4, 5, 6, 7. Poziom 7 jest nieoficjalny, ale szeroko akceptowany jako RAID z potrójną parzystością (naturalne rozszerzenie RAID 5 i RAID 6), a RAID 2 i RAID 3 są dziś praktycznie nieużywane.
Zagnieżdżony RAID, czyli jeden poziom RAID w ramach drugiego, jest obsługiwany przez łączenie jednocyfrowych poziomów RAID, takich jak RAID 10, 50, 61, 100 itd. Można je też zapisywać ze znakiem plus oddzielającym poziomy, np. RAID 1+0, 5+0, 6+1, 1+0+0 itd.
Istnieją dwa główne problemy z tym systemem notacji, poza oczywistym problemem, że nie wszystkie typy RAID ani rozszerzenia są ujęte w jednocyfrowym systemie – wiele aspektów zastrzeżonych systemów RAID, takich jak ZRAID, XRAID i BeyondRAID, nie jest ujętych w systemie notacji. Pierwszym problemem jest brak notacji dla sieciowego RAID, a drugim – brak specyficznego oznaczenia konfiguracji wewnątrz RAID.
Sieciowy RAID występuje w dwóch głównych typach: synchronicznym i asynchronicznym. Synchroniczny sieciowy RAID działa praktycznie identycznie jak jego niesieciowy odpowiednik. Asynchroniczny działa tak samo, ale niesie ze sobą dodatkowe ryzyko, ponieważ dane mogą nie być zsynchronizowane między urządzeniami w momencie awarii urządzenia. Dlatego różnice między nimi muszą być widoczne w notacji.
Synchroniczny RAID powinien być oznaczany nawiasami okrągłymi. Tak więc dwa lokalne systemy RAID 10 połączone lustrem przez sieć (na wzór DRBD) byłyby oznaczane jako RAID 10(1). Efektywny poziom RAID dla obliczeń ryzyka i pojemności byłby taki sam jak w przypadku każdego RAID 101, ale taka notacja informuje wszystkich zainteresowanych na pierwszy rzut oka, że lustro jest przez sieć.
Asynchroniczny RAID powinien być oznaczany nawiasami kwadratowymi. Tak więc dwa lokalne systemy RAID 10 połączone lustrem przez sieć asynchronicznie byłyby oznaczane jako RAID 10[1], co wyraźnie informuje, że w systemie istnieje ryzykowne opóźnienie.
Istnieje dodatkowa potrzeba notacji dla innego rodzaju replikacji na wyższym poziomie systemu plików (na wzór rsync), która choć nie jest ściśle związana z RAID, pełni podobną funkcję dla danych “zimnych” i jest często stosowana w dyskusjach o RAID. Uważam, że inżynierowie storage’u potrzebują możliwości zwięzłego jej oznaczania. Ta asynchroniczna replikacja na poziomie systemu plików może być oznaczana nawiasami klamrowymi. Potrzebna jest tylko jedna notacja, gdyż replikacja na poziomie systemu plików jest zawsze asynchroniczna. Przykładowo, dwie macierze RAID 6 automatycznie synchronizowane za pomocą blokowo-różnicowego systemu replikacji plików byłyby oznaczane jako RAID 6{1}.
Aby dodatkowo uprościć notację RAID i skrócić oczywistą konieczność wielokrotnego pisania słowa “RAID”, a także uniezależnić się od tradycyjnych rozproszonych uwag dotyczących tego, co akronim oznacza, tak aby skupić się na istotnych aspektach replikacji, należy użyć prostego prefiksu “R”. Tak więc RAID 10 byłoby po prostu R10. Lub czysto sieciowe lustro mogłoby być R(1).
Pozostaje jeszcze jeden ważny aspekt notacji RAID – rozmiar każdego składnika macierzy. Często jest to domyślne, ale niektóre poziomy RAID, zwłaszcza zagnieżdżone, mogą mieć złożoności pomijane przez tradycyjną notację. Znajomość całkowitej liczby dysków w macierzy nie zawsze wskazuje na konfigurację konkretnej macierzy. Na przykład R10 z 24 dyskami jest zakładane jako dwanaście par luster w pasku R0. Ale mogłoby to być osiem zestawów potrójnych luster w pasku R0. Albo nawet sześć zestawów poczwórnych luster. Lub cztery zestawy sześciokrotnych luster. Lub trzy zestawy ośmiokrotnych luster. Lub dwa zestawy dwunastokrotnych luster. Choć większość z nich jest niezwykle mało prawdopodobna, istnieje potrzeba ich notowania. Do oznaczenia rozmiaru zestawu używamy liczby w indeksie górnym, aby wskazać rozmiar tego zestawu. Generalnie jest to potrzebne tylko dla jednego aspektu macierzy, a nie wszystkich, ponieważ inne można wywnioskować – ale gdy pojawią się wątpliwości, można to oznaczyć wprost.
Tak więc macierz R10 używająca zestawów trójstronnych luster byłaby oznaczana R130. Bez możliwości zapisania indeksu górnego można też pisać R1^3+0. Ta notacja nie podaje całkowitego rozmiaru macierzy, tylko jej typ konfiguracji. Jeśli uwzględnione są wszystkie możliwe indeksy górne, można obliczyć pełny rozmiar macierzy bez żadnych dodatkowych informacji. Jeśli mamy R10 z czterema zestawami trójstronnych luster, możemy zapisać to jako R1304, co informuje nas, że cała macierz składa się z dwunastu dysków – lub w alternatywnej notacji R1^3+0^4.
Notacja indeksem górnym zestawów jest konieczna tylko wtedy, gdy nie jest oczywista. R10 bez dodatkowej notacji implikuje, że składnik R1 stanowi pary luster, na przykład. R55 prawie zawsze wymaga dodatkowej notacji, z wyjątkiem gdy macierz składa się tylko z dziewięciu członków.
Jednym dodatkowym aspektem do rozważenia jest notowanie rozmiaru macierzy. Jest to znacznie prostsze niż notacja z indeksem górnym i jest prawie zawsze w pełni wystarczające. Eliminuje potrzebę pisania w pełnej formie “Cztero-dyskowa macierz RAID 10”. Zamiast tego możemy użyć prefiksu. 4R10 oznaczałoby cztero-dyskową macierz RAID 10.
Wracając do naszego przykładu, dwunastodyskowy RAID 10 z zestawami trójstronnych luster można by zapisać jako 12R1304. Ale użycie wszystkich trzech liczb staje się redundantne. Każda z liczb może zostać pominięta. Zazwyczaj byłaby to ostatnia liczba, gdyż jest najmniej użyteczna. Rozmiar zestawu R1 jest przydatny do określenia podstawowego ryzyka, a wiodąca liczba 12 służy do obliczeń pojemności i wydajności, a także do doboru obudowy i zakupów. Końcowa czwórka jest implikowana przez dwie pozostałe liczby i sama w sobie praktycznie bezużyteczna. Zatem najlepszym sposobem zapisu byłoby po prostu 12R130. Gdyby ta sama macierz używała typowego podejścia z parami luster zamiast trójstronnych luster, zapisalibyśmy ją po prostu jako 12R10, aby oznaczyć dwunastodyskową, standardową macierz RAID 10.
