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.

Omówienie

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

Podobnie jak w przypadku macierzy RAID, istnieje kilka różnych sposobów, Miejsca do magazynowania może to zrobić, co sprawia, że różne kompromisy między odpornością na uszkodzenia, wydajnością magazynu i złożonością obliczeniową. Zasadniczo należą one do dwóch kategorii: "dublowanie" i "parzystość", ta ostatnia czasami nazywana "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 są proste (zobacz ten blog , aby dowiedzieć się więcej), ale jest absolutnie prawdziwe, aby powiedzieć, że wszystkie dane przechowywane przy użyciu dublowania 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łada się, że nie powiedzie się niezależnie.

Można wybrać między dwoma smakami dublowania – "dwukierunkowym" i "trzystopniowym".

Dublowany dwustopniowo

Dublowanie dwukierunkowe zapisuje dwie kopie wszystkiego. Wydajność magazynowania wynosi 50% — aby zapisać 1 TB danych, potrzebujesz co najmniej 2 TB fizycznego miejsca do magazynowania. Podobnie potrzebne są co najmniej dwa sprzętowe "domeny błędów" — w przypadku Bezpośrednie miejsca do magazynowania oznacza to dwa serwery.

dublowanie dwukierunkowe

Ostrzeżenie

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

Dublowany trzystopniowo

Dublowanie trzystopniowe zapisuje trzy kopie wszystkiego. Wydajność magazynowania wynosi 33,3% — aby zapisać 1 TB danych, potrzebujesz co najmniej 3 TB fizycznego miejsca do magazynowania. Podobnie potrzebne są co najmniej trzy domeny błędów sprzętowych — w przypadku Bezpośrednie miejsca do magazynowania oznacza to trzy serwery.

Dublowanie trzystopniowe może bezpiecznie tolerować co najmniej dwa problemy sprzętowe (dysk lub serwer) naraz. Jeśli na przykład uruchamiasz ponownie jeden serwer, gdy nagle inny dysk lub serwer ulegnie awarii, wszystkie dane pozostaną bezpieczne i stale dostępne.

dublowanie trzystopniowe

Parity

Kodowanie parzystości, często nazywane "kodowaniem wymazywania", zapewnia odporność na uszkodzenia przy użyciu arytmetyki bitowej, co może być niezwykle skomplikowane. Sposób, w jaki to działa, jest mniej oczywisty niż dublowanie i istnieje wiele wspaniałych zasobów online (na przykład ten przewodnik dummies innych firm do kodowania wymazywania), które mogą pomóc Ci zrozumieć ten pomysł. Wystarczy powiedzieć, że zapewnia lepszą wydajność magazynowania bez naruszania odporności na uszkodzenia.

Miejsca do magazynowania oferuje dwie odmiany parzystości – "pojedynczą" parzystość i "podwójną" parzystość, ta ostatnia wykorzystuje zaawansowaną technikę o nazwie "kody rekonstrukcji lokalnej" na większą skalę.

Ważne

Zalecamy używanie dublowania w przypadku większości obciążeń wrażliwych na wydajność. 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 jeden błąd naraz. Najbardziej przypomina raid-5. Do korzystania z jednej parzystości potrzebne są co najmniej trzy domeny błędów sprzętowych — z Bezpośrednie miejsca do magazynowania oznacza to trzy serwery. Ponieważ dublowanie trójstopniowe zapewnia większą odporność na uszkodzenia w tej samej skali, odradzamy korzystanie z pojedynczej 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ą naraz: w przypadku ponownego uruchomienia jednego serwera, gdy nagle inny dysk lub serwer ulegnie awarii, wystąpią przestoje. Jeśli masz tylko trzy serwery, zalecamy użycie dublowania trzystopniowego. Jeśli masz co najmniej cztery elementy, zobacz następną sekcję.

Podwójna parzystość

Parzystość podwójna implementuje Reed-Solomon kodów poprawiania błędów, aby zachować dwa symbole parzystości bitowej, zapewniając tym samym odporność na uszkodzenia co dublowanie trzystopniowe (tj. maksymalnie dwa błędy jednocześnie), ale przy lepszej wydajności magazynowania. Najbardziej przypomina RAID-6. Aby korzystać z parzystości podwójnej, potrzebne są co najmniej cztery domeny błędów sprzętowych — w przypadku Bezpośrednie miejsca do magazynowania oznacza to cztery serwery. W tej skali wydajność magazynowania wynosi 50% — do przechowywania 2 TB danych potrzebne jest 4 TB fizycznego miejsca do magazynowania.

podwójna parzystość

Wydajność magazynowania z parzystością podwójną zwiększa liczbę posiadanych domen błędów sprzętowych, z 50 procent do 80 procent. Na przykład przy siedmiu (z Bezpośrednie miejsca do magazynowania oznacza to, że siedem serwerów) wydajność zwiększa się do 66,7 procent — aby przechowywać 4 TB danych, potrzebujesz tylko 6 TB fizycznego miejsca do magazynowania.

podwójna parzystość dla całego

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

Kody rekonstrukcji lokalnej

Miejsca do magazynowania wprowadza zaawansowaną technikę opracowaną przez firmę Microsoft Research o nazwie "kody rekonstrukcji lokalnej" lub LRC. W dużej skali parzystość podwójna używa języka LRC do dzielenia kodowania/dekodowania na kilka mniejszych grup, aby zmniejszyć nakład pracy wymagany do 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. Oto jak wygląda układ z dyskami twardymi i 12 domenami błędów sprzętowych (czyli 12 serwerów) — istnieją dwie grupy czterech symboli danych. Osiąga wydajność magazynowania o 72,7%.

kody rekonstrukcji lokalnej

Zalecamy ten szczegółowy, ale czytelny przewodnik po tym , jak kody rekonstrukcji lokalnej obsługują różne scenariusze awarii i dlaczego są atrakcyjne, claus Joergensen.

Parzystość przyspieszana przez dublowanie

Wolumin Bezpośrednie miejsca do magazynowania może być częścią dublowania i parzystości części. Zapisy lądują najpierw w części dublowanej i są stopniowo przenoszone do części parzystości później. W praktyce jest to używane dublowanie w celu przyspieszenia kodowania wymazywania.

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

Wydajność magazynowania parzystości przyspieszanej przez dublowanie zależy od wybranej proporcji. Na przykład pokaz na 37-minutowym znaku tej prezentacji pokazuje różne kombinacje osiągające 46 procent, 54 procent i 65 procent wydajności z 12 serwerami.

Ważne

Zalecamy używanie dublowania w przypadku większości obciążeń wrażliwych na wydajność. 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.

Podsumowanie

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

Typy odporności

Odporność Odporność na awarie Wydajność magazynowania
Dublowany dwustopniowo 1 50.0%
Dublowany trzystopniowo 2 33.3%
Podwójna parzystość 2 50.0% - 80.0%
Mieszana 2 33.3% - 80.0%

Minimalne wymagania dotyczące skalowania

Odporność Minimalna wymagana liczba domen błędów
Dublowany dwustopniowo 2
Dublowany trzystopniowo 3
Podwójna parzystość 4
Mieszana 4

Porada

Jeśli nie używasz odporności na uszkodzenia obudowy lub stojaka, 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średnie miejsca do magazynowania.

Podwójna wydajność parzystości dla wdrożeń hybrydowych

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

Domeny błędów Layout Wydajność
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%

Podwójna wydajność parzystości dla wdrożeń all-flash

W tej tabeli przedstawiono wydajność magazynowania dwóch parzystości i kodów rekonstrukcji lokalnej na każdej skali we wszystkich wdrożeniach flash, które zawierają tylko dyski półprzewodnikowe (SSD). Układ parzystości może używać większych rozmiarów grup i osiągnąć lepszą wydajność magazynowania w konfiguracji all-flash.

Domeny błędów Layout Wydajność
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

Jeśli nie masz tylko dwóch serwerów, zalecamy użycie dublowania trzystopniowego i/lub parzystości podwójnej, ponieważ oferują 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 — z Bezpośrednie miejsca do magazynowania, co oznacza, że dwa serwery — są dotknięte równoczesnymi awariami.

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

Te sześć przykładów pokazuje, co dublowanie trzystopniowe i/lub parzystość podwójna mogą tolerować .

  • 1. Utracono jeden dysk (w tym dyski pamięci podręcznej)
  • 2. Utracono jeden serwer

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

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

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

  • 5. Utracono więcej niż dwa dyski, o ile dotyczy to co najwyżej dwóch serwerów
  • 6. Utracono dwa serwery

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

... w każdym przypadku wszystkie woluminy pozostaną w trybie online. (Upewnij się, że klaster obsługuje kworum).

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

W okresie istnienia, Miejsca do magazynowania może tolerować dowolną liczbę awarii, ponieważ przywraca pełną odporność po każdym z nich, biorąc pod uwagę wystarczający czas. Jednak w danym momencie awarie mogą mieć wpływ na co najwyżej dwie domeny błędów. W związku z tym poniżej przedstawiono przykłady tego, czego dublowanie trzystopniowe i/lub parzystość podwójna nie są tolerowane.

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

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

Użycie

Zapoznaj się z pozycją Tworzenie woluminów.

Następne kroki

Dalsze informacje na temat tematów wymienionych w tym artykule można znaleźć w następujących tematach: