Déplacer une instance

Cette page décrit le déplacement d'une instance dans Spanner.

Vous pouvez déplacer votre instance Spanner depuis n'importe quelle configuration d'instance vers une autre, y compris entre des configurations régionales, birégionales et multirégionales. En mouvement votre instance n'entraîne pas de temps d'arrêt et Spanner continue fournir les garanties de transactions habituelles ; y compris une cohérence forte, pendant le déplacement.

Vous pouvez aussi déplacer votre instance depuis la configuration de son instance source à une configuration d'instance personnalisée (par exemple, une configuration de base nam3) avec une instance répliquée us-west2 en lecture seule). Comme vous ne pouvez pas mettre à jour la topologie des configurations d'instance existantes, vous devez créer une instance personnalisée avec la topologie souhaitée en premier. Après avoir créé vous pouvez déplacer votre instance de l'instance source à la nouvelle configuration d'instance personnalisée.

Pourquoi déplacer votre instance Spanner ?

Déplacer votre instance présente les avantages suivants:

  • Augmenter la disponibilité : obtenez une disponibilité de 99,999 % sans temps d'arrêt après avoir effectué un transfert de région vers une région duale ou multirégionale.
  • Réduire la latence : réduisez la latence et augmentez la couverture géographique avec des réplicas en lecture seule supplémentaires en effectuant un transfert de données d'un emplacement régional vers un emplacement birégional ou multirégional, ou d'un emplacement multirégional vers un emplacement multirégional.
  • Réduire les coûts : réduisez les coûts horaires en passant d'une configuration bi-régionale ou multirégionale à une configuration régionale.
  • Cohéberger la base de données: cohéberger la base de données Spanner à l'aide du application cliente en déplaçant l'instance vers un emplacement plus optimisé.

Tarifs

Lorsque vous déplacez une instance, les configurations des instances source et de destination sont soumises à des frais de calcul et de stockage horaires. Une fois le transfert terminé, vous êtes facturé pour l'espace de stockage de l'instance dans la configuration de destination.

Si vous déplacez votre instance vers une nouvelle configuration d'instance régionale, birégionale ou multirégionale, vous serez peut-être soumis à des frais de transfert de données sortants. Pour en savoir plus, consultez la page Tarifs de Spanner.

Limites

  • Pour que vous puissiez déplacer votre instance, elle doit disposer d'au moins 1 nœud (1 000 unités de traitement).
  • Vous ne pouvez pas déplacer votre instance entre des projets et des comptes Google Cloud.
  • Vous ne pouvez pas déplacer une instance qui utilise l'édition Standard directement depuis une configuration d'instance régionale vers un emplacement birégional ou une configuration d'instance multirégionale. Vous devez d'abord mettre à niveau l'édition de votre instance vers l'édition Enterprise Plus, puis déplacer l'instance.
  • Vous ne pouvez pas déplacer une instance Spanner en essai gratuit. Vous pouvez déplacer l'instance après l'avoir mise à niveau vers une instance payante.
  • Si vous avez des requêtes actives utilisant un point de terminaison de service régional sur l'une des ressources d'instance, le déplacement de l'instance a un impact sur toutes les requêtes qui utilisent le point de terminaison régional, car les blocages d'application régionaux aux instances interrégionales. Les requêtes qui utilisent un point de terminaison global ne sont pas affectées.
  • Les sauvegardes Spanner sont spécifiques à une configuration d'instance et ne sont pas incluses lors du déplacement d'une instance. Pour Pour en savoir plus, consultez la section Sauvegardes.
  • Les API suivantes sont désactivées lors du déplacement d'une instance: <ph type="x-smartling-placeholder">
      </ph>
    • InstanceAdmin.DeleteInstance
    • InstanceAdmin.UpdateInstance
    • DatabaseAdmin.CreateDatabase
    • DatabaseAdmin.UpdateDatabaseDdl (Désactivé si default_leader est spécifié dans la requête.)
    • DatabaseAdmin.RestoreDatabase
    • DatabaseAdmin.CreateBackup
    • DatabaseAdmin.CreateBackupSchedule
    • DatabaseAdmin.CopyBackup
  • Vous ne pouvez pas déplacer d'instances contenant des bases de données compatibles CMEK.
  • Si une base de données possède une principale variante par défaut modifiée, la sélection est conservée si elle nomme une région de lecture/écriture dans le la configuration de l'instance de destination, un emplacement multirégional. Si la configuration de destination est régionale ou n'inclut pas la région de lecture/écriture nommée, la sélection du leader par défaut est effacée.
  • Le déplacement d'une instance modifie l'attribut de configuration d'instance Compute Engine. Si vous gérez vos ressources Spanner via l'automatisation, assurez-vous de préparer et de corriger les incohérences qui pourraient surgissent.
    • Par exemple, si vous utilisez Terraform pour gérer vos instances et bases de données Spanner activer terraform apply --auto-approve pour synchroniser vos ressources toutes les instances et ressources enfants sont supprimées lors du déplacement de l'instance. Mettez à jour la configuration en conséquence pour éviter toute suppression et perte de données. Voir Options d'application de Terraform pour en savoir plus sur la commande apply.
  • Pendant le transfert de l'instance, les métriques et les graphiques de surveillance Spanner peuvent afficher des données à la fois dans les configurations d'instance source et de destination, ou ne refléter que les performances d'une seule configuration d'instance.
  • Si vous avez configuré l'outil Open Source Autoscaler, vous n'avez pas besoin de le désactiver. L'opération échoue, car InstanceAdmin.UpdateInstance (utilisé pour les modifications de nœud et d'unité de traitement) est désactivé.
  • Vous ne pouvez pas déplacer une instance si Autoscaler géré Spanner est activée sur celui-ci. Pour déplacer l'instance, vous devez désactiver l'autoscaler géré, déplacer l'instance, puis réactiver l'autoscaler géré.

    De plus, si vous utilisez l'autoscaling, vous devez provisionner suffisamment de nœuds pour une utilisation maximale du processeur le nombre maximal de recommandations, puis désactivez l'autoscaling vous déplacez l'instance.

Considérations sur les performances

Lorsqu'une instance est déplacée, elle subit des latences de lecture/écriture plus élevées et un taux d'abandon de transaction plus élevé. L'utilisation du processeur pendant le transfert peut atteindre 100 %, car le transfert d'instance est effectué à l'aide d'un processeur de réserve provisionné par l'utilisateur. Toutefois, le déplacement d'une instance n'entraîne aucun temps d'arrêt. L'heure nécessaire au déplacement d'une instance dépend de plusieurs facteurs, y compris de la taille les bases de données, le nombre de nœuds et le type de déplacement (par exemple, multirégional).

Après le déplacement d'une instance, ses performances varient en fonction de les détails de la configuration de l'instance. Par exemple, les configurations à deux régions et les configurations multirégionales présentent généralement une latence en écriture plus élevée et une latence en lecture plus faible que les configurations régionales.

Sauvegardes

Lorsque vous déplacez une instance, les sauvegardes de l'instance source ne sont pas automatiquement déplacées vers la nouvelle configuration de destination. Le déplacement de l'instance est annulé si des sauvegardes existent dans la configuration de l'instance source lorsque vous démarrez l'instance déplacer. Il est important de copier vos sauvegardes et de tenir compte de vos plan de récupération de données avant de déplacer votre Compute Engine.

Si votre instance source contient des sauvegardes que vous devez conserver, nous vous recommandons de copier vos sauvegardes configuration de l'instance de destination et une autre instance avec la même instance en tant qu'instance source à déplacer. Voici pourquoi :

  • Vous pouvez copier vos sauvegardes dans la configuration de l'instance de destination immédiatement après la fin du déplacement de l'instance.
  • Si vous devez annuler le déplacement de l'instance, vous pouvez également restaurer rapidement vos sauvegardes de l'instance avec la même configuration que la source configuration d'instance.

Après avoir copié vos sauvegardes sur une autre instance, vous devez supprimer toute instance existante des sauvegardes dans l'instance source avant de pouvoir la déplacer. Ensuite, une fois que le déplacement de l'instance est terminé, vous disposez d'une copie de la sauvegarde dans la configuration. Vous pouvez également créer une sauvegarde.

Pour en savoir plus sur la copie de sauvegardes et sur les coûts associés, consultez Copier une sauvegarde.

Déplacer une instance

Vous pouvez déplacer une instance à l'aide de Cloud Shell dans la console Google Cloud la gcloud CLI à l'aide des commandes gcloud.

Prérequis

Avant de déplacer la configuration de votre instance, assurez-vous que vous avez consultez l'article Limites et Considérations sur les performances . Ensuite, procédez comme suit :

  1. Vérifiez que vous disposez de l'autorisation IAM spanner.instances.update sur l'instance source.
  2. Le cas échéant, déplacez vos instances hors production (telles que les instances de test et de préproduction) avant de déplacer vos instances de production afin d'évaluer et de comprendre l'impact des performances sur les charges de travail lors d'un déplacement d'instance.
  3. Lorsque vous déplacez une instance Spanner, le processus de déplacement supprime les balises d'instance que vous avez créées dans Data Catalog. Pour préserver vous devez les exporter avant le déplacement et les importer après le déplacement. Pour en savoir plus, consultez Exporter et importer des tags

