Condividere una prenotazione Cloud TPU
Questo documento descrive come condividere una prenotazione TPU tra più progetti. La condivisione delle prenotazioni consente di creare una prenotazione Cloud TPU in un progetto (il progetto proprietario) e di utilizzarla in un altro progetto (un progetto consumer) all'interno della stessa organizzazione del progetto proprietario. La condivisione delle prenotazioni consente anche di eseguire job di addestramento personalizzato o di previsione in Vertex AI utilizzando una prenotazione TPU.
Il progetto proprietario è il progetto in cui hai creato la prenotazione. I progetti consumer sono uno o più progetti che condividono la prenotazione. Puoi creare VM TPU nel progetto proprietario e nei progetti consumer utilizzando la prenotazione nel progetto proprietario.
Per ulteriori informazioni su come ottenere una prenotazione TPU, consulta Informazioni sulle prenotazioni Cloud TPU.
Limitazioni
Prima di modificare una prenotazione TPU, tieni presente quanto segue:
Puoi modificare una prenotazione condivisa solo dal progetto proprietario.
Puoi modificare una prenotazione solo nei seguenti modi:
Consenti o impedisci ai job di Vertex AI di utilizzare la prenotazione.
Modifica il tipo di condivisione.
Convertire una prenotazione per un singolo progetto in una prenotazione condivisa
Puoi convertire una prenotazione per un singolo progetto in una prenotazione condivisa. La modifica del tipo di condivisione di una prenotazione TPU consente di condividere le risorse riservate con un massimo di 100 progetti nella tua organizzazione. Tutti i progetti che condividono una prenotazione TPU devono far parte della stessa organizzazione.
Prima di convertire una prenotazione per un singolo progetto in una prenotazione condivisa, verifica di avere una quota sufficiente. Esistono requisiti di quota diversi per le prenotazioni condivise e per un singolo progetto. Per saperne di più, consulta Requisiti aggiuntivi delle quote per le prenotazioni condivise.
Per attivare la condivisione di una prenotazione TPU:
Concedi al progetto proprietario l'autorizzazione per creare e modificare le prenotazioni condivise utilizzando il
gcloud resource-manager org-policies allowcomando:gcloud resource-manager org-policies allow \ compute.sharedReservationsOwnerProjects \ projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID
Sostituisci quanto segue:
- OWNER_PROJECT_NUMBER: il numero di progetto (non l'ID progetto) di un progetto della tua organizzazione a cui vuoi consentire di creare e modificare prenotazioni condivise.
- ORGANIZATION_ID: l'ID risorsa dell'organizzazione della tua organizzazione.
Attiva la condivisione del CUD aggiornando l'ambito del CUD per la fatturazione Cloud. Per istruzioni, consulta Attivare la condivisione del CUD per gli impegni basati sulle risorse.
Per convertire una prenotazione per un singolo progetto in una prenotazione condivisa, utilizza il
gcloud compute reservations updatecomando con i flag--share-setting=projectse--add-share-with:gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --add-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- CONSUMER_PROJECT_IDS: un elenco separato da virgole degli ID dei
progetti che possono utilizzare questa prenotazione. Ad esempio,
project-1,project-2. Puoi includere fino a 100 progetti consumer. Questi progetti devono appartenere alla stessa organizzazione del progetto proprietario. Non includere il progetto proprietario. Per impostazione predefinita, il progetto proprietario è già autorizzato a utilizzare la prenotazione. - ZONE: la zona in cui si trova la prenotazione.
Convertire una prenotazione condivisa in una prenotazione per un singolo progetto
Per convertire una prenotazione con target specifico da una prenotazione condivisa a una prenotazione per un singolo progetto, devi arrestare o eliminare tutte le istanze che utilizzano la prenotazione in ogni progetto con cui è condivisa. Questo requisito non si applica alle istanze nel progetto proprietario.
Per interrompere la condivisione di una prenotazione TPU con tutti i progetti consumer, modifica la prenotazione condivisa
in una prenotazione per un singolo progetto utilizzando il gcloud compute
reservations update
comando con il
--share-setting=local flag:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=local \ --zone=ZONE
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- ZONE: la zona in cui si trova la prenotazione.
Modificare i progetti consumer in una prenotazione condivisa
Per evitare errori quando modifichi i progetti consumer per una prenotazione condivisa, tieni presente quanto segue:
Rimozione dei progetti: puoi rimuovere i progetti consumer da una prenotazione condivisa solo se questi progetti non utilizzano le risorse riservate. Per impedire alle istanze di utilizzare una prenotazione, arresta o elimina le istanze.
Aggiunta di progetti: puoi consentire ai progetti consumer di utilizzare una prenotazione condivisa solo se questi progetti si trovano nella stessa organizzazione del progetto proprietario. Per eseguire la migrazione di un progetto all'organizzazione del progetto proprietario, consulta Migrazione dei progetti tra le risorse dell'organizzazione nella documentazione di Resource Manager.
Aggiungere progetti a una prenotazione condivisa
Per aggiungere uno o più progetti a una prenotazione condivisa, utilizza il
gcloud compute reservations update
comando con il
--add-share-with flag:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --add-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- CONSUMER_PROJECT_IDS: un elenco separato da virgole degli ID dei progetti
con cui condividere la prenotazione. Ad esempio,
project-1,project-2. - ZONE: la zona in cui si trova la prenotazione.
Rimuovere progetti da una prenotazione condivisa
Per rimuovere uno o più progetti da una prenotazione condivisa, utilizza
il gcloud compute reservations update
comando con il
--remove-share-with flag:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- CONSUMER_PROJECT_IDS: un elenco separato da virgole degli ID dei progetti
con cui non vuoi più condividere la prenotazione. Ad esempio,
project-1,project-2. - ZONE: la zona in cui si trova la prenotazione.
Sostituire l'elenco dei progetti che possono utilizzare una prenotazione condivisa
Per sostituire l'elenco dei progetti che possono utilizzare una prenotazione condivisa, utilizza il
gcloud beta compute reservations update
comando con il
--share-with flag:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- CONSUMER_PROJECT_IDS: un elenco separato da virgole degli ID dei progetti
con cui condividere la prenotazione. Ad esempio,
project-1,project-2. - ZONE: la zona in cui si trova la prenotazione.
Consentire a Vertex AI di utilizzare una prenotazione TPU
Puoi consentire ai job di addestramento o previsione in Vertex AI di utilizzare una prenotazione TPU solo dopo l'ora di inizio.
Per consentire a Vertex AI di utilizzare una prenotazione TPU, utilizza il
gcloud compute
reservations update
comando con il
--reservation-sharing-policy=ALLOW_ALL flag:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=ALLOW_ALL
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- ZONE: la zona della prenotazione.
Impedire a Vertex AI di utilizzare una prenotazione TPU
Prima di impedire a Vertex AI di utilizzare una prenotazione TPU, arresta tutti i job di Vertex AI che la utilizzano. In caso contrario, si verificano errori.
Per impedire a Vertex AI di utilizzare una prenotazione TPU, utilizza il
gcloud compute reservations
update comando con
il --reservation-sharing-policy=DISALLOW_ALL flag:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=DISALLOW_ALL
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- ZONE: la zona della prenotazione.
Ottenere informazioni su una prenotazione condivisa
Puoi ottenere informazioni su una prenotazione condivisa solo dal progetto proprietario.
Per ottenere informazioni su una prenotazione condivisa, utilizza il gcloud compute
reservations describe
comando:
gcloud compute reservations describe RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE
Sostituisci quanto segue:
- RESERVATION_NAME: il nome della prenotazione.
- OWNER_PROJECT_ID: l'ID del progetto che contiene la prenotazione.
- ZONE: la zona della prenotazione.
La risposta è simile alla seguente:
aggregateReservation: [...] name: RESERVATION_NAME reservationSharingPolicy: serviceShareType: ALLOW_ALL resourceStatus: {} selfLink: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME shareSettings: projectMap: 'CONSUMER_PROJECT_1': projectId: 'CONSUMER_PROJECT_1' 'CONSUMER_PROJECT_2': projectId: 'CONSUMER_PROJECT_2' shareType: SPECIFIC_PROJECTS specificReservationRequired: true status: READY zone: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE