Crea una VM con avvio flessibile

Questo documento spiega come creare un'istanza di macchina virtuale (VM) Flex-start. Le VM con avvio flessibile vengono eseguite per un massimo di sette giorni e ti aiutano ad acquisire risorse molto richieste come le GPU a un prezzo scontato. Queste funzionalità rendono le VM con avvio flessibile una soluzione conveniente per l'esecuzione di workload di breve durata, come l'ottimizzazione dei modelli e l'inferenza batch.

Per scoprire di più sulle caratteristiche principali delle VM Flex-start, inclusi i requisiti e le limitazioni da applicare durante la creazione, consulta Informazioni sulle VM Flex-start.

Prima di iniziare

  • A seconda del tipo di macchina che vuoi utilizzare, esamina uno dei seguenti requisiti di configurazione:

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    2. Set a default region and zone.

    REST

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

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare VM con avvio flessibile, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare VM con avvio flessibile. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare VM Flex-start sono necessarie le seguenti autorizzazioni:

  • compute.instances.create sul progetto
  • Per utilizzare un'immagine personalizzata per creare la VM: compute.images.useReadOnly sull'immagine
  • Per utilizzare uno snapshot per creare la VM: compute.snapshots.useReadOnly sullo snapshot
  • Per utilizzare un template di istanza per creare la VM: compute.instanceTemplates.useReadOnly sul template di istanza
  • Per specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
  • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
  • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy: compute.networks.useExternalIp sul progetto
  • Per impostare i metadati dell'istanza VM per la VM: compute.instances.setMetadata sul progetto
  • Per impostare i tag per la VM: compute.instances.setTags sulla VM
  • Per impostare le etichette per la VM: compute.instances.setLabels sulla VM
  • Per impostare un service account che la VM possa utilizzare: compute.instances.setServiceAccount sulla VM
  • Per creare un nuovo disco per la VM: compute.disks.create sul progetto
  • Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura: compute.disks.use sul disco
  • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Crea una VM con avvio flessibile

Per creare una VM con avvio flessibile, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nel riquadro Configurazione macchina, completa i seguenti passaggi:

    1. Nel campo Nome, inserisci un nome per la VM Flex-start.

    2. Specifica la Regione e la Zona in cui vuoi creare la VM. Per esaminare le regioni e le zone in cui è disponibile il tipo di macchina che vuoi utilizzare, consulta Regioni e zone disponibili.

    3. In base al carico di lavoro che vuoi eseguire, specifica un tipo di macchina come segue:

      • Per specificare un tipo di macchina ottimizzato per l'acceleratore:

        1. Fai clic sulla scheda GPU.

        2. Nell'elenco Tipo di GPU, seleziona un tipo di GPU, ad eccezione di NVIDIA GB200 192 GB (A4X) e NVIDIA RTX PRO 600 (G4).

        3. Nell'elenco Numero di GPU, seleziona il numero di GPU da collegare alla VM.

        4. (Facoltativo) Se il modello di GPU supporta le workstation virtuali (vWS) NVIDIA RTX per i workload grafici, e prevedi di eseguire workload ad alta intensità di grafica, seleziona Abilita workstation virtuale (NVIDIA GRID).

      • Per specificare un tipo di macchina H4D:

        1. Fai clic sulla scheda Ottimizzata per il calcolo.

        2. Nella colonna Serie, seleziona H4D.

  3. Nel menu di navigazione, fai clic su Avanzate. Nel riquadro Avanzate visualizzato, completa i seguenti passaggi:

    1. Nella sezione Prenotazioni, seleziona Non utilizzare una prenotazione.

    2. Nella sezione Modello di provisioning, nell'elenco Modello di provisioning delle VM, seleziona Avvio flessibile.

    3. Nel campo Inserisci il numero di ore, inserisci la quantità massima di tempo per cui vuoi che la VM venga eseguita. Il valore deve essere compreso tra 36 secondi (0.01) e sette giorni (168 o 168 ore).

    4. Seleziona la casella di controllo Imposta un tempo di attesa per la creazione della VM. In base ai requisiti di zona per il tuo workload, ti consigliamo di specificare una delle seguenti durate per aumentare le probabilità di riuscita della richiesta di creazione della VM:

      • Se il tuo workload richiede la creazione della VM in una zona specifica, specifica una durata compresa tra 90 secondi e 2 ore. Le durate più lunghe aumentano le probabilità di ottenere risorse.

      • Se la VM può essere eseguita in qualsiasi zona della regione, specifica una durata di 0 secondi o deseleziona la casella di controllo Imposta un tempo di attesa per la creazione della VM. Questa azione specifica che Compute Engine alloca le risorse solo se sono immediatamente disponibili. Se la richiesta di creazione della VM non va a buon fine perché le risorse non sono disponibili, riprova la richiesta in una zona diversa.

  4. Per creare la VM con avvio flessibile, fai clic su Crea.

