共用 Cloud TPU 預訂

本文說明如何啟用預訂共用功能。預留共用功能可讓您在一個專案 (消費者專案) 中建立 TPU VM,並使用另一個專案 (擁有者專案) 擁有的預留項目。您也可以使用 TPU 預留項目,在 Vertex AI 中執行自訂訓練或預測工作。

擁有者專案是指您建立保留項目的專案。「消費者專案」是指共用預留空間的一或多個專案。您可以在擁有者專案中使用預留項目,在擁有者專案和使用者專案中建立 TPU VM。

如要進一步瞭解如何取得 TPU 預留,請參閱「關於 Cloud TPU 預留」。

限制

共用 TPU 預訂前,請考量下列事項:

  • 您只能透過擁有者專案修改共用預訂。

  • 您只能透過下列方式修改日曆模式或長期預訂的短期預訂:

    • 您只能在預訂開始時間過後修改預訂。

    • 您只能修改預留項目,允許或禁止 Vertex AI 中的作業使用該項目。

共用 Cloud TPU 預訂

以下各節將說明共用預訂的不同方法。

啟用 TPU 預留項目共用功能

您可以在另一個專案擁有的預留項目中,為消費者專案建立 TPU VM。共用 TPU 保留項目的所有專案都必須屬於同一個機構

如要啟用 TPU 預留項目共用功能,請按照下列步驟操作:

  1. 使用 gcloud resource-manager org-policies allow 指令授予擁有者專案權限,以便建立及修改共用預訂:

    gcloud resource-manager org-policies allow \
        compute.sharedReservationsOwnerProjects \
        projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID

    更改下列內容:

    • OWNER_PROJECT_NUMBER:您要允許建立及修改共用預訂的機構內專案的專案編號 (不是專案 ID)。
    • ORGANIZATION_ID:機構的機構資源 ID
  2. 透過 Google Cloud 控制台啟用 CUD 共用功能。如需操作說明,請參閱「為資源層級提交內容啟用 CUD 共用功能」。

  3. 如要啟用分享功能,請使用 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 預留項目的功能,請使用 gcloud beta compute reservations update 指令搭配 --share-setting=local 標記,將預留項目變更為本機預留項目:

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 預留空間,請搭配 --reservation-sharing-policy=ALLOW_ALL 標記使用 gcloud beta compute reservations update 指令

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 預留空間之前,請先停止所有使用 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

後續步驟