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 und FLUSHDB 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

  1. 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.

  2. Wählen Sie Konfigurieren aus, um die aktive Georeplikation einzurichten.

    Screenshot der Registerkarte „Erweitert“ der Seite „Neuen Redis Cache erstellen“.

  3. Erstellen Sie eine neue Replikationsgruppe für eine erste Cache-Instanz, oder wählen Sie eine vorhandene Replikationsgruppe aus der Liste aus.

    Screenshot mit Replikationsgruppen.

  4. Wählen Sie Konfigurieren aus, um den Vorgang abzuschließen.

  5. 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.

    Screenshot, der zeigt, dass aktive Georeplikation konfiguriert ist.

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.

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.

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.

  1. Wechseln Sie zum Azure-Portal, und wählen Sie einen der Caches in der Replikationsgruppe aus, der noch verfügbar ist.

  2. Wählen Sie im Menü „Ressource“ auf der linken Seite die Option Aktive Georeplikation aus, um die Einstellungen im Arbeitsbereich anzuzeigen.

    Screenshot der aktiven Georeplikationsgruppe.

  3. Wählen Sie den Cache aus, für den Sie das Aufheben der Verknüpfung erzwingen müssen, indem Sie das Kontrollkästchen aktivieren.

  4. Wählen Sie Aufheben der Verknüpfung erzwingen und dann OK aus, um dies zu bestätigen.

    Screenshot des Aufhebens der Verknüpfung in der aktiven Georeplikation.

  5. 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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/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/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"

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/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/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 der vorherigen Prozedur erstellt wurde. So werden die beiden Caches Cache1 und Cache2 in einer Aktiv/Aktiv-Konfiguration verknüpft.

New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -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"}'

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 der gleichen Konfiguration entsprechen 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.

Screenshot: „Aktive Georeplikation“ im Menü „Ressource“ ausgewählt und die Funktion „Caches leeren“ mit einem roten Rahmen.

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.