Spostare il carico di lavoro in una nuova istanza di calcolo


In determinate situazioni, potresti voler spostare il tuo carico di lavoro da un'istanza di macchina virtuale (VM) esistente a una VM più recente. Ecco alcuni motivi per passare a una nuova VM:

  • Sfrutta i nuovi tipi di macchine per velocità di archiviazione o di rete più elevate. Ad esempio, l'upgrade da C2 a H3 per una maggiore larghezza di banda di rete.
  • Usufruisci di un rapporto prezzo/prestazioni migliore rispetto all'istanza VM di origine. Ad esempio, l'upgrade da N1 a N4 per un valore maggiore sul processore Intel Xeon di 5ª generazione.
  • Utilizza le funzionalità disponibili solo nella nuova istanza VM. Ad esempio, l'upgrade da N4 a C4 per usufruire di opzioni aggiuntive per le prestazioni e la manutenzione.
  • Passare da un'istanza di macchina virtuale (VM) a un'istanza bare metal.
  • Aggiungi dischi SSD locali all'istanza VM C3 o C3D.

Quando esegui l'upgrade alla serie di macchine di ultima generazione, potresti essere in grado di utilizzare la procedura più semplice descritta in Modificare il tipo di macchina di un'istanza di calcolo se la VM attuale (di origine) soddisfa le seguenti condizioni:

  • La versione del sistema operativo (OS) è supportata dalla nuova serie di macchine.
  • Il tipo di disco del disco di avvio collegato alla VM di origine è supportato dalla nuova serie di macchine.
  • La VM non utilizza lo spazio di archiviazione SSD locale.
  • La VM con le GPU collegate utilizza un tipo di macchina G2. Per maggiori dettagli, vedi Aggiungere o rimuovere GPU .
  • La VM utilizza solo le funzionalità supportate dalla nuova serie di macchine.
  • La VM non fa parte di un gruppo di istanze gestite (MIG).
  • La VM utilizza l'interfaccia di rete gVNIC.

Prima di iniziare

  • 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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 saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per modificare o cambiare una VM, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per modificare o cambiare una VM. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per modificare o cambiare una VM sono necessarie le seguenti autorizzazioni:

  • Per cambiare il tipo di macchina:
    • compute.instances.stop sul progetto
    • compute.instances.create sul progetto
    • compute.instances.start sul progetto
    • compute.instances.setMachineType nell'istanza
  • Per creare uno snapshot del disco:
    • compute.snapshots.create sul progetto
    • compute.disks.createSnapshot sul disco
  • Per creare un nuovo disco:
    • compute.disks.list sul progetto
    • compute.disks.create sul progetto
    • compute.disks.update sul progetto
  • Per collegare un disco a una VM:
    • compute.instances.attachDisk nell'istanza
    • compute.disks.use sul disco
  • Per eliminare un disco: compute.disks.delete nel progetto
  • Per apportare modifiche al tipo di rete:
    • compute.networks.list sul progetto
    • compute.networks.update sul progetto

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Valutare le opzioni di migrazione delle VM

La migrazione da un tipo di macchina a un altro dipende da diversi fattori, tra cui la disponibilità regionale del nuovo tipo di macchina e la compatibilità delle opzioni di archiviazione e delle interfacce di rete rispetto al sistema operativo guest dell'origine e alla nuova serie di macchine.

Requisiti di calcolo

Esamina i seguenti requisiti per l'istanza attuale e il nuovo tipo di macchina:

  • Consulta la documentazione della risorsa relativa alla famiglia di macchine per identificare i tipi di macchine adatti al tuo carico di lavoro. Valuta se la tua applicazione richiede hardware specifico (GPU), prestazioni elevate o costi inferiori.
  • Esamina le funzionalità dei tipi di dischi supportati dal nuovo tipo di macchina. La maggior parte, ma non tutte, le funzionalità di Persistent Disk sono supportate da Hyperdisk. Tuttavia, Hyperdisk offre funzionalità aggiuntive non disponibili con Persistent Disk.
  • Esamina le funzionalità della serie di macchine che ti interessa. La nuova serie di macchine potrebbe non supportare le stesse funzionalità che utilizzi con la tua attuale serie di macchine, ad esempio tipi di macchine personalizzate, SSD locale o VM isolate.
  • Esamina le regioni e le zone per assicurarti che la nuova serie di macchine sia disponibile in tutte le regioni come la VM attuale. Potresti dover modificare i piani di implementazione, di alta disponibilità e di ripristino di emergenza.
  • Rivedi il piano di migrazione del sistema operativo:
    • Se la nuova VM richiede una versione più recente del sistema operativo, verifica che le tue applicazioni siano compatibili con la versione più recente del sistema operativo.
    • Se stai passando ad Arm e un'immagine Arm non è disponibile per la tua versione corrente del sistema operativo, scegli un nuovo sistema operativo o una versione del sistema operativo su cui eseguire le tue applicazioni e verifica che le tue applicazioni siano compatibili con il nuovo sistema operativo.
  • È possibile eseguire la migrazione da un'istanza VM C3 a un'istanza bare metal C3, a condizione che l'istanza VM C3 di origine utilizzi un sistema operativo e un driver di rete supportati.
  • Se passi da una serie di macchine diversa da C3 a un'istanza bare metal, devi creare una nuova istanza. Potresti dover eseguire il tuo hypervisor. Tuttavia, puoi anche eseguire qualsiasi sistema operativo supportato da C3 Metal, a condizione che il driver IDPF sia abilitato. Le istanze bare metal utilizzano l'interfaccia di rete IDPF presentata solo come funzione fisica, non virtuale.

Requisiti di spazio di archiviazione

Esamina i seguenti requisiti di spazio di archiviazione per l'istanza attuale e per il nuovo tipo di istanza:

  • Esamina i tipi di archiviazione e le interfacce di archiviazione supportate per la nuova serie di macchine.
    • Per impostazione predefinita, le serie di macchine di prima e seconda generazione utilizzano solo il tipo di archiviazione su Persistent Disk e le interfacce VirtIO-SCSI.
    • Le serie di macchine di 3ª generazione e successive (come M3, C3 e N4) supportano solo l'interfaccia NVMe e alcune supportano solo i tipi di archiviazione Hyperdisk e SSD locale.
    • Le istanze Bare Metal (come C3 e X4) supportano solo Hyperdisk.
  • Compatibilità dei dischi:
    • Se il disco di avvio utilizza un tipo di disco non supportato dalla nuova serie di macchine, ad esempio pd-standard, devi creare un nuovo disco di avvio per la nuova VM.
    • Se stai eseguendo l'upgrade del sistema operativo a una nuova versione e il sistema operativo non supporta gli upgrade in place, devi creare un nuovo disco di avvio. Tutti i dati sul disco di avvio di origine andranno persi, a meno che non li copi su un disco non di avvio temporaneo. Quindi, crea un nuovo disco di avvio e copia i dati archiviati sul disco non di avvio temporaneo sul nuovo disco di avvio.
    • Se non esegui l'upgrade della versione del sistema operativo, puoi acquisire uno snapshot del tuo attuale disco di avvio e ripristinarlo nel nuovo tipo di disco supportato. Quando crei una VM, puoi utilizzare questo nuovo disco come disco di avvio.
    • Se un disco non di avvio utilizza un tipo di disco non supportato dalla nuova serie di macchine, puoi utilizzare uno snapshot per modificare il disco di origine in un nuovo tipo di disco, come descritto in Modificare il tipo di disco.
  • I dischi SSD locali non possono essere spostati in una nuova VM. Puoi collegare un disco sufficientemente grande da archiviare tutti i dati dell'unità SSD locale alla tua VM attuale e poi utilizzare uno snapshot per cambiare il disco di origine in un nuovo tipo di disco, come descritto in Modificare il tipo di disco. Dopo aver creato una VM con dischi SSD locali collegati, puoi copiare nuovamente i dati sui dischi SSD locali.
  • Se la tua istanza VM attuale utilizza i dischi in un pool di archiviazione, ma stai spostando il workload in una VM in una regione diversa, devi ricreare i dischi e il pool di archiviazione nella nuova regione.
  • Se la nuova serie di macchine utilizza un'interfaccia di disco diversa (ad esempio NVMe instead of SCSI), i nomi dei dispositivi di disco nel sistema operativo guest sono diversi. Assicurati che le applicazioni e gli script utilizzino nomi di dispositivi permanenti o link simbolici quando fanno riferimento ai dischi collegati.

Requisiti di networking

Esamina i seguenti requisiti di rete per l'istanza attuale e il nuovo tipo di istanza:

  • Esamina le interfacce di rete supportate per la nuova VM.

    • Per impostazione predefinita, le serie di macchine di prima e seconda generazione utilizzano solo l'interfaccia di rete VirtIO.
    • Le serie di macchine di terza generazione e successive (come M3, C3 e N4) supportano solo l'interfaccia di rete gVNIC.
    • Le istanze Bare Metal supportano solo l'interfaccia di rete IDPF.
  • Assicurati che l'applicazione e il sistema operativo supportino le interfacce disponibili per la serie di macchine.

  • Esamina la configurazione di rete della VM per determinare se devi mantenere gli indirizzi IP assegnati. In questo caso, devi promuovere gli indirizzi IP in indirizzi IP statici.

  • Se utilizzi le prestazioni di rete Tier_1 per VM con la tua VM attuale, assicurati che sia disponibile o necessaria con la nuova serie di macchine. Ad esempio, puoi utilizzare la rete Tier_1 con un tipo di macchina C2, ma non è necessaria con una VM H3.

Per determinare il tipo di interfaccia di rete della VM corrente, utilizza il comando gcloud compute instances describe per visualizzare nic-type della VM:

  gcloud compute instances describe VM_NAME --zone=ZONE

Se la VM ha un valore nic-type impostato su VIRTIO, non puoi modificare il tipo di interfaccia di rete. Devi creare una nuova VM e impostare il tipo di interfaccia di rete su gVNIC.

Preparati a spostare le VM esistenti

Dopo aver completato la sezione di valutazione, il passaggio successivo consiste nel prepararti a spostare le istanze VM richiedendo risorse per la nuova istanza VM e preparando i backup dell'istanza VM di origine.

Prepara le risorse di calcolo

Per prepararti al trasferimento dell'istanza attuale a una nuova istanza:

  1. Richiedi quota nella regione e nelle zone in cui hai intenzione di spostare le risorse. Se hai già una quota per un tipo di macchina, puoi richiedere di spostarla. Il completamento della procedura richiede alcuni giorni.
  2. Crea una prenotazione per le nuove istanze VM per assicurarti che le risorse della macchina siano disponibili nella nuova regione e nelle nuove zone. Assicurati di comprendere come vengono consumate le risorse riservate e verifica di poterle consumare.
  3. Estendi i tuoi piani di alta disponibilità e di ripristino di emergenza per includere la nuova regione.
  4. Se necessario, esegui l'upgrade del sistema operativo sulla VM corrente.
    1. Se supportato dal fornitore del sistema operativo, esegui un upgrade in situ del sistema operativo a una versione supportata dalla nuova serie di macchine e verifica che il tuo carico di lavoro funzioni come previsto nella nuova versione del sistema operativo.
    2. Se l'upgrade in situ del sistema operativo non è supportato, quando crei una nuova VM devi creare un nuovo disco di avvio. Determina le informazioni che devi copiare dal disco di avvio attuale e copiale in una posizione temporanea su un disco non di avvio in modo che possano essere trasferite alla nuova VM. Se non hai dischi non di avvio collegati alla tua VM attuale:
  5. Se applicabile alla tua distribuzione Linux, controlla le regole udev in /etc/udev/rules.d/. Questo file potrebbe contenere voci pertinenti alla configurazione hardware dell'istanza corrente, ma non della nuova istanza. Ad esempio, la seguente voce garantisce che eth0 venga fornito dal driver virtio-pci (VirtIO Net), impedendo al driver gve (gVNIC) di fornire questa interfaccia. Ciò potrebbe causare problemi di connettività e script di avvio della rete nella nuova istanza:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="virtio-pci", ATTR{dev_id}=="0x0", KERNELS=="0000:00:04.0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Prepara le risorse di archiviazione

Completa i seguenti passaggi per prepararti a spostare i dati dei dischi collegati all'istanza attuale in una nuova istanza:

  1. Sui sistemi Linux, testa le applicazioni e gli script aggiornati per assicurarti che funzionino con nomi di dispositivi persistenti o link simbolici anziché con i nomi dei dispositivi del disco.
  2. Se esegui la migrazione da una VM che esegue Microsoft Windows:
  3. Se la nuova VM non supporta gli stessi tipi di dischi della VM attuale, potrebbe essere necessario aggiornare gli script di deployment o i modelli di istanze per supportare la nuova serie di macchine.
  4. Se la tua VM attuale utilizza un tipo di disco per il disco di avvio non supportato dalla nuova serie di macchine e stai eseguendo la migrazione di più VM con la stessa configurazione, crea un'immagine personalizzata da utilizzare per la creazione delle nuove VM:
    1. Crea uno snapshot del disco di avvio pd-standard della VM corrente.
    2. Crea un'immagine personalizzata utilizzando lo snapshot del disco come origine.
  5. Se devi spostare le informazioni dell'SSD locale, crea un disco vuoto sufficientemente grande per eseguire il backup dei dischi SSD locali.
    1. Se possibile, utilizza un tipo di disco supportato dalla nuova VM.
    2. Se non sono presenti tipi di dischi supportati sia dalla VM attuale sia dalla nuova VM, crea un disco temporaneo utilizzando un tipo di disco supportato dalla VM attuale.
    3. Collega il nuovo disco alla VM corrente, quindi formattalo e montalo.
    4. Copia i dati dai dischi SSD locali collegati alla VM corrente su questo disco temporaneo.
  6. Modifica il tipo di disco di eventuali dischi collegati alla VM attuale che utilizzano un tipo di disco non supportato dalla nuova VM. Per spostare i dati dei dischi su nuovi dischi, crea snapshot dei dischi. In alternativa, puoi trasferire file da una VM all'altra.

    1. Puoi acquisire gli snapshot mentre la VM è in esecuzione, ma i dati scritti sui dischi dopo l'acquisizione dello snapshot non vengono acquisiti. Poiché gli snapshot sono incrementali, puoi acquisire un secondo snapshot dopo aver arrestato la VM per acquisire tutte le modifiche più recenti. Questo approccio dovrebbe ridurre al minimo il tempo di indisponibilità della VM durante il passaggio a una nuova VM.
    2. In alternativa, puoi acquisire tutti gli snapshot dei dischi dopo aver arrestato la VM. Ti consigliamo di creare uno snapshot di tutti i dischi collegati alla VM, anche se il tipo di disco è supportato dalla nuova serie di macchine. Includi eventuali dischi temporanei contenenti i dati dell'unità SSD locale copiati.
    3. Il tempo necessario per acquisire lo snapshot di un disco dipende da diversi fattori, come le dimensioni e la quantità di dati contenuti sul disco. Ad esempio, se acquisisci uno snapshot di un disco da 1 TiB occupato all'85%, il completamento dello snapshot potrebbe richiedere 5 minuti. Tuttavia, se esegui uno snapshot di un disco da 100 TiB occupato all'85%, l'operazione potrebbe richiedere 11 minuti. Ti consigliamo di eseguire snapshot di prova dei dischi prima di avviare la procedura di migrazione per capire quanto tempo richiede l'operazione.
  7. Se hai un disco che può essere messo offline, puoi utilizzare il seguente approccio per spostare i dati su un nuovo disco mentre la VM di origine è ancora disponibile:

    1. Scollega il disco dalla VM.
    2. Esegui uno snapshot del disco.
    3. Utilizza lo snapshot per creare un nuovo disco utilizzando un tipo di disco supportato dalla nuova serie di macchine. Il nuovo disco deve avere le stesse dimensioni o essere più grande del disco di origine.

Prepara le risorse di rete

Completa i seguenti passaggi per aggiornare la configurazione di rete utilizzata dalla tua istanza attuale in modo da supportare la nuova istanza:

  1. Se la tua VM attuale non utilizza gVNIC, devi creare una nuova istanza con un'interfaccia di rete che utilizzi gVNIC. Consulta la Panoramica dell'utilizzo di gVNIC con le VM Compute Engine per comprendere i passaggi da seguire per creare una nuova istanza.
  2. Se stai creando una VM in una nuova regione, crea una rete VPC e le relative subnet nella nuova regione.
  3. Se hai configurato conteggi delle code NIC personalizzate, consulta Allocazioni delle code e modifica del tipo di macchina.
  4. Se vuoi mantenere gli indirizzi IP utilizzati dalla VM di origine, esegui la promozione degli indirizzi IP a indirizzi IP statici.
  5. Annullare l'assegnazione dell'indirizzo IP statico prima di arrestare la VM di origine.

Prepara il sistema operativo SUSE Enterprise Linux Server

Per evitare dipendenze specifiche dell'hardware, ricostruisci initramfs (filesystem della RAM iniziale). Sono inclusi una gamma più ampia di driver e moduli, che rendono il sistema operativo compatibile con altri tipi di istanze. In caso contrario, si verificherà il problema noto che impedisce l'avvio corretto della VM.

Prima di spegnere il sistema, esegui il seguente comando come utente root per ricostruire initramfs con tutti i driver:

  sudo dracut --force --no-hostonly

Sposta il carico di lavoro nella nuova VM

Dopo aver preparato le VM per la migrazione, il passaggio successivo consiste nel trasferire il carico di lavoro alla nuova VM.

Se stai spostando le VM dalla serie di macchine di prima generazione a quella di seconda generazione, leggi le istruzioni nella pagina Modificare il tipo di macchina di una VM. Se vuoi modificare il nome di una VM esistente, consulta le informazioni riportate in Rinominare una VM.

Autorizzazioni richieste per questa attività

Per eseguire questa attività, devi disporre delle seguenti autorizzazioni:

  • compute.instances.setMachineType sulla VM

Questa sezione descrive come spostare il carico di lavoro da una VM di prima o seconda generazione a una VM di terza generazione (o successiva). Durante questa procedura, crei una nuova istanza VM, quindi sposti i carichi di lavoro nella nuova VM.

  1. Quando crei la nuova VM, scegli uno dei tipi di dischi supportati per il disco di avvio, ad esempio Hyperdisk Balanced.

Crea la nuova VM

Quando sposti i carichi di lavoro dalle VM di prima o seconda generazione (ad esempio N1 o N2) a quelle di terza generazione o successive, devi prima creare una nuova VM e poi spostare i carichi di lavoro.

  1. Se la VM di origine utilizza dischi non di avvio con un tipo di disco supportato dalla nuova serie di macchine, scollega i dischi dalla VM.
  2. Arresta la VM di origine.
  3. Crea snapshot di tutti i dischi ancora collegati alla VM di origine.
  4. Crea una nuova istanza VM di calcolo utilizzando un'immagine pubblica o un'immagine personalizzata configurata per l'utilizzo di gVNIC. Quando crei la nuova VM, scegli le seguenti opzioni:
    • Seleziona il tipo di macchina dalla serie di macchine che hai scelto.
    • Seleziona un'immagine del sistema operativo supportata o utilizza un'immagine personalizzata creata in precedenza.
    • Seleziona un tipo di disco supportato per il disco di avvio.
    • Se hai creato nuovi dischi dagli snapshot dei dischi originali, includili.
    • Specifica la nuova rete VPC, se crei l'istanza in una regione diversa.
    • Se sia VirtIO che gVNIC sono supportati per la nuova istanza, seleziona gVNIC.
    • Specifica gli indirizzi IP statici, se hai promosso gli indirizzi IP temporanei della VM di origine.
  5. Avvia la nuova VM.

Dopo l'avvio dell'istanza

Ora che la nuova istanza è stata creata e avviata, completa i seguenti passaggi per completare la configurazione della nuova istanza e copiare tutti i dati dall'istanza di origine.

  1. Collega i dischi scollegati dalla VM di origine alla nuova VM.
  2. Per tutti i dischi collegati alla VM di origine che utilizzano un tipo di disco non supportato dalla nuova VM, crea un disco da uno snapshot e collegalo alla nuova istanza. Quando crei il nuovo disco, seleziona un tipo di disco supportato dalla nuova VM e specifica una dimensione almeno uguale a quella del disco originale.
  3. Se la VM originale utilizzava un criterio della risorsa per i dischi ricreati per la nuova VM, devi aggiungere il criterio della risorsa ai nuovi dischi.
  4. Se hai creato la nuova VM utilizzando un'immagine del sistema operativo pubblico e non un'immagine personalizzata, procedi nel seguente modo:
    1. Configura gli utenti, i driver, i pacchetti e le directory dei file necessari sulla nuova istanza per supportare il tuo carico di lavoro.
    2. Installa le applicazioni e i programmi modificati sulla nuova VM. Se necessario, ricompila i programmi sul nuovo sistema operativo o sull'architettura.
  5. (Facoltativo) Se hai spostato i contenuti dei dischi SSD locali su un disco temporaneo e la nuova VM ha uno spazio di archiviazione SSD locale collegato, dopo aver formattato e montato i dischi, puoi spostare i dati dal disco temporaneo ai dischi SSD locali.
  6. Riassegna gli indirizzi IP statici associati alla VM di origine alla nuova VM.
  7. Completa le eventuali attività aggiuntive necessarie per rendere la nuova VM altamente disponibile, ad esempio la configurazione dei bilanciatori del carico e l'aggiornamento delle regole di inoltro.
  8. (Facoltativo) Aggiorna le voci DNS, se necessario, per la nuova VM.
  9. Consigliato: pianifica i backup dei dischi per i nuovi dischi.
  10. Consigliato: se hai modificato il sistema operativo con una versione o un'architettura diversa, compila di nuovo le applicazioni.

Se riscontri problemi durante lo spostamento del tuo carico di lavoro, contatta il tuo Technical Account Manager (TAM) o la Professional Services Organization (PSO) di Google per ricevere assistenza.

Esempio di migrazione da n1-standard-8 a n4-standard-8

L'esempio seguente mostra la migrazione di una VM n1-standard-8 a una VM n4-standard-8. La VM n1-standard-8 ha un disco di avvio PD-SSD su cui è in esecuzione un'immagine Ubuntu1804 e un disco dati PD-SSD. Per questa procedura devi utilizzare l'interfaccia a riga di comando o l'API REST.

Esistono due opzioni per eseguire l'upgrade della VM N1 a una VM N4:

Opzione 1: se la VM N1 utilizza l'interfaccia di rete VirtIO, devi creare una nuova VM N4. N4 supporta solo l'interfaccia di rete gvnic e i dischi Hyperdisk bilanciati. Crea uno snapshot dei dischi di avvio e di dati dei dischi Persistent Disk, crea i dischi Hyperdisk bilanciati da questi snapshot, collega i dischi Hyperdisk bilanciati e crea la nuova VM N4 con i dischi Hyperdisk bilanciati.

Puoi anche scegliere di creare un nuovo disco di avvio Hyperdisk bilanciato utilizzando una versione più recente del sistema operativo Ubuntu. In questo scenario, puoi creare un nuovo disco Hyperdisk bilanciato dallo snapshot del disco di avvio, ma collegarlo come disco non di avvio alla VM N4. Dopodiché puoi copiare i dati non di sistema dallo snapshot ripristinato al nuovo disco di avvio.

Opzione 2: se la VM N1 utilizza l'interfaccia di rete gvnic, il sistema operativo ha un driver del dispositivo di archiviazione NVMe, non ha dischi SSD locali o GPU collegati e non fa parte di un gruppo di istanze gestite (MIG), puoi cambiare il tipo di macchina da N1 a N4, ma devi comunque cambiare i tipi di dischi di Persistent Disk in dischi Hyperdisk bilanciati. Devi prima scollegare i dischi di avvio e di dati di Persistent Disk, creare snapshot dei dischi, creare dischi Hyperdisk bilanciati utilizzando gli snapshot come origine e poi collegare i nuovi dischi Hyperdisk bilanciati alla VM N4 dopo aver modificato il tipo di macchina. Se alla VM sono collegate GPU, devi prima scollegarle.

Il tempo necessario per acquisire lo snapshot di un disco dipende da diversi fattori, ad esempio dal numero totale di TB su un disco. Ad esempio, se acquisisci uno snapshot di un disco da 1 TB completamente occupato all'85%, il completamento dello snapshot potrebbe richiedere 5 minuti. Tuttavia, se acquisisci uno snapshot di un disco da 100 TB occupato all'85%, l'operazione potrebbe richiedere 11 minuti. Google consiglia di eseguire snapshot di prova dei dischi prima di avviare la procedura di migrazione per capire quanto tempo richiede l'operazione.

gcloud

Opzione 1: crea una nuova VM N4 con i dischi di cui sono stati acquisiti gli snapshot:

  1. Arresta la VM utilizzando gcloud compute instances stop:

    gcloud compute instances stop VM_NAME \
      --zone=ZONE
    

    Sostituisci quanto segue:

    • VM_NAME Il nome della VMn1-standard-8 corrente.
    • ZONE: la zona in cui si trova la VM.
  2. Crea snapshot dei dischi. Utilizza gcloud compute snapshots create per creare uno snapshot sia del disco di avvio Persistent Disk sia del disco di dati collegato alla VM.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk=SOURCE_DISK_NAME \
        --source-disk-zone=SOURCE_DISK_ZONE
    

    Sostituisci quanto segue:

    • SNAPSHOT_NAME: il nome dello snapshot da creare.
    • SOURCE_DISK_NAME: il nome del disco di origine.
    • SOURCE_DISK_ZONE: la zona del disco di origine.
  3. Crea un nuovo disco Hyperdisk bilanciato per il disco dati ripetendo il passaggio precedente e specificando le informazioni del disco dati anziché quelle del disco di avvio. gcloud compute disks create:

    gcloud compute disks create DISK_NAME \
        --project=PROJECT_NAME \
        --type=DISK_TYPE \
        --size=DISK_SIZE \
        --zone=ZONE \
        --source-snapshot=SNAPSHOT_NAME \
        --provisioned-iops=PROVISIONED_IOPS \
        --provisioned-throughput=PROVISIONED_THROUGHPUT
    
    

    Sostituisci quanto segue:

    • DISK_NAME: il nome del nuovo disco che stai creando dal disco di cui è stato eseguito lo snapshot.
    • PROJECT_NAME: il nome del progetto.
    • DISK_TYPE: il nuovo tipo di disco. In questo esempio, si tratta di un disco Hyperdisk bilanciato.
    • DISK_SIZE: le dimensioni del disco (esempio: 100GB).
    • ZONE: la zona in cui si trova il nuovo disco.
    • SNAPSHOT_NAME: il nome del disco di origine dello snapshot.
    • (Facoltativo) PROVISIONED_IOPS: le prestazioni IOPS per il disco (esempio: 3600).
    • (Facoltativo) PROVISIONED_THROUGHPUT: il rendimento in termini di throughput per il provisioning del disco (esempio: 290).
  4. Ripeti il passaggio precedente per ogni disco di cui è stato eseguito lo snapshot.

  5. Crea la VM n4-standard-8 e collega i dischi Hyperdisk bilanciati utilizzando gcloud compute instances create:

    gcloud compute instances create VM_NAME \
        --project=PROJECT_NAME \
        --zone=ZONE \
        --machine-type=NEW_MACHINE_TYPE \
        --boot-disk-device-name=BOOT_DISK_NAME \
        --disk=name=NON_BOOT_DISK_NAME, boot=no \
        --network-interface=nic-type=GVNIC
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della nuova istanza VM.
    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova la nuova VM.
    • NEW_MACHINE_TYPE: il tipo di macchina, in questo esempio è n4-standard-8.
    • BOOT_DISK_NAME Il nome del disco di avvio Hyperdisk bilanciato che hai creato dallo snapshot del disco di origine collegato alla VM n1-standard-8.
    • NON_BOOT_DISK_NAME Il nome del disco dati Hyperdisk Balanced che hai creato dal disco dello snapshot di origine collegato alla VM n1-standard-8.
  6. Avvia la VM n4-standard-8 utilizzando gcloud compute instances start:

    gcloud compute instances start VM_NAME
    

    Sostituisci VM_NAME con il nome della nuova VM.

Opzione 2: esegui un upgrade in situ della macchina:

Questa opzione è disponibile solo se la VM N1 utilizza l'interfaccia di rete gvnic, il sistema operativo dispone di un driver per dispositivi di archiviazione NVMe, non ha GPU o unità SSD locali collegate e non fa parte di un gruppo di istanze gestite (MIG). L'esecuzione di questa procedura con una VM N1 con un'interfaccia di rete VirtIO genera un errore di incompatibilità della VM.

  1. Arresta la VM.
  2. Scollega i dischi dalla VM.
  3. Crea uno snapshot degli avviamenti e dei dischi di dati.
  4. Crea dischi di avvio e dati Hyperdisk bilanciati utilizzando uno snapshot del disco come origine per ogni disco.
  5. Imposta il tipo di macchina su una VM N4.
  6. Collega il disco di avvio Hyperdisk bilanciato e il disco di dati Hyperdisk bilanciato.
  7. Avvia la VM N4.

REST

Opzione 1: crea una nuova VM N4 con i dischi di cui sono stati acquisiti gli snapshot:

  1. Arresta la VM utilizzando il metodo instances.stop:

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/stop
    

    Sostituisci quanto segue:

    • PROJECT_NAME: l'ID progetto.
    • ZONE: la zona contenente la VM.
    • VM_NAME: il nome della VMn1-standard-8 corrente.
  2. Crea snapshot dei dischi utilizzando il metodo disks.createSnapshot per creare uno snapshot sia del disco di avvio del Persistent Disk sia del disco dati collegato all'istanza.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/DISK_NAME/createSnapshot
    

    Nel corpo della richiesta, includi il nome del nuovo disco permanente con snapshot.

    Ad esempio:

    {
        "name": "SNAPSHOT_NAME"
    }
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.
    • DISK_NAME: il disco di cui vuoi creare uno snapshot.
    • SNAPSHOT_NAME: un nome per lo snapshot, ad esempio hdb-boot-disk o hdb-data-disk.
  3. Crea un disco Hyperdisk bilanciato utilizzando il metodo disks.insert. Esegui questo passaggio due volte: una volta per includere il name del disco di avvio Hyperdisk bilanciato e una seconda volta per includere il name dei dischi di dati. Utilizza sourceSnapshot per i nuovi dischi di avvio e dati Hyperdisk bilanciato, type del disco, Hyperdisk bilanciato e sizeGB del disco nel corpo della richiesta.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEdisks
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.

    Nel corpo della richiesta, includi quanto segue:

    Ad esempio:

    {
        "name": "my-hdb-boot-disk" or "my-hdb-data-disk",
        "sourceSnapshot": "projects/your-project/global/snapshots/SNAPSHOT_NAME",
        "type": "projects/your-project/zones/us-central1-a/diskTypes/hyperdisk-balanced",
        "sizeGb": "100"
    }'
    
  4. Utilizza il metodo instances.insert per creare la nuova VM N4.

    
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances
    
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.

    Nel corpo della richiesta, includi quanto segue:

    
      {
        "machineType":"projects/your-project/zones/us-central1-a/machineTypes/n4-standard-8" "name":"VM_NAME",
        "disks": [
          {
            "boot": true,
            "deviceName": "my-hdb-boot-disk",
            "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk",
            "type": "PERSISTENT"
          },
    
          {
            "boot": false,
            "deviceName": "my-hdb-data-disk",
            "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk",
            "type": "PERSISTENT"
          }
          ],
            "networkInterfaces":[
              {
                "network":"global/networks/NETWORK_NAME",
                "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME",
                "nicType": "GVNIC"
              }
           ]
         }
    
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM.
    • NETWORK_NAME: il nome della rete.
    • REGION: il nome della regione.
    • SUBNET_NAME: il nome della subnet.
  5. Avvia la VM utilizzando il metodo instances.start:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/start
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova la VM.
    • VM_NAME: il nome della VM.

