Quando crei macchine virtuali (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 di VM richiesto configurando la flessibilità delle istanze. La flessibilità delle istanze ti consente di specificare uno o più tipi di macchine adatti al tuo carico di lavoro. Compute Engine esegue il provisioning delle VM utilizzando uno o più di questi tipi di macchine, in base alla capacità e alla disponibilità della quota. Una singola richiesta di inserimento collettivo può creare VM di più tipi di macchine diversi.
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 a livello di regione.
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 (ad esempio x86 e Arm) o hanno requisiti di disco diversi. Per utilizzare tipi di macchine con requisiti hardware diversi, utilizza una
selezione di istanze per sostituire le proprietà corrispondenti dalle proprietà delle istanze della richiesta (instanceProperties). Per saperne di più, consulta Override delle proprietà delle istanze nelle selezioni di istanze.
Quando Compute Engine riceve la richiesta, convalida prima i tipi di macchine 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 all'hardware, alla quota e alle prenotazioni disponibili. Se configuri i ranking per le selezioni di istanze, le selezioni con un ranking inferiore hanno la priorità. All'interno di ogni ranking, Compute Engine considera le prenotazioni inutilizzate e le indicazioni per le VM spot per selezionare i tipi di macchine con una probabilità di prerilascio inferiore.
Override delle proprietà delle istanze nelle selezioni di istanze
Quando effettui una selezione di istanze, puoi specificare proprietà delle istanze aggiuntive, come la piattaforma CPU minima (minCpuPlatform) e i dischi (disks), per sostituire o aggiungere le proprietà definite nelle proprietà delle istanze della richiesta (instanceProperties). Quando Compute Engine seleziona un tipo di macchina da una selezione di istanze per creare VM, utilizza le proprietà delle istanze specificate in quella selezione. Se non specifichi alcun override per una selezione di istanze, Compute Engine utilizza le proprietà corrispondenti di instanceProperties per le VM create da quella selezione.
La sostituzione delle proprietà delle istanze a livello di selezione delle istanze 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 create da Compute Engine 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, sia che sia specificata nella selezione sia che sia 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 macchine nella selezione di 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 che N2 venga eseguito su Intel Ice Lake, configura due selezioni di istanze come segue:
- 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 dei dischi
Puoi specificare una configurazione del disco personalizzata in una selezione di istanze per sostituire 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 dischi diversi. Ti consente inoltre di specificare le immagini o i dischi di avvio richiesti per ogni tipo di macchina.
Ad esempio, puoi utilizzare selezioni di istanze separate per sostituire i 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 sostituire il 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 sostituire la 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 sostituisce la 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 del disco effettiva sia compatibile con tutti i tipi di macchine nella selezione di istanze.
Il seguente diagramma mostra come Compute Engine unisce le configurazioni dei dischi da instanceProperties e una selezione di istanze:
Per istruzioni su come specificare la piattaforma CPU minima e gli override dei dischi quando crei VM in blocco, consulta Creare VM con più tipi di macchine, piattaforma CPU minima e override dei dischi.
Per saperne di più sulle limitazioni quando utilizzi gli override della selezione di istanze, consulta la sezione Limitazioni in questo documento.
Esempio: override della piattaforma CPU minima e dei dischi
Puoi utilizzare gli override in una policy di flessibilità delle istanze per eseguire il provisioning delle VM tra serie di macchine che richiedono piattaforme CPU, immagini di avvio o tipi di dischi diversi.
Considera una richiesta di inserimento collettivo con la seguente configurazione instanceProperties di base 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 sostituisce la configurazione instanceProperties di base specificando la piattaforma CPU minima e le configurazioni dei dischi 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 di istanze 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 a livello di regione, puoi specificare una forma di distribuzione target per controllare la distribuzione delle VM nelle zone della regione. Compute Engine seleziona le zone per il provisioning delle VM in base a questa forma, come segue:
ANY_SINGLE_ZONE: Compute Engine seleziona una singola zona con la maggiore capacità per i tipi di macchine con una preferenza più alta.BALANCED: Compute Engine distribuisce le VM nel modo più uniforme possibile tra le zone con risorse disponibili. All'interno di ogni zona, Compute Engine assegna la priorità ai tipi di macchine con una preferenza più alta.ANY: Compute Engine seleziona le zone con risorse disponibili. Se i ranking sono configurati, Compute Engine assegna la priorità alle zone per eseguire il provisioning delle VM con tipi di macchine con una preferenza più alta.
Per saperne di più, consulta Creare VM in blocco in una regione.
Provisioning minimo delle VM e flessibilità delle istanze
Se definisci un valore per il numero minimo di VM richieste (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 di VM richieste (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 possibilità di ottenere le VM 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 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 una preferenza più alta o di sei VM con una preferenza inferiore, Compute Engine esegue il provisioning delle sei VM con una preferenza inferiore. - 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 una preferenza più alta. Ad esempio, se la 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 una preferenza più alta o una con una preferenza inferiore, Compute Engine esegue il provisioning delle sei VM dalla selezione con una 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 dalla considerazione. 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 a livello di zona. - 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 sostituisci
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 sostituire i dischi SSD locali solo per
tipi di macchine che ti consentono di scegliere un numero di dischi SSD locali.
Non puoi sostituire i dischi SSD locali per
-lssdvarianti dei tipi di macchine, che collegano automaticamente i dischi SSD locali.
- Quando configuri
Passaggi successivi
- Scopri come creare VM in blocco con la flessibilità delle istanze.
- Scopri le dimensioni della flessibilità, i casi d'uso e le best practice in Ottimizzare il provisioning di Compute.