Odporność na uszkodzenia i wydajność magazynu w Azure Stack HCLFault tolerance and storage efficiency in Azure Stack HCI

Dotyczy: Azure Stack HCL, wersja 20H2; System Windows Server 2019Applies to: Azure Stack HCI, version 20H2; Windows Server 2019

W tym temacie przedstawiono opcje odporności dostępne w Bezpośrednie miejsca do magazynowania i przedstawiono wymagania dotyczące skalowania, wydajność magazynu oraz ogólne zalety i wady każdego z nich.This topic introduces the resiliency options available in Storage Spaces Direct and outlines the scale requirements, storage efficiency, and general advantages and tradeoffs of each. Przedstawiono w nim również pewne instrukcje dotyczące użycia, które umożliwiają rozpoczęcie pracy i odwołują się do nich doskonałe dokumenty, blogi i dodatkową zawartość, w której można dowiedzieć się więcej.It also presents some usage instructions to get you started, and references some great papers, blogs, and additional content where you can learn more.

Jeśli znasz już funkcję miejsca do magazynowania, możesz chcieć przejść do sekcji podsumowania .If you are already familiar with Storage Spaces, you may want to skip to the Summary section.

PrzeglądOverview

Funkcja miejsca do magazynowania zapewnia odporność na uszkodzenia, która jest często nazywana "odpornością" dla danych.At its heart, Storage Spaces is about providing fault tolerance, often called "resiliency," for your data. Jego implementacja jest podobna do RAID, z wyjątkiem rozmieszczonych na serwerach i zaimplementowanych w oprogramowaniu.Its implementation is similar to RAID, except distributed across servers and implemented in software.

Podobnie jak w przypadku macierzy RAID istnieje kilka różnych sposobów, w których można to zrobić za pomocą funkcji miejsca do magazynowania, co zapewnia różne kompromisy między odpornością na uszkodzenia, wydajnością magazynu i złożoność obliczeń.As with RAID, there are a few different ways Storage Spaces can do this, which make different tradeoffs between fault tolerance, storage efficiency, and compute complexity. Te rozległie dzielą się na dwie kategorie: "dublowanie" i "parzystość", które są czasami nazywane "wymazywaniem kodowania".These broadly fall into two categories: "mirroring" and "parity," the latter sometimes called "erasure coding."

TworzenieMirroring

Dublowanie zapewnia odporność na uszkodzenia przez przechowywanie wielu kopii wszystkich danych.Mirroring provides fault tolerance by keeping multiple copies of all data. Jest to najbardziej zbliżone do macierzy RAID-1.This most closely resembles RAID-1. Sposób rozłożenia i umieszczenia danych jest nieuproszczony (zobacz ten blog , aby dowiedzieć się więcej), ale jest absolutnie prawdziwe, że wszystkie dane przechowywane przy użyciu funkcji dublowania są zapisywane w całości, wiele razy.How that data is striped and placed is non-trivial (see this blog to learn more), but it is absolutely true to say that any data stored using mirroring is written, in its entirety, multiple times. Każda kopia jest zapisywana na innym sprzęcie fizycznym (na różnych dyskach w różnych serwerach), które założono, że nie działają niezależnie.Each copy is written to different physical hardware (different drives in different servers) that are assumed to fail independently.

Funkcja miejsca do magazynowania oferuje dwa typy dublowania — "dwukierunkowe" i "trzy-kierunkowe".Storage Spaces offers two flavors of mirroring – "two-way" and "three-way."

Dublowany dwustopniowoTwo-way mirror

Jednokierunkowa dublowanie zapisuje dwie kopie wszystkich elementów.Two-way mirroring writes two copies of everything. Wydajność magazynu wynosi 50% — aby napisać 1 TB danych, potrzebna jest co najmniej 2 TB pojemności magazynu fizycznego.Its storage efficiency is 50 percent – to write 1 TB of data, you need at least 2 TB of physical storage capacity. Analogicznie potrzeba co najmniej dwóch "domen błędów sprzętowych" — z bezpośrednie miejsca do magazynowania, co oznacza dwa serwery.Likewise, you need at least two hardware 'fault domains' – with Storage Spaces Direct, that means two servers.

dwukierunkowa Kopia lustrzana

Ostrzeżenie

Jeśli masz więcej niż dwa serwery, zalecamy użycie w zamian trójwymiarowej dublowania.If you have more than two servers, we recommend using three-way mirroring instead.

Dublowany trzystopniowoThree-way mirror

