Feltolerans och lagringseffektivitet på Azure Stack HCI och Windows Server-kluster

Gäller för: Azure Stack HCI, versionerna 21H2 och 20H2; Windows Server 2022, Windows Server 2019

Den här artikeln beskriver tillgängliga återhämtningsalternativ och beskriver skalningskrav, lagringseffektivitet samt allmänna fördelar och kompromisser för var och en.

Översikt

Lagringsutrymmen Direct ger feltolerans, som ofta kallas "återhämtning", för dina data. Implementeringen liknar RAID, förutom att den distribueras mellan servrar och implementeras i programvara.

Precis som med RAID finns det några olika sätt Lagringsutrymmen kan göra detta, vilket gör olika avvägningar mellan feltolerans, lagringseffektivitet och beräkningskomplexitet. Dessa kan delas in i två kategorier: "spegling" och "paritet", den senare kallas ibland "raderingskodning".

Spegling

Spegling ger feltolerans genom att ha flera kopior av alla data. Detta liknar RAID-1. Hur dessa data strimlades och placeras är icke-trivialt (se den här bloggen för att lära dig mer), men det är absolut sant att alla data som lagras med spegling skrivs i sin helhet flera gånger. Varje kopia skrivs till olika fysiska maskinvara (olika enheter på olika servrar) som antas misslyckas oberoende av varandra.

Du kan välja mellan två varianter av spegling – "tvåvägs" och "trevägs".

2-vägsspegling

Tvåvägsspegling skriver två kopior av allt. Lagringseffektiviteten är 50 procent – för att skriva 1 TB data behöver du minst 2 TB fysisk lagringskapacitet. På samma sätt behöver du minst två maskinvarudomäner – med Lagringsutrymmen Direct innebär det två servrar.

tvåvägsspegling

Varning

Om du har fler än två servrar rekommenderar vi att du använder trevägsspegling i stället.

3-vägsspegling

Trevägsspegling skriver tre kopior av allt. Lagringseffektiviteten är 33,3 procent – för att skriva 1 TB data behöver du minst 3 TB fysisk lagringskapacitet. På samma sätt behöver du minst tre maskinvarufeldomäner – med Lagringsutrymmen Direct innebär det tre servrar.

Trevägsspegling kan tolerera minst två maskinvaruproblem (enhet eller server) i tagetpå ett säkert sätt. Om du till exempel startar om en server när plötsligt en annan enhet eller server slutar fungera förblir alla data säkra och kan nås kontinuerligt.

trevägsspegling

Paritet

Paritetskodning, som ofta kallas "utplåningskodning", ger feltolerans med hjälp av bitvis aritmetik, vilket kan bli mycket komplicerat. Det här är mindre uppenbart än spegling och det finns många bra onlineresurser (till exempel den här dummies-guidenfrån tredje part för att radera kodning) som kan hjälpa dig att få idén. Det räcker med att säga att det ger bättre lagringseffektivitet utan att kompromissa med feltoleransen.

Lagringsutrymmen två varianter av paritet – "enkel" paritet och "dubbel" paritet, använder den senare en avancerad teknik som kallas "lokala reningskoder" i större skala.

Viktigt

Vi rekommenderar att du använder spegling för de flesta prestandakänsliga arbetsbelastningar. Mer information om hur du balanserar prestanda och kapacitet beroende på din arbetsbelastning finns i Planera volymer.

Enkel paritet

Enkel paritet behåller bara en bitvis paritetssymbol, vilket ger feltolerans mot endast ett fel i taget. Den liknar raid-5 mest. Om du vill använda enkel paritet behöver du minst tre maskinvarufeldomäner – med Lagringsutrymmen Direct innebär det tre servrar. Eftersom trevägsspegling ger mer feltolerans i samma skala rekommenderar vi inte att du använder enkel paritet. Men det finns där om du vill använda det, och det stöds fullt ut.

Varning

Vi avråder från att använda enkel paritet eftersom den bara tolererar ett maskinvarufel i taget på ett säkert sätt: om du startar om en server när plötsligt en annan enhet eller server slutar fungera kommer du att uppleva driftstopp. Om du bara har tre servrar rekommenderar vi att du använder trevägsspegling. Om du har fyra eller fler kan du läsa nästa avsnitt.

Dubbel paritet

Dubbel paritet implementerar Reed-Solomon felrepareringskoder för att behålla två bitvisa paritetssymboler, vilket ger samma feltolerans som trevägsspegling (dvs. upp till två fel samtidigt), men med bättre lagringseffektivitet. Den liknar raid-6 mest. Om du vill använda dubbel paritet behöver du minst fyra maskinvarufeldomäner – med Lagringsutrymmen Direct innebär det fyra servrar. I den här skalan är lagringseffektiviteten 50 % – för att lagra 2 TB data behöver du 4 TB fysisk lagringskapacitet.

dubbel paritet

Lagringseffektiviteten med dubbel paritet ökar ju fler maskinvarufeldomäner du har, från 50 procent upp till 80 procent. Vid sju (med Lagringsutrymmen Direct innebär det till exempel sju servrar) att effektiviteten ökar till 66,7 procent – för att lagra 4 TB data behöver du bara 6 TB fysisk lagringskapacitet.

dubbel paritetsomfattande

I avsnittet Sammanfattning kan du se hur effektiva dubbla och lokala koder för rekonstruering är i varje skala.

