Combina le prenotazioni con gli sconti per impegno di utilizzo

Gli sconti per impegno di utilizzo (CUD) offrono prezzi molto scontati per le tue risorse Compute Engine in cambio di contratti per impegno di utilizzo di 1 o 3 anni (detti anche impegni). Ti impegni a utilizzare un importo minimo delle risorse o a spendere un importo minimo e ricevi in cambio sconti per impegno di utilizzo (CUD) sui costi di utilizzo delle risorse. Tuttavia, gli impegni non riservano capacità a livello di zona per le risorse impegnate. Per ottenere risorse di zona a prezzi scontati e assicurarti che la capacità sia riservata esclusivamente a queste risorse, devi acquistare impegni e creare prenotazioni per le risorse di zona.

Questo documento spiega come ricevere gli sconti per impegno di utilizzo (CUD) per le risorse prenotate e come collegare le prenotazioni agli impegni basati sulle risorse.

Prima di iniziare

  • Rivedi le nozioni di base delle prenotazioni, i relativi requisiti e limitazioni. Per ulteriori informazioni, consulta Prenotazioni delle risorse di zona di Compute Engine.
  • Se non l'hai già fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in 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.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    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.

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

      Per maggiori informazioni, consulta Autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Sconti per impegno di utilizzo (CUD) per le risorse prenotate

Ricevi gli sconti per impegno di utilizzo (CUD) dagli impegni attivi per qualsiasi utilizzo idoneo delle risorse nei tuoi progetti. Se disponi anche di prenotazioni per conservare la capacità per le risorse in quel progetto, gli sconti per impegno di utilizzo (CUD) provenienti da impegni attivi possono essere applicati anche a quelle risorse prenotate. Affinché le risorse prenotate siano idonee a ricevere gli sconti per impegno di utilizzo (CUD), si applicano i seguenti requisiti:

  • Non stai ricevendo altre forme di sconto per l'utilizzo delle risorse.
  • Le VM devono utilizzare le prenotazioni mentre gli impegni sono attivi.
  • Come minimo, le seguenti proprietà devono corrispondere tra gli impegni attivi e le prenotazioni utilizzate dalle VM:

    • Progetto e regione a cui si applicano
    • Serie di famiglie di macchine

A seconda del tipo di risorsa, puoi ricevere gli sconti per impegno di utilizzo (CUD) per le risorse prenotate in uno dei seguenti modi:

  • vCPU e memoria: per ricevere gli sconti per impegno di utilizzo (CUD) per uno o entrambi i tipi di risorse, puoi acquistare impegni basati sulle risorse o sulla spesa che includono i tipi di risorse richiesti. Quando le VM nel tuo progetto utilizzano qualsiasi prenotazione le cui proprietà corrispondono a questi impegni attivi, ricevi automaticamente gli sconti per impegno di utilizzo (CUD) applicabili per questi tipi di risorse prenotate. Se hai prenotato più risorse di quelle previste, non riceverai sconti per impegno di utilizzo (CUD) per queste risorse aggiuntive.

  • GPU e dischi SSD locali: per ricevere sconti per impegno di utilizzo (CUD) per uno o entrambi questi tipi di risorse, devi fare quanto segue:

    • Acquista impegni basati sulle risorse che includono i tipi di risorse richiesti.
    • Creare prenotazioni per tutte le risorse di cui è stato eseguito il commit con proprietà corrispondenti all'impegno e collegare queste prenotazioni all'impegno.

    Quando le VM nel tuo progetto consumano queste prenotazioni collegate, inizi a ricevere gli sconti per impegno di utilizzo (CUD) applicabili per questi tipi di risorse prenotate.

Collega le prenotazioni a impegni basati sulle risorse

Puoi collegare le prenotazioni a qualsiasi impegno basato sulle risorse e assicurarti che la capacità venga conservata in zone specifiche per le risorse impegnate che prevedi di utilizzare. Puoi collegare più prenotazioni a un singolo impegno. Tuttavia, una prenotazione può essere associata a un solo impegno. Quando acquisti un impegno, puoi collegare le prenotazioni all'impegno in uno dei seguenti modi:

  • Utilizzo di prenotazioni esistenti le cui proprietà corrispondono all'impegno
  • Creazione di nuove prenotazioni corrispondenti durante l'acquisto del tuo impegno

Dopo aver acquistato un impegno con prenotazioni allegate, queste rimangono attive finché l'impegno è attivo. Alla scadenza dell'impegno, Compute Engine elimina automaticamente tutte le prenotazioni collegate. L'eliminazione di queste prenotazioni non ha alcun effetto sulle VM in esecuzione che utilizzavano queste prenotazioni. Le VM in esecuzione continuano a essere eseguite e ti viene comunque addebitato il costo per queste VM.

Risorse impegnate che non richiedono prenotazioni collegate

Le vCPU e la memoria impegnate non richiedono di collegare le prenotazioni corrispondenti ai tuoi impegni. Tuttavia, quando acquisti un impegno che include vCPU, memoria o entrambe, puoi comunque scegliere di collegare le prenotazioni che specificano tali risorse. Per informazioni su come acquistare impegni esclusivamente per vCPU, memoria o entrambi, senza collegare le prenotazioni, consulta Impegni di acquisto senza prenotazioni collegate.

Risorse impegnate che richiedono prenotazioni collegate

Le GPU e i dischi SSD locali richiedono di collegare le prenotazioni corrispondenti ai tuoi impegni. Quando acquisti un impegno che include GPU, dischi SSD locali o entrambi, devi prenotare le risorse e collegare le prenotazioni all'impegno. Puoi farlo utilizzando una singola prenotazione o una combinazione di prenotazioni. Quando acquisti un impegno di questo tipo, puoi anche includere vCPU, memoria o entrambe. Tuttavia, non è necessario prenotare le vCPU o la memoria. Per scoprire come acquistare impegni che includano una o entrambe GPU e dischi SSD locali, consulta Impegni di acquisto con prenotazioni allegate in questo documento.

Per visualizzare l'elenco completo delle serie di macchine che supportano gli sconti per impegno di utilizzo (CUD) per GPU e dischi SSD locali, consulta la sezione sui tipi di impegno nella documentazione relativa agli sconti per impegno di utilizzo (CUD) basati sulle risorse.

Quantità di risorse consentite nelle prenotazioni collegate

Per vCPU e memoria, puoi avere prenotazioni collegate che specifichino una quantità di risorse maggiore o minore rispetto all'impegno assunto. Se decidi di utilizzare più vCPU o memoria di quella prenotata, Compute Engine prenota la capacità solo per queste risorse prenotate. Tuttavia, puoi comunque utilizzare le risorse impegnate aggiuntive a seconda della loro disponibilità nella tua regione. Se prenoti più vCPU o memoria di quanto ti impegni a utilizzare, non ricevi sconti per impegno di utilizzo (CUD) per le risorse aggiuntive che prenoti.

Ad esempio, quando acquisti un impegno per 4 vCPU e 30 GB di memoria, puoi scegliere di eseguire una delle seguenti operazioni:

  • Non collegare affatto prenotazioni.
  • Collega prenotazioni che specifichino una qualsiasi combinazione di questi tipi di risorse; ad esempio, quanto segue:

    • 4 vCPU e 30 GB di memoria
    • 2 vCPU e 50 GB di memoria
    • 10 vCPU e 10 GB di memoria

Tuttavia, se l'impegno contiene GPU, dischi SSD locali o entrambi, devi prenotare e collegare tutte queste risorse. Le prenotazioni allegate devono specificare i numeri e i tipi esatti di GPU e dischi SSD locali che hai scelto. Di conseguenza, non puoi nemmeno includere numeri o tipi aggiuntivi di GPU o dischi SSD locali nelle prenotazioni collegate. Ad esempio, supponi di acquistare un impegno per 30 GB di memoria e 4 GPU NVIDIA P100. La prenotazione collegata (o una combinazione di prenotazioni collegate) può specificare qualsiasi quantità di vCPU o memoria, ma deve avere esattamente 4 GPU di tipo NVIDIA P100. In questo esempio, non puoi collegare prenotazioni che specificano una delle seguenti combinazioni di risorse:

  • 6 GPU NVIDIA P100
  • 2 GPU NVIDIA P100
  • 4 GPU NVIDIA P100 e 2 GPU NVIDIA V100
  • 4 GPU NVIDIA P100 e 4 dischi SSD locali

Impegni di acquisto con prenotazioni allegate

Quando acquisti un nuovo impegno, puoi collegare le prenotazioni all'impegno in uno dei seguenti modi:

Dopo aver acquistato un impegno, questo diventa attivo il giorno successivo alle ore 00:00 UTC-8 (UTC-8, o UTC-7) durante l'ora legale. Tra il momento dell'acquisto e la data di attivazione, lo stato dell'impegno rimane NOT_YET_ACTIVE (o PENDING nella console Google Cloud). Dopo l'attivazione, lo stato dell'impegno diventa ACTIVE. Ad esempio, supponi di acquistare l'impegno il 20 gennaio alle 22:00 USA e Fuso orario del Pacifico (UTC-8 o UTC-7). Compute Engine crea immediatamente il tuo impegno con lo stato NOT_YET_ACTIVE. Tuttavia, il tuo impegno diventerà ACTIVE solo il 21 gennaio alle ore 00:00 (fuso orario del Pacifico) (UTC-8 o UTC-7).

Requisiti

