Cette page explique le fonctionnement des importations et des exportations dans Memorystore pour Redis.
La fonctionnalité d'importation et d'exportation utilise la fonctionnalité d'instantané RDB natif de Redis pour importer ou exporter des données à partir d'une instance Memorystore pour Redis. L'utilisation du format RDB natif empêche le verrouillage et facilite le transfert des données dans ou en dehors de Google Cloud. L'importation et l'exportation utilisent des buckets Cloud Storage pour stocker des fichiers RDB.
Le comportement d'une instance Memorystore pour Redis lors de l'exportation est très semblable à la commande BGSAVE
dans Redis Open Source. Memorystore pour Redis effectue l'importation en copiant votre fichier RDB dans le répertoire de données de votre instance.
Pour savoir comment importer et exporter des fichiers RDB, consultez les pages Importer des données vers une instance Redis et Exporter des données depuis une instance Redis.
Comportement de la fonctionnalité d'importation
Pour des performances optimales, vous devez importer les fichiers à partir de buckets Cloud Storage situés dans la même région que votre instance Redis.
Votre instance Redis n'est pas disponible lors d'une opération d'importation. Elle le redevient une fois l'opération d'importation terminée.
Si une importation réussit, les données existantes de l'instance sont remplacées par les données du fichier RDB.
Si une importation échoue pour une raison ou une autre, l'instance est mise en ligne, mais les données peuvent être entièrement vidées. Vous pouvez relancer l'importation à l'aide du même fichier RDB ou utiliser un autre fichier RDB pour restaurer les données.
Votre instance Memorystore pour Redis peut importer des fichiers RDB à partir de la même version de Redis et d'une version précédente, mais pas à partir d'une version plus récente.
Une opération d'importation peut être annulée, mais notez que l'annulation entraîne la récupération de l'instance avec un cache entièrement vidé. C'est le cas pour les instances de niveau de base et standard.
Une instance ne peut importer des sauvegardes qu'à partir d'anciennes versions de Redis. Une instance exécutant Redis 5.0 peut importer un fichier RDB exporté depuis Redis 4.0, mais une instance exécutant Redis 4.0 ne peut pas importer de fichier RDB depuis Redis 5.0.
Comportement de la fonctionnalité d'exportation
Vous pouvez lire et écrire des données sur votre instance Redis lors d'une opération d'exportation. Cependant, vous ne pouvez pas effectuer d'opérations d'administration telles que le scaling, la mise à jour ou la configuration de votre instance.
Votre instance peut connaître une latence accrue lors de l'exportation.
Pour des performances optimales, vous devez exporter vos sauvegardes RDB vers des buckets Cloud Storage situés dans la même région que votre instance Redis.
Lors d'une exportation, le fichier RDB est enregistré dans le bucket Cloud Storage de votre choix.
Vous pouvez annuler une opération d'exportation à tout moment. L'annulation n'a aucune incidence sur les données ou la disponibilité d'une instance.
- L'annulation d'une exportation supprime le fichier RDB en cours d'écriture dans le bucket Cloud Storage et libère de la mémoire utilisée par le processus
BGSAVE
.
- L'annulation d'une exportation supprime le fichier RDB en cours d'écriture dans le bucket Cloud Storage et libère de la mémoire utilisée par le processus
Une exportation peut remplacer un fichier existant portant le même nom sans autorisations supplémentaires lors de l'utilisation de la console Google Cloud. Pour exporter un fichier existant avec
gcloud
, le compte utilisateur doit disposer de l'autorisationstorage.objects.delete
.
Exporter lors d'une charge en écriture élevée
Si vous effectuez une exportation pendant une période de forte charge en écriture, l'utilisation de la mémoire de l'instance peut doubler, ce qui entraîne l'échec de l'opération d'exportation. Il est préférable d'exécuter les opérations d'exportation pendant les périodes de faible charge en écriture. Pour surveiller la quantité de données Redis stockées dans votre instance, vous pouvez créer un tableau de bord pour surveiller votre utilisation de la mémoire et surveiller les métriques d'utilisation de la mémoire d'instance avec Cloud Monitoring.
L'exportation Memorystore pour Redis utilise la fonctionnalité BGSAVE
de Redis pour prendre un instantané des données d'une instance. Lors de l'exécution de BGSAVE
, Redis lance un nouveau processus enfant pour prendre l'instantané. Redis utilise la fonction copy-on-write (copie sur écriture) au cours de ce processus.
Cela signifie que la copie initiale alloue une quantité minimale de mémoire supplémentaire, mais toutes les pages modifiées par le trafic d'écriture du serveur Redis sont dupliquées. Par conséquent, dans les périodes d'écritures élevées, dans le pire des cas, l'empreinte mémoire de Redis double, ce qui entraîne l'échec de l'opération d'exportation.
Exporter pendant une opération BGSAVE
Vous ne pouvez pas exporter une opération BGSAVE
en cours d'exécution. Les instances Memorystore pour Redis de niveau standard exécutent parfois des opérations de resynchronisation complètes, ou "full syncs", afin de synchroniser l'instance principale et l'instance dupliquée. Une resynchronisation complète utilise la commande BGSAVE
, qui empêche Memorystore d'effectuer une exportation.
Pour vérifier si une opération BGSAVE
est en cours, affichez le point de terminaison de l'API redis.googleapis.com/persistence/rdb/bgsave_in_progress
avec l'explorateur de métriques.
Pour afficher les métriques d'une ressource surveillée à l'aide de l'explorateur de métriques, procédez comme suit :
-
Dans la console Google Cloud, accédez à la page leaderboardExplorateur de métriques :
Accéder à l'explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Dans l'élément Métrique, développez le menu Sélectionner une métrique, puis sélectionnez un type de ressource et un type de métrique. Par exemple, pour représenter graphiquement l'utilisation du processeur d'une machine virtuelle, procédez comme suit :
- (Facultatif) Pour réduire les options du menu, saisissez une partie du nom de la métrique dans la barre de filtre. Pour cet exemple, saisissez
utilization
. - Dans le menu Ressources actives, sélectionnez Instance de VM.
- Dans le menu Catégories de métriques actives, sélectionnez Instance.
- Dans le menu Métriques actives, sélectionnez Utilisation du processeur, puis cliquez sur Appliquer.
- (Facultatif) Pour réduire les options du menu, saisissez une partie du nom de la métrique dans la barre de filtre. Pour cet exemple, saisissez
Pour filtrer les séries temporelles affichées, utilisez l'élément Filtre.
Pour combiner des séries temporelles, utilisez les menus de l'élément Agrégation. Par exemple, pour afficher l'utilisation du processeur pour vos VM, en fonction de leur zone, définissez le premier menu sur Moyenne et le second sur zone.
Toutes les séries temporelles sont affichées lorsque le premier menu de l'élément Agrégation est défini sur Non agrégé. Les paramètres par défaut de l'élément Aggregation (Agrégation) sont déterminés par le type de métrique que vous avez sélectionné.
Vous pouvez également utiliser vos propres outils d'API de ligne de commande.
Autorisations requises pour l'importation et l'exportation
Un utilisateur doit configurer des autorisations IAM suffisantes pour importer ou exporter des fichiers RDB. La configuration des autorisations la plus simple consiste à appliquer les rôles IAM Administrateur Redis Cloud Memorystore et Administrateur de l'espace de stockage au compte utilisateur. Cependant, cette configuration peut être inappropriée pour certains comptes utilisateur, car elle leur accorde l'autorisation de créer, de modifier ou de supprimer des ressources auxquelles ils ne devraient pas avoir accès. Pour savoir comment définir des autorisations restreintes, consultez la section Accorder des autorisations restreintes pour l'importation et l'exportation.
Durée des importations et des exportations
La durée de l'importation ou de l'exportation dépend de la taille de l'instance et de la taille de l'ensemble de données qu'elle contient. Selon la taille, l'importation et l'exportation peuvent prendre de quelques minutes à quelques heures.
Par exemple, si vous importez ou exportez une instance de 10 Go utilisant 8 Go de mémoire, l'opération peut prendre cinq minutes. Si vous importez ou exportez une instance de 120 Go utilisant 100 Go de mémoire, l'opération peut prendre une heure.
Arrêter une importation ou une exportation
Pour arrêter une importation ou une exportation, reportez-vous aux pages suivantes :
Surveiller la progression de l'opération
L'estimation de la durée d'exécution n'est pas disponible lors de l'importation et de l'exportation. Vous pouvez vérifier si l'opération est en cours en consultant la page des détails de l'instance. Pour afficher la page des détails de l'instance, cliquez sur votre ID d'instance sur la page Liste des instances de Memorystore pour Redis.
Vous pouvez également surveiller la progression d'une opération d'importation en exécutant la commande suivante :
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Où :
[INSTANCE_ID]
est l'ID de votre instance Memorystore pour Redis.[REGION]
est la région dans laquelle se trouve votre instance.
Les résultats de la commande affichent state: IMPORTING
ou state: READY
comme l'un des champs de description.
Buckets Cloud Storage non compatibles
Les buckets Cloud Storage "Paiements du demandeur" ne sont pas compatibles avec les importations et les exportations Memorystore.
Sécuriser vos buckets Cloud Storage
Vous devez vous assurer que votre bucket Cloud Storage dispose des restrictions appropriées pour empêcher tout accès non autorisé au fichier de sauvegarde Redis RDB qu'il contient. Veuillez consulter les options de contrôle d'accès de Cloud Storage pour savoir comment sécuriser vos buckets Cloud Storage.
S'assurer que la mémoire est suffisante pour effectuer une exportation
Pour éviter que l'exportation provoque un manque de mémoire, vous devez disposer de 50 % de mémoire disponible dans l'instance pendant le processus. Selon votre charge en écriture, ce n'est pas nécessaire en permanence. Toutefois, le fait d'avoir 50 % de mémoire disponible garantit un espace suffisant pour gérer la copie en écriture si de nombreuses pages sont traitées pendant le processus d'exportation.
Pour comprendre l'utilisation actuelle de la mémoire de votre instance, configurez une alerte pour être prévenu lorsque votre utilisation de la mémoire atteint un seuil personnalisable. En outre, il est conseillé de configurer un tableau de bord de surveillance de la mémoire avec Cloud Monitoring. Ces mesures vous permettront de comprendre les modèles d'utilisation de mémoire de vos instances. La compréhension des modèles d'utilisation de mémoire vous permet de dimensionner correctement votre instance lors de l'exportation à intervalles réguliers.
Exporter et importer vers des instances avec instances dupliquées avec accès en lecture
Pour toutes les instances Redis, y compris les instances activées pour les instances dupliquées avec accès en lecture, les données sont exportées à partir du nœud principal.
Pour les instances activées pour les instances dupliquées avec accès en lecture, l'exportation peut augmenter la charge du processeur et l'empreinte mémoire sur le nœud principal.
Lors de l'importation de données vers une instances activées pour les instances dupliquées avec accès en lecture, l'instance principale redémarre pendant l'importation et n'est pas disponible jusqu'à ce que les nouvelles données soient entièrement chargées dans la base de données.
Étape suivante
Suivez le guide Importer des données dans une instance Redis.
Suivez le guide Exporter des données à partir d'une instance Redis.