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.
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.
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.
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.
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.
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
- 3. Eén server en één station verloren
- 4. Twee stations verloren op verschillende servers
- 5. Meer dan twee stations verloren, zolang maximaal twee servers worden beïnvloed
- 6. Twee servers verloren
... 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
Gebruik
Bekijk Volumes maken.
Volgende stappen
Zie het volgende voor meer informatie over onderwerpen die in dit artikel worden genoemd:
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor