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
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 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.
Spiegeling
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, in zijn geheel meerdere keren worden geschreven. Elke kopie wordt geschreven naar verschillende fysieke hardware (verschillende stations op verschillende servers) die worden verondersteld onafhankelijk te 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.
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 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) tegelijk verdragen. 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.
Pariteit
Pariteitscodering, ook wel 'erasure coding' genoemd, biedt fouttolerantie met behulp van bitsgewijze rekenkundige bewerkingen, die opmerkelijk ingewikkeld kunnen worden. De manier waarop dit werkt, is minder duidelijk dan spiegelen en er zijn veel geweldige onlinebronnen (bijvoorbeeld deze dummieshandleiding van derden voor 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 pariteitsspariteitspatronen: "enkel" 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. Zie Volumes plannen voor meer informatie over het verdelen van prestaties en capaciteit, afhankelijk van uw workload.
Eén 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, dat betekent drie servers. Omdat spiegeling in drie richtingen meer fouttolerantie op dezelfde schaal biedt, raden we het gebruik van één pariteit aan. 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-Salomo-fout corrigerende codes om twee bitsgewijze pariteitssymbolen te behouden, waardoor dezelfde fouttolerantie wordt geboden als spiegeling in drie richtingen (dus maximaal 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%: voor het opslaan van 2 TB aan gegevens 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. Bij zeven (met Opslagruimten Direct betekent dit bijvoorbeeld zeven servers) springt de efficiëntie naar 66,7 procent– om 4 TB aan gegevens op te slaan, hebt u slechts 6 TB fysieke opslagcapaciteit nodig.
Zie de sectie Samenvatting voor de efficiëntie van dubbele partij- 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 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.
We raden deze diepgaande maar uitstekend leesbare overzicht aan van hoe lokale reconstructiecodes verschillende foutscenario's verwerken en waarom ze aantrekkelijk zijn, door Claus Joergensen.
Pariteit met versnelling met spiegeling
Een Opslagruimten Direct-volume kan deelspiegeling en deelpariteit zijn. Schrijfbewerkingen komen eerst in het gespiegelde gedeelte terecht en worden later geleidelijk naar het pariteitsgedeelte verplaatst. Dit maakt effectief gebruik van spiegeling om het coderen van wissing 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 pariteit met versnelling op basis van spiegeling bevindt zich tussen wat u krijgt van het gebruik van alle spiegeling of alle pariteit, en is afhankelijk van de verhoudingen die u kiest.
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 elk type, hoeveel fouten elk type kan tolereren en de bijbehorende opslagefficiëntie.
Tolerantietypen
Tolerantie | 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
Tolerantie | 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 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
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 , met Opslagruimten Direct, dat betekent dat twee servers worden beïnvloed door gelijktijdige storingen.
Voorbeelden waarbij alles online blijft
Deze zes voorbeelden laten zien wat spiegeling in drie richtingen en/of dubbele pariteit kan verdragen.
- 1. Eén station is verloren (inclusief cachestations)
- 2. Eén server is verloren gegaan
- 3. Eén server en één station verloren
- 4. Twee stations zijn verloren gegaan op verschillende servers
- 5. Meer dan twee stations zijn verloren gegaan, zolang maximaal twee servers worden beïnvloed
- 6. Twee servers zijn verloren gegaan
... in elk geval blijven alle volumes online. (Zorg ervoor dat het cluster quorum onderhoudt.)
Voorbeelden waarbij alles offline gaat
Gedurende de levensduur kan Opslagruimten elk aantal fouten tolereren, omdat het herstelt naar volledige tolerantie na elke fout, gegeven voldoende tijd. 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 tolereert .
- 7. Stations verloren in drie of meer servers tegelijk
- 8. Drie of meer servers zijn in één keer verloren gegaan
Gebruik
Volgende stappen
Zie het volgende voor meer informatie over onderwerpen die in dit artikel worden genoemd: