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.

mirror in twee punten

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.

mirror in drie punten

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.

dubbele pariteit

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.

dual-parity-wide

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.

local-refing-codes

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

fault-tolerance-examples-1-and-2

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

fault-tolerance-examples-3-and-4

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

fault-tolerance-examples-5-and-6

... 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

fault-tolerance-examples-7-and-8

Gebruik

Bekijk Volumes maken.

Volgende stappen

Zie de volgende onderwerpen voor meer informatie over de onderwerpen die in dit artikel worden genoemd: