Cette page explique comment migrer une instance de VM d'un réseau à un autre. Dans le cas d'une VM connectée à plusieurs réseaux à l'aide de plusieurs interfaces réseau, ce processus met à jour l'une des interfaces et laisse les autres en place.
Les migrations suivantes sont acceptées :
- D'un ancien réseau à un réseau VPC dans le même projet
- D'un réseau VPC à un autre réseau VPC dans le même projet
- D'un sous-réseau dans un réseau VPC à un autre sous-réseau du même réseau
- D'un réseau de projet de service vers le réseau partagé d'un projet hôte de VPC partagé
Dans tous les cas, la VM reste dans la région et la zone où elle se trouvait avant. Seul le réseau associé change.
Avant de commencer
- Consultez la documentation sur le cloud privé virtuel.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Exigences
Avant de déplacer votre VM, elle doit répondre aux exigences suivantes :
- La migration correspond à une migration à "froid". La VM doit être arrêtée pour pouvoir être migrée.
- La VM ne doit pas appartenir à un groupe d'instances ou à un groupe de points de terminaison du réseau (NEG).
- Si la VM se trouve dans un groupe d'instances non géré ou dans un NEG, vous devez la retirer du groupe avant de la migrer.
- Les VM des groupes d'instances gérés ne peuvent pas être migrées. À la place, vous devez copier votre modèle d'instance sur le nouveau réseau et l'utiliser pour recréer le groupe d'instances géré.
- Vous pouvez déplacer des instances dans des pools cibles sans les supprimer au préalable. Le pool cible s'étend pour couvrir les deux réseaux.
Limites
- Vous ne pouvez pas migrer une interface de VM vers un ancien réseau.
- L'adresse MAC allouée à l'interface réseau sera modifiée lors de la migration. Cela peut avoir un impact sur les services étroitement liés à des adresses MAC telles que le contrat de licence tiers.
- Si vous migrez la VM vers un réseau ou un sous-réseau avec une plage d'adresses IP différente, l'adresse IP interne de votre instance doit changer. Si vous migrez vers un sous-réseau avec la même plage d'adresses IP, vous pouvez conserver l'ancienne adresse IP, tant qu'elle n'est pas déjà utilisée à la destination, en la spécifiant lors de la migration.
- Si le sous-réseau cible n'a pas la même plage d'adresses IP que la source, l'adresse IP de l'interface change pour correspondre à la nouvelle plage de sous-réseaux.
- Vous pouvez conserver l'adresse IP externe existante de la VM dans le nouvel emplacement. Pour ce faire, vous devez disposer de l'autorisation
compute.subnetworks.useExternalIp
sur le réseau cible, et le réseau cible ne peut pas désactiver les adresses IP externes par la contrainte constraints/compute.vmExternalIpAccess.
Migrer une VM
Avant de migrer une VM, consultez les exigences et limites.
Google vous recommande de créer les règles de pare-feu, routes, équilibreurs de charge et autres ressources d'infrastructure réseau nécessaires dans le nouveau réseau avant de migrer vos VM. Cela peut réduire le temps hors connexion de vos VM.
Console
Dans la console Google Cloud, accédez à la page Instances de VM.
Cliquez sur le nom de l'instance de VM pour ouvrir la page des détails.
Cliquez sur Arrêter
.Si une boîte de dialogue de confirmation s'affiche, cliquez sur Arrêter.
Une fois la VM arrêtée, cliquez sur Modifier
.Sous Interface réseau, cliquez sur l'interface que vous souhaitez déplacer.
Dans le champ Réseau de l'interface, sélectionnez le nouveau réseau associé à celle-ci.
Dans le champ Sous-réseau de l'interface, sélectionnez le nouveau sous-réseau associé à celle-ci.
Dans le champ Adresse IP interne, spécifiezAutomatique si vous souhaitez que le système alloue une adresse IP de la plage de sous-réseau, ou choisissez Personnalisée si vous souhaitez définir vous-même une adresse inutilisée.
Cliquez sur OK pour fermer le panneau de configuration de l'interface réseau.
Cliquez sur Enregistrer.
Une fois les modifications de la VM enregistrées, cliquez sur Démarrer
.Si une boîte de dialogue de confirmation s'affiche, cliquez sur Démarrer.
gcloud
Arrêter la VM
gcloud compute instances stop INSTANCE_NAME \ --zone=ZONE_NAME
Où :
- INSTANCE_NAME est le nom de l'instance de VM.
- ZONE_NAME est le nom de la zone contenant l'instance.
Migrer la VM
gcloud compute instances network-interfaces update INSTANCE_NAME \ --zone=ZONE_NAME \ --network-interface=NIC \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAME
Où :
- INSTANCE_NAME est le nom de l'instance de VM.
- ZONE_NAME est le nom de la zone contenant l'instance.
- NIC est le nom de l'interface que vous mettez à jour. Dans une VM à interface unique, NIC est
nic0
. - NETWORK_NAME est le nom du réseau cible. Si vous migrez la VM depuis un réseau du projet de service vers le réseau du projet hôte, vous devez utiliser un nom complet pour le réseau cible :
projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
- SUBNET_NAME est le nom du sous-réseau cible. Ce sous-réseau doit se trouver dans la même région que la VM. Si vous migrez la VM depuis un réseau du projet de service vers le réseau du projet hôte, vous devez utiliser un nom complet pour le sous-réseau :
projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Démarrer la VM
La migration peut prendre quelques minutes. Nous vous recommandons donc d'attendre avant de démarrer la VM dans le nouvel emplacement.
gcloud compute instances start INSTANCE_NAME \ --zone=ZONE_NAME
Où :
- INSTANCE_NAME est le nom de l'instance de VM.
- ZONE_NAME est le nom de la zone contenant l'instance.
REST
Arrêter la VM
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/stop
Où :
- PROJECT_ID est l'ID de votre projet.
- INSTANCE_NAME est le nom de l'instance de VM.
- ZONE_NAME est le nom de la zone contenant l'instance.
Affichez les détails de l'instance.
GET https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME
Où :
- PROJECT_ID est l'ID de votre projet.
- ZONE_NAME est le nom de la zone contenant l'instance.
- INSTANCE_NAME est le nom de l'instance de VM.
Recherchez l'empreinte numérique de l'interface.
Vous avez besoin de l'empreinte pour mettre à jour l'interface réseau.
Examinez le résultat de la commande et recherchez le contenu du champ
networkInterfaces
. Recherchez l'élément correspondant au nom de l'interface que vous souhaitez mettre à jour (dans une VM à interface unique, le nom estnic0
). Copiez la chaîne du champfingerprint
de cet élément pour l'utiliser à l'étape suivante.Migrer la VM
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NIC { "network": NETWORK_NAME, "subnetwork": SUBNET_NAME, "networkIP": IP_ADDRESS, "name": NIC, "fingerprint": FINGERPRINT }
- PROJECT_ID est l'ID de votre projet.
- ZONE_NAME est le nom de la zone contenant l'instance.
- INSTANCE_NAME est le nom de l'instance de VM.
- NIC est le nom de l'interface que vous mettez à jour. Dans une VM à interface unique, NIC est
nic0
. - NETWORK_NAME est le nom du réseau cible. Si vous migrez la VM depuis un réseau du projet de service vers le réseau du projet hôte, vous devez utiliser un nom complet pour le réseau cible :
projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
- SUBNET_NAME est le nom du sous-réseau cible. Ce sous-réseau doit se trouver dans la même région que la VM. Si vous migrez la VM depuis un réseau du projet de service vers le réseau du projet hôte, vous devez utiliser un nom complet pour le sous-réseau :
projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- IP_ADDRESS est l'adresse IP interne que vous souhaitez pour l'instance au nouvel emplacement. Si vous omettez ce champ, l'interface en affecte automatiquement une.
- FINGERPRINT est l'empreinte numérique obtenue à l'étape précédente.
Démarrer la VM
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/start
Où :
- PROJECT_ID est l'ID de votre projet.
- INSTANCE_NAME est le nom de l'instance de VM.
- ZONE_NAME est le nom de la zone contenant l'instance.
Étape suivante
- Découvrez comment déplacer une instance vers une autre zone.
- Apprenez-en davantage sur la migration à chaud.
- Vérifiez l'état d'une VM.