Delen via


Fouttolerantie en opslagefficiëntie in Azure Stack HCI- en Windows Server-clusters

Van toepassing op: Azure Stack HCI, versies 22H2 en 21H2; 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 elk ervan beschreven.

Overzicht

Storage Spaces Direct biedt fouttolerantie, ook wel 'veerkracht' 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 kunnen doen, waardoor verschillende afwegingen worden tussen fouttolerantie, opslagefficiëntie en rekencomplexiteit. Deze kunnen in grote lijnen worden onderverdeeld in twee categorieën: 'spiegeling' en 'pariteit', de laatste ook wel 'erasure coding' genoemd.

Spiegelen

Spiegeling biedt fouttolerantie door meerdere kopieën van alle gegevens te bewaren. Dit lijkt het meest op RAID-1. Hoe deze gegevens worden gestreept en geplaatst, zijn niet triviaal (zie deze blog voor meer informatie), maar het is absoluut waar om te zeggen dat alle gegevens die zijn opgeslagen met spiegeling, meerdere keren worden geschreven. Elke kopie wordt opgeslagen op verschillende fysieke hardware, zoals verschillende schijven op diverse servers, die naar verwachting onafhankelijk falen.

U kunt kiezen tussen twee soorten spiegeling: 'tweerichtings' en 'drierichtings'.

Spiegel in twee richtingen

Tweezijdige spiegeling maakt 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 fysieke opslagcapaciteit nodig. Op dezelfde manier hebt u ten minste twee hardwarefoutdomeinen nodig: met Opslagruimten Direct betekent dit twee servers.

tweerichtingsspiegeling

Waarschuwing

Als u meer dan twee servers hebt, raden we u aan in plaats daarvan spiegeling in drie richtingen te gebruiken.

Driezijdige spiegel

Drievoudige spiegeling 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. Op dezelfde manier hebt u ten minste drie hardwarefoutdomeinen nodig: met Opslagruimten Direct betekent dit drie servers.

Spiegeling in drie richtingen kan veilig ten minste twee hardwareproblemen (station of server) tegelijktolereren. Als u bijvoorbeeld de ene server opnieuw opstart wanneer plotseling een ander station of een andere server uitvalt, blijven alle gegevens veilig en continu toegankelijk.

driezijdige spiegel

Pariteit

Pariteitscodering, ook wel 'erasure coding' genoemd, biedt fouttolerantie met behulp van bitsgewijze rekenkundige bewerkingen, die opmerkelijk gecompliceerdekunnen krijgen. De manier waarop dit werkt, is minder duidelijk dan spiegelen en er zijn veel geweldige onlinebronnen (bijvoorbeeld deze derde partij Dummies Guide to Erasure Coding) die u kunnen helpen het idee te krijgen. Voldoende om te zeggen dat het een betere opslagefficiëntie biedt zonder de fouttolerantie in gevaar te brengen.

Opslagruimten biedt twee varianten van pariteit: 'één' pariteit en 'dubbele' pariteit, waarbij de laatste gebruikmaakt van een geavanceerde techniek met de naam 'lokale reconstructiecodes' op grotere schaal.

Belangrijk

We raden u aan spiegeling te gebruiken voor de meeste prestatiegevoelige workloads. Voor meer informatie over hoe u prestaties en capaciteit kunt balanceren afhankelijk van uw workload, zie Volumes plannen.

Enkele pariteit

Eén pariteit houdt slechts één bitsgewijze pariteitssymbool bij, wat 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, wat betekent dat drie servers. Omdat spiegeling in drie richtingen meer fouttolerantie op dezelfde schaal biedt, raden we het gebruik van één pariteit af. Maar het is er als u erop staat om het te gebruiken en het wordt volledig 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 een andere server uitvalt, ondervindt u downtime. Als u slechts drie servers hebt, raden we u aan spiegeling in drie richtingen te gebruiken. Als u vier of meer hebt, raadpleegt u de volgende sectie.

Dubbele pariteit

Dubbele pariteit implementeert Reed-Solomon fout corrigerende codes om twee bitsgewijze pariteitssymbolen te behouden, waardoor dezelfde fouttolerantie wordt geboden als spiegeling in drie richtingen (bijvoorbeeld tot twee fouten tegelijk), maar met een 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, wat vier servers betekent. Op die schaal is de opslagefficiëntie 50%: om 2 TB aan gegevens op te slaan, hebt u 4 TB fysieke opslagcapaciteit nodig.

dubbele pariteit

De opslagefficiëntie van dubbele pariteit verhoogt des te meer hardwarefoutdomeinen u hebt, van 50 procent tot 80 procent. Bij zeven (met Opslagruimten Direct betekent dit bijvoorbeeld zeven servers) springt de efficiëntie naar 66,7 procent. Als u 4 TB aan gegevens wilt opslaan, hebt u slechts 6 TB fysieke opslagcapaciteit nodig.

dubbele pariteitsbrede

Zie de sectie Samenvatting voor de efficiëntie van dubbele partij- en lokale reconstructiecodes op elke schaal.

Lokale reconstructiecodes