gcloud

Per creare una VM con avvio flessibile, utilizza il comando gcloud compute instances create con i seguenti flag:

  • Il flag --request-valid-for-duration

  • Il flag --provisioning-model=FLEX_START

  • Il flag --instance-termination-action

  • Il flag --max-run-duration

  • Il flag --maintenance-policy=TERMINATE

  • Il flag --reservation-affinity=none

Per creare una VM con avvio flessibile, esegui questo comando:

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE \
    --request-valid-for-duration=VALID_FOR_DURATION \
    --provisioning-model=FLEX_START \
    --instance-termination-action=TERMINATION_ACTION \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM.

  • MACHINE_TYPE: il tipo di macchina da utilizzare per la VM con avvio flessibile. Se specifichi un tipo di macchina G2 o N1, considera quanto segue:

    • Per i tipi di macchine G2, puoi specificare facoltativamente una workstation virtuale (vWS) NVIDIA RTX da utilizzare per i workload ad alta intensità di grafica. Per farlo, includi il flag --accelerator nel comando come segue:

      --accelerator=count=VWS_ACCELERATOR_COUNT,type=nvidia-l4-vws
      

      Sostituisci VWS_ACCELERATOR_COUNT con il numero di NVIDIA RTX vWS richiesto dal tuo workload.

    • Per i tipi di macchine N1, devi specificare il numero e il tipo di GPU da collegare alla VM. In caso contrario, la creazione della VM non andrà a buon fine. Per collegare GPU a una VM N1, includi il flag --accelerator nel comando come segue:

      --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
      

      Sostituisci quanto segue:

  • ZONE: la zona in cui vuoi creare la VM. Per verificare che il tipo di macchina specificato sia disponibile nella zona in cui vuoi creare la VM, consulta Regioni e zone disponibili.

  • VALID_FOR_DURATION: il tempo massimo di attesa per il provisioning delle risorse richieste, formattato come numero seguito da un'unità (s, m, h o d). Ad esempio, un valore di 30m definisce un tempo di 30 minuti e un valore di 1h2m3s definisce un tempo di un'ora, due minuti e tre secondi. In base ai requisiti zonali per il tuo carico di lavoro, ti consigliamo di specificare una delle seguenti durate per aumentare le probabilità di riuscita della richiesta di creazione della VM:

    • Se il tuo workload richiede la creazione della VM in una zona specifica, specifica una durata compresa tra 90 secondi (90s) e due ore (2h). Durate più lunghe aumentano le probabilità di ottenere risorse.

    • Se la VM può essere eseguita in qualsiasi zona all'interno della regione, specifica una durata di zero secondi (0s). Questo valore specifica che Compute Engine alloca le risorse solo se sono immediatamente disponibili. Se la richiesta di creazione non va a buon fine perché le risorse non sono disponibili, riprova a inviare la richiesta in una zona diversa.

  • TERMINATION_ACTION: indica se arrestare o eliminare la VM al termine della durata di esecuzione. Specifica uno dei seguenti valori:

    • Per arrestare la VM: STOP

    • Per eliminare la VM: DELETE

  • RUN_DURATION: il tempo massimo di esecuzione della VM prima che Compute Engine la elimini, formattato come un numero seguito da un'unità (s, m, h o d). Il valore deve essere compreso tra 10 minuti e sette giorni.

REST

Per creare una VM Flex-start, invia una richiesta POST al metodo instances.insert. Nel corpo della richiesta, includi i seguenti campi:

  • Il campo params.requestValidForDuration.

  • Il campo scheduling.provisioningModel impostato su FLEX_START.

  • Il campo scheduling.instanceTerminationAction.

  • Il campo scheduling.maxRunDuration.

  • Il campo scheduling.onHostMaintenance impostato su TERMINATE.

  • reservationAffinity.consumeReservationType impostato su NO_RESERVATION.

Per creare una VM Flex-start, effettua una richiesta POST come segue:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "params": {
    "requestValidForDuration": {
      "seconds": VALID_FOR_DURATION
    }
  },
  "scheduling": {
    "provisioningModel": "FLEX_START",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "maxRunDuration": {
      "seconds": RUN_DURATION
    },
    "onHostMaintenance": "TERMINATE"
  },
  "reservationAffinity": {
    "consumeReservationType": "NO_RESERVATION"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare la VM.

  • ZONE: la zona in cui vuoi creare la VM. Per verificare che un tipo di macchina sia disponibile nella zona in cui vuoi creare la VM, consulta Regioni e zone disponibili.

  • VM_NAME: il nome della nuova VM.

  • MACHINE_TYPE: il tipo di macchina da utilizzare per la VM con avvio flessibile. Se specifichi un tipo di macchina G2 o N1, considera quanto segue:

    • Per i tipi di macchine G2, puoi specificare facoltativamente una workstation virtuale (vWS) NVIDIA RTX da utilizzare per i workload ad alta intensità di grafica. Per farlo, includi il campo guestAccelerators nel corpo della richiesta come segue:

      "guestAccelerators": [
        {
          "acceleratorCount": VWS_ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/nvidia-l4-vws"
        }
      ]
      

      Sostituisci VWS_ACCELERATOR_COUNT con il numero di NVIDIA RTX vWS richiesto dal tuo workload.

    • Per i tipi di macchine N1, devi specificare il numero e il tipo di GPU da collegare alla VM. In caso contrario, la creazione della VM non andrà a buon fine. Per collegare GPU a una VM N1, includi il campo guestAccelerators nel corpo della richiesta nel seguente modo:

      "guestAccelerators": [
        {
          "acceleratorCount": ACCELERATOR_COUNT,
          "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
        }
      ]
      

      Sostituisci quanto segue:

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo valore specifica di utilizzare l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • VALID_FOR_DURATION: il tempo massimo in secondi da attendere per il provisioning della VM. In base ai requisiti di zona per il tuo workload, ti consigliamo di specificare una delle seguenti durate per aumentare le probabilità di riuscita della richiesta di creazione della VM:

    • Se il tuo workload richiede la creazione della VM in una zona specifica, specifica una durata compresa tra 90 secondi (90) e due ore (7200). Durate più lunghe aumentano le probabilità di ottenere risorse.

    • Se la VM può essere eseguita in qualsiasi zona all'interno della regione, specifica una durata di zero secondi (0). Questo valore specifica che Compute Engine alloca le risorse solo se sono immediatamente disponibili. Se la richiesta di creazione non va a buon fine perché le risorse non sono disponibili, riprova la richiesta in una zona diversa.

  • TERMINATION_ACTION: indica se arrestare o eliminare la VM al termine della durata di esecuzione. Specifica uno dei seguenti valori:

    • Per arrestare la VM: STOP

    • Per eliminare la VM: DELETE

  • RUN_DURATION: il tempo massimo in secondi in cui la VM viene eseguita prima che Compute Engine la elimini. Questo valore deve essere compreso tra 600 secondi (10 minuti) e 604.800 secondi (sette giorni).

Passaggi successivi

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni di Compute Engine in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti per l'esecuzione, il test e il deployment di workload senza costi aggiuntivi.

Fai una prova senza costi di Compute Engine