Suivez également les bonnes pratiques ci-dessous:

  • Testez les charges de travail de performances dans des instances hors production dans la configuration de l'instance de destination avant de déplacer votre instance de production. Essayer en déplaçant une instance de préproduction semblable à votre instance de production pour avoir une idée du temps qu'il faudra pour déplacer votre instance de production.
  • Vérifiez que vos bases de données ne contiennent pas de hotspots à l'aide de Key Visualizer.
  • Vérifiez que vous disposez d'un quota de nœuds suffisant dans la configuration de l'instance de destination pour prendre en charge le pic d'utilisation prévu de l'instance. Pour en savoir plus, consultez Quotas et limites Spanner Limites.
  • Assurez-vous que l'utilisation maximale du processeur de votre instance est inférieure à 40 % pour la configuration d'instance que vous avez déplacée et que la quantité de stockage par nœud est inférieure à 1 Tio.
  • N'apportez aucune modification à l'instance pendant le déplacement. Ce inclut la modification du nombre de nœuds d'instance, la modification des schémas de base de données, créer ou supprimer des bases de données, et créer ou supprimer des sauvegardes.

Si vous déplacez votre instance conformément à ces recommandations, le transfert est généralement terminé sous 24 heures. Cependant, en fonction de l'application charge de travail, le délai d'exécution peut être plus long ou plus court.

Déplacer une instance

console Google Cloud

  1. Cliquez sur Activer l&#39;icône Cloud Shell Activer Cloud Shell en haut de la console Google Cloud.

    Une session Cloud Shell s'ouvre dans un nouveau cadre au en bas de la console Google Cloud et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.

  2. Utilisez la commande gcloud spanner instances move pour déplacer l'instance.

    gcloud spanner instances move INSTANCE_ID \
    --target-config=TARGET_CONFIG
    

    Remplacez les éléments suivants :

    • INSTANCE_ID : identifiant permanent de l'instance que vous souhaitez déplacer.
    • TARGET_CONFIG : identifiant permanent de la configuration d'instance vers laquelle vous souhaitez déplacer votre instance. Nouvel emplacement géographique de votre instance. Il peut s'agir d'une zone régionale, birégionale, une configuration d'instance multirégionale ou personnalisée (par exemple, nam3, us-central1 ou custom-nam3-us-west2).

Par exemple, pour déplacer votre instance test-instance de sa configuration actuelle vers nam3, exécutez la commande suivante :

  gcloud spanner instances move test-instance --target-config=nam3

Facultatif : Si vous souhaitez ajouter un réplica en lecture seule, us-west2, à la configuration de l'instance de base nam3, procédez comme suit :

  1. Clonez la configuration de base et ajoutez l'instance répliquée en lecture seule:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Déplacez votre instance test-instance de sa configuration actuelle vers cette nouvelle configuration d'instance custom-nam3-us-west2 :

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

CLI gcloud

Utilisez la commande gcloud spanner instances move pour déplacer l'instance.

gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG

Remplacez les éléments suivants :

  • INSTANCE_ID : identifiant permanent de l'instance que vous souhaitez déplacer.
  • TARGET_CONFIG : identifiant permanent de la configuration d'instance vers laquelle vous souhaitez déplacer votre instance. La nouvelle zone géographique l'emplacement de votre instance. Il peut s'agir d'un emplacement régional, birégional configuration d'instance multirégionale (par exemple, nam3, us-central1, ou custom-nam3-us-west2).

Par exemple, pour déplacer votre instance test-instance de sa configuration actuelle vers nam3, exécutez la commande suivante :

  gcloud spanner instances move test-instance --target-config=nam3

Facultatif : Si vous souhaitez ajouter un réplica en lecture seule, us-west2, à la configuration de l'instance de base nam3, procédez comme suit :

  1. Clonez la configuration de base et ajoutez l'instance répliquée en lecture seule:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Déplacez votre instance test-instance de sa configuration actuelle vers cette nouvelle configuration d'instance custom-nam3-us-west2 :

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

Surveiller l'avancement du transfert et de l'annulation d'une instance

Vous pouvez utiliser gcloud spanner operations describe ou créer une Tableau de bord Cloud Monitoring pour surveiller la progression du déplacement d'une instance.

Afficher la progression des opérations de déplacement et d'annulation

Pour suivre la progression d'un déplacement d'instance ou d'une annulation de déplacement d'instance utilisez l'opération gcloud spanner operations describe . Cette commande nécessite l'ID d'opération de l'opération de déplacement d'instance en cours.

  1. Obtenez l'ID d'opération de déplacement de votre instance en exécutant la commande suivante:

    gcloud spanner operations list --instance="INSTANCE_ID"
    

    Remplacez les éléments suivants :

    • INSTANCE_ID : identifiant permanent de l'instance que vous souhaitez déplacer.

    Le résultat affiche la liste des opérations de longue durée, y compris le déplacement d'instance opération.

  2. Exécutez la commande gcloud spanner operations describe pour afficher la progression pourcentage et état:

    gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_ID
    

    Remplacez les éléments suivants :

    • OPERATION_ID : ID de l'opération de déplacement d'instance que vous souhaitez vérifier.
    • INSTANCE_ID: ID de l'instance à laquelle vous souhaitez attribuer vérifier.

Surveiller une opération de déplacement d'instance

Vous pouvez créer un tableau de bord Cloud Monitoring personnalisé pour afficher et surveiller pendant le déplacement de l'instance, une opération de longue durée pouvant les conséquences sur les services.

Les graphiques Stockage total et Stockage total de la base de données par base de données du tableau de bord sont utiles pour suivre la progression du transfert. Vous pouvez constater que l'espace de stockage de la configuration source diminue progressivement, tandis que celui de la configuration de destination augmente.

console Google Cloud

  1. Téléchargez le fichier move-instance-dashboard.json. Ce fichier contient les informations nécessaires pour remplir un tableau de bord personnalisé dans Monitoring.
  2. Dans la console Google Cloud, accédez à la page Tableaux de bord .

    Accéder à la page Tableaux de bord

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  3. Sur la page Dashboards Overview (Aperçu des tableaux de bord), cliquez sur Create dashboard (Créer un tableau de bord).
  4. Dans la barre d'outils du tableau de bord, cliquez sur la liste déroulante Paramètres du tableau de bord. Sélectionnez ensuite JSON, puis Éditeur JSON.
  5. Dans le volet de l'éditeur JSON, copiez le contenu du fichier move-instance-dashboard.json que vous avez téléchargé et collez-le dans le éditeur.
  6. Pour appliquer vos modifications au tableau de bord, cliquez sur Appliquer les modifications. Si vous ne souhaitez pas utiliser ce tableau de bord, revenez à la page "Présentation des tableaux de bord".
  7. Une fois le tableau de bord créé, cliquez sur Ajouter un filtre. Sélectionnez ensuite au choix project_id ou instance_id pour surveiller la progression de l'instance déplacer.

CLI gcloud

  1. Téléchargez le move-instance-dashboard.json . Ce fichier contient les informations nécessaires pour remplir un tableau de bord personnalisé dans Monitoring.
  2. Pour créer un tableau de bord dans un projet, utilisez la commande gcloud monitoring dashboards create :

    gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.json
    

    Pour en savoir plus, consultez la documentation de référence sur gcloud monitoring dashboards create.

Annuler le déplacement d'une instance

Vous ne pouvez annuler le déplacement d'une instance que s'il est toujours en cours. Si vous souhaitez pour annuler un déplacement d'instance déjà terminé, vous devez recommencer un nouveau déplacement.

Vous pouvez utiliser gcloud spanner operations cancel pour annuler les opérations de déplacement d'instance. L'annulation n'est pas instantanée et prend à peu près le même temps que le temps écoulé depuis le début du transfert. En effet, les données doivent être déplacées vers l'instance source configuration.

Cette commande nécessite l'identifiant d'opération du déplacement de l'instance en cours opération.

  1. Obtenez l'ID d'opération en exécutant la commande suivante:

    gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID"
    --filter="done:False AND metadata.@type:MoveInstanceMetadata
    

    Remplacez les éléments suivants :

    • INSTANCE_ID: identifiant permanent de l'instance que vous que vous voulez déplacer.

    Le résultat affiche la liste des opérations de déplacement d'instance en cours.

  2. Exécutez la commande gcloud spanner operations cancel pour annuler le déplacement de l'instance :

    gcloud spanner operations cancel OPERATION_ID
    

    Remplacez les éléments suivants :

    • OPERATION_ID: ID de l'opération de déplacement d'instance qui que vous souhaitez annuler.

Étape suivante