Fouttolerantie en opslagefficiëntie op 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 elke optie 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 Opslagruimten dit kunt doen, die verschillende afwegingen maken 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.

Mirroring

Spiegeling biedt fouttolerantie door meerdere kopieën van alle gegevens te bewaren. Dit lijkt het meest op RAID-1. Hoe die gegevens worden gestreept en geplaatst, is niet triviaal (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 hun 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 soorten spiegeling: 'tweerichtings' en 'drierichtings'.

Mirror in twee richtingen

Spiegeling in twee richtingen 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 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.

Mirror in drie richtingen

Spiegeling in drie richtingen 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 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) tegelijk verdragen. Als u bijvoorbeeld een server opnieuw opstart wanneer plotseling een ander station of een andere server uitvalt, blijven alle gegevens veilig en continu toegankelijk.

spiegelen in drie richtingen

Parity

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

Opslagruimten biedt twee soorten pariteit: 'enkele' pariteit en 'dubbele' pariteit, waarbij de laatste gebruikmaakt van een geavanceerde techniek die 'lokale reconstructiecodes' wordt genoemd 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.

Enkele pariteit

Eén pariteit behoudt slechts één bitwise 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 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

We raden het gebruik van één pariteit af, omdat deze slechts één hardwarefout tegelijk kan verdragen: 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 er 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 (d.w.w. 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 betekent dit vier servers. Op die schaal is de opslagefficiëntie 50%. Als u 2 TB aan gegevens wilt opslaan, hebt u 4 TB fysieke opslagcapaciteit nodig.

dubbele pariteit

De opslagefficiëntie van dubbele pariteit neemt toe naarmate u meer hardwarefoutdomeinen hebt, van 50 procent tot 80 procent. Bijvoorbeeld: bij zeven (met Opslagruimten Direct betekent dat zeven servers) gaat de efficiëntie naar 66,7 procent. Als u 4 TB aan gegevens wilt opslaan, hebt u slechts 6 TB fysieke opslagcapaciteit nodig.

dual-parity-wide

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

Lokale reconstructiecodes

Opslagruimten introduceert een geavanceerde techniek die is ontwikkeld door Microsoft Research, 'lokale reconstructiecodes' of LRC. Op grote schaal maakt dubbele pariteit gebruik van LRC om de codering/decodering op te splitsen in een paar kleinere groepen, om de overhead te verminderen die nodig is om schrijfbewerkingen uit te voeren of te herstellen van fouten.

Bij harde schijven (HDD) is de groepsgrootte vier symbolen; bij SSD (Solid-State Drives) is de groepsgrootte zes symbolen. Hier ziet u bijvoorbeeld hoe de indeling eruitziet met harde schijven en 12 hardwarefoutdomeinen (dat wil zeggen 12 servers): er zijn twee groepen van vier gegevenssymbolen. Hiermee wordt een opslagefficiëntie van 72,7 procent bereikt.

local-reconstruction-codes

Claus Joergensen raadt u aan om dit uitgebreide, maar zeer leesbare overzicht van de manier waarop lokale reconstructiecodes omgaan met verschillende foutscenario's en waarom ze aantrekkelijk zijn, aan te bevelen.

Pariteit met versnelling voor spiegelen

Een Opslagruimten Direct volume kan deels spiegelen en deels pariteit zijn. Schrijfbewerkingen landen eerst in het gespiegelde gedeelte en worden later geleidelijk verplaatst naar het pariteitsgedeelte. In feite maakt dit gebruik van spiegeling om het wissen van codering te versnellen.

Als u spiegeling in drie richtingen en dubbele pariteit wilt combineren, hebt u ten minste vier foutdomeinen nodig, dat wil zeggen vier servers.

De opslagefficiëntie van pariteit met versnelde spiegeling ligt tussen wat u zou krijgen van het gebruik van alle of alle pariteit, en is afhankelijk van de verhoudingen die u kiest. De demo na 37 minuten van deze presentatie 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, hoeveel fouten elk type kan verdragen en de bijbehorende opslagefficiëntie.

Tolerantietypen

Flexibiliteit Fouttolerantie Opslagefficië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 fouttolerantie voor chassis of rack gebruikt, verwijst het aantal foutdomeinen naar het aantal servers. Het aantal stations op elke server heeft geen invloed op de tolerantietypen die u kunt gebruiken, zolang u voldoet aan de minimale vereisten voor Opslagruimten Direct.

Efficiëntie van dubbele pariteit voor hybride implementaties

Deze tabel toont de opslagefficiëntie van dubbele pariteit en lokale reconstructiecodes op elke schaal voor hybride implementaties die zowel harde schijven (HDD) als SSD's (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%

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

In deze tabel ziet u de opslagefficiëntie van dubbele pariteit 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 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 spiegeling in drie richtingen en/of dubbele pariteit te gebruiken, omdat deze 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 fouten.

Voorbeelden waarbij alles online blijft

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

  • 1. Er is één station verloren gegaan (inclusief cachestations)
  • 2. Er is één server verloren gegaan

fouttolerantie-voorbeelden-1-en-2

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

fouttolerantie-voorbeelden-3-en-4

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

fouttolerantie-voorbeelden-5-en-6

... in elk geval blijven alle volumes online. (Zorg ervoor dat uw cluster quorum behoudt.)

Voorbeelden waarbij alles offline gaat

In de loop van de levensduur kan Opslagruimten een willekeurig aantal fouten tolereren, omdat de volledige tolerantie na elke fout wordt hersteld, op basis van voldoende tijd. Maximaal twee foutdomeinen kunnen echter veilig worden beïnvloed door fouten op een bepaald moment. Hier volgen daarom voorbeelden van wat spiegeling in drie richtingen en/of dubbele pariteit niet kan verdragen.

  • 7. Stations verloren op drie of meer servers tegelijk
  • 8. Drie of meer servers tegelijk verloren

fouttolerantie-voorbeelden-7-en-8

Gebruik

Bekijk Volumes maken.

Volgende stappen

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