Lokala koder för resning

Lagringsutrymmen introducerar en avancerad teknik som utvecklats av Microsoft Research och som kallas "lokala koder för kodning" eller LRC. I stor skala använder dubbel paritet LRC för att dela upp kodning/avkodning i några mindre grupper, för att minska det arbete som krävs för att göra skrivningar eller återställa från fel.

Med hårddiskar (HDD) är gruppstorleken fyra symboler: med SSD(Solid State Drives) är gruppstorleken sex symboler. Så här ser layouten till exempel ut med hårddiskar och 12 maskinvarufeldomäner (vilket innebär 12 servrar) – det finns två grupper med fyra datasymboler. Det ger en lagringseffektivitet på 72,7 procent.

lokala koder för återskapande

Vi rekommenderar den här djupgående men ändå eminent läsbara genomgången av hur lokala kodningskoder hanterar olika felscenarier ochvarför de är tilltalande , av Claus Joegensen.

Speglad paritet

En Lagringsutrymmen Direct-volym kan vara en del spegling och delparitet. Skrivningar hamnar först i den speglade delen och flyttas gradvis till paritetsdelen senare. Detta använder i praktiken spegling för att påskynda utplåningskodning.

Om du vill blanda trevägsspegling och dubbel paritet behöver du minst fyra feldomäner, vilket innebär fyra servrar.

Lagringseffektiviteten för speglad paritet ligger mellan vad du får ut av att använda all spegling eller all paritet, och beror på vilka proportioner du väljer. Till exempel visar demonstrationen på 37-minutersmarkeringen i den här presentationen olika blandningar som uppnår 46 procent, 54 procent och 65 procents effektivitet med 12 servrar.

Viktigt

Vi rekommenderar att du använder spegling för de flesta prestandakänsliga arbetsbelastningar. Mer information om hur du balanserar prestanda och kapacitet beroende på din arbetsbelastning finns i Planera volymer.

Sammanfattning

I det här avsnittet sammanfattas de återhämtningstyper som är tillgängliga i Lagringsutrymmen Direct, minimikraven för skalning för att använda varje typ, hur många fel varje typ kan tolerera och motsvarande lagringseffektivitet.

Återhämtningstyper

Återhämtning Feltolerans Storage effektivitet
2-vägsspegling 1 50.0%
3-vägsspegling 2 33.3%
Dubbel paritet 2 50.0% - 80.0%
Blandat 2 33.3% - 80.0%

Minsta skalningskrav

Återhämtning Minsta nödvändiga feldomäner
2-vägsspegling 2
3-vägsspegling 3
Dubbel paritet 4
Blandat 4

Tips

Om du inte använder feltolerans för chassieller rack avser antalet feldomäner antalet servrar. Antalet enheter på varje server påverkar inte vilka återhämtningstyper du kan använda, så länge du uppfyller minimikraven för Lagringsutrymmen Direct.

Dubbel paritetseffektivitet för hybriddistributioner

Den här tabellen visar lagringseffektiviteten för dubbla paritetskoder och lokala rekonstrueringskoder i varje skala för hybriddistributioner som innehåller både hårddiskar (HDD) och SSD(Solid State Drives).

Feldomäner Layout Effektivitet
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%

Dubbel paritetseffektivitet för alla flash-distributioner

Den här tabellen visar lagringseffektiviteten för dubbla paritetskoder och lokala rekonstrueringskoder i varje skala för alla flash-distributioner som endast innehåller SSD(Solid State Drives). Paritetslayouten kan använda större gruppstorlekar och uppnå bättre lagringseffektivitet i en flash-konfiguration.

Feldomäner Layout Effektivitet
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%

Exempel

Såvida du inte bara har två servrar rekommenderar vi att du använder trevägsspegling och/eller dubbel paritet, eftersom de ger bättre feltolerans. Mer specifikt säkerställer de att alla data förblir säkra och kontinuerligt tillgängliga även när två feldomäner – med Lagringsutrymmen Direct, det vill säga två servrar – påverkas av samtidiga fel.

Exempel där allt förblir online

Dessa sex exempel visar vad trevägsspegling och/eller dubbel paritet kan tolerera.

  • 1. En enhet har förlorats (inklusive cacheenheter)
  • 2. En server har förlorats

fault-tolerance-examples-1-and-2

  • 3. En server och en enhet förlorade
  • 4. Två enheter som förlorats på olika servrar

fault-tolerance-examples-3-and-4

  • 5. Fler än två enheter förloras, så länge som högst två servrar påverkas
  • 6. Två servrar förlorade

fault-tolerance-examples-5-and-6

... I samtliga fall förblir alla volymer online. (Kontrollera att klustret har kvorum.)

Exempel där allt går offline

Under livslängden kan Lagringsutrymmen tolerera val av antal fel, eftersom den återställs till fullständig återhämtning efter varje fel, med tillräckligt med tid. Högst två feldomäner kan dock påverkas av fel vid en viss tidpunkt. Följande är därför exempel på vad trevägsspegling och/eller dubbel paritet inte tolererar.

  • 7. Enheter som förlorats på tre eller flera servrar samtidigt
  • 8. Tre eller flera servrar förlorade samtidigt

fault-tolerance-examples-7-and-8

Användning

Kolla in Skapa volymer.

Nästa steg

Mer information om ämnen som nämns i den här artikeln finns i följande: