Sposta il carico di lavoro in una nuova istanza di calcolo


In determinate situazioni, potresti voler spostare il tuo workload da una macchina virtuale (VM) esistente a una VM più recente. I motivi per passare a una nuova VM includono quanto segue:

  • 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 larghezza di banda di rete migliorata.
  • Usufruisci di un miglior rapporto prezzo/prestazioni 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.
  • Utilizzare le funzionalità disponibili solo sulla nuova istanza VM. Ad esempio, l'upgrade da N4 a C4 per usufruire di ulteriori opzioni di prestazioni e manutenzione.
  • Modifica un'istanza di macchina virtuale (VM) in 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 Compute se la VM attuale (origine) soddisfa le seguenti condizioni:

  • La versione del sistema operativo è 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 l'archiviazione SSD locale.
  • La VM con GPU collegate utilizza un tipo di macchina G2. Per maggiori dettagli, vedi Aggiungere o rimuovere GPU.
  • La VM utilizza solo funzionalità supportate dalla nuova serie di macchine.
  • La VM non fa parte di un gruppo di istanze gestite.
  • La VM utilizza l'interfaccia di rete gVNIC.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API. 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. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

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

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

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

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

Questi ruoli predefiniti contengono le autorizzazioni necessarie per modificare una VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

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

  • Per modificare il tipo di macchina:
    • compute.instances.stop sul progetto
    • compute.instances.create sul progetto
    • compute.instances.start sul progetto
    • compute.instances.setMachineType sull'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 sull'istanza
    • compute.disks.use sul disco
  • Per eliminare un disco: compute.disks.delete sul 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.

Valuta 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 sulle famiglie di macchine per identificare i tipi di macchine adatti al tuo workload. 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 delle funzionalità di Persistent Disk, ma non tutte, sono supportate da Hyperdisk. Tuttavia, Hyperdisk offre funzionalità aggiuntive non disponibili con Persistent Disk.
  • Esamina le funzionalità della serie di macchine prospettica. La nuova serie di macchine potrebbe non supportare le stesse funzionalità che utilizzi con la serie di macchine attuale, come i tipi di macchine personalizzati, l'SSD locale o Shielded VM.
  • Esamina le regioni e le zone per assicurarti che la nuova serie di macchine sia disponibile in tutte le regioni come la tua VM attuale. Potresti dover modificare i piani di deployment, alta disponibilità e 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 esegui la migrazione ad Arm e non è disponibile un'immagine Arm per la tua attuale versione del sistema operativo, scegli un nuovo sistema operativo o una nuova versione del sistema operativo su cui eseguire le applicazioni e verifica che le 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 esegui la migrazione 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 archiviazione

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

  • Esamina i tipi di archiviazione supportati 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 terza 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 supportano solo Hyperdisk.
  • Compatibilità del disco:
    • 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 esegui l'upgrade del sistema operativo a una nuova versione e il sistema operativo non supporta gli upgrade sul posto, devi creare un nuovo disco di avvio. Tutti i dati sul disco di avvio di origine vengono persi, a meno che non vengano copiati su un disco temporaneo non di avvio. Successivamente, crea un nuovo disco di avvio e copia i dati archiviati sul disco temporaneo non di avvio nel nuovo disco di avvio.
    • Se non esegui l'upgrade della versione del sistema operativo, puoi creare uno snapshot del disco di avvio attuale 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 abbastanza grande da archiviare tutti i dati dell'SSD locale alla tua VM attuale e poi utilizzare uno snapshot per modificare il disco di origine in un nuovo tipo di disco, come descritto in Cambia il tipo di disco. Dopo aver creato una VM con dischi SSD locali collegati, puoi copiare i dati di nuovo sui dischi SSD locali.
  • Se la tua attuale istanza VM utilizza dischi in un pool di archiviazione, ma stai spostando il tuo carico di lavoro su 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 disco diversa (ad esempio NVMe anziché SCSI), i nomi dei dispositivi disco nel sistema operativo guest sono diversi. Assicurati che le tue applicazioni e i tuoi script utilizzino nomi di dispositivi permanenti o collegamenti 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 conservare gli indirizzi IP assegnati. In questo caso, devi promuovere gli indirizzi IP a indirizzi IP statici.

  • Se utilizzi le prestazioni di rete Tier_1 per VM con la tua VM attuale, assicurati che siano disponibili o necessarie con la nuova serie di macchine. Ad esempio, puoi utilizzare il networking Tier_1 con un tipo di macchina C2, ma non è necessario con una VM H3.

Per determinare il tipo di interfaccia di rete della tua VM attuale, 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 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 prepararsi 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 computing

Per prepararti a spostare l'istanza attuale in una nuova istanza:

  1. Richiedi una quota nella regione e nelle zone in cui prevedi di spostare le risorse. Se disponi di una quota esistente 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 macchina siano disponibili nella nuova regione e nelle nuove zone. Assicurati di capire come vengono utilizzate le risorse riservate e verifica di poterle utilizzare.
  3. Estendi i tuoi piani di alta disponibilità e ripristino di emergenza per includere la nuova regione.
  4. Se necessario, esegui l'upgrade del sistema operativo sulla VM attuale.
    1. Se supportato dal fornitore del sistema operativo, esegui un upgrade sul posto del sistema operativo a una versione supportata dalla nuova serie di macchine e verifica che il tuo workload funzioni come previsto nella nuova versione del sistema operativo.
    2. Se l'upgrade in loco del sistema operativo non è supportato, quando crei una nuova VM, devi creare un nuovo disco di avvio. Determina quali informazioni 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 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 sia fornito dal driver virtio-pci (VirtIO Net), il che impedisce al driver gve (gVNIC) di fornire questa interfaccia. Ciò potrebbe causare problemi di connettività e script di avvio di 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 nei dischi collegati alla tua istanza attuale a una nuova istanza:

  1. Sui sistemi Linux, testa le applicazioni e gli script aggiornati per assicurarti che funzionino con nomi di dispositivi permanenti o collegamenti 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, potresti dover aggiornare gli script di deployment o i modelli di istanza 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 durante la creazione delle nuove VM:
    1. Crea uno snapshot del disco di avvio pd-standard della tua VM attuale.
    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 disco supportati sia dalla VM attuale che dalla nuova VM, crea un disco temporaneo utilizzando un tipo di disco supportato dalla VM attuale.
    3. Collega il nuovo disco alla VM attuale, 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 tutti i dischi collegati alla VM attuale che utilizzano un tipo di disco non supportato dalla nuova VM. Per spostare i dati del disco su nuovi dischi, crea snapshot dei dischi. In alternativa, puoi trasferire i file da una VM all'altra.

    1. Puoi scattare gli snapshot mentre la VM è in esecuzione, ma i dati scritti sui dischi dopo lo scatto dello snapshot non vengono acquisiti. Poiché gli snapshot sono incrementali, puoi scattare un secondo snapshot dopo aver arrestato la VM per acquisire tutte le modifiche più recenti. Questo approccio dovrebbe ridurre al minimo il periodo di tempo in cui la VM non è disponibile durante il passaggio a una nuova VM.
    2. In alternativa, puoi creare tutti gli snapshot del disco 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 tutti i dischi temporanei che contengono i dati dell'SSD locale copiati.
    3. Il tempo necessario per creare lo snapshot di un disco dipende da più fattori, ad esempio le dimensioni del disco e la quantità di dati contenuti. Ad esempio, se crei uno snapshot di un disco da 1 TiB pieno all'85%, il completamento dello snapshot potrebbe richiedere 5 minuti. Tuttavia, se acquisisci uno snapshot di un disco da 100 TiB pieno all'85%, il completamento potrebbe richiedere 11 minuti. Ti consigliamo di eseguire snapshot di test dei dischi prima di iniziare la procedura di migrazione per capire quanto tempo richiede la creazione di snapshot.
  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 tua VM.
    2. Acquisisci 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.

Preparare le risorse di rete

Completa i seguenti passaggi per aggiornare la configurazione di rete utilizzata dall'istanza attuale in modo che supporti la nuova istanza:

  1. Se la 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 di Compute Engine per comprendere i passaggi da seguire durante la creazione di una nuova istanza.
  2. Se crei una VM in una nuova regione, crea una rete VPC e subnet nella nuova regione.
  3. Se hai configurato conteggi personalizzati delle code NIC, consulta Allocazioni delle code e modifica del tipo di macchina.
  4. Se vuoi conservare gli indirizzi IP utilizzati dalla VM di origine, promuovili a indirizzi IP statici.
  5. Annulla 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, ricompila initramfs (Initial RAM filesystem). Ciò include una gamma più ampia di driver e moduli, rendendo 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 questo comando come root per ricompilare initramfs con tutti i driver:

  sudo dracut --force --no-hostonly

Sposta il workload nella nuova VM

Dopo aver preparato le VM per la migrazione, il passaggio successivo è spostare il carico di lavoro nella nuova VM.

Se stai spostando le VM dalla prima alla seconda generazione della serie di macchine, leggi le istruzioni nella pagina Modifica il tipo di macchina di una VM. Se vuoi modificare il nome della 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 workload 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 tuoi workload nella nuova VM.

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

Crea la nuova VM

