Migrazione di una VM tra reti

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ù reti utilizzando più interfacce di rete, questo processo aggiorna una delle interfacce e lascia il resto sul posto.

Sono supportate le seguenti migrazioni:

  • Da rete legacy a 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
  • Dalla 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 prima. Vengono modificate solo la rete collegata.

Prima di iniziare

  • Leggi la documentazione di Virtual Private Cloud.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Requisiti

Prima di spostare la VM, questa deve soddisfare i seguenti requisiti:

  • È una migrazione a freddo. La VM deve essere arrestata prima di poter eseguire la migrazione.
  • La VM non deve trovarsi in un gruppo di istanze o in un gruppo di endpoint di rete (NEG).
    • Se la VM si trova in un gruppo di istanze non gestite o NEG, devi rimuoverla dal gruppo prima di eseguirne la migrazione.
    • Impossibile eseguire la migrazione delle VM nei gruppi di istanze gestite. Devi invece copiare il modello di istanza nella nuova rete e utilizzarlo per ricreare 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 reti.

Limitazioni

  • Non puoi eseguire la migrazione dell'interfaccia di una VM a una rete legacy.
  • L'indirizzo MAC allocato all'interfaccia di rete cambierà durante la migrazione. Ciò potrebbe avere un impatto sui servizi strettamente associati agli indirizzi MAC, come il contratto di licenza di terze parti.
  • Se stai eseguendo 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, purché non sia già in uso nella destinazione, specificandolo durante la migrazione.
  • Se la subnet di destinazione non ha lo stesso intervallo IP dell'origine, l'indirizzo IP dell'interfaccia cambia in base al nuovo intervallo di subnet.
  • Puoi mantenere l'indirizzo IP esterno esistente della VM nella nuova località. A questo scopo, devi avere l'autorizzazione compute.subnetworks.useExternalIp sulla rete di destinazione e quest'ultima non può avere indirizzi IP esterni disabilitati dal vincolo constraints/compute.vmExternalIpAccess.

Migrazione di una VM

Prima di eseguire la migrazione di una VM, esamina i requisiti e le limitazioni.

Prima di eseguire la migrazione delle VM, Google consiglia di creare tutte le regole firewall, le route, i bilanciatori del carico e altre risorse di infrastruttura di rete necessari nella nuova rete. In questo modo le VM sono offline riducendo il tempo di visualizzazione.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome dell'istanza VM per aprire la pagina dei dettagli.

  3. Fai clic su Interrompi .

  4. Se viene visualizzata una finestra di dialogo di conferma, fai clic su Interrompi.

  5. Dopo l'arresto della VM, fai clic su Modifica .

  6. In Interfacce di rete, fai clic sull'interfaccia che vuoi spostare.

  7. Nel campo Rete dell'interfaccia, seleziona la nuova rete per l'interfaccia.

  8. Nel campo Subnet dell'interfaccia, seleziona la nuova subnet per l'interfaccia.

  9. Nel campo Indirizzo IP interno, specifica Automatico se vuoi che il sistema assegni un indirizzo IP dall'intervallo di subnet oppure Personalizzato se vuoi specificare personalmente un indirizzo inutilizzato.

  10. Fai clic su Fine per chiudere il riquadro di modifica dell'interfaccia di rete.

  11. Fai clic su Salva.

  12. Al termine del salvataggio della VM, fai clic su Avvia .

  13. Se viene visualizzata una finestra di dialogo di conferma, fai clic su Avvia.

gcloud

  1. 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.
  2. 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 interfaccia singola, NIC è nic0.
    • NETWORK_NAME è il nome della rete di destinazione. Se esegui la migrazione della VM dalla 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 dalla rete di un progetto di servizio alla rete del progetto host, devi utilizzare un nome completo per la subnet: projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
  3. Avvia la VM

    La migrazione potrebbe richiedere alcuni minuti, quindi attendi prima di provare ad avviare la VM nella nuova località.

    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.

REST

  1. 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.
  2. Visualizza i dettagli dell'istanza.

    GET https://www.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.
  3. Trova l'impronta per l'interfaccia.

    Per aggiornare l'interfaccia di rete è necessaria l'impronta.

    Esamina l'output del comando e trova i contenuti del campo networkInterfaces. Trova l'elemento con il nome dell'interfaccia da aggiornare (in una VM a interfaccia singola, il nome è nic0). Copia la stringa nel campo fingerprint di questo elemento per utilizzarla nel passaggio successivo.

  4. Esegui la migrazione della 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 è 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 interfaccia singola, NIC è nic0.
    • NETWORK_NAME è il nome della rete di destinazione. Se esegui la migrazione della VM dalla 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 dalla rete di un progetto di servizio alla rete del 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 deve avere l'istanza nella nuova località. Se ometti questo campo, all'interfaccia ne viene assegnato automaticamente uno.
    • FINGERPRINT è l'impronta che hai ricevuto nel passaggio precedente.
  5. 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.

Passaggi successivi