Fouttolerantie en opslagefficiëntie op Azure Stack HCI en Windows Server-clusters
Van toepassing op: Azure Stack HCI, versies 21H2 en 20H2; Windows Server 2022, Windows Server 2019
In dit artikel worden de beschikbare tolerantieopties uitgelegd en worden de schaalvereisten, opslagefficiëntie en algemene voordelen en afwegingen van beide beschreven.
Overzicht
Opslagruimten Direct biedt fouttolerantie, ook wel 'tolerantie' genoemd, voor uw gegevens. De implementatie is vergelijkbaar met RAID, behalve gedistribueerd over servers en geïmplementeerd in software.
Net als bij RAID zijn er een aantal verschillende manieren waarop Opslagruimten dit kunt doen, waardoor er verschillende afwegingen kunnen worden gemaakt tussen fouttolerantie, opslagefficiëntie en rekencomplexiteit. Deze kunnen grofweg worden onderverdeeld in twee categorieën: 'spiegelen' en 'pariteit', de laatste worden ook wel 'erasure coding' genoemd.
Mirroring
Spiegeling biedt fouttolerantie door meerdere kopieën van alle gegevens te bewaren. Dit lijkt het meest op RAID-1. Hoe die gegevens worden gestriped en geplaatst, is niet eenvoudig (zie dit blog voor meer informatie), maar het is absoluut waar om te zeggen dat alle gegevens die zijn opgeslagen met behulp van spiegeling, in zijn geheel meerdere keren worden geschreven. Elke kopie wordt geschreven naar verschillende fysieke hardware (verschillende stations op verschillende servers) die onafhankelijk van elkaar mislukken.
U kunt kiezen tussen twee varianten van spiegelen: 'in twee of drie punten'.
Mirror in twee richtingen
Mirroring in twee punten schrijft twee kopieën van alles. De opslagefficiëntie is 50 procent. Als u 1 TB aan gegevens wilt schrijven, hebt u ten minste 2 TB aan fysieke opslagcapaciteit nodig. Ook hebt u ten minste twee foutdomeinen voor hardware nodig: met Opslagruimten Direct betekent dit twee servers.

Waarschuwing
Als u meer dan twee servers hebt, raden we u aan in plaats daarvan mirroring in drie punten te gebruiken.
Mirror in drie richtingen
Mirroring in drie punten schrijft drie kopieën van alles. De opslagefficiëntie is 33,3 procent. Als u 1 TB aan gegevens wilt schrijven, hebt u ten minste 3 TB aan fysieke opslagcapaciteit nodig. Ook hebt u ten minste drie hardwarefoutdomeinen nodig: met Opslagruimten Direct betekent dit drie servers.
Mirroring in drie punten kan veilig ten minste twee hardwareproblemen (station of server) tegelijk tolereren. Als u bijvoorbeeld één server opnieuw opstart wanneer plotseling een ander station of server uitvalt, blijven alle gegevens veilig en continu toegankelijk.

Parity
Pariteitscodering, vaak 'erasure coding' genoemd, biedt fouttolerantie met behulp van bitsgewijze rekenkundige berekeningen, wat behoorlijk ingewikkeld kan worden. De manier waarop dit werkt, is minder duidelijk dan spiegelen en er zijn veel geweldige onlineresources (bijvoorbeeld deze externe Dummies Guide to Erasure Coding) die u kunnen helpen bij het idee. Het volstaat om te zeggen dat het een betere opslagefficiëntie biedt zonder dat dit ten koste gaat van fouttolerantie.
Opslagruimten biedt twee varianten van pariteit: 'enkelvoudige' pariteit en 'dubbele' pariteit. De tweede variant maakt gebruik van een geavanceerde techniek met de naam 'lokale coderingscodes' op grotere schaal.
Belangrijk
We raden u aan spiegeling te gebruiken voor de meeste prestatiegevoelige workloads. Zie Volumes plannen voor meer informatie over het verdelen van prestaties en capaciteit, afhankelijk van uw workload.
Eén pariteit
Eén pariteit behoudt slechts één bitsgewijze pariteitssymbool, dat fouttolerantie biedt tegen slechts één fout tegelijk. Het lijkt het meest op RAID-5. Als u één pariteit wilt gebruiken, hebt u ten minste drie hardwarefoutdomeinen nodig. Met Opslagruimten Direct betekent dit drie servers. Omdat mirroring in drie punten meer fouttolerantie op dezelfde schaal biedt, wordt het gebruik van één pariteit afgeraden. Maar het is er wel als u wilt dat het wordt gebruikt en het volledig wordt ondersteund.
Waarschuwing
Het gebruik van één pariteit wordt afgeraden, omdat er slechts één hardwarefout tegelijk kan worden getolereerd: als u de ene server opnieuw opstart wanneer plotseling een ander station of server uitvalt, ervaart u uitvaltijd. Als u slechts drie servers hebt, raden we u aan mirroring in drie punten te gebruiken. Zie de volgende sectie als u er vier of meer hebt.
Dubbele pariteit
Dubbele pariteit implementeert Reed-Solomon fout-corrigerende codes om twee bitsgewijze pariteitssymbolen te behouden, waardoor dezelfde fouttolerantie wordt geleverd als mirroring in drie punten (dat wil zeggen maximaal twee fouten tegelijk), maar met betere opslagefficiëntie. Het lijkt het meest op RAID-6. Als u dubbele pariteit wilt gebruiken, hebt u ten minste vier hardwarefoutdomeinen nodig. Met Opslagruimten Direct betekent dit vier servers. Op die schaal is de opslagefficiëntie 50%. Als u 2 TB aan gegevens wilt opslaan, hebt u 4 TB aan fysieke opslagcapaciteit nodig.

De opslagefficiëntie van dubbele pariteit verhoogt des te meer hardwarefoutdomeinen u hebt, van 50 procent tot 80 procent. Om zeven (met Opslagruimten Direct, dat wil zeggen zeven servers) gaat de efficiëntie bijvoorbeeld omhoog naar 66,7 procent. Voor het opslaan van 4 TB aan gegevens hebt u slechts 6 TB aan fysieke opslagcapaciteit nodig.

Zie de sectie Samenvatting voor de efficiëntie van dual party- en lokale postcodes op elke schaal.
Lokale codes voor lokaal gebruik
Opslagruimten introduceert een geavanceerde techniek die is ontwikkeld door Microsoft Research en die 'lokale codes voor postcodes' of LRC wordt genoemd. Op grote schaal maakt dubbele pariteit gebruik van LRC om de codering/decoderen op te splitsen in enkele kleinere groepen, om de overhead te verminderen die nodig is om schrijf- of herstelfouten te maken.
Bij hardeschijfstations (HDD) is de groepsgrootte vier symbolen; met SSD (solid-state drives) is de groepsgrootte zes symbolen. Zo ziet de indeling er bijvoorbeeld uit met harde schijven en 12 hardwarefoutdomeinen (12 servers). Er zijn twee groepen van vier gegevenssymbolen. Het realiseert een opslagefficiëntie van 72,7 procent.

We raden u aan dit uitgebreide maar goed leesbare scenario te bekijken van hoe lokale codes met fouten omgaan en waarom ze aantrekkelijk zijn,door Joeiesen.
Gespiegelde pariteit
Een Opslagruimten Direct-volume kan deelspiegeling en onderdeelpariteit zijn. Schrijft land eerst in het gespiegelde gedeelte en worden later geleidelijk verplaatst naar het pariteitsgedeelte. Dit maakt effectief gebruik van spiegeling om het wissen van code te versnellen.
Als u mirror in drie punten en dubbele pariteit wilt combineren, hebt u ten minste vier foutdomeinen nodig, wat vier servers betekent.
De opslagefficiëntie van mirror-accelerated pariteit ligt tussen wat u zou krijgen van het gebruik van alle mirror of alle pariteit, en is afhankelijk van de verhoudingen die u kiest. De demo van deze presentatie van 37 minuten toont bijvoorbeeld verschillende combinaties die een efficiëntie van 46 procent, 54 procent en 65 procent bereiken met 12 servers.
Belangrijk
We raden u aan spiegeling te gebruiken voor de meeste prestatiegevoelige workloads. Zie Volumes plannen voor meer informatie over het verdelen van prestaties en capaciteit, afhankelijk van uw workload.
Samenvatting
In deze sectie vindt u een overzicht van de tolerantietypen die beschikbaar zijn in Opslagruimten Direct, de minimale schaalvereisten voor het gebruik van elk type, het aantal fouten dat elk type kan tolereren en de bijbehorende opslagefficiëntie.
Tolerantietypen
| Flexibiliteit | Fouttolerantie | Storage efficiëntie |
|---|---|---|
| Mirror in twee richtingen | 1 | 50.0% |
| Mirror in drie richtingen | 2 | 33.3% |
| Dubbele pariteit | 2 | 50.0% - 80.0% |
| Gemengd | 2 | 33.3% - 80.0% |
Minimale schaalvereisten
| Flexibiliteit | Minimaal vereiste foutdomeinen |
|---|---|
| Mirror in twee richtingen | 2 |
| Mirror in drie richtingen | 3 |
| Dubbele pariteit | 4 |
| Gemengd | 4 |
Tip
Tenzij u chassis- of rackfouttolerantie gebruikt,verwijst het aantal foutdomeinen naar het aantal servers. Het aantal stations in elke server heeft geen invloed op welke tolerantietypen u kunt gebruiken, zolang u maar voldoet aan de minimale vereisten voor Opslagruimten Direct.
Dubbele pariteitsefficiëntie voor hybride implementaties
In deze tabel ziet u de opslagefficiëntie van dubbele pariteit en lokale codes voor lokaal gebruik op elke schaal voor hybride implementaties die zowel harde schijven (HDD) als SSD (Solid-State Drives) bevatten.
| Foutdomeinen | Layout | Efficiëntie |
|---|---|---|
| 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% |
Dubbele pariteitsefficiëntie voor implementaties met all-flash
In deze tabel ziet u de opslagefficiëntie van dubbele pariteit en lokale codes voor lokaal gebruik op elke schaal voor alle flash-implementaties die alleen SSD-schijven (Solid-State Drives) bevatten. De pariteitsindeling kan grotere groepsgrootten gebruiken en een betere opslagefficiëntie bereiken in een all-flash-configuratie.
| Foutdomeinen | Layout | Efficiëntie |
|---|---|---|
| 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% |
Voorbeelden
Tenzij u slechts twee servers hebt, raden we u aan mirroring in drie punten en/of dubbele pariteit te gebruiken, omdat ze betere fouttolerantie bieden. Ze zorgen er met name voor dat alle gegevens veilig en continu toegankelijk blijven, zelfs wanneer twee foutdomeinen , met Opslagruimten Direct, dat wil zeggen twee servers, worden beïnvloed door gelijktijdige storingen.
Voorbeelden waar alles online blijft
Deze zes voorbeelden laten zien wat mirroring in drie punten en/of dubbele pariteit kan tolereren.
- 1. Eén station verloren (inclusief cachestations)
- 2. Eén server verloren

- 3. Eén server en één station verloren
- 4. Twee stations verloren op verschillende servers

- 5. Meer dan twee stations verloren, zolang er maar twee servers worden beïnvloed
- 6. Twee servers verloren

... In elk geval blijven alle volumes online. (Zorg ervoor dat uw cluster quorum onderhoudt.)
Voorbeelden waarbij alles offline gaat
Gedurende de levensduur kunnen Opslagruimten elk aantal fouten tolereren, omdat het na elke fout weer volledig herstelt, wanneer er voldoende tijd is. Twee foutdomeinen kunnen echter op elk moment veilig worden beïnvloed door fouten. Hier volgen enkele voorbeelden van wat mirroring in drie stappen en/of dubbele pariteit niet tolereert.
- 7. Stations verloren in drie of meer servers tegelijk
- 8. Drie of meer servers tegelijk verloren

Gebruik
Bekijk Volumes maken.
Volgende stappen
Zie de volgende onderwerpen voor meer informatie over de onderwerpen die in dit artikel worden genoemd: