Spostamento di un'istanza VM tra zone o regioni


Questo documento descrive come spostare un'istanza di una macchina virtuale (VM) tra zone o aree geografiche.

Prima di iniziare

Requisiti

In questa sezione sono elencati i requisiti per spostare una VM tra zone e aree geografiche:

  • Quota progetto. Il tuo progetto deve avere una quota sufficiente per:

    • Crea nuovi snapshot.
    • Promuovi eventuali indirizzi IP esterni temporanei.
    • Crea nuovi dischi e VM nella tua area geografica di destinazione.

      Ad esempio, se alla VM sono collegati tre dischi che vuoi spostare, hai bisogno di una quota sufficiente per creare tre snapshot di dischi permanenti temporanei e tre nuovi dischi. Dopo aver creato i nuovi dischi, puoi eliminare gli snapshot temporanei.

    Controlla la pagina Quote per assicurarti di disporre di quota sufficiente per le risorse precedenti. Per ulteriori informazioni, consulta la sezione Informazioni sulle quote.

  • Dischi permanenti. I dischi permanenti collegati alla VM che vuoi spostare non sono collegati ad altre VM.

  • SSD locali. Le unità SSD locali sono pensate per l'archiviazione temporanea e i dati sugli SSD locali non vengono conservati tramite le terminazioni manuali delle VM. Se hai bisogno di conservare i dati SSD locali, replicali utilizzando un'opzione di archiviazione durevole come i dischi permanenti.

  • GPU. Se la tua VM include GPU, verifica che le GPU che vuoi utilizzare siano disponibili nella zona di destinazione della VM. Per un elenco delle GPU e delle zone in cui sono disponibili, consulta la pagina relativa alle GPU su Compute Engine.

  • Subnet. Per spostare la tua VM tra aree geografiche, ad esempio, tra us-west1-a e asia-south1-b, e la tua VM appartiene a una subnet, devi selezionarne una nuova. Per istruzioni su come creare le subnet, consulta la sezione Aggiungere subnet.

Puoi spostare una VM anche nel caso in cui si verifichi uno dei seguenti scenari:

  • L'istanza VM è in stato TERMINATED.
  • L'istanza VM è una VM schermata che utilizza il firmware UEFI.

Limitazione

Se sposti una VM tra aree geografiche diverse, non puoi conservare l'indirizzo IP interno o esterno temporaneo della VM. Devi scegliere un nuovo indirizzo IP quando ricrei la VM.

Proprietà della risorsa

Per spostare la VM, devi arrestarla, spostarla nella zona o nell'area geografica di destinazione, quindi riavviarla. Dopo aver spostato la VM, aggiorna tutti i riferimenti presenti alla risorsa originale, ad esempio qualsiasi VM di destinazione o pool di destinazione che rimanda alla VM precedente.

Durante lo spostamento, alcune proprietà generate dal server della VM e dei dischi cambiano.

Proprietà che cambiano per le VM

La tabella seguente descrive le proprietà che cambiano per le VM:

Nome proprietà Modifiche
Indirizzo IP interno In genere viene assegnato un nuovo indirizzo IP interno, ma la VM potrebbe mantenere l'indirizzo IP interno originale.
Indirizzo IP esterno Se la VM si sposta tra le zone nella stessa area geografica, l'indirizzo IP esterno rimane invariato. Altrimenti, scegli un indirizzo IP esterno diverso per l'istanza VM.
Piattaforma CPU A seconda della piattaforma CPU disponibile nella zona di destinazione, la tua VM potrebbe avere una piattaforma CPU diversa dopo il trasferimento. Per l'elenco completo delle piattaforme CPU in ciascuna zona, consulta Aree geografiche e zone disponibili.
Rete/subnet Se la tua VM appartiene a una subnet e stai spostando una VM tra aree geografiche diverse, devi sceglierne una nuova. Le VM in movimento tra zone nella stessa area geografica mantengono la stessa subnet.

Proprietà che cambiano per i dischi

La seguente tabella descrive le proprietà che cambiano per i dischi:

Nome proprietà Modifiche
Snapshot di origine Lo snapshot di origine del nuovo disco è impostato sullo snapshot temporaneo creato durante lo spostamento.
ID snapshot di origine L'ID snapshot di origine è impostato sull'ID dello snapshot temporaneo.
Immagine di origine Il campo dell'immagine di origine è vuoto.
ID immagine L'ID immagine è vuoto.
Timestamp ultimo scollegamento L'ultimo timestamp scollegato è vuoto.
Timestamp dell'ultimo allegato L'ultimo timestamp associato cambia rispetto al timestamp quando il nuovo disco è stato collegato alla nuova istanza.

Modifica delle proprietà sia per le VM sia per i dischi

La tabella seguente descrive le proprietà che cambiano sia per le VM sia per i dischi:

Nome proprietà Modifiche
ID Viene generato un nuovo ID risorsa.
Timestamp creazione Viene generato un nuovo timestamp di creazione.
URL risorse zona Tutti gli URL delle risorse della zona cambiano in base alla zona di destinazione. Il seguente elenco mostra gli URL delle risorse che cambiano:
  • URL del disco di origine di una VM
  • URL del tipo di macchina di una VM
  • URL con link automatico
  • URL zona
  • URL del tipo di disco
  • Tutti gli URL delle VM elencate in un elenco users[] di un disco

Sposta una VM

Per spostare una VM tra zone o aree geografiche, puoi:

  1. Crea un'immagine macchina della tua VM di origine.
  2. Crea una VM dall'immagine della macchina in una zona o area geografica diversa.

L'esempio seguente mostra come spostare una VM. In questo esempio, sposti una VM denominata myinstance che ha due dischi permanenti denominati mybootdisk e mydatadisk, da europe-west1-c a us-west1-b.

La VM di origine ha le seguenti proprietà:

gcloud compute instances list
NAME       ZONE           MACHINE_TYPE  INTERNAL_IP    EXTERNAL_IP     STATUS
myinstance europe-west1-c n1-standard-4 10.240.116.177 146.148.112.106 RUNNING

