共享 Cloud TPU 预留
本文档介绍了如何启用预订共享。借助预留共享功能,您可以在一个项目(使用方项目)中创建 TPU 虚拟机,并使用另一个项目(所有者项目)拥有的预留。此外,借助预留共享,您还可以使用 TPU 预留在 Vertex AI 中运行自定义训练作业或预测作业。
所有者项目是您创建预留的项目。使用方项目是指共享预留的一个或多个项目。您可以在所有者项目和使用方项目中使用所有者项目中的预留创建 TPU 虚拟机。
如需详细了解如何获取 TPU 预留,请参阅 Cloud TPU 预留简介。
限制
在共享 TPU 预留之前,请考虑以下事项:
您只能通过其所有者项目修改共享预留。
您只能按照以下步骤修改日历模式下的短期预订或长期预订:
您只能在预留开始时间之后修改预留。
您只能修改预留,以允许或禁止 Vertex AI 中的作业使用该预留。
共享 Cloud TPU 预留
以下部分介绍了共享预订的不同方法。
启用 TPU 预留的共享
您可以使用其他项目拥有的预留在使用方项目中创建 TPU 虚拟机。共享 TPU 预留的所有项目都必须属于同一组织。
如需启用 TPU 预留共享,请执行以下操作:
使用
gcloud resource-manager org-policies allow
命令向所有者项目授予创建和修改共享预留的权限:gcloud resource-manager org-policies allow \ compute.sharedReservationsOwnerProjects \ projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID
替换以下内容:
通过 Google Cloud 控制台启用 CUD 共享。如需了解相关说明,请参阅为基于资源的承诺启用 CUD 共享。
如需启用共享功能,请将
gcloud beta compute reservations update
命令与--share-setting=projects
和--share-with
标志结合使用:gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
- RESERVATION_NAME:预订的名称。
- OWNER_PROJECT_ID:包含预留的项目的 ID。
- CONSUMER_PROJECT_IDS:可以使用此预留的项目的 ID 的英文逗号分隔列表。例如
project-1,project-2
。您最多可以添加 100 个使用方项目。 这些项目必须与所有者项目位于同一组织中。请勿包含所有者项目。默认情况下,已允许所有者项目使用该预留。 - ZONE:预留所在的可用区。
停用 TPU 预留的共享
如需停用与使用方项目列表共享 TPU 预留,请将 gcloud beta compute reservations
update
命令与 --share-setting=projects
和 --remove-share-with
标志结合使用:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
- RESERVATION_NAME:预订的名称。
- OWNER_PROJECT_ID:包含预留的项目的 ID。
- CONSUMER_PROJECT_IDS:您希望不再与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如
project-1,project-2
。 - ZONE:预留所在的可用区。
如需停用与所有使用方项目共享 TPU 预留,请使用带有 --share-setting=local
标志的 gcloud beta compute reservations
update
命令将预留更改为本地预留:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=local \ --zone=ZONE
替换以下内容:
- RESERVATION_NAME:预订的名称。
- OWNER_PROJECT_ID:包含预留的项目的 ID。
- ZONE:预留所在的可用区。
允许 Vertex AI 使用 TPU 预留
您可以允许 Vertex AI 中的训练作业或预测作业在日历模式下使用短期预留,或者仅在长期预留的开始时间之后使用长期预留。
如需允许 Vertex AI 使用 TPU 预留,请将 gcloud beta compute
reservations update
命令与 --reservation-sharing-policy=ALLOW_ALL
标志结合使用:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=ALLOW_ALL
替换以下内容:
- RESERVATION_NAME:预订的名称。
- OWNER_PROJECT_ID:包含预留的项目的 ID。
- ZONE:预留的可用区。
禁止 Vertex AI 使用 TPU 预留
在禁止 Vertex AI 使用 TPU 预留之前,请停止使用该预留的所有 Vertex AI 作业。否则,您会遇到错误。
如需禁止 Vertex AI 使用 TPU 预留,请将 gcloud beta compute reservations
update
命令与 --reservation-sharing-policy=DISALLOW_ALL
标志结合使用:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=DISALLOW_ALL
替换以下内容:
- RESERVATION_NAME:预订的名称。
- OWNER_PROJECT_ID:包含预留的项目的 ID。
- ZONE:预留的可用区。
获取共享预留的相关信息
您只能通过其所有者项目获取共享预留的相关信息。
如需获取共享预留的相关信息,请使用 gcloud compute
reservations describe
命令:
gcloud compute reservations describe RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE
替换以下内容:
- RESERVATION_NAME:预订的名称。
- OWNER_PROJECT_ID:包含预留的项目的 ID。
- ZONE:预留的可用区。
响应类似于以下示例:
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