Condividere una prenotazione Cloud TPU
Questo documento descrive come attivare la condivisione delle prenotazioni. La condivisione delle prenotazioni consente di creare VM TPU in un progetto (un progetto consumer) e di utilizzare una prenotazione di proprietà di un altro progetto (il progetto proprietario). La condivisione della prenotazione consente inoltre di eseguire job di addestramento o previsione personalizzati 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 di TPU, consulta Informazioni sulle prenotazioni di Cloud TPU.
Limitazioni
Prima di condividere una prenotazione di TPU, tieni presente quanto segue:
Puoi modificare una prenotazione condivisa solo dal progetto del proprietario.
Puoi modificare una prenotazione a breve termine in modalità calendario o una prenotazione a lungo termine solo come segue:
Puoi modificare la prenotazione solo dopo l'ora di inizio.
Puoi modificare la prenotazione solo per consentire o meno l'utilizzo da parte dei job in Vertex AI.
Condividere una prenotazione Cloud TPU
Le sezioni seguenti descrivono i diversi metodi per condividere una prenotazione.
Attivare la condivisione di una prenotazione TPU
Puoi creare VM TPU in un progetto consumer utilizzando una prenotazione di proprietà di un altro progetto. Tutti i progetti che condividono una prenotazione TPU devono appartenere alla stessa organizzazione.
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 allow
comando: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 per cui vuoi consentire di creare e modificare le prenotazioni condivise.
- ORGANIZATION_ID: l'ID risorsa dell'organizzazione della tua organizzazione.
Attiva la condivisione del CUD tramite la Google Cloud console. Per istruzioni, consulta Attivare la condivisione CUD per gli impegni basati sulle risorse.
Per attivare la condivisione, utilizza il comando
gcloud beta compute reservations update
con i flag--share-setting=projects
e--share-with
:gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --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 di ID dei progetti che possono utilizzare questa prenotazione. Ad esempio,
project-1,project-2
. Puoi includere fino a 100 progetti per consumatori. Questi progetti devono trovarsi nella stessa organizzazione del progetto proprietario. Non includere il progetto del proprietario. Per impostazione predefinita, il progetto proprietario è già autorizzato a utilizzare la prenotazione. - ZONE: la zona in cui si trova la prenotazione.
Disattivare la condivisione di una prenotazione TPU
Per disattivare la condivisione di una prenotazione TPU con un elenco di progetti consumer, utilizza il comando gcloud beta compute reservations
update
con i flag --share-setting=projects
e --remove-share-with
:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --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 di 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.
Per disattivare la condivisione di una prenotazione TPU con tutti i progetti consumer, impostala come prenotazione locale utilizzando il comando gcloud beta compute reservations
update
con il flag --share-setting=local
:
gcloud beta 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.
Consenti a Vertex AI di utilizzare una prenotazione TPU
Puoi consentire ai job di addestramento o ai job di previsione in Vertex AI di utilizzare una prenotazione a breve termine in modalità calendario o una prenotazione a lungo termine solo dopo la relativa ora di inizio.
Per consentire a Vertex AI di utilizzare una prenotazione TPU, utilizza il
gcloud beta compute
reservations update
comando con il
--reservation-sharing-policy=ALLOW_ALL
flag:
gcloud beta 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.
Non consentire a Vertex AI di utilizzare una prenotazione TPU
Prima di impedire a Vertex AI di utilizzare una prenotazione TPU, interrompi tutti i job Vertex AI che la utilizzano. In caso contrario, riscontrerai errori.
Per impedire a Vertex AI di utilizzare una prenotazione TPU, utilizza il comando
gcloud beta compute reservations
update
con
il flag --reservation-sharing-policy=DISALLOW_ALL
:
gcloud beta 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.
Visualizzare le informazioni su una prenotazione condivisa
Puoi ottenere informazioni su una prenotazione condivisa solo dal progetto del proprietario.
Per ottenere informazioni su una prenotazione condivisa, utilizza il comando gcloud compute
reservations describe
:
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