Prima di acquistare un impegno con prenotazioni allegate, esamina questi requisiti e assicurati che l'impegno e le prenotazioni soddisfino i seguenti criteri:

  • Devi acquistare l'impegno e creare le prenotazioni collegate nello stesso progetto e nella stessa regione.
  • Devi acquistare l'impegno e creare le prenotazioni collegate per le risorse della stessa serie di famiglie di macchine.
  • Devi disabilitare l'opzione di eliminazione automatica per le prenotazioni allegate.
  • Se il tuo impegno ha GPU, il tipo di GPU specificato nella prenotazione e l'impegno devono corrispondere.
  • Per le GPU e i dischi SSD locali, il numero di risorse prenotate di ciascun tipo di risorsa deve corrispondere esattamente al numero di risorse impegnate per quel tipo di risorsa. Ad esempio, se vuoi acquistare un impegno per 4 GPU V100, le prenotazioni allegate all'impegno devono specificare un totale di 4 GPU V100. Tuttavia, la quantità di vCPU e memoria prenotata può essere superiore o inferiore all'impegno previsto.
  • Per le GPU, acquista impegni per i tipi di GPU specifici che intendi utilizzare. Ad esempio, puoi acquistare impegni per NVIDIA P100 o NVIDIA V100, ma non puoi utilizzare un impegno acquistato per GPU NVIDIA P100 per coprire le GPU NVIDIA V100.
  • Se la prenotazione allegata è una prenotazione condivisa e vuoi ricevere gli sconti per impegno di utilizzo (CUD) applicabili quando utilizzi la prenotazione al di fuori del progetto del tuo impegno, devi eseguire entrambe le operazioni seguenti:

Collega prenotazioni esistenti

Puoi collegare le prenotazioni esistenti durante l'acquisto dell'impegno utilizzando la console Google Cloud, Google Cloud CLI o REST.

Console

Prima di acquistare un impegno utilizzando la console Google Cloud, seleziona il progetto che vuoi utilizzare per acquistare l'impegno. Se la condivisione dello sconto per impegno di utilizzo (CUD) è abilitata per un account di fatturazione Cloud, puoi acquistare l'impegno utilizzando qualsiasi progetto da quell'account di fatturazione Cloud. Dopo aver selezionato il progetto, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Sconti per impegno di utilizzo.

    Vai a Sconti per impegno di utilizzo

  2. Per acquistare un impegno, fai clic su Acquista impegno. Si apre la pagina Acquista uno sconto per impegno di utilizzo, che mostra la scheda Hardware.

  3. Nel campo Nome, inserisci un nome per l'impegno.

  4. Nel campo Regione, seleziona la regione in cui vuoi impegnarti per le risorse Compute Engine.

  5. Nel campo Tipo di impegno, seleziona la serie di famiglie di macchine per le risorse impegnate. I seguenti tipi di impegno forniscono opzioni per GPU, dischi SSD locali o entrambi:

    • A2 ottimizzata per l'acceleratore per le risorse tipo di macchina A2
    • A3 ottimizzato per l'acceleratore per le risorse tipo di macchina A3 Standard
    • A3 Mega ottimizzata per l'acceleratore per le risorse tipo di macchina A3 Mega
    • C2 ottimizzato per il calcolo per risorse tipo di macchina C2
    • C2D ottimizzato per il calcolo per risorse tipo di macchina C2D
    • C3 per uso generico per risorse tipo di macchina C3
    • C3D per uso generico per le risorse tipo di macchina C3D
    • N1 per uso generico per risorse di tipo di macchina N1
    • N2 per uso generico per risorse di tipo di macchina N2
    • N2D per uso generico per risorse macchina N2D
    • G2 ottimizzato per la grafica per risorse tipo di macchina G2
    • Risorse del tipo di macchina M3 ottimizzate per la memoria forM3
    • Z3 ottimizzato per lo spazio di archiviazione per le risorse del tipo di macchina Z3

  6. Nel campo Durata, seleziona la durata del periodo dell'impegno.

  7. Nel campo Core, inserisci il numero di vCPU su cui vuoi impegnarti.

  8. Nel campo Memoria, inserisci la quantità, in GB, di memoria che vuoi impegnare.

  9. Per impegnarti per le GPU, nella sezione GPU, fai clic su Aggiungi GPU, quindi segui questi passaggi:

    1. Nel campo Tipo di GPU, seleziona il tipo di GPU.
    2. Nel campo Numero di GPU, inserisci il numero di GPU.
    3. (Facoltativo) Se il tuo modello di GPU supporta le workstation virtuali (vWS) NVIDIA RTX per carichi di lavoro di grafica e prevedi di eseguire carichi di lavoro ad alta intensità di grafica, seleziona la casella di controllo Abilita workstation virtuale (NVIDIA GRID).
  10. Per eseguire il commit dei dischi SSD locali, nella sezione SSD locali, fai clic su Aggiungi SSD e specifica il numero di dischi nel campo Numero di SSD.

  11. Per collegare una o più prenotazioni esistenti all'impegno, nel campo Prenotazioni seleziona Collega prenotazioni esistenti.

    La console Google Cloud mostra un elenco di tutte le prenotazioni nel progetto le cui regione, tipo di macchina e tipo di GPU corrispondono all'impegno. Poi segui questi passaggi:

    1. Facoltativo. Per visualizzare le prenotazioni con proprietà specifiche, nel menu Filtro aggiungi o rimuovi i filtri per le proprietà che ti interessano.
    2. Seleziona tutte le prenotazioni che vuoi collegare all'impegno.
  12. Per completare l'acquisto dell'impegno con le prenotazioni allegate:

    1. Fai clic su Acquista.
    2. Nella finestra di dialogo Acquista uno sconto per impegno di utilizzo, se accetti i termini specifici del servizio, fai di nuovo clic su Acquista.

gcloud

Per acquistare un impegno collegando le prenotazioni esistenti, esegui il comando gcloud compute commitments create. Nel comando, includi il flag --existing-reservation per specificare una prenotazione esistente da collegare al tuo impegno. Includi una nuova istanza di questo flag per ogni prenotazione esistente che vuoi collegare. Puoi collegare al tuo impegno un numero qualsiasi di prenotazioni esistenti.

Ad esempio, per acquistare un impegno collegandovi due prenotazioni, esegui questo comando:

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
    --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
    --plan=DURATION \
    --type=COMMITMENT_TYPE \
    --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
    --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

Sostituisci quanto segue:

  • COMMITMENT_NAME: il nome dell'impegno.
  • REGION: la regione in cui si trova l'impegno.
  • PROJECT_ID: l'ID del progetto in cui vuoi acquistare l'impegno con le prenotazioni allegate.
  • DURATION: la durata del termine dell'impegno, 12-month o 36-month.
  • COMMITMENT_TYPE: tipo di impegno. I seguenti tipi di impegno offrono opzioni per GPU, dischi SSD locali o entrambi:

    • accelerator-optimized per risorse di tipo di macchina A2
    • accelerator-optimized-a3 per le risorse di tipo di macchina standard A3
    • accelerator-optimized-a3-mega per risorse di tipo di macchina A3 Mega
    • compute-optimized per le risorse del tipo di macchina C2
    • compute-optimized-c2d per le risorse del tipo di macchina C2D
    • compute-optimized-c3 per risorse di tipo di macchina C3
    • compute-optimized-c3d per le risorse di tipo di macchina C3D
    • general-purpose per risorse di tipo di macchina N1
    • general-purpose-n2 per risorse di tipo di macchina N2
    • general-purpose-n2d per le risorse macchina N2D
    • graphics-optimized per risorse di tipo di macchina G2
    • memory-optimized-m3 per risorse di tipo di macchina M3
    • storage-optimized-z3 per risorse di tipo di macchina Z3

  • COMMITTED_VCPUS: il numero di vCPU che vuoi includere nell'impegno. Il numero deve essere un numero intero positivo.

  • COMMITTED_MEMORY: la quantità di memoria, in MB o GB, che vuoi includere nell'impegno. Ad esempio, 10240MB o 10GB. Se non specifichi un'unità, Compute Engine utilizza GB come unità. Puoi acquistare memoria in incrementi di 0,25 GB.

  • COMMITTED_LOCAL_SSD: la quantità, in GB, di spazio SSD locale che vuoi includere nell'impegno. Ogni disco SSD locale è da 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: il numero di GPU che vuoi includere nell'impegno.

  • COMMITTED_ACCELERATOR_TYPE: il tipo di GPU che vuoi includere nell'impegno.

  • RESERVATION_NAME_1 e RESERVATION_NAME_2: i nomi delle prenotazioni esistenti che vuoi collegare all'impegno.

  • RESERVATION_ZONE_1 e RESERVATION_ZONE_2: le zone delle prenotazioni esistenti che vuoi collegare all'impegno.

Esempio: acquista un impegno collegando le prenotazioni esistenti

Supponi di avere due prenotazioni res-01 e res-02 nelle zone us-central1-a e us-central1-b del progetto myproject. Supponiamo che queste prenotazioni contengano una capacità combinata per 4 GPU NVIDIA P100 e 4 dischi SSD locali. Per acquistare un nuovo impegno nella regione us-central1 di questo progetto per queste GPU e dischi SSD locali e utilizzare le prenotazioni esistenti come prenotazioni collegate, esegui questo comando. Tieni presente che l'impegno di esempio contiene anche vCPU e memoria.

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --existing-reservation=name=res-01,zone=us-central1-a \
    --existing-reservation=name=res-02,zone=us-central1-b
    

REST

Per acquistare un impegno collegando le prenotazioni esistenti, effettua una richiesta POST al metodo regionCommitments.insert. Nella richiesta, includi il campo existingReservations per specificare un elenco separato da virgole di tutte le prenotazioni esistenti che vuoi allegare all'impegno. Puoi collegare un numero qualsiasi di prenotazioni esistenti al tuo impegno.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{
  "name": "COMMITMENT_NAME",
  "plan": "DURATION",
  "type": COMMITMENT_TYPE,
  "resources":
  [
    {
      "amount": "COMMITTED_VCPUS",
      "type": "VCPU"
    },
    {
      "amount": "COMMITTED_MEMORY",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
      "amount": "COMMITTED_ACCELERATOR_COUNT",
      "type": "ACCELERATOR"
    }
    {
      "amount": "COMMITTED_LOCAL_SSD",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations": "RESERVATION_URLs"
}

Sostituisci quanto segue:

  • COMMITMENT_NAME: il nome dell'impegno.
  • REGION: la regione in cui si trova l'impegno.
  • PROJECT_ID: l'ID del progetto in cui vuoi acquistare l'impegno con le prenotazioni allegate.
  • DURATION: la durata del periodo dell'impegno, TWELVE_MONTH o THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: tipo di impegno. I seguenti tipi di impegno offrono opzioni per GPU, dischi SSD locali o entrambi:

    • ACCELERATOR_OPTIMIZED per risorse di tipo di macchina A2
    • ACCELERATOR_OPTIMIZED_A3 per le risorse di tipo di macchina standard A3
    • ACCELERATOR_OPTIMIZED_A3_MEGA per risorse di tipo di macchina A3 Mega
    • COMPUTE_OPTIMIZED per le risorse del tipo di macchina C2
    • COMPUTE_OPTIMIZED_C2D per le risorse del tipo di macchina C2D
    • COMPUTE_OPTIMIZED_C3 per risorse di tipo di macchina C3
    • COMPUTE_OPTIMIZED_C3D per le risorse di tipo di macchina C3D
    • GENERAL_PURPOSE per risorse di tipo di macchina N1
    • GENERAL_PURPOSE_N2 per risorse di tipo di macchina N2
    • GENERAL_PURPOSE_N2D per le risorse macchina N2D
    • GRAPHICS_OPTIMIZED per risorse di tipo di macchina G2
    • MEMORY_OPTIMIZED_M3 per risorse di tipo di macchina M3
    • STORAGE_OPTIMIZED_Z3 per risorse di tipo di macchina Z3

  • COMMITTED_VCPUS: il numero di vCPU che vuoi includere nell'impegno. Il numero deve essere un numero intero positivo.

  • COMMITTED_MEMORY: la quantità di memoria, in MB, che vuoi includere nell'impegno. Ad esempio, 10240MB. Puoi acquistare memoria in incrementi di 256 MB.

  • COMMITTED_LOCAL_SSD: la quantità, in GB, di spazio di archiviazione SSD locale che vuoi includere nell'impegno. Ogni disco SSD locale è da 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: il numero di GPU che vuoi includere nell'impegno.

  • COMMITTED_ACCELERATOR_TYPE: il tipo di GPU che vuoi includere nell'impegno.

  • RESERVATION_URLs: un elenco separato da virgole di URL delle prenotazioni esistenti da collegare all'impegno. Ad esempio, per collegare due prenotazioni, res-1 e res-2, specifica quanto segue:

    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
    

Esempio: acquista un impegno collegando le prenotazioni esistenti

Supponi di avere due prenotazioni res-01 e res-02 nelle zone us-central1-a e us-central1-b del progetto myproject. Supponiamo che queste prenotazioni contengano una capacità combinata per 4 GPU NVIDIA P100 e 4 dischi SSD locali. Per acquistare un nuovo impegno nella regione us-central1 di questo progetto per queste GPU e dischi SSD locali e per utilizzare queste prenotazioni esistenti come prenotazioni collegate, effettua la seguente richiesta POST. Tieni presente che anche l'impegno di esempio contiene vCPU e memoria.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    },
    {
      "amount": "1536000",
      "type": "LOCAL_SSD"
    }
  ],
  "existingReservations":
  [
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01",
    "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02"
  ]
}

Crea nuove prenotazioni da collegare

Puoi creare le prenotazioni collegate durante l'acquisto dell'impegno utilizzando la console Google Cloud, Google Cloud CLI o REST.

Console

Prima di acquistare un impegno utilizzando la console Google Cloud, seleziona il progetto che vuoi utilizzare per acquistare l'impegno. Se la condivisione dello sconto per impegno di utilizzo (CUD) è abilitata per un account di fatturazione Cloud, puoi acquistare l'impegno utilizzando qualsiasi progetto da quell'account di fatturazione Cloud. Dopo aver selezionato il progetto, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Sconti per impegno di utilizzo.

    Vai a Sconti per impegno di utilizzo

  2. Per acquistare un impegno, fai clic su Acquista impegno. Si apre la pagina Acquista uno sconto per impegno di utilizzo, che mostra la scheda Hardware.

  3. Nel campo Nome, inserisci un nome per l'impegno.

  4. Nel campo Regione, seleziona la regione in cui vuoi impegnarti per le risorse Compute Engine.

  5. Nel campo Tipo di impegno, seleziona la serie di famiglie di macchine per le risorse impegnate. I seguenti tipi di impegno forniscono opzioni per GPU, dischi SSD locali o entrambi:

    • A2 ottimizzata per l'acceleratore per le risorse tipo di macchina A2
    • A3 ottimizzato per l'acceleratore per le risorse tipo di macchina A3 Standard
    • A3 Mega ottimizzata per l'acceleratore per le risorse tipo di macchina A3 Mega
    • C2 ottimizzato per il calcolo per risorse tipo di macchina C2
    • C2D ottimizzato per il calcolo per risorse tipo di macchina C2D
    • C3 per uso generico per risorse tipo di macchina C3
    • C3D per uso generico per le risorse tipo di macchina C3D
    • N1 per uso generico per risorse di tipo di macchina N1
    • N2 per uso generico per risorse di tipo di macchina N2
    • N2D per uso generico per risorse macchina N2D
    • G2 ottimizzato per la grafica per risorse tipo di macchina G2
    • Risorse del tipo di macchina M3 ottimizzate per la memoria forM3
    • Z3 ottimizzato per lo spazio di archiviazione per le risorse del tipo di macchina Z3

  6. In Durata, scegli 1 anno o 3 anni come durata del periodo dell'impegno.

  7. Nel campo Core, inserisci il numero di vCPU su cui vuoi impegnarti.

  8. Nel campo Memoria, inserisci la quantità, in GB, di memoria che vuoi impegnare.

  9. Per impegnarti per le GPU, nella sezione GPU, fai clic su Aggiungi GPU, quindi segui questi passaggi:

    1. Nel campo Tipo di GPU, seleziona il tipo di GPU.
    2. Nel campo Numero di GPU, inserisci il numero di GPU.
    3. (Facoltativo) Se il tuo modello di GPU supporta le workstation virtuali (vWS) NVIDIA RTX per carichi di lavoro di grafica e prevedi di eseguire carichi di lavoro ad alta intensità di grafica, seleziona la casella di controllo Abilita workstation virtuale (NVIDIA GRID).
  10. Per eseguire il commit dei dischi SSD locali, nella sezione SSD locali, fai clic su Aggiungi SSD e specifica il numero di dischi nel campo Numero di SSD.

  11. Per creare una nuova prenotazione e collegarla all'impegno, nel campo Prenotazioni seleziona Crea prenotazioni e poi procedi nel seguente modo. Ripeti questo passaggio per ogni nuova prenotazione che vuoi creare e collegare.

    1. Fai clic su Aggiungi una prenotazione. Viene visualizzata la sezione Nuova prenotazione.
    2. Nel campo Nome, inserisci un nome per la prenotazione allegata.
    3. Nel campo Regione, seleziona la stessa regione dell'impegno.
    4. Nel campo Zona, seleziona la zona in cui vuoi prenotare le risorse.
    5. Nella sezione Tipo di condivisione, specifica come vuoi condividere questa prenotazione in uno dei seguenti modi:

      • Per creare una prenotazione per un singolo progetto, seleziona Locale.
      • Per creare una prenotazione condivisa con più progetti, seleziona Condiviso. Quindi, per specificare i progetti con cui condividere la prenotazione, fai clic su Aggiungi progetti e seleziona i progetti che ti interessano dall'organizzazione del progetto attuale.
    6. Nel campo Utilizza con istanza VM, seleziona in che modo vuoi che le VM utilizzino la prenotazione in uno dei seguenti modi:

      • Per consentire alle VM con proprietà corrispondenti di utilizzare automaticamente questa prenotazione, fai clic su Utilizza automaticamente la prenotazione (impostazione predefinita).
      • Per utilizzare le risorse di questa prenotazione solo quando crei VM con proprietà corrispondenti che hanno come target questa prenotazione in modo specifico per nome, fai clic su Seleziona una prenotazione specifica.
    7. Nella sezione Dettagli risorsa, segui questi passaggi:

      1. Nel campo Numero di istanze VM, inserisci il numero di istanze VM che vuoi prenotare.
      2. Nella sezione Configurazione macchina, specifica le proprietà delle VM prenotate in uno dei seguenti modi:

        1. Per specificare le proprietà delle VM utilizzando un modello di istanza esistente, seleziona Utilizza modello di istanza.

          Nel campo Modello di istanza, seleziona un modello di istanza che specifichi la stessa serie di famiglie di macchine del tuo impegno. Se selezioni un modello di istanza regionale, anche la regione di quel modello deve corrispondere alla regione specificata nell'impegno.

        2. Per specificare manualmente le proprietà delle VM, seleziona Seleziona il tipo di macchina e poi segui questi passaggi:

          1. Seleziona la famiglia di macchine applicabile alla serie di macchine specificata per l'impegno:

            • Uso generico per serie di macchine per uso generico
            • Ottimizzato per il calcolo per serie di macchine ottimizzate per il calcolo
            • Ottimizzata per la memoria per serie di macchine ottimizzate per la memoria
            • GPU per serie di macchine ottimizzate per l'acceleratore
          2. Nella tabella contenente la colonna Serie, seleziona la stessa serie di macchine specificata per l'impegno.

          3. Nel campo Tipo di macchina, specifica un tipo di macchina predefinita o personalizzata in uno dei seguenti modi:

            1. Per scegliere un tipo di macchina predefinita, seleziona Preimpostazione, poi seleziona il tipo di macchina che preferisci.
            2. Per scegliere un tipo di macchina personalizzata, seleziona Personalizzata e specifica i Core e la Memoria che preferisci.
          4. Per specificare una piattaforma CPU minima, GPU o entrambe, espandi il menu Piattaforma CPU e GPU ed effettua le seguenti operazioni:

            1. (Facoltativo) Per specificare una piattaforma CPU minima, seleziona un'opzione nell'elenco Plaform CPU.
            2. (Facoltativo) Per prenotare GPU, fai clic su Aggiungi GPU. Quindi, nei campi Tipo di GPU e Numero di GPU, seleziona il tipo e il numero di GPU per ogni VM.

          5. Per prenotare dischi SSD locali:

            1. Nel campo Numero di dischi, seleziona il numero di dischi SSD locali che vuoi per ogni VM.
            2. Nel campo Tipo di interfaccia, seleziona l'interfaccia per i dischi SSD locali.
    8. Per completare la specifica delle proprietà per questa prenotazione, fai clic su Fine.

  12. Per completare l'acquisto dell'impegno con le prenotazioni allegate:

    1. Fai clic su Acquista.
    2. Nella finestra di dialogo Acquista uno sconto per impegno di utilizzo, se accetti i termini specifici del servizio, fai di nuovo clic su Acquista.

