共用 Cloud TPU 預訂

本文說明如何在多個專案之間共用 TPU 預留項目。透過預留項目共用功能,您可以在一個專案 (擁有者專案) 中建立 Cloud TPU 預留項目,並在與擁有者專案位於同一機構的另一個專案 (消費者專案) 中使用該預留項目。共用預留項目也可讓您使用 TPU 預留項目,在 Vertex AI 中執行自訂訓練或預測工作。

擁有者專案是您建立預留資源的專案。消費者專案是指共用預留項目的專案。您可以在擁有者專案和消費者專案中,使用擁有者專案的預留項目建立 TPU VM。

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

限制

修改 TPU 預訂前,請先考量以下事項:

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

  • 你只能透過下列方式修改預約:

將單一專案預留項目轉換為共用預留項目

您可以將單一專案預留項目轉換為共用預留項目。 修改 TPU 預留項目的共用類型,有助於與機構中最多 100 個專案共用預留資源。共用 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. 更新 Cloud Billing 的 CUD 範圍,啟用 CUD 共用功能。如需操作說明,請參閱「為依資源計算的承諾使用合約啟用 CUD 分享功能」。

  3. 如要將單一專案預留項目轉換為共用預留項目,請使用 gcloud compute reservations update 指令,並搭配 --share-setting=projects--add-share-with 旗標:

    gcloud compute reservations update RESERVATION_NAME \
        --project=OWNER_PROJECT_ID \
        --share-setting=projects \
        --add-share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE

    更改下列內容:

    • RESERVATION_NAME:預訂名稱。
    • OWNER_PROJECT_ID:包含預留資源的專案 ID。
    • CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,這些專案可使用這項預留資源。例如:project-1,project-2。最多可加入 100 個消費者專案。 這些專案必須與擁有者專案位於同一個機構。 請勿加入擁有者專案。根據預設,系統已允許擁有者專案使用預留項目。
    • ZONE:預訂項目所在的可用區。

將共用預留項目轉換為單一專案預留項目

如要將特定目標保留項目從共用保留項目轉換為單一專案保留項目,您必須停止或刪除每個共用保留項目的專案中,使用該保留項目的所有執行個體。這項規定不適用於擁有者專案中的執行個體。

如要停止與所有用戶專案共用 TPU 預留項目,請使用 gcloud compute reservations update 指令搭配 --share-setting=local 旗標,將共用預留項目變更為單一專案預留項目:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-setting=local \
    --zone=ZONE

更改下列內容:

  • RESERVATION_NAME:預訂名稱。
  • OWNER_PROJECT_ID:包含預留資源的專案 ID。
  • ZONE:預訂項目所在的可用區。

修改共用預留項目中的用戶專案

如要避免在修改共用預留項目的消費者專案時發生錯誤,請注意下列事項:

  • 移除專案:只有在消費者專案未使用保留資源時,才能從共用保留項目中移除。如要停止執行個體使用預留項目,請停止刪除執行個體

  • 新增專案:只有當用戶專案與擁有者專案位於相同機構時,您才能允許用戶專案使用共用保留項目。如要將專案遷移至擁有者專案的機構,請參閱 Resource Manager 說明文件中的「在組織資源之間遷移專案」。

將專案新增至共用預留項目

如要將一或多個專案新增至共用預留項目,請使用 gcloud compute reservations update 指令並加上 --add-share-with 旗標:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --add-share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

更改下列內容:

  • RESERVATION_NAME:預訂名稱。
  • OWNER_PROJECT_ID:包含預留資源的專案 ID。
  • CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,用於分享預留項目。例如:project-1,project-2
  • ZONE:預訂項目所在的可用區。

從共用預訂中移除專案

如要從共用預留項目中移除一或多個專案,請使用 gcloud compute reservations update 指令並加上 --remove-share-with 旗標:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --remove-share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

更改下列內容:

  • RESERVATION_NAME:預訂名稱。
  • OWNER_PROJECT_ID:包含預留資源的專案 ID。
  • CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,您要停止與這些專案共用預留項目。例如:project-1,project-2
  • ZONE:預訂項目所在的可用區。

取代可使用共用預留項目的專案清單

如要取代可使用共用預留資源的專案清單,請使用 gcloud beta compute reservations update 指令搭配 --share-with 旗標:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

更改下列內容:

  • RESERVATION_NAME:預訂名稱。
  • OWNER_PROJECT_ID:包含預留資源的專案 ID。
  • CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,用於分享預留項目。例如:project-1,project-2
  • ZONE:預訂項目所在的可用區。

允許 Vertex AI 使用 TPU 預留項目

您可以在 Vertex AI 中,允許訓練預測工作在開始時間過後使用 TPU 預留項目。

如要允許 Vertex AI 使用 TPU 預留項目,請搭配 --reservation-sharing-policy=ALLOW_ALL 旗標使用 gcloud compute reservations update 指令

gcloud 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 compute reservations update 指令搭配 --reservation-sharing-policy=DISALLOW_ALL 標記:

gcloud 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

後續步驟