Trójwymiarowe dublowanie zapisuje trzy kopie wszystkiego.Three-way mirroring writes three copies of everything. Wydajność magazynu wynosi 33,3% — Aby napisać 1 TB danych, potrzebna jest co najmniej 3 TB pojemności magazynu fizycznego.Its storage efficiency is 33.3 percent – to write 1 TB of data, you need at least 3 TB of physical storage capacity. Podobnie potrzebne są co najmniej trzy domeny błędów sprzętowych — z Bezpośrednie miejsca do magazynowania, co oznacza trzy serwery.Likewise, you need at least three hardware fault domains – with Storage Spaces Direct, that means three servers.

Dublowanie trójwymiarowe może bezpiecznie tolerować co najmniej dwa problemy ze sprzętem (dysk lub serwer) w danym momencie.Three-way mirroring can safely tolerate at least two hardware problems (drive or server) at a time. Na przykład w przypadku ponownego uruchamiania jednego serwera, gdy wystąpi nieoczekiwany inny dysk lub serwer, wszystkie dane pozostają bezpieczne i stale dostępne.For example, if you're rebooting one server when suddenly another drive or server fails, all data remains safe and continuously accessible.

trójwymiarowy duplikat

ParityParity

Kodowanie parzystości, często nazywane "wymazywaniem kodowania", zapewnia odporność na uszkodzenia przy użyciu arytmetycznych obliczeń, które mogą uzyskać skomplikowany niezwykle.Parity encoding, often called "erasure coding," provides fault tolerance using bitwise arithmetic, which can get remarkably complicated. Sposób, w jaki to działa, jest mniej oczywisty niż dublowanie i istnieje wiele doskonałych zasobów online (na przykład ten przewodnik po podsieciach innych firm do wymazywania kodu), który może pomóc w uzyskaniu pomysłu.The way this works is less obvious than mirroring, and there are many great online resources (for example, this third-party Dummies Guide to Erasure Coding) that can help you get the idea. Dowiesz się, że zapewnia to lepszą wydajność magazynu bez naruszenia odporności na uszkodzenia.Sufficed to say it provides better storage efficiency without compromising fault tolerance.

Funkcja miejsca do magazynowania oferuje dwa rodzaje parzystości — "Pojedyncza" parzystość i "podwójna" parzystość, która korzysta z zaawansowanej techniki nazywanej "lokalnymi kodami rekonstrukcji" w większych skalach.Storage Spaces offers two flavors of parity – "single" parity and "dual" parity, the latter employing an advanced technique called "local reconstruction codes" at larger scales.

Ważne

Zalecamy używanie funkcji dublowania w przypadku większości obciążeń z uwzględnieniem wydajności.We recommend using mirroring for most performance-sensitive workloads. Aby dowiedzieć się więcej o tym, jak zrównoważyć wydajność i pojemność w zależności od obciążenia, zobacz Planowanie woluminów.To learn more about how to balance performance and capacity depending on your workload, see Plan volumes.

Pojedyncza parzystośćSingle parity

Pojedyncza parzystość zachowuje tylko jeden symbol parzystości bitowej, który zapewnia odporność na uszkodzenia tylko dla jednego błędu w danym momencie.Single parity keeps only one bitwise parity symbol, which provides fault tolerance against only one failure at a time. Najlepiej przypomina RAID-5.It most closely resembles RAID-5. Aby korzystać z pojedynczej parzystości, potrzebne są co najmniej trzy domeny błędów sprzętowych — z Bezpośrednie miejsca do magazynowania, co oznacza trzy serwery.To use single parity, you need at least three hardware fault domains – with Storage Spaces Direct, that means three servers. Ze względu na to, że dublowanie trójwymiarowe zapewnia większą odporność na uszkodzenia w tej samej skali, odradzamy korzystanie z pojedynczej parzystości.Because three-way mirroring provides more fault tolerance at the same scale, we discourage using single parity. Jednak jest to konieczne, jeśli nie będziesz jej używać, i jest w pełni obsługiwane.But, it's there if you insist on using it, and it is fully supported.

Ostrzeżenie

Odradzamy korzystanie z pojedynczej parzystości, ponieważ może on bezpiecznie tolerować tylko jeden błąd sprzętowy: w przypadku ponownego uruchomienia jednego serwera w przypadku niepowodzenia nieprzerwanego innego dysku lub serwera wystąpi Przestój.We discourage using single parity because it can only safely tolerate one hardware failure at a time: if you're rebooting one server when suddenly another drive or server fails, you will experience downtime. Jeśli masz tylko trzy serwery, zalecamy użycie dublowania trójwymiarowego.If you only have three servers, we recommend using three-way mirroring. Jeśli masz co najmniej cztery, zobacz następną sekcję.If you have four or more, see the next section.

Podwójna parzystośćDual parity

Podwójna parzystość implementuje kody poprawiania błędów Reed-Salomona, aby zachować dwa symbole z parzystością, co zapewnia taką samą odporność na uszkodzenia jak dublowanie trójwymiarowe (tj. do dwóch awarii jednocześnie), ale z lepszą wydajnością magazynu.Dual parity implements Reed-Solomon error-correcting codes to keep two bitwise parity symbols, thereby providing the same fault tolerance as three-way mirroring (i.e. up to two failures at once), but with better storage efficiency. Najlepiej przypomina RAID-6.It most closely resembles RAID-6. Aby korzystać z podwójnej parzystości, potrzebne są co najmniej cztery domeny błędów sprzętowych — z Bezpośrednie miejsca do magazynowania, co oznacza cztery serwery.To use dual parity, you need at least four hardware fault domains – with Storage Spaces Direct, that means four servers. W tej skali wydajność magazynu wynosi 50% — do przechowywania 2 TB danych, potrzeba 4 TB pojemności magazynu fizycznego.At that scale, the storage efficiency is 50% – to store 2 TB of data, you need 4 TB of physical storage capacity.

Podwójna parzystość

Wydajność magazynu o podwójnej parzystości zwiększa większą liczbę domen błędów sprzętowych, od 50% do 80%.The storage efficiency of dual parity increases the more hardware fault domains you have, from 50 percent up to 80 percent. Na przykład w przypadku siedmiu (z Bezpośrednie miejsca do magazynowania, co oznacza siedem serwerów) wydajność przeskoczy do 66,7 procent — do przechowywania 4 TB danych, potrzeba zaledwie 6 TB pojemności magazynu fizycznego.For example, at seven (with Storage Spaces Direct, that means seven servers) the efficiency jumps to 66.7 percent – to store 4 TB of data, you need just 6 TB of physical storage capacity.

Podwójna parzystość

Zapoznaj się z sekcją Podsumowanie dotyczącej wydajności podwójnych i lokalnych kodów odbudowy na każdej skali.See the Summary section for the efficiency of dual party and local reconstruction codes at every scale.

Lokalne kody odbudowyLocal reconstruction codes

Funkcja miejsca do magazynowania zawiera zaawansowaną technikę opracowaną przez firmę Microsoft Research, nazywaną "lokalnymi kodami odbudowy" lub LRC.Storage Spaces introduces an advanced technique developed by Microsoft Research called "local reconstruction codes," or LRC. Na dużą skalę Podwójna parzystość używa LRC do dzielenia kodowania/dekodowania na kilka mniejszych grup, aby zmniejszyć obciążenie wymagane do wprowadzenia zapisów lub odzyskania po awarii.At large scale, dual parity uses LRC to split its encoding/decoding into a few smaller groups, to reduce the overhead required to make writes or recover from failures.

W przypadku dysków twardych (dysk twardy) rozmiar grupy to cztery symbole; w przypadku dysków SSD, rozmiar grupy to sześć symboli.With hard disk drives (HDD) the group size is four symbols; with solid-state drives (SSD), the group size is six symbols. Na przykład poniżej przedstawiono wygląd układu z dyskami twardymi i 12 domen błędów sprzętowych (co to jest 12 serwerów) — Istnieją dwie grupy czterech symboli danych.For example, here's what the layout looks like with hard disk drives and 12 hardware fault domains (meaning 12 servers) – there are two groups of four data symbols. Osiąga 72,7% wydajności magazynu.It achieves 72.7 percent storage efficiency.

Kody odbudowy lokalnej

Firma Microsoft zaleca, aby uzyskać szczegółowe informacje na temat sposobu, w jaki lokalne kody odbudowy obsługują różne scenariusze awarii i dlaczego są one atrakcyjne, przez nasz Claus Joergensen.We recommend this in-depth yet eminently readable walk-through of how local reconstruction codes handle various failure scenarios, and why they're appealing, by our very own Claus Joergensen.

Parzystość z przyspieszeniemMirror-accelerated parity

Wolumin Bezpośrednie miejsca do magazynowania może być duplikatem częściowym i parzystością częściową.A Storage Spaces Direct volume can be part mirror and part parity. Zapisuje najpierw grunty w dublowanej części i stopniowo przenoszone do części parzystej.Writes land first in the mirrored portion and are gradually moved into the parity portion later. Efektywnie Dzięki temu funkcja dublowania przyspiesza wymazywanie kodu.Effectively, this is using mirroring to accelerate erasure coding.

Aby mieszać trójwymiarowe dublowanie i podwójną parzystość, potrzebne są co najmniej cztery domeny błędów, co oznacza cztery serwery.To mix three-way mirror and dual parity, you need at least four fault domains, meaning four servers.

Wydajność magazynu z parzystością na poziomie duplikatów jest między tym, z czego korzystasz ze wszystkich dublowanych lub wszystkich parzystości, i zależy od wybranych proporcji.The storage efficiency of mirror-accelerated parity is in between what you'd get from using all mirror or all parity, and depends on the proportions you choose. Na przykład Demonstracja z 37-minutowego znaku prezentacji pokazuje różne kombinacje osiągające 46%, 54 procent i wydajność w 65% dzięki 12 serwerom.For example, the demo at the 37-minute mark of this presentation shows various mixes achieving 46 percent, 54 percent, and 65 percent efficiency with 12 servers.

Ważne

Zalecamy używanie funkcji dublowania w przypadku większości obciążeń z uwzględnieniem wydajności.We recommend using mirroring for most performance-sensitive workloads. Aby dowiedzieć się więcej o tym, jak zrównoważyć wydajność i pojemność w zależności od obciążenia, zobacz Planowanie woluminów.To learn more about how to balance performance and capacity depending on your workload, see Plan volumes.

PodsumowanieSummary

Ta sekcja zawiera podsumowanie typów odporności dostępnych w Bezpośrednie miejsca do magazynowania, minimalnych wymagań dotyczących skalowania do użycia każdego typu, liczby błędów poszczególnych typów, które mogą być tolerowane i odpowiedniej wydajności magazynu.This section summarizes the resiliency types available in Storage Spaces Direct, the minimum scale requirements to use each type, how many failures each type can tolerate, and the corresponding storage efficiency.

Typy odpornościResiliency types

OdpornośćResiliency Tolerancja niepowodzeńFailure tolerance Wydajność magazynuStorage efficiency
Dublowany dwustopniowoTwo-way mirror 11 50,0%50.0%
Dublowany trzystopniowoThree-way mirror 22 33,3%33.3%
Podwójna parzystośćDual parity 22 50,0% – 80,0%50.0% - 80.0%
MieszanaMixed 22 33,3% – 80,0%33.3% - 80.0%

Minimalne wymagania dotyczące skalowaniaMinimum scale requirements

OdpornośćResiliency Minimalna wymagana domena błędówMinimum required fault domains
Dublowany dwustopniowoTwo-way mirror 22
Dublowany trzystopniowoThree-way mirror 33
Podwójna parzystośćDual parity 44
MieszanaMixed 44

Porada

Jeśli nie korzystasz z odporności na uszkodzenia obudowy lub stojaka, liczba domen błędów odnosi się do liczby serwerów.Unless you are using chassis or rack fault tolerance, the number of fault domains refers to the number of servers. 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.The number of drives in each server does not affect which resiliency types you can use, as long as you meet the minimum requirements for Storage Spaces Direct.

Wydajność z podwójną parzystością dla wdrożeń hybrydowychDual parity efficiency for hybrid deployments

W tej tabeli przedstawiono efektywność magazynu dla podwójnej parzystości i lokalnych kodów odbudowy w każdej skali dla wdrożeń hybrydowych, które zawierają zarówno dyski twarde (dysk twardy), jak i dyski półprzewodnikowe (SSD).This table shows the storage efficiency of dual parity and local reconstruction codes at each scale for hybrid deployments which contain both hard disk drives (HDD) and solid-state drives (SSD).

Domeny błędówFault domains LayoutLayout WydajnośćEfficiency
22
33
44 RS 2 + 2RS 2+2 50,0%50.0%
55 RS 2 + 2RS 2+2 50,0%50.0%
66 RS 2 + 2RS 2+2 50,0%50.0%
77 RS 4 + 2RS 4+2 66,7%66.7%
88 RS 4 + 2RS 4+2 66,7%66.7%
99 RS 4 + 2RS 4+2 66,7%66.7%
1010 RS 4 + 2RS 4+2 66,7%66.7%
1111 RS 4 + 2RS 4+2 66,7%66.7%
1212 LRC (8, 2, 1)LRC (8, 2, 1) 72,7%72.7%
1313 LRC (8, 2, 1)LRC (8, 2, 1) 72,7%72.7%
1414 LRC (8, 2, 1)LRC (8, 2, 1) 72,7%72.7%
1515 LRC (8, 2, 1)LRC (8, 2, 1) 72,7%72.7%
1616 LRC (8, 2, 1)LRC (8, 2, 1) 72,7%72.7%

Wydajność z podwójną parzystością dla wdrożeń ze wszystkimi błyskamiDual parity efficiency for all-flash deployments

W tej tabeli przedstawiono efektywność magazynu dla podwójnej parzystości i lokalnych kodów odbudowy dla każdej skali dla wdrożeń wszystkie-Flash, które zawierają tylko dyski półprzewodnikowe (SSD).This table shows the storage efficiency of dual parity and local reconstruction codes at each scale for all-flash deployments which contain only solid-state drives (SSD). W układzie parzystości można używać większych rozmiarów grup i zapewnić lepszą wydajność magazynu w konfiguracji całego programu.The parity layout can use larger group sizes and achieve better storage efficiency in an all-flash configuration.

Domeny błędówFault domains LayoutLayout WydajnośćEfficiency
22
33
44 RS 2 + 2RS 2+2 50,0%50.0%
55 RS 2 + 2RS 2+2 50,0%50.0%
66 RS 2 + 2RS 2+2 50,0%50.0%
77 RS 4 + 2RS 4+2 66,7%66.7%
88 RS 4 + 2RS 4+2 66,7%66.7%
99 RS 6 + 2RS 6+2 75,0%75.0%
1010 RS 6 + 2RS 6+2 75,0%75.0%
1111 RS 6 + 2RS 6+2 75,0%75.0%
1212 RS 6 + 2RS 6+2 75,0%75.0%
1313 RS 6 + 2RS 6+2 75,0%75.0%
1414 RS 6 + 2RS 6+2 75,0%75.0%
1515 RS 6 + 2RS 6+2 75,0%75.0%
1616 LRC (12, 2, 1)LRC (12, 2, 1) 80,0%80.0%

PrzykładyExamples

Chyba że masz tylko dwa serwery, zalecamy użycie trójwymiarowej dublowania i/lub podwójnej parzystości, ponieważ oferują one lepszą odporność na uszkodzenia.Unless you have only two servers, we recommend using three-way mirroring and/or dual parity, because they offer better fault tolerance. W związku z tym zapewniają, że wszystkie dane pozostają bezpieczne i stały się dostępne nawet wtedy, gdy dwie domeny błędów — z Bezpośrednie miejsca do magazynowania, co oznacza dwa serwery — mają wpływ jednoczesne błędy.Specifically, they ensure that all data remains safe and continuously accessible even when two fault domains – with Storage Spaces Direct, that means two servers - are affected by simultaneous failures.

Przykłady, w których wszystko pozostaje w trybie onlineExamples where everything stays online

W tych sześciu przykładach przedstawiono trójwymiarowe dublowanie i/lub podwójną parzystość .These six examples show what three-way mirroring and/or dual parity can tolerate.

  • 1. utracono jeden dysk (łącznie z dyskami pamięci podręcznej)1. One drive lost (includes cache drives)
  • 2. utracono jeden serwer2. One server lost

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

  • 3. utracono jeden serwer i jeden dysk3. One server and one drive lost
  • 4. dwie stacje są tracone na różnych serwerach4. Two drives lost in different servers

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

  • 5. utracono więcej niż dwa dyski, tak długo jak w przypadku co najmniej dwóch serwerów.5. More than two drives lost, so long as at most two servers are affected
  • 6. utracono dwa serwery6. Two servers lost

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

... w każdym przypadku wszystkie woluminy pozostaną w trybie online....in every case, all volumes will stay online. (Upewnij się, że klaster obsługuje kworum).(Make sure your cluster maintains quorum.)

Przykłady, w których wszystko przejdzie w tryb offlineExamples where everything goes offline

Za pośrednictwem swojego okresu istnienia funkcja miejsca do magazynowania może tolerować dowolną liczbę błędów, ponieważ przywraca pełną odporność po każdym z nich, przez co wystarczająco dużo czasu.Over its lifetime, Storage Spaces can tolerate any number of failures, because it restores to full resiliency after each one, given sufficient time. Niemniej w danym momencie można bezpiecznie mieć co najwyżej dwie domeny błędów.However, at most two fault domains can safely be affected by failures at any given moment. W związku z tym przykłady, co oznacza, że dublowanie trójwymiarowe i/lub Podwójna parzystość nie mogą być tolerowane.The following are therefore examples of what three-way mirroring and/or dual parity cannot tolerate.

  • 7. dyski są tracone w trzech lub większej liczbie serwerów jednocześnie7. Drives lost in three or more servers at once
  • 8. co najmniej trzy serwery zostały utracone jednocześnie8. Three or more servers lost at once

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

Sposób użyciaUsage

Sprawdź Tworzenie woluminów.Check out Create volumes.

Następne krokiNext steps

Więcej informacji na temat tematów wymienionych w tym artykule znajduje się w następujących tematach:For further reading on subjects mentioned in this article, see the following: