Questa pagina descrive come eseguire la migrazione di un'istanza VM da una rete a un'altra. Nel caso di una VM connessa a più di una rete tramite più interfacce di rete, questo processo aggiorna una delle interfacce e lascia invariate le altre.
Sono supportate le seguenti migrazioni:
- Dalla rete precedente a una rete VPC nello stesso progetto
- Da una rete VPC a un'altra rete VPC nello stesso progetto
- Da una subnet di una rete VPC a un'altra subnet della stessa rete
- Da una rete di un progetto di servizio alla rete condivisa di un progetto host VPC condiviso
In tutti i casi, la VM rimane nella regione e nella zona in cui si trovava in precedenza. Solo la rete collegata cambia.
Prima di iniziare
- Leggi la documentazione di Virtual Private Cloud.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- La migrazione è "a freddo". La VM deve essere arrestata prima di poter essere migrata.
- La VM non deve far parte di un gruppo di istanze o di un gruppo di endpoint di rete (NEG).
- Se la VM si trova in un gruppo di istanze non gestite o in un gruppo di istanze elastiche, devi rimuoverla dal gruppo prima di eseguirne la migrazione.
- Non è possibile eseguire la migrazione delle VM nei gruppi di istanze gestite. Devi invece copiare il modello di istanza nella nuova rete e utilizzarlo per ricostruire il gruppo di istanze gestite.
- Puoi spostare le istanze nei pool di destinazione senza prima rimuoverle. Il pool di destinazione si espande per coprire entrambe le emittenti.
- Non puoi eseguire la migrazione di un'interfaccia VM a una rete legacy.
- L'indirizzo MAC allocato all'interfaccia di rete cambierà durante la migrazione. Ciò potrebbe influire sui servizi strettamente accoppiati agli indirizzi MAC, come il contratto di licenza di terze parti.
- Se esegui la migrazione della VM a una rete o una subnet con un intervallo IP diverso, l'indirizzo IP interno dell'istanza deve cambiare. Se esegui la migrazione a una subnet con lo stesso intervallo IP, puoi mantenere il vecchio indirizzo IP, a condizione che non sia già in uso nella destinazione, specificandolo durante la migrazione.
- Se la subnet di destinazione non ha lo stesso intervallo IP di quella di origine, l'indirizzo IP dell'interfaccia cambia in modo da corrispondere al nuovo intervallo di subnet.
- Puoi mantenere l'indirizzo IP esterno esistente della VM nella nuova posizione. Per farlo, devi disporre dell'autorizzazione
compute.subnetworks.useExternalIp
sulla rete di destinazione e la rete di destinazione non può avere indirizzi IP esterni disattivati dal vincolo constraints/compute.vmExternalIpAccess. Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza VM per aprire la pagina dei dettagli.
Fai clic su Interrompi
.Se viene visualizzata una finestra di dialogo di conferma, fai clic su Interrompi.
Dopo l'arresto della VM, fai clic su Modifica
.In Interfacce di rete, fai clic sull'interfaccia che vuoi spostare.
Nel campo Rete dell'interfaccia, seleziona la nuova rete per l'interfaccia.
Nel campo Subnet dell'interfaccia, seleziona la nuova subnet per l'interfaccia.
Nel campo Indirizzo IP interno, specifica Automatico se vuoi che il sistema accomuni un indirizzo IP dall'intervallo della subnet o Personalizzato se vuoi specificarne uno non utilizzato.
Fai clic su Fine per chiudere il riquadro di modifica dell'interfaccia di rete.
Fai clic su Salva.
Al termine del salvataggio della VM, fai clic su Avvia
.Se viene visualizzata una finestra di dialogo di conferma, fai clic su Avvia.
Arresta la VM
gcloud compute instances stop INSTANCE_NAME \ --zone=ZONE_NAME
dove
- INSTANCE_NAME è il nome dell'istanza VM.
- ZONE_NAME è il nome della zona contenente l'istanza.
Esegui la migrazione della VM
gcloud compute instances network-interfaces update INSTANCE_NAME \ --zone=ZONE_NAME \ --network-interface=NIC \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAME
dove
- INSTANCE_NAME è il nome dell'istanza VM.
- ZONE_NAME è il nome della zona contenente l'istanza.
- NIC è il nome dell'interfaccia che stai aggiornando. In una VM con un'unica interfaccia, NIC è
nic0
. - NETWORK_NAME è il nome della rete di destinazione. Se stai eseguendo la migrazione della VM da una rete di un progetto di servizio alla rete del progetto host, devi utilizzare un nome completo per la rete di destinazione:
projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
- SUBNET_NAME è il nome della subnet di destinazione. Questa subnet deve trovarsi nella stessa regione della VM. Se esegui la migrazione della VM
da una rete di un progetto di servizio alla rete di un progetto host, devi
utilizzare un nome completo per la subnet:
projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Avvia la VM
La migrazione potrebbe richiedere alcuni minuti, quindi attendi prima di provare ad avviare la VM nella nuova posizione.
gcloud compute instances start INSTANCE_NAME \ --zone=ZONE_NAME
dove
- INSTANCE_NAME è il nome dell'istanza VM.
- ZONE_NAME è il nome della zona contenente l'istanza.
Arresta la VM
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/stop
dove
- PROJECT_ID è l'ID progetto.
- INSTANCE_NAME è il nome dell'istanza VM.
- ZONE_NAME è il nome della zona contenente l'istanza.
Visualizza i dettagli dell'istanza.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME
dove
- PROJECT_ID è l'ID progetto.
- ZONE_NAME è il nome della zona contenente l'istanza.
- INSTANCE_NAME è il nome dell'istanza VM.
Trova l'impronta dell'interfaccia.
Devi avere il fingerprint per aggiornare l'interfaccia di rete.
Esamina l'output del comando e trova i contenuti del campo
networkInterfaces
. Individua l'elemento con il nome dell'interfaccia da aggiornare (in una VM con un'unica interfaccia, il nome ènic0
). Copia la stringa nel campofingerprint
di questo elemento per utilizzarla nel passaggio successivo.Esegui la migrazione della VM
PATCH https://compute.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 è l'ID progetto.
- ZONE_NAME è il nome della zona contenente l'istanza.
- INSTANCE_NAME è il nome dell'istanza VM.
- NIC è il nome dell'interfaccia che stai aggiornando. In una VM con un'unica interfaccia, NIC è
nic0
. - NETWORK_NAME è il nome della rete di destinazione. Se stai eseguendo la migrazione della VM da una rete di un progetto di servizio alla rete del progetto host, devi utilizzare un nome completo per la rete di destinazione:
projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
- SUBNET_NAME è il nome della subnet di destinazione. Questa subnet deve trovarsi nella stessa regione della VM. Se esegui la migrazione della VM
da una rete di un progetto di servizio alla rete di un progetto host, devi
utilizzare un nome completo per la subnet:
projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- IP_ADDRESS è l'indirizzo IP interno che vuoi che l'istanza abbia nella nuova posizione. Se ometti questo campo, viene assegnato automaticamente all'interfaccia.
- FINGERPRINT è l'impronta che hai ottenuto nel passaggio precedente.
Avvia la VM
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/start
dove
- PROJECT_ID è l'ID progetto.
- INSTANCE_NAME è il nome dell'istanza VM.
- ZONE_NAME è il nome della zona contenente l'istanza.
- Scopri come spostare un'istanza in un'altra zona.
- Scopri di più sulla migrazione live.
- Controlla lo stato di una VM.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Requisiti
Prima di spostare la VM, devi verificare che soddisfi i seguenti requisiti:
Limitazioni
Migrazione di una VM
Prima di eseguire la migrazione di una VM, esamina i requisiti e le limitazioni.
Google consiglia di creare le regole, le route, i bilanciatori del carico e le altre risorse di infrastruttura di rete necessarie nella nuova rete prima di eseguire la migrazione delle VM. In questo modo, puoi ridurre il tempo di offline delle VM.
Console
gcloud
REST
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-22 UTC.
-