Konfigurera aktiv geo-replikering för instanser av Enterprise Azure Cache for Redis
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 Enterprise Azure Cache for Redis i en enda cache som sträcker sig över 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.
Tillgänglighet
Nivå | Basic, Standard | Premium | Enterprise, Enterprise Flash |
---|---|---|---|
Tillgängligt | Nej | Nej | Ja |
Premium-nivån för Azure Cache for Redis erbjuder en version av geo-replikering som kallas passiv geo-replikering. Passiv geo-replikering ger en aktiv-passiv konfiguration.
Förutsättningar för aktiv geo-replikering
Det finns några begränsningar när du använder aktiv geo-replikering:
- Endast modulerna RediSearch och RedisJSON stöds
- På Enterprise Flash-nivån kan endast principen Ingen borttagning av borttagning användas. Alla borttagningsprinciper stöds på enterprise-nivån .
- Databeständighet stöds inte eftersom aktiv geo-replikering erbjuder en överlägsen lösning.
- Du kan inte lägga till ett befintligt cacheminne (som körs) i en geo-replikeringsgrupp. Du kan bara lägga till en cache i en geo-replikeringsgrupp när du skapar cacheminnet.
- 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.
- Du kan inte använda Redis-kommandona
FLUSHALL
ochFLUSHDB
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 från portalen i stället. - Aktiv geo-replikering stöds inte på E1 och några Flash-SKU:er.
Skapa eller anslut en grupp för aktiv geo-replikering
När du skapar en ny Azure Cache for Redis-resurs väljer du fliken Avancerat . Slutför den första delen av formuläret, inklusive klustringsprincip. Mer information om hur du väljer klustringsprincip finns i Klustring .
Välj Konfigurera för att konfigurera Aktiv geo-replikering.
Skapa en ny replikeringsgrupp för en första cacheinstans. Eller välj en befintlig från listan.
Välj Konfigurera för att slutföra.
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.
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.
Framtvinga avlänkning om det uppstår ett regionstopp
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. När du har tillämpat Force-unlink på ett cacheminne kan du inte synkronisera några data som skrivs till cacheminnet tillbaka till replikeringsgruppen efter force-unlinking.
Du bör ta bort den otillgängliga cachen eftersom de återstående cacheminnena i replikeringsgruppen börjar lagra metadata som inte delades till den otillgängliga cachen. När detta inträffar kan de tillgängliga cacheminnena i replikeringsgruppen riskera att få slut på minne.
Gå till Azure-portalen och välj ett av cacheminnena i replikeringsgruppen som fortfarande är tillgängligt.
Välj Aktiv geo-replikering i menyn Resurs till vänster för att se inställningarna i arbetsfönstret.
Markera den cache som du behöver framtvinga länkning för genom att klicka i kryssrutan.
Välj Framtvinga avlänkning och sedan OK för att bekräfta.
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 Enterprise-instans i en ny geo-replikeringsgrupp med hjälp av Azure CLI
I det här exemplet skapas en ny Azure Cache for Redis Enterprise E10-cacheinstans 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 "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 Enterprise-instans i en befintlig geo-replikeringsgrupp med hjälp av Azure CLI
I det här exemplet skapas en ny Enterprise E10-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 "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 Enterprise-instans i en ny geo-replikeringsgrupp med hjälp av PowerShell
I det här exemplet skapas en ny Azure Cache for Redis Enterprise E10-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 "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 Enterprise-instans i en befintlig geo-replikeringsgrupp med hjälp av PowerShell
I det här exemplet skapas en ny Enterprise E10-cacheinstans med namnet Cache2 i regionen USA, västra. Sedan lägger skriptet till cachen till den aktiva geo-replikeringsgruppen replicationGroup som skapades i föregående procedur. När kommandot har körts länkas de två cacheminnena Cache1 och Cache2 i en aktiv-aktiv konfiguration.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 går 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 förhindra att dessa problem uppstår måste alla cacheminnen i en geo-replikeringsgrupp ha samma storlek och kapacitet.
Eftersom det är svårt att samtidigt skala alla instanser i gruppen geo-replikering har Azure Cache for Redis en låsningsmekanism. Om du skalar en instans i en geo-replikeringsgrupp skalas den underliggande virtuella datorn, men det tillgängliga minnet är begränsat till den ursprungliga storleken tills de andra instanserna också skalas upp. Alla andra skalningsåtgärder för de återstående instanserna är låsta tills de matchar samma konfiguration som den första cachen som ska skalas.
Skalningsexempel
Du kan till exempel ha tre instanser i din geo-replikeringsgrupp, alla Enterprise E10-instanser:
Instansnamn | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Typ | Enterprise E10 | Enterprise E10 | Enterprise E10 |
Anta att du vill skala upp varje instans i den här geo-replikeringsgruppen till en Enterprise E20-instans. Först skalar du en av cacheminnena upp till en E20:
Instansnamn | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Typ | Enterprise E20 | Enterprise E10 | Enterprise E10 |
I det här läget Redis01
kan instanserna och Redis02
bara skala upp till en Enterprise E20-instans. Alla andra skalningsåtgärder blockeras.
Kommentar
Instansen Redis00
blockeras inte från att skalas ytterligare just nu. Men den blockeras en gång eller Redis01
Redis02
skalas till en Enterprise E20.
När varje instans skalas till samma nivå och storlek tas alla skalningslås bort:
Instansnamn | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Typ | Enterprise E20 | Enterprise E20 | Enterprise E20 |
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.
Geo-replikeringsmått
Måttet Geo Replication Healthy på Enterprise-nivån i Azure Cache for Redis hjälper till att övervaka hälsotillståndet för geo-replikerade kluster. Du använder det här måttet för att övervaka synkroniseringsstatusen mellan geo-repliker.
Så här övervakar du måttet Geo Replication Healthy i Azure Portal:
Öppna Azure Portal och välj din Azure Cache for Redis-instans.
På menyn Resurs väljer du Mått under avsnittet Övervakning .
Välj Lägg till mått och välj måttet Geo-replikering felfri .
Om det behövs använder du filter för specifika geo-repliker.
Du kan konfigurera en avisering för att meddela dig om måttet Geo-replikering Felfri genererar ett felaktigt värde (0) kontinuerligt i över 60 minuter.
Välj Ny aviseringsregel.
Definiera villkoret som ska utlösas om måttvärdet är 0 i minst 60 minuter, den rekommenderade tiden.
Lägg till åtgärdsgrupper för meddelanden, till exempel e-post, SMS och andra.
Spara aviseringen.
Mer information om hur du konfigurerar aviseringar för din Redis Enterprise-cache finns i aviseringsavsnittet i Övervaka Redis-cacheminnen.
Viktigt!
Det här måttet kan tillfälligt visas som felfritt på grund av rutinåtgärder som underhållshändelser eller skalning, som initierats antingen av Azure eller kunden. För att undvika falska larm rekommenderar vi att du konfigurerar ett observationsfönster på 60 minuter, där måttet fortsätter att vara felfritt som lämplig tid för att generera en avisering eftersom det kan tyda på ett problem som kräver åtgärder.
Vanliga problem på klientsidan som kan orsaka synkroniseringsproblem mellan geo-repliker
Användning av anpassade Hash-taggar – Om du använder anpassade hashtaggar i Redis kan det leda till ojämn fördelning av data mellan shards, vilket kan orsaka prestandaproblem och synkroniseringsproblem i geo-repliker, så undvik därför att använda anpassade hashtaggar om inte databasen behöver utföra flera nyckelåtgärder.
Stor nyckelstorlek – Stora nycklar kan skapa synkroniseringsproblem mellan geo-repliker. För att upprätthålla smidig prestanda och tillförlitlig replikering rekommenderar vi att du håller nyckelstorlekarna under 500 MB när du använder geo-replikering. Om den enskilda nyckelstorleken kommer nära 2 GB står cacheminnet inför problem med geo-replikeringshälsa.
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
Läs mer om Azure Cache for Redis-funktioner.