Compartilhar uma reserva da Cloud TPU
Este documento descreve como ativar o compartilhamento de reservas. O compartilhamento de reservas permite criar VMs de TPU em um projeto (um projeto consumidor) e usar uma reserva de outro projeto (o projeto proprietário). O compartilhamento de reservas também permite executar jobs de treinamento ou previsão personalizados na Vertex AI usando uma reserva de TPU.
O projeto do proprietário é aquele em que você criou a reserva. Projetos consumidores são um ou mais projetos que compartilham a reserva. É possível criar VMs de TPU no projeto de proprietário e nos projetos do consumidor usando a reserva no projeto de proprietário.
Para mais informações sobre como fazer uma reserva de TPU, consulte Sobre as reservas de Cloud TPU.
Limitações
Antes de compartilhar uma reserva de TPU, considere o seguinte:
Só é possível modificar uma reserva compartilhada pelo projeto do proprietário.
É possível modificar uma reserva de curto prazo no modo de calendário ou uma reserva de longo prazo da seguinte maneira:
Só é possível modificar a reserva após o horário de início.
É possível modificar a reserva apenas para permitir ou impedir que jobs na Vertex AI a consumam.
Compartilhar uma reserva da Cloud TPU
As seções a seguir descrevem os diferentes métodos para compartilhar uma reserva.
Ativar o compartilhamento de uma reserva da TPU
É possível criar VMs de TPU em um projeto de consumidor usando uma reserva de outro projeto. Todos os projetos que compartilham uma reserva de TPU precisam fazer parte da mesma organização.
Para ativar o compartilhamento de uma reserva de TPU:
Conceda ao projeto proprietário permissão para criar e modificar reservas compartilhadas usando o comando
gcloud resource-manager org-policies allow
:gcloud resource-manager org-policies allow \ compute.sharedReservationsOwnerProjects \ projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID
Substitua:
- OWNER_PROJECT_NUMBER: o número do projeto (não ID do projeto) de um projeto na organização que você quer permitir para criar e modificar reservas compartilhadas.
- ORGANIZATION_ID: o ID do recurso da organização.
Ative o compartilhamento de CUD pelo console do Google Cloud . Para instruções, consulte Ativar o compartilhamento de CUD para compromissos baseados em recursos.
Para ativar o compartilhamento, use o comando
gcloud beta compute reservations update
com as flags--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
Substitua:
- RESERVATION_NAME: o nome da reserva.
- OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
- CONSUMER_PROJECT_IDS: uma lista separada por vírgulas de IDs de
projetos que podem consumir essa reserva. Por exemplo,
project-1,project-2
. É possível incluir até 100 projetos pessoais. Esses projetos precisam estar na mesma organização do projeto de proprietário. Não inclua o projeto proprietário. Por padrão, o projeto do proprietário já pode consumir a reserva. - ZONE: a zona em que a reserva está localizada.
Desativar o compartilhamento de uma reserva da TPU
Para desativar o compartilhamento de uma reserva de TPU com uma lista de projetos de consumidor, use o
comando gcloud beta compute reservations
update
com
as flags --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
Substitua:
- RESERVATION_NAME: o nome da reserva.
- OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
- CONSUMER_PROJECT_IDS: uma lista separada por vírgulas de IDs de projetos
com os quais você quer parar de compartilhar a reserva. Por exemplo,
project-1,project-2
. - ZONE: a zona em que a reserva está localizada.
Para desativar o compartilhamento de uma reserva de TPU com todos os projetos de consumidor, mude a
reserva para uma reserva local usando o comando gcloud beta compute reservations
update
com
a flag --share-setting=local
:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=local \ --zone=ZONE
Substitua:
- RESERVATION_NAME: o nome da reserva.
- OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
- ZONE: a zona em que a reserva está localizada.
Permitir que a Vertex AI use uma reserva de TPU
É possível permitir que jobs de treinamento ou de previsão na Vertex AI consumam uma reserva de curto prazo no modo de calendário ou de longo prazo somente após o horário de início.
Para permitir que a Vertex AI consuma uma reserva de TPU, use o
comando
gcloud beta compute
reservations update
com a
flag --reservation-sharing-policy=ALLOW_ALL
:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=ALLOW_ALL
Substitua:
- RESERVATION_NAME: o nome da reserva.
- OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
- ZONE: a zona da reserva.
Não permitir que a Vertex AI use uma reserva de TPU
Antes de impedir que a Vertex AI consuma uma reserva de TPU, interrompa todos os jobs da Vertex AI que a usam. Caso contrário, você vai encontrar erros.
Para impedir que a Vertex AI consuma uma reserva de TPU, use o comando
gcloud beta compute reservations
update
com
a flag --reservation-sharing-policy=DISALLOW_ALL
:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=DISALLOW_ALL
Substitua:
- RESERVATION_NAME: o nome da reserva.
- OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
- ZONE: a zona da reserva.
Receber informações sobre uma reserva compartilhada
Só é possível receber informações sobre uma reserva compartilhada no projeto do proprietário.
Para conferir informações sobre uma reserva compartilhada, use o comando
gcloud compute
reservations describe
:
gcloud compute reservations describe RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE
Substitua:
- RESERVATION_NAME: o nome da reserva.
- OWNER_PROJECT_ID: o ID do projeto que contém a reserva.
- ZONE: a zona da reserva.
A resposta é semelhante a:
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