gcloud

Per creare le prenotazioni collegate durante l'acquisto dell'impegno, esegui il comando gcloud compute commitments create.

A seconda che tu voglia collegare una singola prenotazione o più prenotazioni, esegui il comando in uno dei seguenti modi:

  • Per creare e collegare una singola prenotazione al tuo impegno, definisci le proprietà della prenotazione collegata eseguendo questo comando:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan DURATION \
        --type COMMITMENT_TYPE
        --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
        --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
        --reservation=RESERVATION_NAME \
        --reservation-zone=RESERVATION_ZONE \
        --machine-type=RESERVED_MACHINE_TYPE \
        --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \
        --vm-count=NUMBER_OF_RESERVED_VMs \
        --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \
        --local-ssd=interface=INTERFACE_1,size=375 \
        --local-ssd=interface=INTERFACE_2,size=375 \
        --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \
        --share-setting=SHARE_SETTING \
        --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
    
  • Per creare e collegare più prenotazioni al tuo impegno, definisci le proprietà della prenotazione utilizzando un file YAML e specifica tale file YAML nel comando che utilizzi per acquistare l'impegno. Facoltativamente, puoi anche utilizzare questo approccio basato sui file YAML per creare e collegare una singola prenotazione al tuo impegno. Per creare le prenotazioni collegate utilizzando questo approccio, segui questi passaggi:

    1. Crea il file YAML nella directory corrente e specifica la configurazione che preferisci per ogni prenotazione allegata. Ad esempio, per specificare la configurazione di una prenotazione condivisa con due progetti che specificano GPU, due dischi SSD locali e una piattaforma CPU minima, includi il seguente testo nel file YAML:

      - reservation: RESERVATION_NAME
        reservation_zone: RESERVATION_ZONE
        require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE
        vm_count: NUMBER_OF_RESERVED_VMs
        machine_type: RESERVED_MACHINE_TYPE
        accelerator:
        - count: RESERVED_ACCELERATOR_COUNT
          type: RESERVED_ACCELERATOR_TYPE
        localssd:
        - interface: INTERFACE_1
          size: 375
        - interface: INTERFACE_2
          size: 375
        project: OWNER_PROJECT_ID
        minimum-cpu-platform: MINIMUM_CPU_PLATFORM
        share-setting: SHARE_SETTING
        share-with:
        - CONSUMER_PROJECT_ID_1
        - CONSUMER_PROJECT_ID_2
      
      

      Per specificare la configurazione di più prenotazioni, ripeti queste proprietà per ogni prenotazione che vuoi creare. Puoi collegare il numero di prenotazioni esistenti a cui vuoi impegnarti.

    2. Esegui il comando gcloud compute commitments create e includi il flag --reservation-from-file.

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan DURATION \
          --type COMMITMENT_TYPE \
          --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
          --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
          --reservations-from-file=YAML_FILE
      

Sostituisci quanto segue con le proprietà corrispondenti dell'impegno e le prenotazioni allegate:

Impegno

  • COMMITMENT_NAME: il nome dell'impegno.
  • REGION: la regione in cui si trova l'impegno.
  • PROJECT_ID: l'ID del progetto in cui vuoi acquistare l'impegno con le prenotazioni allegate.
  • DURATION: la durata del periodo dell'impegno, 12-month o 36-month.
  • COMMITMENT_TYPE: tipo di impegno. I seguenti tipi di impegno offrono opzioni per GPU, dischi SSD locali o entrambi:

    • accelerator-optimized per risorse di tipo di macchina A2
    • accelerator-optimized-a3 per le risorse di tipo di macchina standard A3
    • accelerator-optimized-a3-mega per risorse di tipo di macchina A3 Mega
    • compute-optimized per le risorse del tipo di macchina C2
    • compute-optimized-c2d per le risorse del tipo di macchina C2D
    • compute-optimized-c3 per risorse di tipo di macchina C3
    • compute-optimized-c3d per le risorse di tipo di macchina C3D
    • general-purpose per risorse di tipo di macchina N1
    • general-purpose-n2 per risorse di tipo di macchina N2
    • general-purpose-n2d per le risorse macchina N2D
    • graphics-optimized per risorse di tipo di macchina G2
    • memory-optimized-m3 per risorse di tipo di macchina M3
    • storage-optimized-z3 per risorse di tipo di macchina Z3

  • COMMITTED_VCPUS: il numero di vCPU che vuoi includere nell'impegno. Il numero deve essere un numero intero positivo.

  • COMMITTED_MEMORY: la quantità di memoria, in MB o GB, che vuoi includere nell'impegno. Ad esempio, 10GB o 10240MB. Se non specifichi un'unità, Compute Engine utilizza GB come unità. Puoi acquistare memoria in incrementi di 0,25 GB.

  • COMMITTED_LOCAL_SSD: la quantità, in GB, di spazio di archiviazione SSD locale che vuoi includere nell'impegno. Ogni disco SSD locale è da 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: il numero di GPU che vuoi includere nell'impegno.

  • COMMITTED_ACCELERATOR_TYPE: il tipo di GPU che vuoi includere nell'impegno.

  • YAML_FILE: il percorso del file YAML che contiene la configurazione delle prenotazioni allegate.

Prenotazioni collegate

  • RESERVATION_NAME: il nome della prenotazione allegata.
  • RESERVATION_ZONE: la zona della prenotazione collegata.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: specifica se la prenotazione allegata è una prenotazione con target specifico; true o false. Per ulteriori informazioni sulle prenotazioni con targeting specifico, consulta Come funzionano le prenotazioni.
  • NUMBER_OF_RESERVED_VMS: il numero di VM che vuoi prenotare nella prenotazione allegata.
  • RESERVED_MACHINE_TYPE: il tipo di macchina che vuoi per le VM nella prenotazione collegata.

    • Per i tipi di macchine predefinite, utilizza il formato MACHINE_FAMILY-standard-CPUS, ad esempio n2-standard-4.
    • Per i tipi di macchine personalizzate, utilizza il formato MACHINE_FAMILY-custom-CPUS-MEMORY, ad esempio n2-custom-4-5120. Per un elenco completo delle limitazioni, leggi le specifiche relative ai tipi di macchine personalizzate.

      Sostituisci quanto segue:

      • MACHINE_FAMILY: la famiglia di tipi di macchine; ad esempio, specifica n2 per le VM N2.
      • CPUS: il numero di vCPUs.
      • MEMORY: la memoria totale per una VM prenotata. La memoria deve essere un multiplo di 256 MB e deve essere fornita in MB; ad esempio, per creare una VM N2 con 4 vCPU e 5 GB di memoria, ovvero 5120 MB, utilizza n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: il numero di GPU che vuoi aggiungere, per VM, nella prenotazione allegata.

  • RESERVED_ACCELERATOR_TYPE: il tipo di acceleratore che vuoi aggiungere nella prenotazione allegata.

  • INTERFACE_1 e INTERFACE_2: il tipo di interfaccia che vuoi utilizzare i dischi SSD locali per ogni VM prenotata. Le opzioni valide sono: scsi e nvme. Ogni disco SSD locale ha una dimensione di 375 GB. Ripeti il parametro local_ssd per ogni disco SSD locale che vuoi aggiungere. Puoi specificare fino a 24 dischi SSD locali.

  • OWNER_PROJECT_ID: l'ID del progetto in cui vuoi acquistare l'impegno con la prenotazione allegata. Specifica questo campo se vuoi condividere la prenotazione collegata tra più progetti consumer.

  • MINIMUM_CPU_PLATFORM: la piattaforma CPU minima che vuoi specificare per la prenotazione collegata.

  • SHARE_SETTING: il tipo di condivisione per la prenotazione allegata. Specifica questo campo con il valore projects se vuoi condividere la prenotazione associata tra più progetti consumer. Escludi questo campo se vuoi creare una prenotazione per un singolo progetto.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: gli ID progetto dei progetti che possono condividere questa prenotazione, ad esempio project-1 e project-2. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto del proprietario. Non includere l'ID del progetto in cui crei questa prenotazione, poiché il progetto può utilizzare questa prenotazione per impostazione predefinita. Escludi questi campi se vuoi creare una prenotazione per un singolo progetto.

Compute Engine crea l'impegno e le prenotazioni collegate solo se nella zona di destinazione sono presenti risorse sufficienti per il tipo di macchina specificato e una quota sufficiente al momento della richiesta. Se l'acquisto è andato a buon fine, viene visualizzato un messaggio di operazione riuscita simile al seguente:

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

Esempi di impegni di acquisto mediante la creazione di nuove prenotazioni da collegare

I seguenti scenari e comandi di esempio mostrano come acquistare un impegno per GPU, dischi SSD locali o entrambi creando nuove prenotazioni da collegare a questo impegno.

Esempio 1: acquistare un impegno per le GPU mediante il collegamento di una nuova prenotazione

Supponiamo di voler acquistare un impegno commitment-01 nella regione us-central1 che include 4 GPU NVIDIA V100. Vuoi creare una nuova prenotazione reservation-01 come prenotazione collegata per le GPU. Supponi anche di voler specificare che Compute Engine utilizzi le GPU prenotate su 2 VM n1-standard-32 nella zona us-central1-a. Per acquistare questo impegno di esempio con la prenotazione allegata, esegui questo comando:

gcloud compute commitments create commitment-01 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624GB \
    --resources-accelerator=type=nvidia-tesla-v100,count=4 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-central1-a \
    --machine-type=n1-standard-32 \
    --accelerator=type=nvidia-tesla-v100,count=2 \
    --vm-count=2

Esempio 2: acquista un impegno per le GPU senza impegnarti in vCPU o memoria

Per eseguire il commit e la prenotazione di GPU e dischi SSD locali senza impegnarsi in vCPU o memoria, specifica 0 come valore per le quantità di vCPU e memoria. Ad esempio, supponi di voler acquistare un impegno commitment-02 per una singola GPU NVIDIA P4 nella regione us-west2. Vuoi anche creare una nuova prenotazione come prenotazione collegata e specificare che Compute Engine deve utilizzare la GPU prenotata su una VM n1-standard-2 nella zona us-west2-b. Per acquistare questo impegno di esempio con la prenotazione allegata, esegui questo comando:

gcloud compute commitments create commitment-02 \
    --region=us-west2 \
    --project=myproject \
    --resources=vcpu=0,memory=0 \
    --resources-accelerator=type=nvidia-tesla-p4,count=1 \
    --plan 12-month \
    --reservation=reservation-01 \
    --reservation-zone=us-west2-b \
    --machine-type=n1-standard-2 \
    --accelerator=type=nvidia-tesla-p4,count=1 \
    --vm-count=1

Esempio 3: acquista un impegno per GPU e dischi SSD locali collegando più nuove prenotazioni

Supponiamo di voler acquistare un impegno commitment-03 per 1 GPU NVIDIA V 100 e 2 dischi SSD locali nella regione us-central1. Vuoi anche creare e collegare due prenotazioni nella zona us-central1-a. Nella prima prenotazione, res-01, vuoi prenotare 1 VM n1-standard-2 con 1 GPU. Vuoi rendere res-01 una prenotazione target, il che significa che devi scegliere come target specificatamente la prenotazione per nome per utilizzare le relative VM prenotate. Nella seconda prenotazione, res-02, vuoi prenotare 1 VM n1-standard-8 con 2 tipi di dischi SSD locali collegati.

Per acquistare questo impegno di esempio con le prenotazioni allegate, devi prima creare il file YAML con le proprietà di entrambe le prenotazioni.

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-8
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

Dopo aver creato il file YAML, per completare l'acquisto dell'impegno con le prenotazioni allegate, esegui questo comando. Tieni presente che l'impegno di esempio contiene anche risorse vCPU e di memoria.

gcloud compute commitments create commitment-03 \
    --region=us-central1 \
    --project=myproject \
    --resources=vcpu=96,memory=624,local-ssd=750 \
    --resources-accelerator=type=nvidia-tesla-v100,count=1 \
    --plan 12-month \
    --reservations-from-file=YAML_FILE

REST

Per creare le prenotazioni allegate durante l'acquisto del tuo impegno, effettua una richiesta POST al metodo regionCommitments.insert. Nella richiesta, includi il campo reservations per definire un elenco di tutte le nuove prenotazioni che vuoi creare e collegare. Puoi collegare al tuo impegno il numero di prenotazioni esistenti che vuoi.

  • Per creare la nuova prenotazione specificando manualmente tutte le proprietà VM, includi il campo instanceProperties ed escludi il campo sourceInstanceTemplate.

    Ad esempio, per specificare manualmente la configurazione di una prenotazione condivisa condivisa con due progetti che specificano GPU, due dischi SSD locali e una piattaforma CPU minima, effettua la richiesta seguente:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "RESERVED_ACCELERATOR_COUNT",
                "acceleratorType": "RESERVED_ACCELERATOR_TYPE"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_1"
              },
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_2"
              }
            ],
            "machineType": "RESERVED_MACHINE_TYPE",
            "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
          }
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    
  • Per creare la nuova prenotazione specificando un modello di istanza, includi il campo sourceInstanceTemplate ed escludi il campo instanceProperties.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
    
    {
    "name": "COMMITMENT_NAME",
    "plan": "DURATION",
    "type": COMMITMENT_TYPE,
    "resources":
    [
      {
        "amount": "COMMITTED_VCPUS",
        "type": "VCPU"
      },
      {
        "amount": "COMMITTED_MEMORY",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
        "amount": "COMMITTED_ACCELERATOR_COUNT",
        "type": "ACCELERATOR"
      }
      {
        "amount": "COMMITTED_LOCAL_SSD",
        "type": "LOCAL_SSD"
      }
    ],
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    

Sostituisci quanto segue con le proprietà corrispondenti dell'impegno e le prenotazioni allegate:

Impegno

  • COMMITMENT_NAME: il nome dell'impegno.
  • REGION: la regione in cui si trova l'impegno.
  • PROJECT_ID: l'ID del progetto in cui vuoi acquistare l'impegno con le prenotazioni allegate.
  • DURATION: la durata del termine dell'impegno, TWELVE_MONTH o THIRTY_SIX_MONTH.
  • COMMITMENT_TYPE: tipo di impegno. I seguenti tipi di impegno offrono opzioni per GPU, dischi SSD locali o entrambi:

    • ACCELERATOR_OPTIMIZED per risorse di tipo di macchina A2
    • ACCELERATOR_OPTIMIZED_A3 per le risorse di tipo di macchina standard A3
    • ACCELERATOR_OPTIMIZED_A3_MEGA per risorse di tipo di macchina A3 Mega
    • COMPUTE_OPTIMIZED per le risorse del tipo di macchina C2
    • COMPUTE_OPTIMIZED_C2D per le risorse del tipo di macchina C2D
    • COMPUTE_OPTIMIZED_C3 per risorse di tipo di macchina C3
    • COMPUTE_OPTIMIZED_C3D per le risorse di tipo di macchina C3D
    • GENERAL_PURPOSE per risorse di tipo di macchina N1
    • GENERAL_PURPOSE_N2 per risorse di tipo di macchina N2
    • GENERAL_PURPOSE_N2D per le risorse macchina N2D
    • GRAPHICS_OPTIMIZED per risorse di tipo di macchina G2
    • MEMORY_OPTIMIZED_M3 per risorse di tipo di macchina M3
    • STORAGE_OPTIMIZED_Z3 per risorse di tipo di macchina Z3

  • COMMITTED_VCPUS: il numero di vCPU che vuoi includere nell'impegno. Il numero deve essere un numero intero positivo.

  • COMMITTED_MEMORY: la quantità di memoria, in MB, che vuoi includere nell'impegno. Ad esempio, 10240MB. Puoi acquistare memoria in incrementi di 256 MB.

  • COMMITTED_LOCAL_SSD: la quantità, in GB, di spazio di archiviazione SSD locale che vuoi includere nell'impegno. Ogni disco SSD locale è da 375 GB.

  • COMMITTED_ACCELERATOR_COUNT: il numero di GPU che vuoi includere nell'impegno.

  • COMMITTED_ACCELERATOR_TYPE: il tipo di GPU che vuoi includere nell'impegno.

Prenotazioni collegate

  • RESERVATION_NAME: il nome della prenotazione allegata.
  • RESERVATION_ZONE: la zona della prenotazione collegata.
  • REQUIRE_SPECIFIC_RESERVATION_VALUE: specifica se la prenotazione allegata è una prenotazione con target specifico; true o false. Per ulteriori informazioni sulle prenotazioni con targeting specifico, consulta Come funzionano le prenotazioni.
  • NUMBER_OF_RESERVED_VMS: il numero di VM che vuoi prenotare nella prenotazione allegata.
  • RESERVED_MACHINE_TYPE: il tipo di macchina che vuoi per le VM nella prenotazione collegata.

    • Per i tipi di macchine predefinite, utilizza il formato MACHINE_FAMILY-standard-CPUS, ad esempio n2-standard-4.
    • Per i tipi di macchine personalizzate, utilizza il formato MACHINE_FAMILY-custom-CPUS-MEMORY, ad esempio n2-custom-4-5120. Per un elenco completo delle limitazioni, leggi le specifiche relative ai tipi di macchine personalizzate.

      Sostituisci quanto segue:

      • MACHINE_FAMILY: la famiglia di tipi di macchine; ad esempio, specifica n2 per le VM N2.
      • CPUS: il numero di vCPUs.
      • MEMORY: la memoria totale per una VM prenotata. La memoria deve essere un multiplo di 256 MB e deve essere fornita in MB; ad esempio, per creare una VM N2 con 4 vCPU e 5 GB di memoria, ovvero 5120 MB, utilizza n2-custom-4-5120.
  • RESERVED_ACCELERATOR_COUNT: il numero di GPU che vuoi aggiungere, per VM, nella prenotazione allegata.

  • RESERVED_ACCELERATOR_TYPE: il tipo di acceleratore che vuoi aggiungere nella prenotazione allegata.

  • INTERFACE_1 e INTERFACE_2: il tipo di interfaccia che vuoi venga utilizzato dai dischi SSD locali per ogni VM prenotata. Le opzioni valide sono: scsi e nvme. Ogni disco SSD locale è da 375 GB. Ripeti il parametro localSsds per ogni disco SSD locale che vuoi aggiungere. Puoi specificare fino a 24 dischi SSD locali.

  • MINIMUM_CPU_PLATFORM: la piattaforma CPU minima che vuoi specificare per la prenotazione collegata.

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza da utilizzare per creare la prenotazione allegata.

  • SHARE_SETTING: il tipo di condivisione per la prenotazione allegata. Specifica questo campo con il valore SPECIFIC_PROJECTS se vuoi condividere la prenotazione associata tra più progetti consumer. Escludi questo campo se vuoi creare una prenotazione per un singolo progetto.

  • CONSUMER_PROJECT_ID_1 e CONSUMER_PROJECT_ID_2: gli ID progetto dei progetti che possono condividere questa prenotazione, ad esempio project-1 e project-2. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto del proprietario. Non includere l'ID del progetto in cui crei questa prenotazione, poiché il progetto può utilizzare questa prenotazione per impostazione predefinita. Escludi questi campi se vuoi creare una prenotazione per un singolo progetto.

Compute Engine crea l'impegno e le prenotazioni associate solo se nella zona di destinazione ci sono risorse sufficienti per il tipo di macchina specificato e una quota sufficiente al momento della richiesta. Se l'acquisto è riuscito, Compute Engine restituisce uno stato 200 per la tua richiesta API REST.

Esempi di impegni di acquisto mediante la creazione di nuove prenotazioni da collegare

I seguenti scenari e comandi di esempio mostrano come acquistare un impegno per GPU, dischi SSD locali o entrambi creando nuove prenotazioni da collegare a questo impegno.

Esempio 1: acquistare un impegno per le GPU mediante il collegamento di una nuova prenotazione

Supponiamo di voler acquistare un impegno commitment-01 nella regione us-central1 che include 4 GPU NVIDIA V100. Vuoi creare una nuova prenotazione reservation-01 come prenotazione collegata per le GPU. Supponi anche di voler specificare che Compute Engine utilizzi le GPU prenotate in 2 VM n1-standard-8 nella zona us-central1-a. Per acquistare questo impegno di esempio con la prenotazione allegata, effettua la seguente richiesta POST:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-01",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE"
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "2",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 2,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

Esempio 2: acquista un impegno per le GPU senza impegnarti in vCPU o memoria

Per eseguire il commit e la prenotazione di GPU e dischi SSD locali senza impegnarsi in vCPU o memoria, specifica 0 come valore per le quantità di vCPU e memoria. Ad esempio, supponi di voler acquistare un impegno commitment-02 per una singola GPU NVIDIA P4 nella regione us-west2. Inoltre, dovrai creare una nuova prenotazione come prenotazione collegata e specificare che Compute Engine deve utilizzare la GPU prenotata su una VM n1-standard-2 nella zona us-west2-b. Per acquistare questo impegno di esempio con la prenotazione allegata, effettua la seguente richiesta POST:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments

{
  "name": "commitment-02",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "0",
      "type": "VCPU"
    },
    {
      "amount": "0",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-p4",
      "amount": "4",
      "type": "ACCELERATOR"
    }
  ],
  "reservations":
  [
    {
      "name": "reservation-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 4,
              "acceleratorType": "nvidia-tesla-p4"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-west2-b"
    }
  ]
}

Esempio 3: acquista un impegno per GPU e dischi SSD locali collegando più nuove prenotazioni

Supponiamo di voler acquistare un impegno commitment-03 per 1 GPU NVIDIA V 100 e 2 dischi SSD locali nella regione us-central1. Vuoi anche creare e collegare due prenotazioni nella zona us-central1-a. Nella prima prenotazione, res-01, vuoi prenotare 1 VM n1-standard-2 con 1 GPU. Vuoi rendere res-01 una prenotazione target, il che significa che devi scegliere come target specificatamente la prenotazione per nome per utilizzare le relative VM prenotate. Nella seconda prenotazione, res-02, vuoi prenotare 1 VM n1-standard-8 con 2 tipi di dischi SSD locali collegati. Per acquistare questo impegno di esempio con le prenotazioni allegate, effettua la seguente richiesta POST. Tieni presente che l'impegno di esempio contiene anche risorse vCPU e di memoria.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{
  "name": "commitment-03",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE",
  "resources":
  [
    {
      "amount": "96",
      "type": "VCPU"
    },
    {
      "amount": "638976",
      "type": "MEMORY"
    },
    {
      "acceleratorType": "nvidia-tesla-v100",
      "amount": "1",
      "type": "ACCELERATOR"
    },
    {
      "amount": "768000",
      "type": "LOCAL_SSD"
    }
  ],
  "reservations":
  [
    {
      "name": "res-01",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": 1,
              "acceleratorType": "nvidia-tesla-v100"
            }
          ],
          "machineType": "n1-standard-2"
        }
      },
      "specificReservationRequired": true,
      "zone": "us-central1-a"
    },
    {
      "name": "res-02",
      "specificReservation":
      {
        "count": "1",
        "instanceProperties":
        {
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "SCSI"
            },
            {
              "diskSizeGb": "375",
              "interface": "NVME"
            }
          ]
          "machineType": "n1-standard-8"
        }
      },
      "specificReservationRequired": false,
      "zone": "us-central1-a"
    }
  ]
}

Sostituisci le prenotazioni collegate agli impegni

Sostituisci le prenotazioni collegate esistenti dell'impegno con nuove prenotazioni se vuoi modificare i tipi e il numero di VM che utilizzano le risorse impegnate.

Modifiche consentite

Quando sostituisci la prenotazione collegata a un impegno esistente con una nuova, puoi richiedere una delle seguenti modifiche:

  • Puoi prenotare le VM da un tipo di macchina diverso. Tuttavia, devi comunque prenotare le VM della stessa serie di macchine per continuare a ricevere gli sconti per impegno di utilizzo (CUD) per le risorse prenotate.
  • Puoi modificare il numero di VM che vuoi prenotare.
  • Puoi modificare la quantità di GPU e dischi SSD locali collegati per VM, purché la quantità totale di GPU e dischi SSD locali rimanga invariata.
  • Puoi specificare le prenotazioni sostituite come locali o condivise.

Requisiti

Quando sostituisci la prenotazione allegata all'impegno con una nuova, la richiesta deve soddisfare tutti i seguenti requisiti:

  • Puoi sostituire una sola prenotazione collegata alla volta con una sola nuova prenotazione collegata. Per sostituire una prenotazione collegata, rimuovi contemporaneamente una prenotazione collegata esistente impostando il conteggio delle relative VM su 0 e definisci una nuova prenotazione collegata con cui sostituirla.
  • La nuova prenotazione deve esistere nello stesso progetto dell'impegno.
  • La nuova prenotazione deve trovarsi nella stessa zona della prenotazione rimossa.
  • La quantità e i tipi di GPU specificati nella nuova prenotazione devono corrispondere alla prenotazione rimossa.
  • I numeri e i tipi di dischi SSD locali specificati nella nuova prenotazione devono corrispondere alla prenotazione rimossa.
  • Puoi modificare solo fino a 100 VM per richiesta. Per apportare una modifica che coinvolge più di 100 VM, dividila in più richieste più piccole o contatta l'assistenza Google Cloud.

La richiesta di sostituzione di una prenotazione dipende anche dalla disponibilità della capacità in quel momento. Se la capacità per una richiesta non è disponibile, la richiesta non va a buon fine e restituisce un errore di disponibilità delle risorse, che puoi provare a risolvere modificando o posticipando la richiesta.

Se la richiesta di sostituzione di una prenotazione collegata non va a buon fine, la prenotazione collegata e le risorse prenotate esistenti rimarranno invariate. Per preservare la capacità, attendi di apportare le modifiche corrispondenti alle VM finché la richiesta di sostituzione di una prenotazione non va a buon fine.

Procedura per sostituire una prenotazione allegata

Puoi sostituire le prenotazioni di un impegno utilizzando Google Cloud CLI o REST.

gcloud

Per sostituire le prenotazioni collegate agli impegni:

  1. Crea un file YAML nella directory attuale con le configurazioni delle seguenti prenotazioni allegate:

    I contenuti del file YAML sono simili ai seguenti:

    - reservation: CURRENT_RESERVATION_NAME
      reservation_zone: CURRENT_RESERVATION_ZONE
      vm_count: 0
      machine_type: CURRENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
        type: CURRENT_RESERVATION_ACCELERATOR_TYPE
      localssd:
      - interface: CURRENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: CURRENT_RESERVATION_INTERFACE_2
        size: 375
      project: CURRENT_RESERVATION_PROJECT_ID
      share-setting: CURRENT_RESERVATION_SHARE_SETTING
      share-with:
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
    - reservation: REPLACEMENT_RESERVATION_NAME
      reservation_zone: REPLACEMENT_RESERVATION_ZONE
      vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs
      machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT
        type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
      localssd:
      - interface: REPLACEMENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: REPLACEMENT_RESERVATION_INTERFACE_2
        size: 375
      project: REPLACEMENT_RESERVATION_PROJECT_ID
      share-setting: REPLACEMENT_RESERVATION_SHARE_SETTING
      share-with:
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
    
    

    Sostituisci quanto segue con le proprietà corrispondenti della prenotazione attuale e sostitutiva:

    Prenotazione attuale

    Per la prenotazione attuale, tutte le seguenti proprietà devono essere esattamente come quando hai visualizzato la prenotazione. Ometti i campi di tutte le proprietà non ancora presenti nella prenotazione attuale.

    • CURRENT_RESERVATION_NAME: il nome della prenotazione attualmente allegata.
    • CURRENT_RESERVATION_ZONE: la zona della prenotazione attualmente collegata.
    • CURRENT_RESERVATION_MACHINE_TYPE: il tipo di macchina della prenotazione attuale collegata.
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: il numero di GPU prenotate nell'attuale prenotazione collegata.
    • CURRENT_RESERVATION_ACCELERATOR_TYPE: il tipo di acceleratore prenotato nella prenotazione attualmente collegata.
    • CURRENT_RESERVATION_INTERFACE_1 e CURRENT_RESERVATION_INTERFACE_2: il tipo di interfaccia utilizzato dal disco SSD locale per ogni VM prenotata nell'attuale prenotazione collegata. Le opzioni valide sono: scsi e nvme. Ogni disco SSD locale è da 375 GB. Ripeti il parametro local_ssd per tutti i dischi SSD locali riservati.
    • CURRENT_RESERVATION_PROJECT_ID: l'ID del progetto attuale a cui si trova l'impegno e la prenotazione allegata. Specifica questo campo se la prenotazione attuale allegata è condivisa tra più progetti consumer.
    • CURRENT_RESERVATION_SHARE_SETTING: il tipo di condivisione per la prenotazione attuale. Specifica questo campo con il valore projects se la prenotazione attuale collegata è condivisa tra più progetti consumer.
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 e CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: gli ID progetto dei progetti con cui condividi la prenotazione attualmente collegata, ad esempio project-1 e project-2.

    Prenotazione sostituzione

    Per la prenotazione di sostituzione, imposta le seguenti proprietà come richiesto. Assicurati di soddisfare tutti i requisiti quando specifichi queste proprietà. Ometti eventuali campi aggiuntivi che non vuoi utilizzare.

    • REPLACEMENT_RESERVATION_NAME: il nome della nuova prenotazione di sostituzione.
    • REPLACEMENT_RESERVATION_ZONE: la zona della nuova prenotazione di sostituzione.
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: il numero di VM che vuoi prenotare nella nuova prenotazione di sostituzione.
    • REPLACEMENT_RESERVATION_MACHINE_TYPE: il tipo di macchina che vuoi per le VM nella nuova prenotazione di sostituzione.

      • Per i tipi di macchine predefinite, utilizza il formato MACHINE_FAMILY-standard-CPUS, ad esempio n2-standard-4.
      • Per i tipi di macchine personalizzate, utilizza il formato MACHINE_FAMILY-custom-CPUS-MEMORY, ad esempio n2-custom-4-5120. Per un elenco completo delle limitazioni, leggi le specifiche relative ai tipi di macchine personalizzate.

      Sostituisci quanto segue:

      • MACHINE_FAMILY: la famiglia di tipi di macchine; ad esempio, specifica n2 per le VM N2.
      • CPUS: il numero di vCPUs.
      • MEMORY: la memoria totale per una VM prenotata. La memoria deve essere un multiplo di 256 MB e deve essere fornita in MB; ad esempio, per creare una VM N2 con 4 vCPU e 5 GB di memoria, ovvero 5120 MB, utilizza n2-custom-4-5120.
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: il numero di GPU che vuoi aggiungere, per VM, nella prenotazione della sostituzione.

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: il tipo di acceleratore che vuoi aggiungere nella prenotazione di sostituzione.

    • REPLACEMENT_RESERVATION_INTERFACE_1 e REPLACEMENT_RESERVATION_INTERFACE_2: il tipo di interfaccia che vuoi venga utilizzato dai dischi SSD locali per ogni VM prenotata. Le opzioni valide sono: scsi e nvme. Ogni disco SSD locale ha una dimensione di 375 GB. Ripeti il parametro local_ssd per ogni disco SSD locale che vuoi aggiungere. Puoi specificare fino a 24 dischi SSD locali.

    • REPLACEMENT_RESERVATION_PROJECT_ID: l'ID del progetto attuale a cui si trova l'impegno e la prenotazione allegata. Specifica questo campo se vuoi condividere la prenotazione di sostituzione tra più progetti consumer.

    • REPLACEMENT_RESERVATION_SHARE_SETTING: il tipo di condivisione per la prenotazione della sostituzione. Specifica questo campo con il valore projects se vuoi condividere la prenotazione sostitutiva tra più progetti consumer.

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 e REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: gli ID progetto dei progetti che possono condividere questa prenotazione, ad esempio project-1,project-2. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto del proprietario. Non includere REPLACEMENT_RESERVATION_PROJECT_ID, che è già autorizzato a utilizzare questa prenotazione per impostazione predefinita.

  2. Esegui il comando gcloud beta compute commitments update-reservations e specifica il percorso del file YAML utilizzando il flag --reservations-from-file.

    gcloud beta compute commitments update-reservations COMMITMENT_NAME \
        --project= PROJECT_ID \
        --region= REGION \
        --reservations-from-file= YAML_FILE
    

    Sostituisci quanto segue:

    • COMMITMENT_NAME: il nome dell'impegno con la prenotazione allegata.
    • PROJECT_ID: l'ID progetto dell'impegno con la prenotazione allegata.
    • REGION: la regione in cui si trova l'impegno.
    • YAML_FILE: il percorso del file YAML che contiene la configurazione delle prenotazioni attuali e di sostituzione.

Esempio per la sostituzione di una prenotazione collegata a un impegno

Per dimostrarlo, questa sezione mostra un impegno di esempio con una prenotazione allegata e come sostituire l'esempio di prenotazione allegata.

Impegno di esempio con una prenotazione allegata

Ad esempio, supponi di voler aggiornare le prenotazioni allegate per l'impegno my-commitment-with-reservations, acquistato utilizzando il seguente comando:

  gcloud beta compute commitments create my-commitment-with-reservations \
      --region=asia-east1 \
      --resources=vcpu=16,memory=60GB,local-ssd=3000 \
      --resources-accelerator=type=nvidia-tesla-p100,count=4 \
      --plan=12-month \
      --type=general-purpose \
      --reservations-from-file=one-reservation.yaml

Per questo esempio, supponiamo che, al momento dell'esecuzione del comando, one-reservation.yaml sia un file nella directory attuale con i seguenti contenuti, che definiscono una prenotazione allegata denominata res-1.

  - reservation: res-1
    reservation_zone: asia-east1-a
    vm_count: 4
    machine_type: n1-standard-4
    accelerator:
    - count: 1
      type: nvidia-tesla-p100
    local_ssd:
    - interface: scsi
      size: 375
    - interface: scsi
      size: 375

Questo impegno my-commitment-with-reservations e la prenotazione res-1 collegata hanno generato le seguenti risorse di commit e riservate:

Tipo di risorsa Risorse nell'impegno
(my-commitment-with-reservations)
Risorse nella prenotazione attuale allegata
(res-1)
vCPU e memoria 16 vCPU e 60 GB 16 vCPU e 60 GB
(4 VM n1-standard-4 prenotate)*
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 per VM, per 4 VM)*
Dischi SSD locali 3000 GB o 8 dischi SSD locali 3000 GB o 8 dischi SSD locali
(750 GB o 2 dischi SSD locali per VM, per 4 VM)*

*In particolare, l'esempio allegato la prenotazione res-1, prenota 4 n1-standard-4 VM, ciascuna con 1 GPU P100 e 2 dischi SSD locali di tipo di interfaccia scsi. Il tipo di macchina n1-standard-4utilizza 4 vCPU e 15 GB per ogni VM.

Sostituisci la prenotazione collegata di esempio

Supponiamo di voler sostituire la prenotazione collegata res-1 per con una nuova prenotazione collegata res-2 e di modificare le risorse prenotate nel modo seguente:

Tipo di risorsa Risorse nell'impegno
(my-commitment-with-reservations)
Risorse nella prenotazione attuale allegata
(res-1)
Risorse nella prenotazione di sostituzione allegata
(res-2)
vCPU e memoria 16 vCPU e 60 GB 16 vCPU e 60 GB
(4 VM n1-standard-4 prenotate)*
16 vCPU e 60 GB
(2 VM n1-standard-8 prenotate e condivise)
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 per VM, per 4 VM)*
4 GPU P100
(2 GPU P100 per VM, per 2 VM)
Dischi SSD locali 3000 GB o 8 dischi SSD locali 3000 GB o 8 dischi SSD locali
(750 GB o 2 dischi SSD locali per VM, per 4 VM)*
3000 GB o 8 dischi SSD locali
(1500 GB o 4 dischi SSD locali per VM, per 2 VM)*

*In particolare, l'esempio allegato la prenotazione res-1, prenota 4 n1-standard-4 VM, ciascuna con 1 GPU P100 e 2 dischi SSD locali di tipo di interfaccia scsi. Il tipo di macchina n1-standard-4utilizza 4 vCPU e 15 GB per ogni VM.

In particolare, la prenotazione allegata sostitutiva definisce res-2, che riserva 2 VM n1-standard-8, ciascuna con 1 GPU P100 e 4 dischi SSD locali di tipo di interfaccia scsi. Inoltre, res-2 è condiviso con altri 2 progetti, project-1 e project-2 ed è di proprietà del progetto corrente, my-project. Il tipo di macchina n1-standard-8 utilizza 8 vCPU e 30 GB per ogni VM.

Per sostituire la prenotazione res-1 allegata con res-2 per l'impegno my-commitment-with-reservations, segui questi passaggi:

  1. Crea un file denominato two-reservations.yaml nella directory attuale che contiene i seguenti contenuti:

    - reservation: res-1
      reservation_zone: asia-east1-a
      vm_count: 0
      machine_type: n1-standard-4
      accelerator:
      - count: 1
        type: nvidia-tesla-p100
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    - reservation: res-2
      reservation_zone: asia-east1-a
      vm_count: 2
      machine_type: n1-standard-8
      accelerator:
      - count: 2
        type: nvidia-tesla-p100
      project: my-project
      share-setting: projects
      share-with:
      - project-1
      - project-2
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    
  2. Esegui questo comando:

    gcloud beta compute commitments update-reservations my-commitment-with-reservations \
        --region=asia-east1 \
        --reservations-from-file=two-reservations.yaml
    

