To jest kanoniczne pytanie o poziomy RAID.
Czym są:
- zwykle używane poziomy RAID (w tym rodzina RAID-Z)?
- wdrożenia są często spotykane?
- zalety i pułapki każdego z nich?
To jest kanoniczne pytanie o poziomy RAID.
Czym są:
Odpowiedzi:
RAID oznacza Redundant Array of Independent Disks (niektóre są nauczane jako „Niedrogie”, aby wskazać, że są to „normalne” dyski; historycznie istniały dyski wewnętrzne redundantne, które były bardzo drogie; ponieważ nie są już dostępne, akronim się dostosował).
Na najbardziej ogólnym poziomie RAID to grupa dysków, które działają na tych samych odczytach i zapisach. SCSI IO jest wykonywane na woluminie („LUN”) i są one dystrybuowane do bazowych dysków w sposób, który wprowadza wzrost wydajności i / lub wzrost redundancji. Wzrost wydajności jest funkcją rozbierania: dane są rozłożone na wiele dysków, aby umożliwić odczytom i zapisom jednoczesne korzystanie ze wszystkich kolejek IO dysków. Redundancja to funkcja kopii lustrzanej. Całe dyski mogą być przechowywane jako kopie lub pojedyncze paski mogą być wielokrotnie pisane. Alternatywnie, w niektórych typach rajdu, zamiast kopiowania bitów danych dla bitów, nadmiarowość uzyskuje się poprzez tworzenie specjalnych pasków zawierających informacje o parzystości, które można wykorzystać do odtworzenia utraconych danych w przypadku awarii sprzętu.
Istnieje kilka konfiguracji, które zapewniają różne poziomy tych korzyści, które są tutaj omówione, a każda z nich ma tendencję do wydajności lub redundancji.
Ważny aspekt w ocenie, który poziom RAID będzie dla Ciebie działał, zależy od jego zalet i wymagań sprzętowych (np. Liczba dysków).
Innym ważnym aspektem większości tego typu macierzy RAID (0,1,5) jest to, że nie zapewniają one integralności danych, ponieważ są one oderwane od rzeczywistych przechowywanych danych. Dlatego RAID nie chroni przed uszkodzonymi plikami. Jeśli plik zostanie uszkodzony w jakikolwiek sposób, uszkodzenie zostanie dublowane lub sparowane i zapisane na dysku niezależnie. Jednak RAID-Z twierdzi, że zapewnia integralność danych na poziomie plików .
Istnieją dwie warstwy, na których RAID może zostać zaimplementowany w pamięci podłączanej bezpośrednio: sprzęt i oprogramowanie. W prawdziwych sprzętowych rozwiązaniach RAID istnieje dedykowany kontroler sprzętowy z procesorem dedykowanym do obliczeń i przetwarzania RAID. Zwykle ma również moduł pamięci podręcznej z podtrzymaniem bateryjnym, dzięki czemu dane mogą być zapisywane na dysku, nawet po awarii zasilania. Pomaga to wyeliminować niespójności, gdy systemy nie są bezpiecznie zamykane. Ogólnie rzecz biorąc, dobre sterowniki sprzętowe są bardziej wydajne niż ich odpowiedniki programowe, ale mają również znaczne koszty i zwiększają złożoność.
Oprogramowanie RAID zazwyczaj nie wymaga kontrolera, ponieważ nie wykorzystuje dedykowanego procesora RAID ani oddzielnej pamięci podręcznej. Zazwyczaj operacje te są obsługiwane bezpośrednio przez procesor. W nowoczesnych systemach obliczenia te zużywają minimalne zasoby, choć występuje niewielkie opóźnienie. RAID jest obsługiwany albo bezpośrednio przez system operacyjny, albo przez fałszywy kontroler w przypadku FakeRAID .
Ogólnie rzecz biorąc, jeśli ktoś wybierze oprogramowanie RAID, powinien unikać FakeRAID i używać pakietu natywnego dla swojego systemu, takiego jak Dyski Dynamiczne w systemie Windows, mdadm / LVM w systemie Linux lub ZFS w systemie Solaris, FreeBSD i innych powiązanych dystrybucjach . FakeRAID używa kombinacji sprzętu i oprogramowania, co powoduje początkowy wygląd sprzętowej macierzy RAID, ale rzeczywistą wydajność programowej macierzy RAID. Ponadto przeniesienie tablicy do innego adaptera jest zwykle niezwykle trudne (w przypadku awarii oryginału).
Drugim miejscem, w którym RAID jest powszechny, są scentralizowane urządzenia pamięci masowej, zwykle zwane SAN (Storage Area Network) lub NAS (Network Attached Storage). Urządzenia te zarządzają własnym magazynem i umożliwiają podłączonym serwerom dostęp do magazynu w różny sposób. Ponieważ wiele obciążeń znajduje się na tych samych kilku dyskach, generalnie pożądany jest wysoki poziom nadmiarowości.
Główną różnicą między NAS a SAN jest eksport na poziomie bloków w porównaniu z systemem plików. Sieć SAN eksportuje całe „urządzenie blokowe”, takie jak partycja lub wolumin logiczny (w tym te zbudowane na macierzy RAID). Przykłady sieci SAN obejmują Fibre Channel i iSCSI. Serwer NAS eksportuje „system plików”, taki jak plik lub folder. Przykłady NAS obejmują CIFS / SMB (udostępnianie plików Windows) i NFS.
RAID0 (inaczej Striping) jest czasami określany jako „ilość danych, które pozostałyby po awarii dysku”. To naprawdę działa przeciwko ziarnie „RAID”, gdzie „R” oznacza „Nadmiarowy”.
RAID0 zabiera blok danych, dzieli go na tyle części, ile masz dysków (2 dyski → 2 części, 3 dyski → 3 części), a następnie zapisuje każdą część danych na osobnym dysku.
Oznacza to, że awaria jednego dysku niszczy całą macierz (ponieważ masz część 1 i część 2, ale nie część 3), ale zapewnia bardzo szybki dostęp do dysku.
Nie jest często używany w środowiskach produkcyjnych, ale można go użyć w sytuacji, gdy masz ściśle tymczasowe dane, które można utracić bez reperkusji. Jest używany dość często w urządzeniach buforujących (takich jak urządzenie L2Arc).
Całkowite użyteczne miejsce na dysku to suma wszystkich dysków w tablicy dodanych razem (np. 3x dyski 1 TB = 3 TB miejsca).
RAID 1 (inaczej Mirroring) pobiera dane i kopiuje je identycznie na dwóch lub więcej dyskach (choć zwykle tylko na 2 dyskach). Jeśli używane są więcej niż dwa dyski, te same informacje są przechowywane na każdym dysku (wszystkie są identyczne). Jest to jedyny sposób na zapewnienie nadmiarowości danych, gdy masz mniej niż trzy dyski.
RAID 1 czasami poprawia wydajność odczytu. Niektóre implementacje RAID 1 będą odczytywać z obu dysków, aby podwoić prędkość odczytu. Niektóre będą czytać tylko z jednego z dysków, co nie zapewnia żadnych dodatkowych korzyści prędkości. Inni będą czytać te same dane z obu dysków, zapewniając integralność tablicy przy każdym odczycie, ale spowoduje to taką samą prędkość odczytu jak pojedynczy dysk.
Zazwyczaj jest stosowany w małych serwerach, które mają bardzo małą pojemność dysku, takich jak serwery 1RU, które mogą mieć miejsce tylko na dwa dyski lub na stacjach roboczych wymagających redundancji. Ze względu na duże obciążenie „utraconą” przestrzenią dyski mogą być nieosiągalne w przypadku dysków o małej pojemności, szybkich (i drogich), ponieważ trzeba wydać dwa razy więcej pieniędzy, aby uzyskać ten sam poziom użytecznej przestrzeni dyskowej.
Całkowite użyteczne miejsce na dysku to rozmiar najmniejszego dysku w macierzy (np. 2 dyski 1 TB = 1 TB miejsca).
Poziom RAID 1E jest podobny do RAID 1, ponieważ dane są zawsze zapisywane na (co najmniej) dwóch dyskach. Ale w przeciwieństwie do RAID1, pozwala na nieparzystą liczbę dysków, po prostu przeplatając bloki danych między kilkoma dyskami.
Charakterystyki wydajności są podobne do RAID1, tolerancja na uszkodzenia jest podobna do RAID 10. Ten schemat można rozszerzyć na nieparzyste liczby dysków więcej niż trzy (być może zwane RAID 10E, choć rzadko).
RAID 10 to połączenie RAID 1 i RAID 0. Kolejność 1 i 0 jest bardzo ważna. Załóżmy, że masz 8 dysków, utworzy 4 macierze RAID 1, a następnie zastosuje macierz RAID 0 na 4 macierzach RAID 1. Wymaga co najmniej 4 dysków, a dodatkowe dyski należy dodawać parami.
Oznacza to, że jeden dysk z każdej pary może ulec awarii. Więc jeśli masz zestawy A, B, C i D z dyskami A1, A2, B1, B2, C1, C2, D1, D2, możesz stracić jeden dysk z każdego zestawu (A, B, C lub D) i nadal mieć działająca tablica.
Jeśli jednak stracisz dwa dyski z tego samego zestawu, tablica zostanie całkowicie utracona. Możesz stracić do (ale nie jest to gwarantowane) 50% dysków.
Masz gwarancję wysokiej prędkości i wysokiej dostępności w RAID 10.
RAID 10 jest bardzo powszechnym poziomem RAID, szczególnie w przypadku dysków o dużej pojemności, w których awaria jednego dysku sprawia, że awaria drugiego dysku jest bardziej prawdopodobna przed przebudową macierzy RAID. Podczas odzyskiwania spadek wydajności jest znacznie niższy niż w przypadku jego odpowiednika RAID 5, ponieważ musi on tylko czytać z jednego dysku, aby zrekonstruować dane.
Dostępne miejsce na dysku stanowi 50% sumy całkowitej przestrzeni. (np. 8x dyski 1 TB = 4 TB powierzchni użytkowej). Jeśli używasz różnych rozmiarów, z każdego dysku będzie używany tylko najmniejszy rozmiar.
Warto zauważyć, że nazywany sterownik md
RAID jądra systemu Linux pozwala na konfiguracje RAID 10 z nieparzystą liczbą napędów , tj. 3 lub 5 dyskowymi RAID 10.
Jest odwrotnością RAID 10. Tworzy dwie macierze RAID 0, a następnie umieszcza RAID 1 na wierzchu. Oznacza to, że możesz stracić jeden dysk z każdego zestawu (A1, A2, A3, A4 lub B1, B2, B3, B4). Jest to bardzo rzadkie w aplikacjach komercyjnych, ale można to zrobić za pomocą oprogramowania RAID.
Aby być absolutnie jasnym:
Nie zapewnia żadnej dodatkowej prędkości w porównaniu z RAID 10, ale znacznie mniej nadmiarowości i należy go za wszelką cenę unikać.
RAID 5 jest najczęściej używanym poziomem RAID od dziesięcioleci. Zapewnia wydajność systemu dla wszystkich dysków w macierzy (z wyjątkiem małych losowych zapisów, które powodują niewielki narzut). Wykorzystuje prostą operację XOR do obliczenia parzystości. W przypadku awarii pojedynczego dysku informacje można odtworzyć z pozostałych dysków za pomocą operacji XOR na znanych danych.
Niestety w przypadku awarii dysku proces odbudowy jest bardzo intensywny we / wy. Im większe dyski w macierzy RAID, tym dłużej zajmie przebudowa i tym większa szansa na awarię drugiego dysku. Ponieważ oba duże wolne dyski mają dużo więcej danych do odbudowania i znacznie mniejszą wydajność, zwykle nie zaleca się korzystania z RAID 5 przy czymkolwiek 7200 RPM lub niższym.
Być może najbardziej krytycznym problemem związanym z macierzami RAID 5, gdy są używane w aplikacjach konsumenckich, jest to, że prawie na pewno nie będą działać, gdy całkowita pojemność przekroczy 12 TB. Wynika to z faktu, że częstość nieodwracalnego błędu odczytu (URE) dysków SATA dla konsumentów wynosi jeden na każde 10 14 bitów, czyli ~ 12,5 TB.
Jeśli weźmiemy przykład macierzy RAID 5 z siedmioma dyskami 2 TB: kiedy dysk ulegnie awarii, pozostanie sześć dysków. Aby odbudować tablicę, kontroler musi odczytać sześć dysków o pojemności 2 TB każdy. Patrząc na powyższą ilustrację, prawie pewne jest, że pojawi się inny URE przed zakończeniem przebudowy. Gdy to nastąpi, tablica i wszystkie dane na niej zostaną utracone.
Jednak URE / utrata danych / awaria macierzy z macierzą RAID 5 w dyskach konsumenckich została nieco złagodzona przez fakt, że większość producentów dysków twardych podniosła oceny URE swoich nowych dysków do jednego na 10 15 bitów. Jak zawsze, sprawdź specyfikację przed zakupem!
Konieczne jest także, aby RAID 5 został umieszczony za niezawodną pamięcią podręczną zapisu (zasilaną bateryjnie). Pozwala to uniknąć narzutu w przypadku małych zapisów, a także niestabilnego zachowania, które może wystąpić po awarii w trakcie zapisu.
RAID 5 jest najbardziej opłacalnym rozwiązaniem dodawania nadmiarowej pamięci do macierzy, ponieważ wymaga utraty tylko 1 dysku (np. 12 x 146 GB dysków = 1606 GB dostępnego miejsca). Wymaga co najmniej 3 dysków.
RAID 6 jest podobny do RAID 5, ale wykorzystuje dwa parzystości o wartości parzystości zamiast tylko jednego (pierwszy to XOR, drugi to LSFR), więc możesz stracić dwa dyski z macierzy bez utraty danych. Kara za zapis jest wyższa niż RAID 5 i masz o jeden dysk mniej miejsca.
Warto wziąć pod uwagę, że ostatecznie macierz RAID 6 napotka podobne problemy jak RAID 5. Większe dyski powodują dłuższy czas przebudowy i więcej ukrytych błędów, ostatecznie prowadząc do awarii całej macierzy i utraty wszystkich danych przed zakończeniem przebudowy.
RAID 50 jest poziomem zagnieżdżonym, podobnie jak RAID 10. Łączy w sobie dwie lub więcej macierzy RAID 5 i rozdziela na nich dane w macierzy RAID 0. Zapewnia to zarówno wydajność, jak i nadmiarowość wielu dysków, o ile wiele dysków zostanie utraconych z różnych macierzy RAID 5 tablice.
W macierzy RAID 50 pojemność dysku wynosi nx, gdzie x to liczba pasujących RAID 5. Na przykład, jeśli prosty 6-dyskowy RAID 50, najmniejszy z możliwych, gdybyś miał dyski 6x1 TB w dwóch macierzach RAID 5, które zostały następnie rozłożone, aby stać się RAID 50, miałbyś użyteczną pamięć 4 TB.
RAID 6 to RAID 60, podobnie jak RAID 5 to RAID 50. Zasadniczo masz więcej niż jeden RAID 6, a następnie dane są rozłożone w RAID 0. Ta konfiguracja pozwala na maksymalnie dwóch członków dowolnej RAID 6 w zestawie zawieść bez utraty danych. Czasy odbudowy macierzy RAID 60 mogą być znaczące, dlatego zwykle dobrym pomysłem jest posiadanie jednego wolnego zapasu dla każdego elementu RAID 6 w macierzy.
W macierzy RAID 60 pojemność dysku wynosi n-2x, gdzie x jest liczbą pasków RAID 6. Na przykład, jeśli prosty RAID 60 z 8 dyskami, najmniejszy możliwy, jeśli miałbyś dyski 8 x 1 TB w dwóch macierzach RAID 6, które zostały następnie rozłożone na RAID 60, miałbyś użyteczną pamięć 4 TB. Jak widać, daje to taką samą ilość użytecznej pamięci, jaką RAID 10 dałby na 8-elementowej tablicy. Podczas gdy RAID 60 byłby nieco bardziej redundantny, czasy odbudowy byłyby znacznie dłuższe. Ogólnie rzecz biorąc, chcesz rozważyć użycie macierzy RAID 60 tylko wtedy, gdy masz dużą liczbę dysków.
RAID-Z jest nieco skomplikowane do wyjaśnienia, ponieważ ZFS radykalnie zmienia interakcje między systemami pamięci i plików. ZFS obejmuje tradycyjne role zarządzania woluminami (RAID jest funkcją programu Volume Manager) i systemu plików. Z tego powodu ZFS może wykonywać RAID na poziomie bloku pamięci pliku, a nie na poziomie paska woluminu. To właśnie robi RAID-Z, zapisuj bloki pamięci pliku na wielu dyskach fizycznych, w tym blok parzystości dla każdego zestawu pasków.
Przykład może to uczynić o wiele bardziej wyraźnym. Załóżmy, że masz 3 dyski w puli ZFS RAID-Z, rozmiar bloku to 4KB. Teraz piszesz do systemu plik, który ma dokładnie 16 KB. ZFS podzieli to na cztery bloki 4KB (tak jak normalny system operacyjny); wtedy obliczy dwa bloki parzystości. Te sześć bloków zostanie umieszczonych na dyskach, podobnie jak RAID-5 rozdzieliłby dane i parzystość. Jest to poprawa w stosunku do RAID5, ponieważ nie było odczytu istniejących pasków danych w celu obliczenia parzystości.
Kolejny przykład opiera się na poprzednim. Powiedzmy, że plik miał tylko 4KB. ZFS nadal będzie musiał zbudować jeden blok parzystości, ale teraz obciążenie zapisu jest zmniejszone do 2 bloków. Trzeci dysk będzie mógł obsługiwać wszelkie inne równoległe żądania. Podobny efekt będzie widoczny za każdym razem, gdy zapisywany plik nie jest wielokrotnością wielkości bloku puli pomnożonej przez liczbę dysków mniejszą niż jeden (tj. [Rozmiar pliku] <> [Rozmiar bloku] * [Dyski - 1]).
ZFS obsługujący zarówno zarządzanie woluminami, jak i system plików oznacza również, że nie musisz się martwić o wyrównanie partycji lub rozmiaru bloku pasków. ZFS obsługuje to wszystko automatycznie z zalecanymi konfiguracjami.
Natura ZFS przeciwdziała niektórym klasycznym zastrzeżeniom RAID-5/6. Wszystkie zapisy w ZFS są wykonywane w sposób kopiowania i zapisywania; wszystkie zmienione bloki w operacji zapisu są zapisywane w nowej lokalizacji na dysku, zamiast zastępowania istniejących bloków. Jeśli zapis z jakiegoś powodu nie powiedzie się lub system zawiedzie w połowie zapisu, transakcja zapisu albo nastąpi całkowicie po odzyskaniu systemu (za pomocą dziennika intencji ZFS), albo w ogóle nie występuje, unikając potencjalnego uszkodzenia danych. Kolejnym problemem związanym z RAID-5/6 jest potencjalna utrata danych lub dyskretne uszkodzenie danych podczas przebudowy; regularne zpool scrub
operacje mogą pomóc wykryć uszkodzenie danych lub problemy z napędem, zanim spowodują one utratę danych, a suma kontrolna wszystkich bloków danych zapewni wykrycie wszystkich uszkodzeń podczas odbudowy.
Główną wadą macierzy RAID-Z jest to, że wciąż jest to rajd programowy (i cierpi z powodu tego samego niewielkiego opóźnienia spowodowanego obliczaniem obciążenia przez procesor zamiast zezwalania sprzętowemu HBA na odciążenie). Może to zostać rozwiązane w przyszłości przez karty HBA obsługujące przyspieszenie sprzętowe ZFS.
Ponieważ nie ma centralnego organu egzekwującego jakąkolwiek standardową funkcjonalność, różne poziomy RAID ewoluowały i zostały ujednolicone przez powszechne użycie. Wielu sprzedawców wyprodukowało produkty, które odbiegają od powyższych opisów. Często zdarza się, że wymyślają jakąś fantazyjną nową terminologię marketingową, aby opisać jedną z powyższych koncepcji (dzieje się to najczęściej na rynku SOHO). Jeśli to możliwe, postaraj się, aby sprzedawca faktycznie opisał funkcjonowanie mechanizmu redundancji (większość zechce podać te informacje, ponieważ tak naprawdę nie ma już tajnego sosu).
Warto wspomnieć, że istnieją implementacje podobne do RAID 5, które pozwalają na uruchomienie macierzy tylko z dwoma dyskami. Przechowuje dane na jednym pasku i parzystości na drugim, podobnie jak RAID 5 powyżej. Działałoby to jak RAID 1 z dodatkowym narzutem obliczania parzystości. Zaletą jest to, że można dodać dyski do tablicy poprzez ponowne obliczenie parzystości.
RAID JEDEN MILION !!!!
128 dysków, więc odczyty byłyby szybkie, okropne zapisy, ale bardzo niezawodne, wyobrażam sobie, och, a dostaniesz 1/128 dostępnej przestrzeni, więc nie świetnie z perspektywy budżetowej. Nie rób tego z dyskami flash, próbowałem podpalić atmosferę ...