Configurer la géoréplication active pour les instances Azure Cache pour Redis Enterprise
Dans cet article, vous allez voir comment configurer un cache avec géoréplication active à l’aide du portail Azure.
La géoréplication active regroupe jusqu’à cinq instances Azure Cache pour Redis Enterprise dans un même cache qui s’étend sur plusieurs régions Azure. Toutes les instances agissent comme des caches principaux locaux. Une application détermine la ou les instances à utiliser pour les demandes de lecture et d’écriture.
Notes
Le transfert de données entre régions Azure est facturé aux tarifs de bande passante standard.
Étendue de la disponibilité
Niveau | De base, Standard | Premium | Enterprise, Enterprise Flash |
---|---|---|---|
Disponible | Non | Non | Oui |
Le niveau Premium d’Azure Cache pour Redis propose une version de géoréplication appelée géoréplication passive. La géoréplication passive fournit une configuration active-passive.
Conditions préalables à la géoréplication active
Il existe quelques restrictions lors de l’utilisation de la géoréplication active :
- Seuls les modules RediSearch et RedisJSON sont pris en charge
- Sur le niveau Enterprise Flash, seule la stratégie d’éviction Sans éviction peut être utilisée. Toutes les stratégies d’éviction sont prises en charge au niveau Enterprise.
- La persistance des données n’est pas prise en charge, car la géoréplication active offre une expérience supérieure.
- Vous ne pouvez pas ajouter un cache existant (c’est-à-dire en cours d’exécution) à un groupe de géoréplication. Vous ne pouvez ajouter un cache à un groupe de géoréplication que lorsque vous créez le cache.
- Tous les caches d’un groupe de géoréplication doivent avoir la même configuration. Par exemple, tous les caches doivent avoir les mêmes référence SKU, capacité, stratégie d’éviction, stratégie de clustering, modules et paramètre TLS.
- Vous ne pouvez pas utiliser les commandes Redis
FLUSHALL
etFLUSHDB
lors de l’utilisation de la géoréplication active. L’interdiction des commandes empêche la suppression involontaire des données. Utilisez plutôt l’opération de vidage à partir du portail. - La géo-réplication active n'est pas prise en charge sur E1 et sur les références Flash.
Créer ou rejoindre un groupe de géoréplication active
Lors de la création d’une ressource Azure Cache pour Redis, sélectionnez l’onglet Avancé. Complétez la première partie du formulaire, y compris la stratégie de clustering. Pour plus d’informations sur le choix d’une stratégie de clustering, consultez Clustering.
Sélectionnez Configurer pour configurer la Géo-réplication active.
Créez un nouveau groupe de réplication pour une première instance de cache. Ou bien, sélectionnez un modèle existant dans la liste.
Sélectionnez Configurer pour terminer.
Patientez pendant la création du premier cache. Une fois terminé, vous voyez Configuré défini pour la Géoréplication active. Répétez les étapes ci-dessus pour chaque instance de cache du groupe de géoréplication.
Supprimer une instance d’un groupe de géoréplication active
Pour supprimer une instance de cache d’un groupe de géoréplication active, supprimez simplement l’instance. Les instances restantes sont ensuite automatiquement reconfigurées.
Forcer la dissociation en cas de panne d’une région
Si l’un des caches dans votre groupe de réplication n’est pas disponible en raison d’une panne de région, vous pouvez forcer la suppression du cache non disponible du groupe de réplication. Après avoir appliqué Forcer la dissociation à un cache, vous ne pouvez pas resynchroniser les données écrites dans ce cache avec le groupe de réplication.
Vous devez supprimer le cache indisponible car les caches restants dans le groupe de réplication commencent à stocker les métadonnées qui n'ont pas été partagées avec le cache indisponible. Dans ce cas, les caches disponibles dans votre groupe de réplication peuvent manquer de mémoire.
Accédez au Portail Azure et sélectionnez l’un des caches dans le groupe de réplication qui est toujours disponible.
Sélectionnez la géo-réplication active dans le menu Ressource à gauche pour afficher les paramètres dans le volet de travail.
Sélectionnez le cache dont vous avez besoin pour forcer la dissociation en activant la case à cocher.
Sélectionnez Force unlink (Forcer la dissociation), puis OK pour confirmer.
Une fois la disponibilité de la région affectée restaurée, vous devez supprimer le cache affecté et le recréer pour le rajouter à votre groupe de réplication.
Configurer la géoréplication active à l’aide d’Azure CLI ou de PowerShell
Azure CLI
Utilisez Azure CLI pour créer un cache et un groupe de géoréplication, ou pour ajouter un nouveau cache à un groupe de géoréplication existant. Pour plus d’informations, consultez az redisenterprise create.
Créer une instance Enterprise dans un nouveau groupe de géoréplication à l’aide d’Azure CLI
Cet exemple crée une instance de cache Azure Cache pour Redis Enterprise E10 nommée Cache1 dans la région USA Est. Ensuite, le cache est ajouté à un nouveau groupe de géoréplication active nommé 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"
Pour configurer correctement la géoréplication active, l’ID de l’instance de cache en cours de création doit être ajouté avec le paramètre --linked-databases
. L’ID est au format suivant :
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Créer une instance Enterprise dans un groupe de géoréplication existant à l’aide d’Azure CLI
Cet exemple crée une instance de cache Enterprise E10 nommée Cache2 dans la région USA Ouest. Ensuite, le script ajoute le cache au groupe de géoréplication active replicationGroup
créé dans une procédure précédente. De cette façon, il est lié dans une configuration active-active avec 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"
Comme précédemment, vous devez lister Cache1 et Cache2 à l’aide du paramètre --linked-databases
.
Azure PowerShell
Utilisez Azure PowerShell pour créer un cache et un groupe de géoréplication, ou pour ajouter un nouveau cache à un groupe de géoréplication existant. Pour plus d’informations, consultez New-AzRedisEnterpriseCache.
Créer une instance Enterprise dans un nouveau groupe de géoréplication à l’aide de PowerShell
Cet exemple crée une instance de cache Azure Cache pour Redis Enterprise E10 nommée Cache1 dans la région USA Est. Ensuite, le cache est ajouté à un nouveau groupe de géoréplication active nommé 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"}'
Pour configurer correctement la géoréplication active, l’ID de l’instance de cache en cours de création doit être ajouté avec le paramètre -LinkedDatabase
. L’ID est au format suivant :
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Créer une instance Enterprise dans un groupe de géoréplication existant à l’aide de PowerShell
Cet exemple crée une instance de cache Enterprise E10 nommée Cache2 dans la région USA Ouest. Ensuite, le script ajoute le cache au groupe de géoréplication active replicationGroup créé dans la procédure précédente. Après l’exécution de la commande, les deux caches, Cache1 et Cache2, sont liés dans une configuration en mode actif-actif.
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"}'
Comme précédemment, vous devez lister Cache1 et Cache2 à l’aide du paramètre -LinkedDatabase
.
Mise à l’échelle des instances dans un groupe de géoréplication
Il est possible de mettre à l’échelle des instances configurées pour utiliser la géoréplication active. Toutefois, un groupe de géoréplication composé de différentes tailles de cache peut poser des problèmes. Pour éviter que ces problèmes ne se produisent, tous les caches d’un groupe de géoréplication doivent avoir la même taille et la même capacité.
Étant donné qu’il est difficile de mettre à l’échelle simultanément toutes les instances du groupe de géoréplication, Azure Cache pour Redis dispose d’un mécanisme de verrouillage. Si vous mettez à l’échelle une instance dans un groupe de géoréplication, la machine virtuelle sous-jacente est mise à l’échelle, mais la mémoire disponible est plafonnée à la taille d’origine jusqu’à ce que les autres instances soient également mises à l’échelle. Toutes les autres opérations de mise à l’échelle des instances restantes sont verrouillées jusqu’à ce qu’elles correspondent à la même configuration que le premier cache à mettre à l’échelle.
Exemple de mise à l’échelle
Par exemple, vous pouvez avoir trois instances Enterprise E10 dans votre groupe de géoréplication :
Nom d'instance | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | Enterprise E10 | Enterprise E10 | Enterprise E10 |
Supposons que vous souhaitiez faire évoluer chaque instance de ce groupe de géoréplication vers une instance Enterprise E20. Vous devez d’abord mettre à l’échelle l’un des caches jusqu’au niveau E20 :
Nom d'instance | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | Enterprise E20 | Enterprise E10 | Enterprise E10 |
À ce stade, les instances Redis01
et Redis02
peuvent uniquement effectuer un scale-up vers une instance Enterprise E20. Toutes les autres opérations de mise à l’échelle sont verrouillées.
Remarque
À ce stade, l’instance Redis00
n’est pas empêchée de se développer davantage. Mais il est bloqué une fois que Redis01
ou Redis02
est mis à l'échelle pour devenir un Enterprise E20.
Une fois que chaque instance est mise à l’échelle au même niveau et à la même taille, tous les verrous de mise à l’échelle sont supprimés :
Nom d'instance | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | Enterprise E20 | Enterprise E20 | Enterprise E20 |
Opération de vidage
En raison du risque de perte de données par inadvertance, vous ne pouvez pas utiliser les commandes Redis FLUSHALL
et FLUSHDB
avec une instance de cache résidant dans un groupe de géoréplication. Utilisez plutôt le bouton Vider le ou les caches situé en haut du volet de travail La géoréplication active.
Métrique de géo-réplication
La mesure Réplication géographique saine dans le niveau Entreprise d’Azure Cache pour Redis permet de surveiller l’intégrité des clusters géorépliqués. Vous utilisez cette métrique pour surveiller l’état de synchronisation entre les géo-répliques.
Pour surveiller la mesure de Geo Replication Healthy dans le portail Azure :
Ouvrez le portail Azure et sélectionnez votre instance Azure Cache pour Redis.
Dans le menu Ressource, sélectionnez Mesures sous la section Surveillance.
Sélectionnez Ajouter une métrique et sélectionnez Geo Replication Healthy.
Si nécessaire, appliquez des filtres pour des géo-répliques spécifiques.
Vous pouvez configurer une alerte pour vous avertir si la mesure Geo replication Healthy émet une valeur non saine (0) en continu pendant plus de 60 minutes.
Sélectionnez Nouvelle règle d’alerte.
Définissez la condition à déclencher si la valeur de la métrique est 0 pendant au moins 60 minutes, le temps recommandé.
Ajoutez des groupes d’actions pour les notifications, par exemple : e-mail, SMS et autres.
Sauvegardez l'alerte.
Pour plus d’informations sur la configuration des alertes pour votre cache Redis Enterprise, consultez la section Alerte dans Surveiller les caches Redis.
Important
Cette mesure peut s’afficher temporairement comme défectueuse en raison d’opérations de routine telles que des événements de maintenance ou de mise à l’échelle, initiés par Azure ou par le client. Pour éviter les fausses alarmes, nous vous recommandons de configurer une fenêtre d'observation de 60 minutes, pendant laquelle la métrique continue de rester en mauvais état, comme durée appropriée pour générer une alerte, car cela peut indiquer un problème nécessitant une intervention.
Problèmes courants côté client pouvant entraîner des problèmes de synchronisation entre les géo-répliques
Utilisation de hashtags personnalisés – L’utilisation de hashtags personnalisés dans Redis peut entraîner une distribution inégale des données entre les fragments, ce qui peut entraîner des problèmes de performances et de synchronisation dans les géo-répliques. Évitez donc d’utiliser des hashtags personnalisés, sauf si la base de données doit effectuer plusieurs opérations clés.
Taille de clé importante – Les clés importantes peuvent créer des problèmes de synchronisation entre les géo-répliques. Pour maintenir des performances fluides et une réplication fiable, nous vous recommandons de conserver des tailles de clé inférieures à 500 Mo lors de l'utilisation de la géo-réplication. Si la taille de la clé individuelle se rapproche de 2 Go, le cache est confronté à des problèmes de santé de géo-réplication.
Vider les caches à l’aide d’Azure CLI ou de PowerShell
Azure CLI et PowerShell peuvent également être utilisés pour déclencher une opération de vidage. Pour plus d’informations sur l’utilisation d’Azure CLI, consultez az redisenterprise database flush. Pour plus d’informations sur l’utilisation de PowerShell, consultez Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Important
Soyez prudent lorsque vous utilisez la fonctionnalité Vider les caches. La sélection du bouton supprime toutes les données du cache actuel et de TOUS les caches liés dans le groupe de géoréplication.
Gérez l’accès à la fonctionnalité à l’aide du contrôle d’accès en fonction du rôle Azure. Seuls les utilisateurs autorisés doivent avoir accès au vidage de tous les caches.
Étapes suivantes
En savoir plus sur les fonctionnalités d’Azure Cache pour Redis.