Opslagruimte introduceert een geavanceerde techniek die is ontwikkeld door Microsoft Research, "lokale reconstructiecodes" of LRC. Op grote schaal gebruikt dubbele pariteit LRC om de codering/decodering in een paar kleinere groepen te splitsen, om de overhead te verminderen die nodig is om schrijfbewerkingen te maken of te herstellen van fouten.

Bij harde schijven (HDD) is de groepsgrootte vier symbolen; met SSD (Solid-State Drives) is de groepsgrootte zes symbolen. Hier ziet u bijvoorbeeld hoe de indeling eruitziet met harde schijven en 12 hardwarefoutdomeinen (wat 12 servers betekent) – er zijn twee groepen van vier gegevenssymbolen. Het behaalt 72,7 procent opslagefficiëntie.

lokale reconstructiecodes

We raden dit diepgaande maar zeer leesbare overzicht aan van hoe lokale reconstructiecodes verschillende foutscenario's aanpakken en waarom ze aantrekkelijk zijn, door Claus Joergensen.

Spiegelversnelde pariteit

Een Opslagruimten Direct-volume kan gedeeltelijk spiegeling en gedeeltelijk pariteit zijn. Schrijfbewerkingen komen eerst in het gespiegelde gedeelte terecht en worden later geleidelijk naar het pariteitsgedeelte verplaatst. Effectief gezien is dit door spiegeling om codering van gegevensverwijdering te versnellen.

Als u spiegeling in drie richtingen en dubbele pariteit wilt combineren, hebt u ten minste vier foutdomeinen nodig, wat betekent dat er vier servers zijn.

De opslagefficiëntie van spiegel-versnelde pariteit bevindt zich tussen de efficiëntie die u zou bereiken met alleen spiegeling of alleen pariteit, en is afhankelijk van de verhoudingen die u kiest.

Belangrijk

We raden u aan spiegeling te gebruiken voor de meeste prestatiegevoelige workloads. Voor meer informatie over hoe u prestaties en capaciteit kunt balanceren afhankelijk van uw werklast, zie Volumes plannen.

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

Herstellingsvermogen Fouttolerantie Opslagefficiëntie
Doorkijkspiegel 1 50.0%
Drievoudige spiegel 2 33.3%
Dubbele pariteit 2 50.0% - 80.0%
Gemengd 2 33.3% - 80,0%

Minimale schaalvereisten

Herstellingsvermogen Minimaal vereiste foutdomeinen
Spiegel in twee richtingen 2
Driezijdige spiegel 3
Dubbele pariteit 4
Gemengd 4

Fooi

Tenzij u gebruikmaakt van chassis- of rackfouttolerantie, betekent het aantal foutdomeinen het aantal servers. Het aantal stations in elke server heeft geen invloed op de veerkrachtigheidstypen die u kunt gebruiken, zolang u voldoet aan de minimumvereisten voor Storage Spaces Direct.

Efficiëntie van dubbele pariteit voor hybride implementaties

In deze tabel ziet u de opslagefficiëntie van dubbele pariteits- en lokale reconstructiecodes op elke schaal voor hybride implementaties, die zowel harde schijven (HDD) als SSD-schijven (solid-state drives) bevatten.

Foutdomeinen Indeling 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%

Efficiëntie van dubbele pariteit voor all-flash-implementaties

In deze tabel ziet u de opslagefficiëntie van dubbele pariteits- en lokale reconstructiecodes op elke schaal voor all-flash-implementaties, die alleen SSD's (Solid-State Drives) bevatten. De pariteitsindeling kan grotere groepsgrootten gebruiken en betere opslagefficiëntie bereiken in een all-flash-configuratie.

Foutdomeinen Indeling 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 spiegeling in drie richtingen 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 worden beïnvloed door gelijktijdige storingen - met Storage Spaces Direct betekent dat dat twee servers betrokken zijn.

Voorbeelden waarbij alles online blijft

Deze zes voorbeelden laten zien wat spiegeling in drie richtingen en/of dubbele pariteit kunnen tolereren.

  • 1. Eén schijf uitgevallen (inclusief cacheschijven)
  • 2. Één server is verloren gegaan

fouttolerantie-voorbeelden-1-en-2

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

fouttolerantie-voorbeelden-3-en-4

  • 5. Meer dan twee schijven verloren, zolang als er maximaal twee servers worden getroffen
  • 6. Twee servers zijn verloren gegaan

fouttolerantie-voorbeelden-5-en-6-

... in elk geval blijven alle volumes online. (Zorg ervoor dat het cluster quorum onderhoudt.)

Voorbeelden waarbij alles offline gaat

"Storage Spaces kan gedurende de levensduur een willekeurig aantal fouten tolereren, omdat het na elke gebeurtenis weer volledig wordt hersteld, mits er voldoende tijd is." Maximaal twee foutdomeinen kunnen echter veilig worden beïnvloed door fouten op elk gewenst moment. Hier volgen daarom voorbeelden van wat spiegeling in drie richtingen en/of dubbele pariteit niet tolereren.

  • 7. Schijven verloren in drie of meer servers tegelijk
  • 8. drie of meer servers in één keer verloren

fouttolerantie-voorbeelden-7-en-8-

Gebruik

Bekijk Volumes aanmaken.

Volgende stappen

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