Quando sposti i carichi di lavoro dalle VM di prima o seconda generazione (ad esempio N1 o N2) alla terza generazione o versioni 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 Compute utilizzando un'immagine pubblica o un'immagine personalizzata configurata per utilizzare 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 che hai creato in precedenza.
    • Seleziona un tipo di disco supportato per il disco di avvio.
    • Se hai creato nuovi dischi a partire dagli snapshot dei dischi originali, includi questi nuovi dischi.
    • Specifica la nuova rete VPC se stai creando 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 terminare la configurazione della nuova istanza e copiare tutti i dati dall'istanza di origine.

  1. Collega i dischi che hai scollegato 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 pari a quella del disco originale.
  3. Se la VM originale utilizzava una policy di risorse per i dischi ricreati per la nuova VM, devi aggiungere la policy di risorse ai nuovi dischi.
  4. Se hai creato la nuova VM utilizzando un'immagine sistema operativo pubblica e non un'immagine personalizzata, procedi nel seguente modo:
    1. Configura gli utenti, i driver, i pacchetti e le directory di file necessari nella nuova istanza per supportare il tuo workload.
    2. Installa le applicazioni e i programmi modificati sulla nuova VM. Se necessario, ricompila i programmi sul nuovo sistema operativo o sulla nuova architettura.
  5. (Facoltativo) Se hai spostato i contenuti dei dischi SSD locali su un disco temporaneo e la nuova VM ha collegato l'archiviazione SSD locale, dopo aver formattato e montato i dischi, puoi spostare i dati dal disco temporaneo ai dischi SSD locali.
  6. Riassegna tutti gli indirizzi IP statici associati alla VM di origine alla nuova VM.
  7. Completa tutte le attività aggiuntive necessarie per rendere la nuova VM a disponibilità elevata, ad esempio configurando i bilanciatori del carico e aggiornando le regole di forwarding.
  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, ricompila le applicazioni.

Se riscontri problemi durante lo spostamento del carico di lavoro, contatta il tuo Technical Account Manager (TAM) o l'organizzazione Google Professional Services (PSO) 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 che esegue un'immagine Ubuntu1804 e un disco dati PD-SSD. Per questa procedura devi utilizzare l'interfaccia a riga di comando o l'API REST.

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

Opzione 1: se la tua 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 Balanced. Crea uno snapshot dei dischi di avvio e dati Persistent Disk, crea 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 lo colleghi come disco non di avvio alla VM N4. Poi puoi copiare i dati non di sistema dallo snapshot ripristinato nel nuovo disco di avvio.

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

Il tempo necessario per creare lo snapshot di un disco dipende da diversi fattori, ad esempio il numero totale di TB su un disco. Ad esempio, se crei uno snapshot di un disco da 1 TB pieno all'85%, il completamento dello snapshot potrebbe richiedere 5 minuti. Tuttavia, se acquisisci uno snapshot di un disco da 100 TB pieno all'85%, il completamento dell'operazione potrebbe richiedere 11 minuti. Google consiglia di eseguire snapshot di test dei dischi prima di iniziare il processo di migrazione per capire quanto tempo richiede la creazione di snapshot.

gcloud

Opzione 1: crea una nuova VM N4 con dischi di cui è stato creato lo 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 tua VM n1-standard-8 attuale.
    • ZONE: la zona in cui si trova la VM.
  2. Crea snapshot dei dischi. Utilizza il comando 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 che vuoi 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 di dati ripetendo il passaggio precedente e specificando le informazioni del disco di 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 con 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 (ad esempio 3600).
    • (Facoltativo) PROVISIONED_THROUGHPUT: le prestazioni di throughput di cui eseguire il provisioning per il disco (ad esempio 290).
  4. Ripeti il passaggio precedente per ogni disco sottoposto a snapshot.

  5. Crea la VM n4-standard-8 e collega i dischi Hyperdisk bilanciato 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 bilanciato che hai creato dal disco snapshot di origine collegato alla VM n1-standard-8.
  6. Avvia la VM n4-standard-8 utilizzando il comando 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 loco della macchina:

Questa opzione è disponibile solo 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). 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 dei dischi di avvio e dei 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 dischi di cui è stato creato lo 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 tua attuale VM n1-standard-8.
  2. Crea uno snapshot dei dischi utilizzando il metodo disks.createSnapshot per creare uno snapshot sia del disco di avvio 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 di cui è stato creato lo 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 prevedi di creare lo 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 name del disco di avvio Hyperdisk bilanciato e una seconda volta per includere 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 loco della macchina:

Questa opzione è disponibile solo se la VM N1 utilizza l'interfaccia di rete gvnic, non ha dischi SSD locali o GPU collegati 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 tutti i 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 a cui è collegato il disco pd-ssd.
    • 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 Persistent Disk sia dei dischi dati collegati all'istanza.

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

  5. Esegui un upgrade del tipo di macchina sul posto utilizzando il metodo instances.setMachineType includi 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 da aggiornare.
    • 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 bilanciato 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 a cui è collegato il disco pd-ssd.
    • DISK_NAME Il disco che vuoi collegare.

    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 venga eseguito come previsto sulla nuova VM, puoi rimuovere le risorse che non sono più necessarie:

  1. Gli snapshot creati per i dischi collegati alla VM di origine.
  2. Eventuali pianificazioni di 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