Konfigurieren der aktiven Georeplikation für Azure Cache for Redis-Enterprise-Instanzen
In diesem Artikel erfahren Sie, wie Sie einen Cache mit aktiver Georeplikation über das Azure-Portal konfigurieren.
Die aktive Georeplikation gruppiert bis zu fünf Azure Cache for Redis-Enterprise-Instanzen in einem einzelnen Cache, der sich über mehrere Azure-Regionen erstreckt. Alle Instanzen fungieren als lokaler primärer Cache. Eine Anwendung entscheidet, welche Instanz bzw. Instanzen für Lese- und Schreibanforderungen verwendet werden sollen.
Hinweis
Die Datenübertragung zwischen Azure-Regionen wird mit den Standardbandbreitensätzen abgerechnet.
Umfang der Verfügbarkeit
Tarif | Basic, Standard | Premium | Enterprise, Enterprise Flash |
---|---|---|---|
Verfügbar | Nein | Nein | Ja |
Der Premium-Tarif von Azure Cache for Redis bietet eine Version der Georeplikation, die als passive Georeplikation bezeichnet wird. Passive Georeplikation bietet eine Aktiv/Passiv-Konfiguration.
Voraussetzungen für die aktive Georeplikation
Bei der Verwendung der aktiven Georeplikation gibt es einige Einschränkungen:
- Nur die Module RediSearch und RedisJSON werden unterstützt.
- Auf der Ebene Enterprise Flash kann nur die Entfernungsrichtlinie Keine Entfernung verwendet werden. Alle Entfernungsrichtlinien werden auf der Enterprise-Ebene unterstützt.
- Datenpersistenz wird nicht unterstützt, da die aktive Georeplikation eine hervorragende Erfahrung bietet.
- Sie können einer Georeplikationsgruppe keinen vorhandenen Cache (d. h. keinen Cache, der ausgeführt wird) hinzufügen. Sie können nur einen Cache zu einer Georeplikationsgruppe hinzufügen, wenn Sie den Cache erstellen.
- Alle Caches innerhalb einer Georeplikationsgruppe müssen dieselbe Konfiguration aufweisen. Beispielsweise müssen alle Caches dieselbe SKU, Kapazität, Entfernungsrichtlinie, Clusterrichtlinie, TLS-Einstellung und dieselben Module aufweisen.
- Sie können die Redis-Befehle
FLUSHALL
undFLUSHDB
nicht verwenden, wenn Sie die aktive Georeplikation verwenden. Durch das Verbieten der Befehle wird das unbeabsichtigte Löschen von Daten verhindert. Verwenden Sie stattdessen den Leeren-Vorgang aus dem Portal. - Die E1-SKU unterstützt keine aktive Georeplikation.
Erstellen von oder Beitreten zu einer aktiven Georeplikationsgruppe
Wenn Sie eine neue Azure Cache for Redis-Ressource erstellen, wählen Sie die Registerkarte Erweitert aus. Füllen Sie den ersten Teil des Formulars aus, einschließlich der Richtlinie für das Clustering. Weitere Informationen zum Auswählen eines Werts für Clusterrichtlinie finden Sie unter Clustering auf Enterprise.
Wählen Sie Konfigurieren aus, um die aktive Georeplikation einzurichten.
Erstellen Sie eine neue Replikationsgruppe für eine erste Cache-Instanz, oder wählen Sie eine vorhandene Replikationsgruppe aus der Liste aus.
Wählen Sie Konfigurieren aus, um den Vorgang abzuschließen.
Warten Sie, bis der erste Cache erfolgreich erstellt wurde. Nach Abschluss des Vorgangs wird die Einstellung Aktive Georeplikation als Konfiguriert angezeigt. Wiederholen Sie die obigen Schritte für jede Cache-Instanz in der Georeplikationsgruppe.
Entfernen aus einer aktiven Georeplikationsgruppe
Löschen Sie einfach die Instanz, um eine Cache-Instanz aus einer aktiven Georeplikationsgruppe zu entfernen. Die verbleibenden Instanzen konfigurieren sich dann automatisch selbst neu.
Erzwingen der Trennung bei einem regionalen Ausfall
Falls einer der Caches in Ihrer Replikationsgruppe aufgrund eines Ausfalls der Region nicht verfügbar ist, können Sie das Entfernen des nicht verfügbaren Cache aus der Replikationsgruppe erzwingen. Nachdem Sie Aufhebung der Verknüpfung erzwingen auf einen Cache angewendet haben und die Verknüpfung aufgehoben wurde, können Sie Daten, die in diesen Cache geschrieben werden, nicht mehr mit der Replikationsgruppe synchronisieren.
Entfernen Sie den nicht verfügbaren Cache, da die verbleibenden Caches in der Replikationsgruppe damit beginnen, die Metadaten zu speichern, die nicht für den nicht verfügbaren Cache freigegeben wurden. In diesem Fall kann es sein, dass für die verfügbaren Caches in Ihrer Replikationsgruppe nicht genügend Arbeitsspeicher verfügbar ist.
Wechseln Sie zum Azure-Portal, und wählen Sie einen der Caches in der Replikationsgruppe aus, der noch verfügbar ist.
Wählen Sie im Menü „Ressource“ auf der linken Seite die Option Aktive Georeplikation aus, um die Einstellungen im Arbeitsbereich anzuzeigen.
Wählen Sie den Cache aus, für den Sie das Aufheben der Verknüpfung erzwingen müssen, indem Sie das Kontrollkästchen aktivieren.
Wählen Sie Aufheben der Verknüpfung erzwingen und dann OK aus, um dies zu bestätigen.
Nachdem die Verfügbarkeit der betroffenen Region wiederhergestellt wurde, müssen Sie den betroffenen Cache löschen und neu erstellen, um ihn ihrer Replikationsgruppe wieder hinzuzufügen.
Einrichten der aktiven Georeplikation mithilfe der Azure CLI oder PowerShell
Azure CLI
Verwenden Sie die Azure CLI zum Erstellen eines neuen Caches und einer neuen Georeplikationsgruppe oder zum Hinzufügen eines neuen Caches zu einer vorhandenen Georeplikationsgruppe. Weitere Informationen finden Sie unter az redisenterprise create.
Erstellen einer neuen Enterprise-Instanz in einer neuen Georeplikationsgruppe mit Azure CLI
In diesem Beispiel wird eine neue Azure Cache for Redis Enterprise E10-Cache-Instanz namens Cache1 in der Region „USA, Osten“ erstellt. Anschließend wird der Cache zu einer neuen aktiven Georeplikationsgruppe namens replicationGroup hinzugefügt:
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"
Um die aktive Georeplikation ordnungsgemäß zu konfigurieren, muss die ID der erstellten Cache-Instanz mit dem --linked-databases
-Parameter hinzugefügt werden. Das Format der ID ist:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Erstellen einer neuen Enterprise-Instanz in einer vorhandenen Georeplikationsgruppe mit Azure CLI
In diesem Beispiel wird eine neue Enterprise E10-Cache-Instanz namens Cache2 in der Region „USA, Westen“ erstellt. Anschließend fügt das Skript den Cache der aktiven Georeplikationsgruppe replicationGroup
hinzu, die in einer vorherigen Prozedur erstellt wurde. Auf diese Weise wird sie in einer Aktiv/Aktiv-Konfiguration mit Cache1 verknüpft.
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"
Wie zuvor müssen Sie sowohl Cache1 als auch Cache2 mithilfe des --linked-databases
-Parameters auflisten.
Azure PowerShell
Verwenden Sie Azure PowerShell zum Erstellen einer neuen Cache- und Georeplikationsgruppe oder zum Hinzufügen eines neuen Caches zu einer vorhandenen Georeplikationsgruppe. Weitere Informationen finden Sie unter New-AzRedisEnterpriseCache.
Erstellen einer neuen Enterprise-Instanz in einer neuen Georeplikationsgruppe mit PowerShell
In diesem Beispiel wird eine neue Azure Cache for Redis Enterprise E10-Cache-Instanz namens Cache1 in der Region „USA, Osten“ erstellt. Anschließend wird der Cache zu einer neuen aktiven Georeplikationsgruppe namens replicationGroup hinzugefügt:
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"}'
Um die aktive Georeplikation ordnungsgemäß zu konfigurieren, muss die ID der erstellten Cache-Instanz mit dem -LinkedDatabase
-Parameter hinzugefügt werden. Das Format der ID ist:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Erstellen einer neuen Enterprise-Instanz in einer vorhandenen Georeplikationsgruppe mit PowerShell
In diesem Beispiel wird eine neue Enterprise E10-Cache-Instanz namens Cache2 in der Region „USA, Westen“ erstellt. Anschließend fügt das Skript den Cache der aktiven Georeplikationsgruppe replicationGroup hinzu, die in den vorherigen Schritten erstellt wurde. Nach dem Ausführen des Befehls werden die beiden Caches Cache1 und Cache2 in einer Aktiv-Aktiv-Konfiguration miteinander verknüpft.
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"}'
Wie zuvor müssen Sie sowohl Cache1 als auch Cache2 mithilfe des -LinkedDatabase
-Parameters auflisten.
Skalieren von Instanzen in einer Georeplikationsgruppe
Es ist möglich, Instanzen zu skalieren, die für die Verwendung der aktiven Georeplikation konfiguriert sind. Eine Georeplikationsgruppe mit einer Kombination aus verschiedenen Cachegrößen kann jedoch Probleme verursachen. Um zu verhindern, dass diese Probleme auftreten, müssen alle Caches in einer Georeplikationsgruppe dieselbe Größe und Kapazität aufweisen.
Da es schwierig ist, alle Instanzen in einer Georeplikationsgruppe gleichzeitig zu skalieren, verfügt Azure Cache for Redis über einen Sperrmechanismus. Wenn Sie eine Instanz in einer Georeplikationsgruppe skalieren, wird die zugrunde liegende VM skaliert, der verfügbare Arbeitsspeicher wird jedoch auf die Originalgröße begrenzt, bis die anderen Instanzen ebenfalls hochskaliert wurden. Außerdem werden alle anderen Skalierungsvorgänge für die verbleibenden Instanzen blockiert, bis sie dieselbe Konfiguration aufweisen wie der erste zu skalierende Cache.
Skalierungsbeispiel
Angenommen, Sie verfügen über drei Instanzen in Ihrer Georeplikationsgruppe, die alle Enterprise E10-Instanzen sind:
Der Instanzname | Redis00 | Redis01 | Redis02 |
---|---|---|---|
type | Enterprise E10 | Enterprise E10 | Enterprise E10 |
Angenommen, Sie möchten jede Instanz in dieser Georeplikationsgruppe auf eine Enterprise E20-Instanz skalieren. In diesem Fall würden Sie zuerst einen der Caches auf E20 skalieren:
Der Instanzname | Redis00 | Redis01 | Redis02 |
---|---|---|---|
type | Enterprise E20 | Enterprise E10 | Enterprise E10 |
Zu diesem Zeitpunkt können die Instanzen Redis01
und Redis02
nur auf eine Enterprise E20-Instanz hochskaliert werden. Alle anderen Skalierungsvorgänge werden blockiert.
Hinweis
Für die Instanz Redis00
wird zu diesem Zeitpunkt die weitere Skalierung nicht blockiert. Sie wird jedoch einmal blockiert, wenn Redis01
oder Redis02
auf Enterprise E20 skaliert werden.
Nachdem alle Instanzen auf dieselbe Ebene und Größe skaliert wurden, werden alle Skalierungssperren aufgehoben:
Der Instanzname | Redis00 | Redis01 | Redis02 |
---|---|---|---|
type | Enterprise E20 | Enterprise E20 | Enterprise E20 |
Leerung
Aufgrund der Möglichkeit eines versehentlichen Datenverlusts können Sie die Redis-Befehle FLUSHALL
und FLUSHDB
nicht für eine Cache-Instanz verwenden, die sich in einer Georeplikationsgruppe befindet. Verwenden Sie stattdessen die Schaltfläche Caches leeren oben im Arbeitsbereich Aktive Georeplikation.
Leeren von Caches mit der Azure CLI oder PowerShell
Die Azure CLI und PowerShell können auch verwendet werden, um einen Leerungsvorgang auszulösen. Weitere Informationen zur Verwendung der Azure CLI finden Sie unter az redisenterprise database flush. Weitere Informationen zur Verwendung von PowerShell finden Sie unter Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Wichtig
Seien Sie vorsichtig, wenn Sie das Feature Caches leeren verwenden. Wenn Sie die Schaltfläche auswählen, werden alle Daten aus dem aktuellen Cache und aus ALLEN verknüpften Caches in der Georeplikationsgruppe entfernt.
Verwalten Sie den Zugriff auf die Funktion mithilfe der rollenbasierten Zugriffssteuerung in Azure. Nur autorisierten Benutzer*innen sollte Zugriff zum Leeren aller Caches gewährt werden.
Nächste Schritte
Erfahren Sie mehr über Azure Cache for Redis-Features.