Tillgänglighet (tillförlitlighet) och haveriberedskap (DR) i Azure Cosmos DB för MongoDB vCore: Bakom kulisserna
GÄLLER FÖR: MongoDB vCore
Den här artikeln går in på interna funktioner för haveriberedskap (HA) och haveriberedskap mellan regioner (DR) för Azure Cosmos DB för MongoDB vCore och beskriver designen och funktionerna i dessa funktioner. Det ger insikter för effektiv strategiplanering mellan regioner och regioner för att säkerställa tillförlitlighet och affärskontinuitet.
Azure Cosmos DB for MongoDB vCore cluster anatomy
Ett Azure Cosmos DB for MongoDB vCore-kluster består av en eller flera fysiska shards (noder). Varje fysisk shard innehåller en dedikerad beräkningsnod och premium SSD-fjärrlagring. Beräknings - och lagringsresurserna för en fysisk shard är exklusiva för en enskild databas och delas inte mellan kluster eller databaser.
I kluster med flera shards har varje shard en identisk beräknings- och lagringskonfiguration. Oavsett antalet shards finns alla klusterresurser i samma Azure-region.
Azure Cosmos DB for MongoDB vCore använder lokalt redundant lagring (LRS), vilket säkerställer att alla data replikeras synkront tre gånger på klustrets fysiska plats. Azure Storage hanterar dessa repliker transparent, verifierar dataintegriteten med hjälp av cykliska redundanskontroller (CRC) och reparerar eventuella identifierade skador med hjälp av redundanta data. Dessutom tillämpas kontrollsummor på nätverkstrafik för att förhindra att data skadas under lagring och hämtning.
Bild 1. Azure Cosmos DB for MongoDB vCore-klusterkomponenter.
Oavsett om ditt program ansluter till ett enda shard- eller multishardkluster använder det en enda anslutningssträng och en slutpunkt. Den här abstraktionen förenklar distribuerade databasåtgärder, vilket gör det lika enkelt att ansluta till en installation med flera fragment som till en fristående MongoDB-databas.
Hög tillgänglighet i regionen (HA)
För produktionsarbetsbelastningar rekommenderar vi starkt att du aktiverar hög tillgänglighet i regionen (HA) för att uppfylla moderna tillförlitlighetsstandarder. Ha kan inaktiveras för utveckling eller experimentella kluster för att minska kostnaderna, men det är viktigt för att upprätthålla databastillgängligheten i produktion.
HA kan växlas under klusteretablering eller när som helst efter att klustret har skapats. Den är tillgänglig i alla Azure-regioner som stöder Azure Cosmos DB för MongoDB vCore, oavsett specifika regionala funktioner.
När HA är aktiverat paras varje primär fysisk shard i klustret ihop med en standby-shard. Standby-fragmentet speglar beräknings- och lagringskonfigurationen för den primära motsvarigheten. Detta resulterar i sex datarepliker per shard – tre på den primära fragmentet och tre i vänteläge. I regioner med tillgänglighetszoner (AZs) distribueras primära och väntelägesshards i separata zoner.
Data replikeras synkront mellan varje primär- och väntelägesshard. Skrivningar bekräftas först efter att de har checkats in till båda shards, vilket säkerställer stark konsekvens i HA-klustret. Med andra ord är en fysisk shard i vänteläge en alltid uppdaterad fullständig replik av dess primära fysiska fragment som ger stark konsekvens i klustret med hög tillgänglighet.
Bild 2. Azure Cosmos DB for MongoDB vCore-kluster med och utan hög tillgänglighet i regionen (HA) aktiverat.
I händelse av ett primärt shardfel utför tjänsten automatiskt en redundansväxling till dess standby-shard. Under redundansväxling omdirigeras alla läs- och skrivbegäranden till standby-fragmentet, som blir den nya primära. Skrivåtgärder som pågår under redundansväxlingen görs om i tjänsten för att säkerställa kontinuitet. En ersättningsshard skapas sedan för att återupprätta synkron replikering och blir det nya vänteläget.
Replikering mellan regioner: Regional haveriberedskap (DR)
Även om det är ovanligt kan regionala avbrott störa åtkomsten till databasen. Replikering mellan regioner ger en robust strategi för haveriberedskap (DR) som säkerställer åtkomst till dina data även vid storskaliga störningar.
Med replikering mellan regioner kan du skapa ett replikkluster i en annan Azure-region. Varje shard i replikklustret replikerar asynkront data från sin motsvarighet i det primära klustret. Den här replikeringsmodellen säkerställer slutlig konsekvens samtidigt som prestandapåverkan på det primära klustret minimeras.
Asynkron replikering undviker behovet av att varje skrivåtgärd omedelbart levereras till och bekräftas av repliker innan en "skriv fullständig" bekräftelse skickas tillbaka till programmet. Det innebär dock att vissa skrivningar som slutförts i det primära klustret kanske ännu inte replikeras till replikklustret, vilket resulterar i replikeringsfördröjning. Replikeringsfördröjningens omfattning beror på intensiteten i skrivåtgärderna på det primära klustret och den totala belastningen på både de primära klustren och replikkluster.
I den här konfigurationen:
- Det primära klustret i region A hanterar alla läsningar och skrivningar.
- Replikklustret i region B stöder skrivskyddad åtkomst, vilket möjliggör läsåtgärder med höga prestanda närmare program eller användare i den regionen.
Program kan köra OLTP-frågor på det primära klustret i region A och intensiva läsåtgärder som OLAP/rapporteringsfrågor kan pekas på replikklustret i region B.
Program kan använda en dynamisk global anslutningssträng, som alltid pekar på klustret som är öppet för skrivningar. Under ett regionalt avbrott kan replikklustret i region B höjas för att acceptera skrivningar. Den globala anslutningssträng uppdateras automatiskt för att peka på det upphöjda klustret, vilket säkerställer oavbrutna skrivåtgärder.
Bild 3. Regional haveriberedskap (DR) med ett Azure Cosmos DB for MongoDB vCore-kluster med replikering mellan regioner aktiverad. Klustret i region B befordras till det nya skrivskyddade klustret. Kluster i region A blir ett replikkluster.
Sammanfattning av tillgänglighet i regionen och dr-funktioner mellan regioner
I följande tabell sammanfattas de viktigaste övervägandena för att aktivera och hantera en strategi för hög tillgänglighet och haveriberedskap mellan regioner i regionen.
Scenario | Funktionen Azure Cosmos DB for MongoDB vCore | Ingen dataförlust | Skydd mot regionomfattande avbrott | Automatisk redundans | Ingen anslutningssträng ändring |
---|---|---|---|---|---|
Fel med fysisk shard | Hög tillgänglighet i regionen (HA) | ✔️ | ❌ | ✔️ | ✔️ |
Regionalt avbrott | Replikkluster mellan regioner | ❌ | ✔️ | ❌ | ✔️† |
† När du använder den globala anslutningssträng.