REST

Per sostituire le prenotazioni collegate agli impegni, effettua una richiesta POST utilizzando il metodo regionCommitments.updateReservations.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations

{
  "reservations":
  [
    {
      "name": "REPLACEMENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "REPLACEMENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    },
    {
      "name": "CURRENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "0",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "CURRENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "CURRENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    }
  ]
}

Sostituisci quanto segue con le proprietà corrispondenti dell'impegno, della prenotazione attuale e della prenotazione sostitutiva:

Impegno

  • COMMITMENT_NAME: il nome dell'impegno con la prenotazione allegata.
  • PROJECT_ID: l'ID progetto dell'impegno con la prenotazione allegata. Questo è anche l'ID progetto per le prenotazioni attuali e collegate.
  • COMMITMENT_ZONE: la zona dell'impegno con la prenotazione allegata.

Prenotazione attuale

Per la prenotazione attuale, tutte le seguenti proprietà devono essere esattamente come quando hai visualizzato la prenotazione. Ometti i campi per le proprietà non già specificate nella prenotazione attuale.

  • CURRENT_RESERVATION_NAME: il nome della prenotazione attualmente allegata.
  • CURRENT_RESERVATION_ZONE: la zona della prenotazione attualmente collegata.
  • CURRENT_RESERVATION_MACHINE_TYPE: il tipo di macchina della prenotazione attuale collegata.
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: il numero di GPU prenotate nell'attuale prenotazione allegata.
  • CURRENT_RESERVATION_ACCELERATOR_TYPE: il tipo di acceleratore prenotato nella prenotazione attualmente collegata.
  • CURRENT_RESERVATION_INTERFACE_1 e CURRENT_RESERVATION_INTERFACE_2: il tipo di interfaccia utilizzato dai dischi SSD locali per ogni VM prenotata nell'attuale prenotazione collegata. Le opzioni valide sono: scsi e nvme. Ogni disco SSD locale ha una dimensione di 375 GB. Ripeti il parametro localSsds per tutti i dischi SSD locali prenotati.
  • CURRENT_RESERVATION_SHARE_SETTING: il tipo di condivisione per la prenotazione attuale. Specifica questo parametro con il valore projects se la prenotazione attuale collegata è condivisa tra più progetti consumer.
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 e CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: gli ID progetto dei progetti con cui condividi la prenotazione attualmente collegata, ad esempio project-1 e project-2.

Prenotazione sostituzione

Per la prenotazione di sostituzione, imposta le seguenti proprietà come richiesto. Assicurati di soddisfare tutti i requisiti quando specifichi queste proprietà. Ometti eventuali campi aggiuntivi che non vuoi utilizzare.

  • REPLACEMENT_RESERVATION_NAME: il nome della nuova prenotazione della sostituzione.
  • REPLACEMENT_RESERVATION_ZONE: la zona della nuova prenotazione di sostituzione.
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS: il numero di VM da prenotare nella nuova prenotazione di sostituzione.
  • REPLACEMENT_RESERVATION_MACHINE_TYPE: il tipo di macchina desiderato per le VM nella nuova prenotazione di sostituzione.

    • Per i tipi di macchine predefinite, utilizza il formato MACHINE_FAMILY-standard-CPUS, ad esempio n2-standard-4.
    • Per i tipi di macchine personalizzate, utilizza il formato MACHINE_FAMILY-custom-CPUS-MEMORY, ad esempio n2-custom-4-5120. Per un elenco completo delle limitazioni, leggi le specifiche relative ai tipi di macchine personalizzate.

    Sostituisci quanto segue:

    • MACHINE_FAMILY: la famiglia di tipi di macchine; ad esempio, specifica n2 per le VM N2.
    • CPUS: il numero di vCPUs.
    • MEMORY: la memoria totale per una VM prenotata. La memoria deve essere un multiplo di 256 MB e deve essere fornita in MB; ad esempio, per creare una VM N2 con 4 vCPU e 5 GB di memoria, ovvero 5120 MB, utilizza n2-custom-4-5120.
  • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: il numero di GPU che vuoi aggiungere, per VM, nella prenotazione della sostituzione.

  • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE: il tipo di acceleratore che vuoi aggiungere nella prenotazione di sostituzione.

  • REPLACEMENT_RESERVATION_INTERFACE_1 e REPLACEMENT_RESERVATION_INTERFACE_2: il tipo di interfaccia che vuoi venga utilizzato dai dischi SSD locali per ogni VM prenotata. Le opzioni valide sono: scsi e nvme. Ogni disco SSD locale ha una dimensione di 375 GB. Ripeti il parametro localSsds per ogni disco SSD locale che vuoi aggiungere. Puoi specificare fino a 24 dischi SSD locali.

  • REPLACEMENT_RESERVATION_SHARE_SETTING: Il tipo di condivisione per la prenotazione della sostituzione. Specifica questo parametro con il valore projects se vuoi condividere la prenotazione della sostituzione tra più progetti consumer.

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 e REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: gli ID progetto dei progetti che possono condividere questa prenotazione, ad esempio project-1,project-2. Puoi includere fino a 100 progetti consumer. Questi progetti devono trovarsi nella stessa organizzazione del progetto del proprietario. Non includere PROJECT_ID, che è già autorizzato a utilizzare questa prenotazione per impostazione predefinita.

Esempio per la sostituzione di una prenotazione collegata a un impegno

Per dimostrarlo, questa sezione mostra un impegno di esempio con una prenotazione allegata e come sostituire l'esempio di prenotazione allegata.

Impegno di esempio con una prenotazione allegata

Ad esempio, supponi di voler sostituire la prenotazione allegata res-1 per l'impegno my-commitment-with-reservations, acquistato effettuando la seguente richiesta POST:

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments

  {
    "name": "my-commitment-with-reservations",
    "plan": "TWELVE_MONTH",
    "reservations":
    [
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "4",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "1",
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ],
    "resources":
    [
      {
        "amount": "16",
        "type": "VCPU"
      },
      {
        "amount": "61440",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "nvidia-tesla-p100",
        "amount": "4",
        "type": "ACCELERATOR"
      }
      {
        "amount": "3072000",
        "type": "LOCAL_SSD"
      }
    ],
    "type": "GENERAL_PURPOSE"
  }

Questo impegno my-commitment-with-reservations e la prenotazione res-1 collegata hanno generato le seguenti risorse di commit e riservate:

Tipo di risorsa Risorse nell'impegno
(my-commitment-with-reservations)
Risorse nella prenotazione attuale allegata
(res-1)
vCPU e memoria 16 vCPU e 60 GB 16 vCPU e 60 GB
(4 VM n1-standard-4 prenotate)*
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 per VM, per 4 VM)*
Dischi SSD locali 3000 GB o 8 dischi SSD locali 3000 GB o 8 dischi SSD locali
(750 GB o 2 dischi SSD locali per VM, per 4 VM)*

*In particolare, l'esempio di prenotazione allegato, res-1, prenota 4 VM n1-standard-4, ciascuna con 1 GPU P100 e 2 dischi SSD locali con tipo di interfaccia scsi. Il tipo di macchina n1-standard-4utilizza 4 vCPU e 15 GB per ogni VM.

Sostituisci la prenotazione collegata di esempio

Supponiamo di voler sostituire la prenotazione collegata res-1 per con una nuova prenotazione collegata res-2 e di modificare le risorse prenotate nel modo seguente:

Tipo di risorsa Risorse nell'impegno
(my-commitment-with-reservations)
Risorse nella prenotazione attuale allegata
(res-1)
Risorse nella prenotazione di sostituzione allegata
(res-2)
vCPU e memoria 16 vCPU e 60 GB 16 vCPU e 60 GB
(4 VM n1-standard-4 prenotate)*
16 vCPU e 60 GB
(2 VM n1-standard-8 prenotate e condivise)
GPU 4 GPU P100 4 GPU P100
(1 GPU P100 per VM, per 4 VM)*
4 GPU P100
(2 GPU P100 per VM, per 2 VM)
Dischi SSD locali 3000 GB o 8 dischi SSD locali 3000 GB o 8 dischi SSD locali
(750 GB o 2 dischi SSD locali per VM, per 4 VM)*
3000 GB o 8 dischi SSD locali
(1500 GB o 4 dischi SSD locali per VM, per 2 VM)*

*In particolare, l'esempio allegato la prenotazione res-1, prenota 4 n1-standard-4 VM, ciascuna con 1 GPU P100 e 2 dischi SSD locali di tipo di interfaccia scsi. Il tipo di macchina n1-standard-4utilizza 4 vCPU e 15 GB per ogni VM.

In particolare, la prenotazione allegata sostitutiva definisce res-2, che riserva 2 VM n1-standard-8, ciascuna con 1 GPU P100 e 4 dischi SSD locali di tipo di interfaccia scsi. Inoltre, res-2 è condiviso con altri 2 progetti, project-1 e project-2 ed è di proprietà del progetto corrente, my-project. Il tipo di macchina n1-standard-8 utilizza 8 vCPU e 30 GB per ogni VM.

Per sostituire la prenotazione res-1 allegata con res-2 per l'impegno my-commitment-with-reservations, effettua la seguente richiesta POST utilizzando il metodo regionCommitments.updateReservations:

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservations/updateReservations

  {
    "reservations":
    [
      {
        "name": "res-2",
        "specificReservation":
        {
          "count": "2",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 2,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-8"
          }
        },
        "zone": "asia-east1-a"
      },
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "0",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 1,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ]
  }

Passaggi successivi