Quando crei VM in blocco in una regione utilizzando Compute Engine, se la tua applicazione non è limitata a un singolo tipo di macchina, puoi aumentare il tasso di successo del provisioning del numero richiesto di VM configurando la flessibilità delle istanze. La flessibilità delle istanze ti consente di specificare uno o più tipi di macchine adatti al tuo workload. Compute Engine esegue quindi il provisioning delle VM utilizzando uno di questi tipi di macchine, in base alla capacità e alla disponibilità della quota.
La flessibilità delle istanze ti aiuta a massimizzare la disponibilità delle risorse durante i picchi di domanda, a migliorare il rapporto prezzo/prestazioni e ad adottare in sicurezza l'hardware più recente. Per saperne di più, consulta Ottimizzare il provisioning di Compute.
Questo documento descrive il funzionamento della flessibilità delle istanze per le VM create in blocco, inclusi gli override delle proprietà delle istanze per la piattaforma CPU minima e i dischi, nonché le limitazioni. Per saperne di più sulla configurazione della flessibilità delle istanze, consulta Creare VM in blocco con la flessibilità delle istanze.
Utilizzare la flessibilità delle istanze
Per configurare la flessibilità delle istanze, elenca i tipi di macchine adatti definendo una o più selezioni di istanze nella richiesta di inserimento collettivo regionale.
Ad esempio, in una richiesta REST, includi l'oggetto instanceFlexibilityPolicy, all'interno del quale definisci uno o più oggetti instanceSelections, ognuno contenente un elenco di tipi di macchine.
Puoi anche specificare tipi di macchine che vengono eseguiti su piattaforme CPU diverse, hanno
architetture diverse (come x86 e Arm) o hanno requisiti di disco
diversi. Per utilizzare tipi di macchine con requisiti hardware diversi, utilizza una
selezione di istanze per eseguire l'override delle proprietà corrispondenti dalle proprietà
dell'istanza della richiesta (instanceProperties). Per ulteriori informazioni, consulta Override delle proprietà dell'istanza nelle selezioni di istanze.
Quando Compute Engine riceve la richiesta, convalida prima i tipi di macchina e la loro compatibilità zonale, escludendo eventuali voci non valide. Se esiste almeno una configurazione valida, l'operazione continua.
Compute Engine tenta quindi di eseguire il provisioning delle VM in base a hardware, quota e prenotazioni disponibili. Se configuri i ranking per le selezioni della tua istanza, assegna la priorità alle selezioni con un ranking inferiore. All'interno di ogni rango, Compute Engine prende in considerazione le prenotazioni inutilizzate e le indicazioni per le VM spot per selezionare tipi di macchine con una probabilità di prerilascio inferiore.
Override delle proprietà dell'istanza nelle selezioni dell'istanza
Quando effettui una selezione di istanze, puoi specificare proprietà aggiuntive dell'istanza, come la piattaforma CPU minima (minCpuPlatform) e i dischi (disks), per eseguire l'override o aggiungere le proprietà definite nelle proprietà dell'istanza della richiesta (instanceProperties). Quando Compute Engine seleziona un tipo di macchina da una selezione di istanze per creare VM, utilizza le proprietà dell'istanza specificate in quella selezione. Se non specifichi override per una selezione di istanze, Compute Engine utilizza le proprietà corrispondenti di instanceProperties per le VM che crea da quella selezione.
L'override delle proprietà dell'istanza a livello di selezione dell'istanza offre maggiore controllo e flessibilità quando utilizzi configurazioni hardware diverse in una singola richiesta di inserimento collettivo.
Override della piattaforma CPU minima
Puoi specificare una
piattaforma CPU minima
(minCpuPlatform) per le VM che Compute Engine crea dai
tipi di macchine in una selezione di istanze. Questo override ti consente di combinare diversi tipi di macchine e applicare in modo selettivo le piattaforme CPU minime. Ogni tipo di macchina
in una selezione di istanze deve supportare la piattaforma CPU minima effettiva,
specificata nella selezione o ereditata da instanceProperties.
In alternativa, puoi impostare il campo minCpuPlatform su AUTOMATIC. Questa
impostazione sostituisce il valore minCpuPlatform in instanceProperties e consente
a Compute Engine di utilizzare qualsiasi piattaforma CPU compatibile per i tipi di macchina nella
selezione delle istanze.
Per combinare tipi di macchine in cui solo una serie supporta una piattaforma CPU specifica, inseriscili in selezioni di istanze separate. Ad esempio, i tipi di macchine N4 supportano la piattaforma Intel Emerald Rapids, mentre i tipi di macchine N2 con meno di 96 vCPU supportano Intel Ice Lake e Intel Cascade Lake. Per combinare N4 e N2 in una richiesta di inserimento collettivo e richiedere l'esecuzione di N2 su Intel Ice Lake, configura due selezioni di istanze nel seguente modo:
- Selezione N2: imposta il campo
minCpuPlatformsuIntel Ice Lake. - Selezione N4: lascia il campo
minCpuPlatformnon impostato o impostalo suAUTOMATIC.
Puoi impostare la stessa preferenza per entrambi i tipi di macchine assegnando lo stesso ranking a entrambe le selezioni di istanze.
Override dischi
Puoi specificare una configurazione del disco personalizzata in una selezione di istanze per
ignorare il disco di avvio o i dischi aggiuntivi specificati in
instanceProperties o per collegare dischi aggiuntivi. Questo override ti consente di combinare
tipi di macchine con architetture diverse o che supportano tipi di disco
diversi. Ti consente inoltre di specificare le immagini di avvio o i dischi richiesti per ogni tipo di macchina.
Ad esempio, puoi utilizzare selezioni di istanze separate per eseguire l'override dei dischi per requisiti diversi:
- Architetture diverse:puoi combinare i tipi di macchine C4 (architettura x86) e C4A (architettura Arm). Poiché i tipi di macchine x86 e Arm richiedono immagini di avvio diverse, puoi eseguire l'override del disco di avvio per specificare un'immagine compatibile per ogni architettura.
- Tipi di dischi diversi:puoi combinare i tipi di macchine N2 e N4. Poiché N2 supporta solo Persistent Disk per i dischi di avvio e N4 supporta solo Google Cloud Hyperdisk, puoi eseguire l'override della configurazione del disco per specificare un tipo di disco supportato per ogni serie di macchine.
In entrambi gli scenari, puoi impostare la stessa preferenza per entrambi i tipi di macchine assegnando lo stesso ranking alle selezioni di istanze.
Se un disco in una selezione di istanze ha un deviceName che corrisponde a un disco in
instanceProperties, Compute Engine esegue l'override della configurazione di quel disco. Se deviceName non corrisponde a nessun disco in
instanceProperties, Compute Engine lo collega come disco aggiuntivo. Devi assicurarti che la configurazione effettiva del disco sia compatibile con
tutti i tipi di macchina nella selezione delle istanze.
Il seguente diagramma mostra come Compute Engine unisce le configurazioni del disco da instanceProperties e una selezione di istanze:
Per istruzioni su come specificare la piattaforma CPU minima e gli override del disco quando crei VM collettivamente, consulta Crea VM con più tipi di macchine, piattaforma CPU minima e override del disco.
Per saperne di più sulle limitazioni quando utilizzi gli override della selezione delle istanze, consulta la sezione Limitazioni di questo documento.
Esempio: override della piattaforma CPU minima e del disco
Puoi utilizzare gli override in una policy di flessibilità dell'istanza per eseguire il provisioning delle VM in serie di macchine che richiedono piattaforme CPU, immagini di avvio o tipi di disco diversi.
Considera una richiesta di inserimento collettivo con la seguente configurazione di base instanceProperties
che definisce un disco di avvio pd-balanced predefinito:
"instanceProperties": {
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-balanced"
}
}
],
"networkInterfaces": [{}]
}
La seguente configurazione instanceFlexibilityPolicy nella stessa richiesta
override della configurazione di base instanceProperties specificando la piattaforma CPU minima
e le configurazioni del disco in tre selezioni di istanze:
"instanceFlexibilityPolicy": {
"instanceSelections": {
"first-preference": {
"rank": 1,
"machineTypes": ["n4-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
}
]
},
"second-preference": {
"rank": 2,
"machineTypes": ["c4a-standard-4"],
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64",
"diskSizeGb": "10",
"diskType": "hyperdisk-balanced"
}
},
{
"autoDelete": true,
"deviceName": "data-disk",
"boot": false,
"initializeParams": {
"diskSizeGb": "100",
"diskType": "hyperdisk-balanced"
}
}
]
},
"third-preference": {
"rank": 3,
"machineTypes": ["n2-standard-4"],
"minCpuPlatform": "Intel Ice Lake",
"disks": [
{
"autoDelete": true,
"deviceName": "boot-disk",
"boot": true,
"initializeParams": {
"sourceImage": "projects/debian-cloud/global/images/family/debian-12",
"diskSizeGb": "10",
"diskType": "pd-ssd"
}
}
]
}
}
}
In questo esempio, Compute Engine applica i seguenti override a seconda della selezione dell'istanza utilizzata per creare le VM:
- Prima preferenza (
first-preference): per le VMn4-standard-4, la selezione sostituisceboot-diskper utilizzare un discohyperdisk-balancedanziché il discopd-balanceddi base. - Seconda preferenza (
second-preference): per le VMc4a-standard-4(Arm), la selezione sostituisceboot-diskper utilizzare un'immagine di avvio compatibile con Arm (debian-12-arm64) su un discohyperdisk-balancede collega un discohyperdisk-balancedaggiuntivo da 100 GB denominatodata-disk. - Terza preferenza (
third-preference): per le VMn2-standard-4, la selezione impostaminCpuPlatformsuIntel Ice Lakee sostituisceboot-diskper utilizzare un discopd-ssd.
Selezione della zona quando viene definita una forma di distribuzione target
Quando utilizzi la flessibilità delle istanze con una richiesta bulkInsert regionale, puoi specificare una forma di distribuzione target per controllare la modalità di distribuzione delle VM nelle zone della regione. Compute Engine seleziona
le zone per il provisioning delle VM in base a questa forma, nel seguente modo:
ANY_SINGLE_ZONE: Compute Engine seleziona una singola zona con la maggiore capacità per i tipi di macchine con una preferenza più elevata.BALANCED: Compute Engine distribuisce le VM nel modo più uniforme possibile tra le zone con risorse disponibili. All'interno di ogni zona, Compute Engine dà la priorità ai tipi di macchine con una preferenza più elevata.ANY: Compute Engine seleziona le zone con risorse disponibili. Se i ranking sono configurati, Compute Engine dà la priorità alle zone per il provisioning delle VM con tipi di macchine con una preferenza più alta.
Per saperne di più, consulta Crea più VM contemporaneamente in una regione.
Provisioning minimo di VM e flessibilità delle istanze
Se definisci un valore per il numero minimo richiesto di VM (minCount) nella richiesta bulkInsert, l'API
tenta di creare almeno quel numero di VM. Se Compute Engine non riesce a eseguire il provisioning del numero minimo richiesto di VM (minCount), l'intera operazione non va a buon fine e Compute Engine non crea alcuna VM. Quando utilizzi minCount con la flessibilità delle istanze, Compute Engine assegna la priorità al provisioning delle VM in base alla disponibilità rispetto al ranking, come segue:
- Compute Engine assegna la priorità al provisioning del numero massimo di VM fino a
count, anche se ciò significa utilizzare macchine con una preferenza inferiore. Ad esempio, se la tua richiesta specifica un minimo di una VM richiesta (minCount=1) e un massimo di 10 VM (count=10) e se Compute Engine ha la capacità di eseguire il provisioning di una VM con preferenza più alta o di sei VM con preferenza più bassa, allora Compute Engine esegue il provisioning delle sei VM con preferenza più bassa. - Se Compute Engine può eseguire il provisioning dello stesso numero massimo di VM fino a
countutilizzando selezioni di istanze diverse, assegna la priorità alla selezione con preferenza più elevata. Ad esempio, se la tua richiesta specifica un minimo di una VM richiesta (minCount=1) e un massimo di 10 VM (count=10) e se Compute Engine può eseguire il provisioning di sei VM utilizzando una selezione di istanze con preferenza più alta o più bassa, Compute Engine esegue il provisioning delle sei VM dalla selezione con preferenza più alta.
Per saperne di più, consulta la proprietà minCount in
bulkInsert.
Scenari di convalida e di errore dell'inserimento collettivo
Compute Engine esegue una convalida iniziale dei tipi di macchine e della loro compatibilità zonale, escludendo eventuali voci non valide. Se dopo questo controllo iniziale rimane almeno una configurazione valida, Compute Engine procede con la creazione della VM.
Tuttavia, alcune convalide della configurazione possono essere eseguite solo dopo che Compute Engine ha selezionato le zone e i tipi di macchine da utilizzare per il provisioning, in base alla policy di flessibilità delle istanze e alla capacità disponibile.
Se, durante questa fase di convalida successiva, la combinazione specifica di tipo di macchina e zona scelta per il provisioning risulta non valida, l'intera richiesta di inserimento collettivo non va a buon fine e vengono visualizzati errori di convalida. Questo errore può verificarsi anche se altre
configurazioni all'interno di instanceFlexibilityPolicy erano inizialmente valide.
Limitazioni
Quando utilizzi la flessibilità delle istanze per la creazione di VM in blocco, si applicano le seguenti limitazioni:
- Puoi specificare la flessibilità delle istanze solo per le richieste
bulkInserta livello di regione; non puoi utilizzarla con le richieste zonali. - La flessibilità delle istanze non supporta le VM con avvio flessibile e le prenotazioni future.
- Non puoi utilizzare la flessibilità delle istanze con le funzionalità di AI Hypercomputer o con le GPU A3 Ultra, A4 e più recenti.
- Puoi specificare un massimo di 10 tipi di macchine diversi in un massimo di 10 selezioni di istanze diverse.
- Quando esegui l'override di
minCpuPlatformodisksin una selezione di istanze, si applicano anche le seguenti limitazioni:- Quando configuri
minCpuPlatformodisksper una selezione di istanze, devi includere anche il campomachineTypes. Se ometti il campomachineTypes, l'operazione non va a buon fine e viene visualizzato un errore. - Puoi eseguire l'override dei dischi SSD locali solo per i tipi di macchine che ti consentono di scegliere un numero di dischi SSD locali.
Non puoi eseguire l'override dei dischi SSD locali per le
varianti
-lssddei tipi di macchine, che collegano automaticamente i dischi SSD locali.
- Quando configuri
Passaggi successivi
- Scopri come creare VM in blocco con flessibilità delle istanze.
- Scopri di più su dimensioni, casi d'uso e best practice della flessibilità nella pagina Ottimizzare il provisioning di Compute.