Dela via


Konfigurera aktiv geo-replikering för Azure Managed Redis-instanser (förhandsversion)

I den här artikeln får du lära dig hur du konfigurerar en aktiv geo-replikerad cache med hjälp av Azure Portal.

Aktiva geo-replikeringsgrupper upp till fem instanser av Azure Managed Redis (förhandsversion) i en enda cache som sträcker sig inom Azure-regioner. Alla instanser fungerar som lokala, primära cacheminnen. Ett program avgör vilken instans eller vilka instanser som ska användas för läs- och skrivbegäranden.

Kommentar

Dataöverföring mellan Azure-regioner debiteras med standardbandbredd.

Så här fungerar aktiv geo-replikering

Aktiv geo-replikering använder konfliktfria replikerade datatyper (CRDT) för att sömlöst distribuera data över Redis-instanser som kan distribueras över kontinenter. Dessa instanser är anslutna i en aktiv-aktiv konfiguration, där skrivningar till en instans automatiskt återspeglas i de andra instanserna i samma geo-replikeringsgrupp. Den här dubbelriktade datareplikeringen skiljer sig från enriktad aktiv-passiv replikering, där data replikeras från den primära till en geo-replik, men inte den andra riktningen. Det här är ett kraftfullt verktyg som ofta används på flera olika sätt:

  • Ge lokal svarstid genom att distribuera cachelagring närmare användarna. Genom att använda ett nätverk med aktiva geo-replikerade Redis-instanser kan du placera cacheminnen geografiskt närmare användarna i varje region, vilket minskar svarstiden och förbättrar appens prestanda.
  • Synkroniserar globala program. Eftersom geo-replikerade cacheminnen visas som en enda Redis-instans kan du distribuera data globalt utan att behöva segmentera data efter regioner. Du kan till exempel använda en enda Redis-sorterad uppsättning för att tillhandahålla en spellista för alla användare över hela världen, i stället för att tillhandahålla en separat rankningslista för varje geografisk region.
  • Minska stilleståndstid och risk till följd av regionala avbrott. Eftersom varje Redis-instans i gruppen geo-replikering ständigt uppdateras med de senaste data från de andra instanserna i gruppen bevaras data väl vid ett regionalt avbrott. Program kan tillfälligt växla till att använda en av de andra instanserna i gruppen, och när regionen kommer tillbaka online kommer Redis-instansen där automatiskt att läsas in igen med data från de andra geo-replikerade cacheminnena.

En mer detaljerad beskrivning av hur aktiv geo-replikering fungerar finns i Active-Active geo-distribution (CRDTS-baserad)

Tillgänglighet

Nivå Minnesoptimerad, balanserad, beräkningsoptimerad Flash-optimerad
Tillgängligt Ja (utom B0 och B1) Ja

Viktigt!

De balanserade SKU:erna B0 och B1 stöder inte aktiv geo-replikering.

Förutsättningar för aktiv geo-replikering

Det finns några begränsningar när du använder aktiv geo-replikering:

  • Aktiv geo-replikering stöds endast när Azure Managed Redis är konfigurerad för hög tillgänglighet (dvs. med replikering).
  • Endast modulerna RediSearch och RedisJSON stöds
  • På nivån Flash-optimerad kan endast borttagningsprincipen Ingen borttagning användas. Alla borttagningsprinciper stöds på de andra nivåerna.
  • Databeständighet stöds inte eftersom aktiv geo-replikering erbjuder en överlägsen lösning.
  • Alla cacheminnen i en geo-replikeringsgrupp måste ha samma konfiguration. Alla cacheminnen måste exempelvis ha samma SKU, kapacitet, borttagningsprincip, klustringsprincip, moduler och TLS-inställningar.
  • Om en instans i en geo-replikeringsgrupp skalas måste de andra instanserna i gruppen skalas till samma storlek innan ytterligare skalning kan ske. Se Skala instanser i en geo-replikeringsgrupp för mer information.
  • Du kan inte använda Redis-kommandona FLUSHALL och FLUSHDB när du använder aktiv geo-replikering. Genom att förbjuda kommandona förhindras oavsiktlig borttagning av data. Använd tömningsåtgärden i stället.

Skapa eller anslut en grupp för aktiv geo-replikering

  1. När du skapar en ny Azure Managed Redis-resurs väljer du fliken Avancerat. Slutför den första delen av formuläret, inklusive klustringsprincipen. Mer information om hur du väljer Klustringsprincip, see Klustring i Azure Managed Redis.

  2. Välj Konfigurera för att konfigurera Aktiv geo-replikering.

    Skärmbild av fliken Avancerat för att skapa en ny sida för Redis Cache.

  3. Skapa en ny replikeringsgrupp för en första cacheinstans. Eller välj en befintlig från listan.

    Skärmbild som visar replikeringsgrupper.

  4. Välj Konfigurera för att slutföra.

  5. Vänta tills den första cachen har skapats framgångsrikt. När du är klar visas Konfigurerad uppsättning för Aktiv geo-replikering. Upprepa stegen ovan för varje cacheinstans i gruppen geo-replikering.

    Skärmbild som visar att aktiv geo-replikering har konfigurerats.