Per spostare la VM in un'altra zona:

  1. Identifica i dischi associati alla VM che vuoi spostare.

    Vai a Dischi

    In questo esempio troverai i seguenti 2 dischi associati per la VM myinstance:

    • Un disco di avvio denominato mybootdisk.
    • Un disco dati chiamato mydatadisk
  2. Imposta lo stato di eliminazione automatica delle reti mybootdisk e mydatadisk su false per garantire che i dischi non vengano eliminati automaticamente quando la VM viene eliminata.

    gcloud compute instances set-disk-auto-delete myinstance --zone europe-west1-c \
        --disk mybootdisk --no-auto-delete
    

    Se lo stato è stato aggiornato, gcloud compute restituisce la risposta Updated [...]. Se lo stato di eliminazione automatica era già impostato su false, gcloud compute restituisce:

    No change requested; skipping update for [myinstance].
  3. (Facoltativo) Salva i metadati della VM.

    Quando elimini la VM, vengono rimossi anche i relativi metadati. Puoi salvare queste informazioni in un file separato, quindi riapplicare i metadati della VM alla nuova VM.

    Descrivi i metadati della tua VM in questo modo:

    gcloud compute instances describe myinstance --zone europe-west1-c
    

    Salva i contenuti in un file separato.

  4. Crea backup dei dati.

    Per precauzione, crea backup dei dati mentre i dischi permanenti sono ancora collegati alla VM utilizzando gli snapshot dei dischi permanenti. Prima di acquisire uno snapshot, assicurati che sia coerente con lo stato del disco permanente rispettando le best practice per gli snapshot.

    Dopo aver cancellato i buffer del disco, crea gli snapshot:

    gcloud compute disks snapshot mybootdisk mydatadisk \
        --snapshot-names backup-mybootsnapshot,backup-mydatasnapshot \
        --zone europe-west1-c
    

    Per verificare che lo snapshot sia stato creato, esegui gcloud compute snapshots list.

  5. (Facoltativo) Se stai spostando una VM tra zone all'interno della stessa area geografica e vuoi conservare il suo indirizzo IP interno o esterno temporaneo, promuovi l'indirizzo IP interno o esterno a un indirizzo IP statico, che puoi riutilizzare in un secondo momento.

  6. Elimina la VM.

    L'eliminazione della VM comporta la chiusura definitiva e la rimozione di eventuali dischi permanenti.

    gcloud compute instances delete myinstance --zone europe-west1-c
    

    gcloud ti chiede di confermare l'eliminazione:

     The following VMs are deleted. Any attached disks configured to
     be auto-deleted are deleted unless they are attached to any other
     VMs or the --keep-disks flag is given and specifies them for keeping.
     Deleting a disk is irreversible and any data on the disk is lost.
      — [myinstance] in [europe-west1-c]
     

    Do you want to continue (Y/n)?

    Poiché hai disattivato lo stato di eliminazione automatica dei dischi in precedenza, inserisci Y per continuare e ignorare l'avviso.

  7. Quindi, crea un altro snapshot sia del disco di avvio che del disco dati.

    gcloud compute disks snapshot mybootdisk mydatadisk \
        --snapshot-names mybootsnapshot,mydatasnapshot \
        --zone europe-west1-c
    
    Created [.../mydatasnapshot].
    Created [.../mybootsnapshot].
  8. (Facoltativo) Elimina i dischi permanenti.

    Se prevedi di riutilizzare i nomi dei dischi permanenti per i nuovi dischi, devi eliminare i dischi esistenti per rilasciare i nomi. L'eliminazione dei dischi consente anche di risparmiare sui costi di archiviazione dei dischi permanenti.

    Se non prevedi di riutilizzare gli stessi nomi dei dischi, non è necessario eliminarli.

    gcloud compute disks delete mybootdisk mydatadisk --zone europe-west1-c
    
  9. Crea nuovi dischi permanenti in us-west1-b dagli snapshot che hai creato. Innanzitutto, crea il disco di avvio.

    gcloud compute disks create mybootdiskb --source-snapshot mybootsnapshot \
        --zone us-west1-b
    
    Created [.../mybootdiskb].
    NAME        ZONE           SIZE_GB TYPE        STATUS
    mybootdiskb us-west1-b     100     pd-standard READY

    quindi crea il disco dati.

    gcloud compute disks create mydatadiskb --source-snapshot mydatasnapshot \
        --zone us-west1-b
    
    Created [.../mydatadiskb].
    NAME        ZONE           SIZE_GB TYPE        STATUS
    mydatadiskb us-west1-b 4000    pd-standard READY
  10. Ricrea la VM in us-west1-b.

    • Se avevi scelto di salvare i metadati della tua VM in un file, ad esempio myinstance.describe, puoi usarli per impostare gli stessi metadati sulla tua VM.

    • Se la tua VM aveva un indirizzo IP esterno statico, puoi riassegnarlo a una nuova VM specificando l'opzione --address [ADDRESS]. Se stai spostando una VM in più aree geografiche, devi scegliere un indirizzo IP esterno diverso per la nuova istanza VM.

    • Se la tua VM aveva un indirizzo IP interno statico, puoi riassegnarlo a una nuova VM specificando l'opzione --private-network-ip ADDRESS. Se stai spostando una VM tra diverse regioni, devi scegliere un indirizzo IP interno diverso per la nuova istanza VM.

    • Se la tua VM includeva GPU, aggiungi le GPU alla VM utilizzando l'opzione --accelerator.

    • Se la VM utilizza una subnet specifica, aggiungi il flag --subnet [SUBNET_NAME].

    Per un elenco completo dei flag aggiuntivi, consulta gcloud compute instances create.

    gcloud compute instances create myinstanceb --machine-type n1-standard-4 \
        --zone us-west1-b \
        --disk name=mybootdiskb,boot=yes,mode=rw \
        --disk name=mydatadiskb,mode=rw
    
    Created [.../myinstanceb].
    NAME        ZONE           MACHINE_TYPE  INTERNAL_IP    EXTERNAL_IP     STATUS
    myinstanceb us-west1-b     n1-standard-4 10.240.173.229 146.148.112.106 RUNNING
  11. (Facoltativo) Elimina gli snapshot dei dischi permanenti.

    Dopo aver verificato che le macchine virtuali sono state spostate, risparmia sui costi di archiviazione eliminando gli snapshot temporanei che hai creato.

    gcloud compute snapshots delete mybootsnapshot mydatasnapshot
    

    Se non hai più bisogno degli snapshot di backup, eliminali anche come segue:

    gcloud compute snapshots delete backup-mybootsnapshot backup-mydatasnapshot
    

Passaggi successivi