Opzione 2: esegui un upgrade in situ della macchina:

Questa opzione è disponibile solo se la VM N1 utilizza l'interfaccia di rete gvnic, non ha GPU o unità SSD locali collegate e non fa parte di un gruppo di istanze gestite (MIG). L'esecuzione di questa procedura con una VM N1 con un'interfaccia di rete VirtIO genera un errore di incompatibilità della VM.

  1. Arresta la VM utilizzando il metodo instances.stop.

  2. Scollega i dischi utilizzando il metodo instances.detachDisk per scollegare il disco di avvio del Persistent Disk originale dalla VM N1. Devi anche scollegare eventuali dischi di dati dalla VM.

    https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/detachDisk?deviceName=DISK_NAME
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.
    • VM_NAME: il nome della VM di origine con il disco pd-ssd collegato.
    • DISK_NAME: il disco che vuoi scollegare.
  3. Crea uno snapshot dei dischi. Utilizza il metodo disks.createSnapshot per creare uno snapshot sia del disco di avvio del Persistent Disk sia dei dischi dati collegati all'istanza.

  4. Crea un disco di avvio e dati Hyperdisk Balanced utilizzando il metodo disks.insert. Includi il name del disco Hyperdisk Balanced, sourceSnapshot per il nuovo disco Hyperdisk Balanced, il type del disco, Hyperdisk Balanced e sizeGB del disco nel corpo della richiesta.

  5. Esegui un upgrade in situ del tipo di macchina utilizzando il metodo instances.setMachineType includere machineType nel corpo della richiesta:

    POST  https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/setMachineTypeMACHINE_TYPE
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.
    • VM_NAME: il nome della VM di cui eseguire l'upgrade.
    • MACHINE_TYPE: il nuovo tipo di macchina.

    Nel corpo della richiesta, includi quanto segue:

    
    {
     "machineType": "projects/PROJECT_NAME/zones/ZONE/machineTypes/MACHINE_TYPE",
    }
    
    
  6. Utilizza il metodo instances.attachDisk per collegare il nuovo disco di avvio Hyperdisk Balanced e i dischi di dati Hyperdisk bilanciati alla VM N4.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instancesVM_NAMEattachDiskDISK_NAME
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.
    • VM_NAME: il nome dell'istanza VM di origine con il disco pd-ssd collegato.
    • DISK_NAME Il disco che vuoi allegare.

    Nel corpo della richiesta, includi quanto segue:

    {
    "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk",
    "deviceName":"my-hdb-boot-disk","boot":true
    }
    
    {
    "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk",
    "deviceName":"my-hdb-data-disk","boot":false
    }
    
  7. Avvia la VM N4 utilizzando il metodo instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/start
    

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • ZONE: la zona in cui si trova il disco.
    • VM_NAME: il nome della VM.

Esegui la pulizia

Dopo aver verificato di poterti connettere alla nuova VM e che il tuo workload sia in esecuzione come previsto, puoi rimuovere le risorse non più necessarie:

  1. Gli snapshot che hai creato per i dischi collegati alla VM di origine.
  2. Eventuali pianificazioni degli snapshot per i dischi collegati alla VM di origine.
  3. Il disco temporaneo creato per copiare i dati dell'SSD locale nella nuova VM.
  4. La VM di origine e tutti i dischi collegati.

Passaggi successivi