Lägga till en befintlig instans i en aktiv geo-replikeringsgrupp

Om du vill lägga till en befintlig cacheinstans i en aktiv geo-replikeringsgrupp kan du använda REST-API:et för att utföra en framtvinga-länk-åtgärd.

Alla data i cacheinstansen som länkas kommer att ignoreras. Instansen är också tillfälligt otillgänglig i några minuter medan den ansluter till geo-replikationsgruppen. Portal- och CLI-stöd är för närvarande inte tillgängligt för den här funktionen.

Ta bort från en aktiv geo-replikeringsgrupp

För att ta bort en cacheinstans från en aktiv geo-replikationsgrupp tar du helt enkelt bort instansen. De återstående instanserna kommer därefter att automatiskt konfigurera om sig själva.

Aktiv geo-replikering är en kraftfull funktion som avsevärt förbättrar tillgängligheten vid användning av Azure Managed Redis. Du bör emellertid vidta åtgärder för att förbereda dina cacheminnen inför eventuella regionala avbrott.

Tänk till exempel på följande tips:

  • Identifiera i förväg vilken annan cache i geo-replikeringsgruppen som ska användas för att byta till om en region slutar fungera.
  • Säkerställ att brandväggsregler är konfigurerade så att alla program och klienter kan få åtkomst till den identifierade säkerhetskopieringscachen.
  • Varje cache i geo-replikeringsgruppen har sin egen unika åtkomstnyckel. Bestäm hur programmet ska hantera övergången till olika åtkomstnycklar när det riktas mot en säkerhetskopieringscache.
  • Om en cache i geo-replikeringsgruppen inte fungerar påbörjas en metadatauppbyggnad i samtliga cacheminnen inom geo-replikeringsgruppen. Metadata kan inte rensas förrän skrivningar återigen kan synkroniseras till alla cacheminnen. Du kan förhindra metadatauppbyggnaden genom att framtvinga avlänkning av den cache som inte fungerar. Överväg att övervaka det tillgängliga minnet i cachen och utföra en avlänkning om det uppstår minnesbelastning, särskilt vid skrivintensiva arbetsbelastningar.

Det går också att använda ett mönster för kretsbrytare. Använd ett mönster för att automatiskt omdirigera trafiken från en cache som påverkas av ett regionalt avbrott till en säkerhetskopieringscache inom samma geo-replikeringsgrupp. Använd Azure-tjänster som Azure Traffic Manager eller Azure Load Balancer för att aktivera omdirigeringen.

Om en cache i replikeringsgruppen inte är tillgänglig på grund av ett regionalt fel kan du med tvång ta bort den otillgängliga cachen från replikeringsgruppen.

Du bör ta bort den otillgängliga cachen eftersom de återstående cacheminnena i replikeringsgruppen börjar ackumulera metadata som inte kan delas med den otillgängliga cachen. När detta inträffar kan de tillgängliga cacheminnena i replikeringsgruppen riskera att få slut på minne.

  1. Gå till Azure-portalen och välj ett av cacheminnena i replikeringsgruppen som fortfarande är tillgängligt.

  2. Välj Aktiv geo-replikering i menyn Resurs till vänster för att se inställningarna i arbetsfönstret.

    Skärmbild av aktiv geo-replikeringsgrupp.

  3. Markera den cache som du behöver framtvinga länkning för genom att klicka i kryssrutan.

  4. Välj Framtvinga avlänkning och sedan OK för att bekräfta.

    Skärmbild av avlänkning i aktiv geo-replikering.

  5. När tillgängligheten för den berörda regionen har återställts måste du ta bort den berörda cachen och sedan återskapa den för att lägga till den i replikeringsgruppen på nytt.

Konfigurera aktiv geo-replikering med hjälp av Azure CLI eller PowerShell

Azure CLI

Använd Azure CLI för att skapa en ny cache och geo-replikeringsgrupp eller för att lägga till en ny cache i en befintlig geo-replikeringsgrupp. Mer information finns i az redisenterprise create.

Skapa en ny Azure Managed Redis-instans i en ny geo-replikeringsgrupp med Azure CLI

I det här exemplet skapas en ny Azure Managed Redis Balanced B10-instans med namnet Cache1 i regionen USA, östra. Sedan läggs cachen till i en ny aktiv geo-replikeringsgrupp med namnet replicationGroup:

az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"

För att konfigurera aktiv geo-replikering korrekt måste ID:t för den skapade cacheinstansen inkluderas med parametern --linked-databases . ID:t är i formatet:

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

Skapa en ny Azure Managed Redis-instans i en befintlig geo-replikeringsgrupp med Azure CLI

I det här exemplet skapas en ny balancerad B10-cacheinstans med namnet Cache2 i regionen USA, västra. Sedan lägger skriptet till cachen i den replicationGroup aktiva geo-replikeringsgrupp som skapades tidigare. På så sätt länkas den i en aktiv-aktiv konfiguration med Cache1.

az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"

Som tidigare måste du lista både Cache1 och Cache2 med parametern --linked-databases.

Azure PowerShell

Använd PowerShell för att skapa en ny cache och geo-replikeringsgrupp eller för att lägga till en ny cache i en befintlig geo-replikeringsgrupp. Mer information finns i New-AzRedisEnterpriseCache.

Skapa en ny Azure Managed Redis-instans i en ny geo-replikeringsgrupp med PowerShell

I det här exemplet skapas en ny Azure Managed Redis Balanced B10-cacheinstans med namnet Cache1 i regionen USA, östra. Sedan läggs cachen till i en ny aktiv geo-replikeringsgrupp med namnet replicationGroup:

New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'

För att konfigurera aktiv geo-replikering korrekt måste ID:t för den skapade cacheinstansen inkluderas med parametern -LinkedDatabase . ID:t är i formatet:

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

Skapa en ny Azure Managed Redis-instans i en befintlig geo-replikeringsgrupp med PowerShell

I det här exemplet skapas en ny balancerad B10-cacheinstans med namnet Cache2 i regionen USA, västra. Därefter lägger skriptet till cachen i den aktiva geo-replikeringsgruppen "replicationGroup" som skapades i den föregående proceduren. Resultatet är att de två cacheminnena Cache1 och Cache2 är länkade i en aktiv-aktiv konfiguration.

New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'

Som tidigare måste du lista både Cache1 och Cache2 med parametern -LinkedDatabase.

Skala instanser i en geo-replikeringsgrupp

Det är möjligt att skala instanser som är konfigurerade för aktiv geo-replikering. En geo-replikeringsgrupp med en blandning av olika cachestorlekar kan emellertid orsaka problem. För att undvika dessa problem måste alla cacheminnen i en geo-replikeringsgrupp ha samma storlek och prestandanivå.

Eftersom skalning innebär att ändra storlek eller nivå och det är utmanande att samtidigt skala alla instanser i en geo-replikeringsgrupp, har Azure Managed Redis en låsmekanism. Om du skalar en instans i en geo-replikeringsgrupp skalas den underliggande virtuella datorn upp, men det tillgängliga minnet begränsas till den ursprungliga storleken tills de andra instanserna har skalats upp. Och ytterligare skalningsåtgärder för de återstående instanserna är låsta tills de matchar samma konfiguration som den första cachen som har skalats.

Skalningsexempel

Du kan till exempel ha tre instanser i din geo-replikeringsgrupp, alla minnesoptimerade M10-instanser:

Instansnamn Redis00 Redis01 Redis02
Typ Minnesoptimerad M10 Minnesoptimerad M10 Minnesoptimerad M10

Anta att du vill skala upp varje instans i denna geo-replikeringsgrupp till en beräkningsoptimerad X20-instans. Du skulle först skala upp en av cacheminnena till en X20:

Instansnamn Redis00 Redis01 Redis02
Typ Beräkningsoptimerad X20 Minnesoptimerad M10 Minnesoptimerad M10

I det här läget kan instanserna Redis01 och Redis02 endast skala upp en beräkningsoptimerad X20-instans. Alla andra skalningsåtgärder blockeras.

Kommentar

Instansen Redis00 är inte blockerad från att skalas ytterligare vid denna tidpunkt. Men den blockeras en gång eller Redis01 Redis02 skalas till en beräkningsoptimerad X20.

När varje instans har skalats till samma nivå och storlek, tas alla skalningslås bort.

Instansnamn Redis00 Redis01 Redis02
Typ Beräkningsoptimerad X20 Beräkningsoptimerad X20 Beräkningsoptimerad X20

Tömningsåtgärd

På grund av risken för oavsiktlig dataförlust kan du inte använda Redis-kommandona FLUSHALL och FLUSHDB med någon cacheinstans som tillhör en geo-replikationsgrupp. Använd instället knappen Tömma cache längst upp i arbetsfönstret Aktiv geo-replikering.

Skärmbild som visar att Aktiv geo-replikering är vald i menyn Resurs och att funktionen Rensa cache är markerad med en röd ruta.

Rensa cacheminnen med Azure CLI eller PowerShell

Azure CLI och PowerShell kan också användas för att utlösa en tömningsåtgärd. Mer information om hur du använder Azure CLI finns i az redisenterprise databastömning. Mer information om hur du använder PowerShell finns i Anropa-AzRedisEnterpriseCacheDatabaseFlush.

Viktigt!

Var försiktig när du använder funktionen Tömma cacheminnen . Om du väljer knappen tas alla data bort från den aktuella cachen och från ALLA länkade cacheminnen i geo-replikationsgruppen.

Hantera åtkomst till funktionen med Rollbaserad åtkomstkontroll i Azure. Endast behöriga användare bör ges åtkomst för att rensa alla cacheminnen.

Nästa steg