Se l'istanza della macchina virtuale (VM) non ha un'unità SSD locale collegata e non fa parte di un gruppo di istanze gestite (MIG), puoi modificare il tipo di macchina dell'istanza dopo averla arrestata.
Se il tipo di macchina esistente non è adatto ai carichi di lavoro che esegui sulla VM, modifica il tipo di macchina della VM. Ad esempio, puoi avviare una VM con un tipo di macchina più piccolo durante la configurazione, lo sviluppo, i test e la modifica per utilizzare un tipo di macchina più grande quando è tutto pronto per i carichi di lavoro di produzione.
Puoi utilizzare questa procedura nelle seguenti situazioni:
- Per passare a un tipo di macchina simile, ma con un numero diverso di vCPU o
memoria all'interno della stessa serie di macchine, ad esempio:
- Puoi cambiare
n2-highcpu-4
inn2-standard-4
. - Puoi modificare
c3d-standard-30
inc3d-highmem-30
.
- Puoi cambiare
- Per modificare il tipo di macchina in modo da utilizzare una serie di macchine diversa.
Questa opzione è supportata solo per le serie di macchine di prima e seconda generazione, escluse le serie T2A e A2. Ad esempio:
- Puoi cambiare
n2-standard-4
inc2-standard-8
. - Puoi modificare
n1-highmem-4
inn2d-standard-16
.
- Puoi cambiare
Se vuoi cambiare il tipo di macchina per una VM che utilizza un serie di macchine di prima o seconda generazione (N1, N2, M1, ecc.) a un tipo di macchina per una serie di macchine di terza generazione o successiva (M3, C3, N4 e così via), è necessario utilizzare la procedura documentata Sposta il carico di lavoro in una nuova istanza di computing.
Puoi modificare il tipo di macchina senza influire sulle seguenti risorse:
- Le chiavi SSH della VM
- Le configurazioni delle VM, ad esempio i metadati
- I dati sul disco permanente o Hyperdisk collegato, inclusi le applicazioni installate e i dati delle applicazioni
Per modificare il tipo di macchina delle VM all'interno di un gruppo di istanze gestite, consulta Applica automaticamente gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite.
Prima di iniziare
- Scopri come interrompere una VM.
- Scopri di più sui tipi di macchine.
-
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 eseguire l'autenticazione
Compute Engine come segue.
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.
Java
Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per modificare il tipo di macchina di una VM, chiedi all'amministratore di concederti seguenti ruoli IAM sul progetto:
-
Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) -
Per connetterti a una VM che possa essere eseguita come account di servizio:
Utente account di servizio (v1) (
roles/iam.serviceAccountUser
)
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 il tipo di macchina di una VM. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per modificare il tipo di macchina di una VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.setMachineType
sulla VM -
compute.instances.start
sulla VM -
compute.instances.stop
sulla VM
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Limitazioni
- Se l'istanza di calcolo ha una o più unità SSD locali, non puoi modificare il tipo di macchina dell'istanza.
- Se la tua istanza Compute utilizza un modello indirizzo IP esterno temporaneo, l'indirizzo IP potrebbe cambiare quando modifichi il tipo di macchina dell'istanza. Per conservare l'indirizzo IP, promuovilo a un indirizzo IP esterno statico prima di cambiare il tipo di macchina.
- La modifica del tipo di macchina di un'istanza di calcolo non è disponibile per alcune configurazioni:
- Non puoi modificare il tipo di macchina per le istanze bare metal.
- Se vuoi cambiare il tipo di macchina da un primo o un secondo serie di macchine di generazione a un tipo di macchina per una serie di macchine di terza generazione o successive, non possono utilizzare questa procedura. Segui invece le istruzioni in Sposta il carico di lavoro in una nuova istanza di computing.
- Se vuoi modificare il tipo di macchina in un tipo di macchina Arm, non puoi utilizzare questa procedura. Segui invece le istruzioni in Sposta il carico di lavoro in una nuova istanza di computing.
- Puoi utilizzare i passaggi in questo documento per modificare il tipo di macchina per tipi di macchine ottimizzate per l'acceleratore G2. Per altro tipi di macchine ottimizzati per l'acceleratore, Modifica VM ottimizzate per l'acceleratore.
Implicazioni per la fatturazione
Ogni tipo di macchina viene fatturato a una tariffa diversa, quindi assicurati di comprendere le implicazioni relative ai prezzi del cambio di tipo di macchina. Ad esempio, un tipo di macchina e2-standard-2
ha un costo superiore a
tipo di macchina e2-micro
.
La modifica di un tipo di macchina potrebbe influire anche sugli sconti per utilizzo sostenuto. VM. Gli sconti per utilizzo sostenuto sono calcolati separatamente per le diverse categorie nella stessa regione. Se cambi tipo di macchina in modo che il nuovo tipo di macchina appartenenti a un'altra categoria, il tempo di esecuzione successivo della VM viene conteggiato ai fini del calcolo per sconto per utilizzo sostenuto della nuova categoria.
Ad esempio, supponiamo che tu abbia una VM con tipo di macchina n2-standard-2
in esecuzione per metà mese. Decidi quindi di cambiare il tipo di macchina
m1-ultramem-40
. Una volta apportata la modifica, Compute Engine avvia
contando il tempo di esecuzione della VM rispetto al tempo di esecuzione
per utilizzo della categoria di vCPU e memoria ottimizzate per la memoria.
Nella fattura vedrai uno sconto per utilizzo sostenuto applicato al tipo di macchina n2-standard-2
precedente alla modifica e uno sconto per utilizzo sostenuto separato per m1-ultramem-40
, se la VM rimane in esecuzione su m1-ultramem-40
per almeno il 25% del resto del mese.
Passare a un tipo di macchina più piccolo
Se passi da un tipo di macchina con più risorse a un tipo di macchina con meno risorse, ad esempio da un tipo di macchina e2-standard-8
a un tipo di macchina e2-standard-2
, potresti riscontrare problemi relativi alle risorse hardware o limitazioni delle prestazioni perché i tipi di macchina più piccoli sono meno potenti di quelli più grandi. Assicurati che il nuovo tipo di macchina sia in grado di supportare qualsiasi applicazione
o servizi in esecuzione sulla VM attuale o che aggiorni
e applicazioni per l'esecuzione su tipi di macchina più piccoli.
Esamina i consigli relativi al dimensionamento ottimale prima di cambiare il tipo di macchina. Per informazioni sui suggerimenti sulle dimensioni di Compute Engine vedi Applicazione dei suggerimenti sul tipo di macchina per le istanze VM.
Best practice
Di seguito sono riportate alcune best practice per aiutarti a modificare correttamente il tipo di VM.
Esegui backup regolari dei dati del Persistent Disk utilizzando gli snapshot. Prendi in considerazione scattare uno snapshot dei dati del Persistent Disk prima di cambiare il tipo di macchina. Se vuoi per assicurarti che il nuovo tipo di macchina sia in grado di supportare i dati sul una VM esistente, puoi creare uno snapshot di Persistent Disk e usarlo per avviare seconda VM con il nuovo tipo di macchina per verificare che la VM si avvii correttamente.
Aggiungi altri dischi al file
/etc/fstab
. Se alla VM sono collegati altri dischi, assicurati vengono aggiunti al file/etc/fstab
in modo che vengano montati automaticamente al riavvio della VM.Crea una prenotazione prima di modificare il tipo di macchina. Per evitare errori correlati alla disponibilità delle risorse, crea prenotazioni Compute Engine per i nuovi tipi di macchine quando sono disponibili per prenotarli all'interno di una zona. Le prenotazioni contribuiscono ad assicurare che le risorse siano disponibili quando ne hanno bisogno.
Per creare una prenotazione:
Creare una prenotazione (o identificare le prenotazioni esistenti) con proprietà come di VM pianificate. Il conteggio di VM della prenotazione deve essere uguale o maggiore del e il numero di VM che vuoi modificare. Se vuoi, per impedire ad altre VM di utilizzare questa prenotazione, utilizza l'opzione
specificReservationRequired
.Verifica che le VM pianificate possano utilizzare la prenotazione:
- Verifica che le VM abbiano l'affinità di prenotazione corretta.
- Immediatamente prima di modificare le VM, assicurati che la prenotazione abbia una capacità sufficiente.
Cambiare un tipo di macchina
Puoi cambiare solo il tipo di macchina di una VM arrestata. Una VM è considerata arrestata solo quando la VM è nello statoTERMINATED
. Non puoi cambiare il tipo di macchina di una VM in esecuzione.
Se stai eseguendo l'upgrade del tipo di macchina all'ultima generazione, rivedi Valuta le opzioni di migrazione delle VM prima di procedere.
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Nella colonna Nome, fai clic sul nome della VM per cui vuoi cambiare il tipo di macchina.
Nella pagina Dettagli istanza VM, completa i seguenti passaggi:
- Se la VM è in esecuzione, nel menu nella parte superiore della pagina, selezionare Arresta per arrestarla.
- Per modificare la VM, fai clic su Modifica:
Nella sezione Configurazione macchina, seleziona il tipo di macchina che vuoi utilizzare o crea un tipo di macchina personalizzato.
Per salvare le modifiche, fai clic su Salva.
Riavvia la VM.
gcloud
Interrompi la VM utilizzando il comando
gcloud compute instances stop
:gcloud compute instances stop VM_NAME
Sostituisci
VM_NAME
con la VM contenente il tipo di macchina da modificare.Modifica il tipo di macchina utilizzando il comando
gcloud compute instances set-machine-type
:gcloud compute instances set-machine-type VM_NAME \ --machine-type NEW_MACHINE_TYPE
Sostituisci
NEW_MACHINE_TYPE
con il nuovo tipo di macchina per la VM. Il tipo di macchina può essere uno dei seguenti:Un tipo di macchina predefinita
Ad esempio:
e2-standard-2
Un tipo di macchina personalizzata.
Ad esempio, puoi specificare
--machine-type e2-custom-4-2048
per impostare un tipo di macchina personalizzata con 4 vCPU e 2 GB di memoria.
Avvia la VM utilizzando Comando
gcloud compute instances start
:gcloud compute instances start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che è cambiato.
Java
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di Compute Engine con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Compute Engine Java.
Per eseguire l'autenticazione su Compute Engine, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Compute Engine con librerie client. Per ulteriori informazioni, consulta API Python Compute Engine documentazione di riferimento.
Per autenticarti a Compute Engine, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
REST
Arresta la VM utilizzando il metodo
instances.stop
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoZONE
: la zona contenente VMVM_NAME
: la VM contenente tipo di macchina da modificare
Cambia il tipo di macchina utilizzando Metodo
instances.setMachineType
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMachineType
Nel corpo della richiesta, fornisci il
machineType
aggiornato:{ machineType: "zones/MACHINE_TYPE_ZONE/machineTypes/NEW_MACHINE_TYPE" }
Sostituisci quanto segue:
MACHINE_TYPE_ZONE
: la zona contenente il tipo di macchinaNEW_MACHINE_TYPE
: il nuovo tipo di macchina per VMIl tipo di macchina può essere uno dei seguenti:
Un tipo di macchina predefinita
Ad esempio:
e2-standard-2
Un tipo di macchina personalizzata
Ad esempio, puoi specificare
--machine-type e2-custom-4-2048
per impostare un tipo di macchina personalizzata con 4 vCPU e 2 GB di memoria.
Avvia la VM utilizzando Metodo
instances.start
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Sostituisci quanto segue:
PROJECT_ID
: l'ID progettoZONE
: la zona contenente VMVM_NAME
: il nome della VM che hai modificato
Passaggi successivi
- Scopri di più sui consigli sui tipi di macchine.
- Scopri di più sui gruppi di istanze gestite.
- Scopri di più sui pattern per le app scalabili e resilienti.
- Per aggiornare una VM di prima o seconda generazione in modo da utilizzare una serie di macchine di terza generazione o successiva, consulta Spostare il carico di lavoro in una nuova istanza di calcolo.