Udostępnij za pośrednictwem


Odporność na uszkodzenia i wydajność magazynowania w klastrach azure Stack HCI i Windows Server

Dotyczy: Azure Stack HCI, wersje 22H2 i 21H2; Windows Server 2022, Windows Server 2019

W tym artykule wyjaśniono dostępne opcje odporności i opisano wymagania dotyczące skalowania, wydajność magazynowania oraz ogólne zalety i kompromisy poszczególnych elementów.

Przegląd

Funkcja Bezpośrednie miejsca do magazynowania zapewnia odporność na uszkodzenia, często nazywaną "odpornością" danych. Jego implementacja jest podobna do macierzy RAID, z tym że jest rozproszona między serwerami i zaimplementowana w oprogramowaniu.

Podobnie jak w przypadku macierzy RAID, istnieje kilka różnych sposobów, w jaki pule magazynowe mogą to zrobić, co oznacza różne kompromisy między tolerancją na awarie, wydajnością magazynowania i złożonością obliczeniową. Zasadniczo należą one do dwóch kategorii: "dublowanie" i "parzystość", ten ostatni czasami nazywany "kodowaniem wymazywania".

Dublowanie

Dublowanie zapewnia odporność na uszkodzenia dzięki przechowywaniu wielu kopii wszystkich danych. To najbardziej przypomina RAID-1. Sposób, w jaki dane są rozłożone i umieszczane, nie jest trywialny (zobacz ten blog, aby dowiedzieć się więcej), ale całkowicie prawdziwe jest stwierdzenie, że wszystkie dane przechowywane przy użyciu mirrorowania są zapisywane w całości, wiele razy. Każda kopia jest zapisywana na innym sprzęcie fizycznym (różnych dyskach na różnych serwerach), które zakładamy, że zawodzą niezależnie.

Można wybrać między dwoma rodzajami replikacji – "dwukierunkową" i "trójstronną".

Dublowanie dwukierunkowe

Dublowanie dwukierunkowe zapisuje dwie kopie wszystkiego. Wydajność magazynowania wynosi 50 procent — aby zapisać 1 TB danych, potrzebujesz co najmniej 2 TB pojemności magazynu fizycznego. Podobnie potrzebne są co najmniej dwa sprzętowe "domeny błędów" — z bezpośrednimi miejscami do magazynowania, co oznacza dwa serwery.

dublowania dwukierunkowego

Ostrzeżenie

Jeśli masz więcej niż dwa serwery, zalecamy użycie dublowania trójstopniowego.

lustro trójstronne

Dublowanie trójstopniowe zapisuje trzy kopie wszystkiego. Wydajność magazynowania wynosi 33,3% — aby zapisać 1 TB danych, potrzebujesz co najmniej 3 TB pojemności magazynu fizycznego. Podobnie, potrzebujesz co najmniej trzech domen błędów sprzętowych – w przypadku Storage Spaces Direct oznacza to trzy serwery.

Dublowanie trójstopniowe może bezpiecznie tolerować co najmniej dwóch problemów sprzętowych (dysku lub serwera) w czasie. Jeśli na przykład uruchamiasz ponownie jeden serwer, gdy nagle inny dysk lub serwer ulegnie awarii, wszystkie dane pozostają bezpieczne i stale dostępne.

lustro trzyczęściowe

Parytet

Kodowanie parzystości, często nazywane "kodowaniem wymazywania", zapewnia odporność na uszkodzenia przy użyciu arytmetyki bitowej, co może uzyskać niezwykle skomplikowane. Sposób działania jest mniej oczywisty niż mirroring, i istnieje wiele wspaniałych zasobów online (na przykład ten przewodnik osób trzecich Dummies Guide to Erasure Coding), które mogą pomóc Ci zrozumieć koncepcję. Wystarczy powiedzieć, że zapewnia lepszą wydajność magazynowania bez naruszania odporności na uszkodzenia.

"Przestrzenie dyskowe oferują dwie odmiany parzystości – „pojedynczą” parzystość i „podwójną” parzystość, przy czym ta druga stosuje zaawansowaną technikę o nazwie „lokalne kody rekonstrukcji” na większą skalę."

Ważny

Zalecamy używanie dublowania dla najbardziej wrażliwych na wydajność obciążeń. Aby dowiedzieć się więcej na temat równoważenia wydajności i pojemności w zależności od obciążenia, zobacz Planowanie woluminów.

Pojedyncza parzystość

Pojedyncza parzystość zachowuje tylko jeden symbol parzystości bitowej, który zapewnia odporność na uszkodzenia tylko w przypadku jednego błędu w danym momencie. Najbardziej przypomina RAID-5. Aby użyć pojedynczej parzystości, potrzebne są co najmniej trzy domeny błędów — w przypadku Storage Spaces Direct oznacza to trzy serwery. Ponieważ trójstronne odwzorowywanie zapewnia większą odporność na uszkodzenia przy tej samej skali, odradzamy korzystanie z pojedynczej ochrony na poziomie parzystości. Ale jest tam, jeśli nalegasz na korzystanie z niego i jest w pełni obsługiwany.

Ostrzeżenie

Odradzamy korzystanie z pojedynczej parzystości, ponieważ może bezpiecznie tolerować tylko jedną awarię sprzętową w danym momencie: w przypadku ponownego uruchomienia jednego serwera, gdy nagle inny dysk lub serwer ulegnie awarii, wystąpi przestój. Jeśli masz tylko trzy serwery, zalecamy użycie dublowania trójstopniowego. Jeśli masz co najmniej cztery, zobacz następną sekcję.

Podwójna parzystość

Podwójna parzystość wprowadza kody korekcji błędów Reed-Solomon, aby zachować dwa symbole parzystości bitowej, zapewniając tę samą odporność na uszkodzenia co trzystopniowe dublowanie (tj. maksymalnie dwa błędy jednocześnie), ale z lepszą wydajnością przechowywania. Najbardziej przypomina RAID-6. Aby użyć podwójnej parzystości, potrzebne są co najmniej cztery domeny błędów sprzętowych — w przypadku Storage Spaces Direct oznacza to cztery serwery. W tej skali wydajność magazynowania wynosi 50% — aby przechowywać 2 TB danych, potrzebujesz 4 TB pojemności magazynu fizycznego.

podwójnej parzystości

Wydajność przechowywania z podwójną parzystością zwiększa się wraz z ilością domen błędów sprzętowych, z 50 procent do 80 procent. Na przykład przy siedmiu (z bezpośrednimi miejscami do magazynowania, co oznacza siedem serwerów), wydajność zwiększa się do 66,7 procent — do przechowywania 4 TB danych potrzebne jest tylko 6 TB pojemności magazynu fizycznego.

o podwójnej parzystości

Zobacz sekcję Podsumowanie, aby uzyskać informacje na temat wydajności kodów rekonstrukcji dwupartyjnej i lokalnej na każdej skali.

Kody rekonstrukcji lokalnej

Przestrzenie dyskowe wprowadzają zaawansowaną technikę opracowaną przez Microsoft Research o nazwie "lokalne kody rekonstrukcji", czyli LRC. Na dużą skalę, podwójne parzystości wykorzystują LRC do podziału kodowania i dekodowania na kilka mniejszych grup, co zmniejsza narzut wymagany do operacji zapisu lub odzyskiwania po awariach.

W przypadku dysków twardych (HDD) rozmiar grupy to cztery symbole; w przypadku dysków półprzewodnikowych (SSD) rozmiar grupy to sześć symboli. Na przykład, oto jak wygląda układ z dyskami twardymi i 12 domenami błędów sprzętowych (czyli 12 serwerów) — istnieją dwie grupy po cztery symbole danych. Osiąga 72,7% wydajności magazynowania.

kodów rekonstrukcji lokalnej

Zalecamy ten szczegółowy, ale czytelny przewodnik , w jaki sposób lokalne kody rekonstrukcji obsługują różne scenariusze awarii i dlaczego są atrakcyjne, przez Claus Joergensen.

Parzystość przyspieszana przez mirroring

Wolumin Storage Spaces Direct może być częściowo oparty na mirroringu i częściowo na parzystości. Początkowe zapisy są najpierw dokonywane w zduplikowanej części, a następnie stopniowo przenoszone do części parzystości. W rzeczywistości jest to użycie dublowania w celu przyspieszenia kodowania wymazywania.

Aby połączyć dublowanie trójstopniowe i podwójną parzystość, potrzebne są co najmniej cztery domeny błędów, co oznacza cztery serwery.

Wydajność magazynowania parzystości przyspieszonej przez lustrzane odbicie plasuje się pomiędzy wydajnością uzyskaną przy użyciu samego lustrzanego odbicia a samą parzystością i zależy od wybranych proporcji.

Ważny

Zalecamy używanie dublowania dla najbardziej wrażliwych na wydajność obciążeń. Aby dowiedzieć się więcej na temat równoważenia wydajności i pojemności w zależności od obciążenia, zobacz Planowanie woluminów.

Streszczenie

W tej sekcji podsumowano typy odporności dostępne w funkcji Bezpośrednie miejsca do magazynowania, minimalne wymagania dotyczące skalowania do użycia każdego typu, liczbę awarii, które mogą tolerować każdy typ, oraz odpowiednią wydajność magazynowania.

Typy odporności

Elastyczność Odporność na awarie Wydajność magazynowania
Dublowanie dwukierunkowe 1 50.0%
Lustro trójstronne 2 33.3%
Podwójna parzystość 2 50.0% — 80.0%
Mieszany 2 33.3% — 80.0%

Minimalne wymagania dotyczące skalowania

Elastyczność Minimalna wymagana domena błędów
Dublowanie dwukierunkowe 2
Lustro trójstronne 3
Podwójna parzystość 4
Mieszany 4

Napiwek

Jeśli nie używasz odporności na uszkodzenia w obudowie lub stojaku ani odporności, liczba domen błędów odnosi się do liczby serwerów. Liczba dysków na każdym serwerze nie ma wpływu na typy odporności, których można użyć, o ile spełniasz minimalne wymagania dotyczące bezpośrednich miejsc do magazynowania.

Wydajność podwójnej parzystości dla wdrożeń hybrydowych

W tej tabeli przedstawiono wydajność magazynowania podwójnych parzystości i kodów rekonstrukcji lokalnej w każdej skali dla wdrożeń hybrydowych, które zawierają dyski twarde (HDD) i dyski półprzewodnikowe (SSD).

Domeny błędów Układ Sprawność
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66,7%
9 RS 4+2 66.7%
10 RS 4+2 66.7%
11 RS 4+2 66.7%
12 LRC (8, 2, 1) 72.7%
13 LRC (8, 2, 1) 72.7%
14 LRC (8, 2, 1) 72.7%
15 LRC (8, 2, 1) 72.7%
16 LRC (8, 2, 1) 72.7%

Efektywność podwójnej parzystości dla wdrożeń typu all-flash

W tej tabeli przedstawiono efektywność przechowywania kodów o podwójnej korekcji błędów i kodów lokalnej rekonstrukcji na każdej skali dla wdrożeń all-flash, które zawierają wyłącznie dyski SSD. Układ parzystości może używać większych rozmiarów grup i osiągać lepszą efektywność przechowywania w konfiguracji całkowicie złożonej z pamięci flash.

Domeny błędów Układ Sprawność
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 6+2 75.0%
10 RS 6+2 75.0%
11 RS 6+2 75.0%
12 RS 6+2 75.0%
13 RS 6+2 75.0%
14 RS 6+2 75.0%
15 RS 6+2 75.0%
16 LRC (12, 2, 1) 80.0%

Przykłady

Chyba że masz tylko dwa serwery, zalecamy użycie trójdrożnego mirroringu i/lub podwójnej parzystości, ponieważ zapewniają lepszą odporność na uszkodzenia. W szczególności zapewniają, że wszystkie dane pozostają bezpieczne i stale dostępne nawet wtedy, gdy dwie domeny błędów – co w przypadku Storage Spaces Direct oznacza dwa serwery – są narażone na równoczesne awarie.

Przykłady, w których wszystko pozostaje w trybie online

Te sześć przykładów pokazuje, co dublowanie trójstopniowe i/lub parzystość podwójna może tolerować.

  • 1. utrata jednego dysku (obejmuje dyski pamięci podręcznej)
  • 2. Utracono jeden serwer

przykłady odporności na uszkodzenia —1 i 2

  • 3. jeden serwer i jeden dysk utracony
  • 4. dwa dyski utracone na różnych serwerach

przykłady odporności na uszkodzenia — 3 i 4

  • 5. Utracono więcej niż dwa dyski twarde, o ile wpływ mają na co najwyżej dwa serwery.
  • 6. utracono dwa serwery

przykłady odporności na uszkodzenia — 5 i 6

... w każdym przypadku wszystkie woluminy pozostają w trybie online. Upewnij się, że klaster utrzymuje kworum.

Przykłady, w których wszystko przechodzi w tryb offline

Przez cały okres użytkowania technologia magazynów może tolerować dowolną liczbę awarii, ponieważ przywraca pełną odporność po każdej z nich, jeśli zapewni się odpowiednią ilość czasu. Jednak w danym momencie awarie mogą mieć wpływ na co najwyżej dwie domeny błędów. Poniżej przedstawiono przykłady tego, co dublowanie trójstopniowe i/lub parzystość podwójna nie może tolerować.

  • 7. Dyski utracone na co najmniej trzech serwerach jednocześnie
  • 8. co najmniej trzy serwery utracone jednocześnie

przykłady odporności na uszkodzenia — 7 i 8

Użycie

Zapoznaj się z Tworzenie woluminów.

Następne kroki

Aby uzyskać więcej informacji na temat wymienionych w tym artykule, zobacz następujące tematy: