承諾使用折扣 (CUD):只要購買 1 年期或 3 年期的承諾使用合約 (亦稱為承諾使用量),即可享有 Compute Engine 資源折扣。您只要承諾達到一定的資源用量或支出門檻,即可享有資源用量費用的 CUD。不過,承諾使用合約不會為承諾資源預留可用區容量。如要以折扣價格取得可用區資源,並確保為這些資源保留足夠的容量,您必須同時購買承諾使用合約,以及為這些可用區資源建立保留項目。
本文說明如何為預留資源取得 CUD,以及如何將預留項目附加至以資源為準的約期。
事前準備
- 請先瞭解預訂的基本概念,以及相關規定和限制。詳情請參閱「 預留項目簡介」。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上您打算如何使用範例的分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
gcloud
-
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:
gcloud init
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
預留資源用量的 CUD
只要專案中符合條件的資源用量適用有效的承諾使用合約,您就能獲得 CUD。如果您也預留了該專案中資源的容量,有效承諾的 CUD 也可套用至這些預留資源。如要讓預留資源符合 CUD 適用資格,必須符合下列規定:
- 您未因資源用量而享有任何其他形式的折扣。
- 承諾使用合約生效期間,VM 必須使用預留項目。
至少下列屬性必須與有效承諾和 VM 消耗的預留項目相符:
- 預留項目中指定的可用區,必須與承諾中指定的區域一致。
- 預留項目指定的機型必須支援您購買的特定承諾。
- 如果您使用依資源計算的承諾使用合約,且 Cloud Billing 帳戶未啟用承諾使用折扣共用,則預留項目和承諾使用合約必須屬於同一個專案。
視資源類型而定,您可獲得依資源或消費量計算的 CUD,用於預留執行個體。
依資源計算的 CUD
Compute Engine 提供下列機器資源 (例如 vCPU、記憶體、GPU 和本機 SSD 磁碟) 的資源型 CUD。根據預設,Compute Engine 會啟用CUD 共用,在 Cloud Billing 帳戶層級匯集依資源計算的 CUD,並將這些折扣套用至該帳戶中所有專案的適用用量。
vCPU 和記憶體:如要享有這些資源類型的依資源計算 CUD,請購買包含必要資源類型的依資源計算承諾使用合約。當 Cloud Billing 帳戶中的 VM 使用符合有效承諾屬性的任何保留項目時,Compute Engine 會自動將折扣套用至符合條件的使用量。如果您預留的資源超出承諾購買的數量,則這些額外資源不會獲得 CUD。
GPU 和本機 SSD 磁碟:如要享有 GPU 和大多數本機 SSD 磁碟的依資源計算 CUD,請務必執行下列兩項操作:
- 購買依資源計算的承諾使用合約,其中包含必要的資源類型。
- 建立預留項目,指定 GPU 或本機 SSD 磁碟,並設定與承諾使用合約相符的屬性,然後將這些預留項目附加至承諾使用合約。
如為按照資源計算的 CUD,這項預留項目規定適用於所有 GPU 和本機 SSD 磁碟,可用於大多數機器系列。購買承諾使用合約時,部分機器系列不需要附加本機 SSD 磁碟的預留項目。
Compute 彈性 CUD
Compute Engine 的依支出計算 CUD 稱為 Compute 彈性 CUD。 單一運算彈性承諾使用合約涵蓋 Cloud Billing 帳戶在 Compute Engine、GKE 和 Cloud Run 中符合資格的支出。 Google Cloud 這些承諾使用合約是在 Cloud Billing 帳戶層級購買,適用於各區域和機器設定的合格支出。
在 Compute Engine 中,下列資源適用彈性 CUD:
- 符合資格機器系列的 vCPU 和記憶體
- 所有本機 SSD 磁碟
- G2 (L4) 和 G4 (NVIDIA RTX Pro 6000) 機器系列的 GPU
與依資源計算的承諾使用合約不同,彈性運算承諾使用合約不需要或支援附加預留項目。您可以針對符合資格的 GPU 和本機 SSD 磁碟購買彈性運算承諾,不必預留這些資源。因此,這些承諾不保證任何符合資格的資源都有容量。如果是 G2 或 G4 機器類型等 GPU 執行個體,如果某個可用區沒有特定類型 (例如 G2) 的容量,您可以使用彈性運算承諾,在其他可用區部署這些 GPU 執行個體。如果任何可用區都沒有特定 GPU 類型 (例如 G2) 的容量,您可以改用其他 GPU 類型 (例如 G4) 部署,並透過彈性運算承諾使用合約支付費用。如果任何區域都沒有可用的 GPU 類型,您仍可使用彈性運算承諾方案,支付其他支援資源或服務的合格費用。如要確保有足夠的 GPU 容量,可供 G2 或 G4 執行個體使用,請分別為 G2 或 G4 執行個體建立預留項目。
如果 Cloud Billing 帳戶中有 Compute 彈性承諾,只要支出用於符合資格的資源,且符合適用支出條件,即可在該 Cloud Billing 帳戶中消耗預訂項目,並獲得適用的 Compute 彈性 CUD。
將預留項目附加至依資源計算的承諾使用合約
您可以將預留項目附加至任何依資源計算的承諾使用合約,確保在特定區域為您打算使用的承諾資源保留容量。您可以將多個保留項目附加至單一承諾合約,但保留項目只能附加至單一承諾合約。購買承諾產品後,您可以透過下列任一方式,將預留項目附加至該承諾產品:
不需要附加預留項目的資源類型
如要搭配某些機器系列使用 vCPU、記憶體和本機 Titanium SSD 磁碟,則無須將相符的預留項目附加至承諾。購買下列機器系列適用的承諾使用合約類型時,不需要附加預留項目,但僅限本機 Titanium SSD 磁碟:
- 加速器最佳化 G4
- 運算最佳化 H4D
- 一般用途 C4
- 一般用途 C4A
- 一般用途 C4D
- 網路最佳化 C4N
- 儲存空間最佳化 Z3
如要購買依資源計算的承諾使用合約,並納入這些資源類型,您可以購買該承諾使用合約,不必為這些資源附加任何預留項目。如要附加任何這些 vCPU、記憶體或本機 Titanium SSD 磁碟的預留項目,可以選擇附加這些預留項目。
這些資源的附加預留項目不必與承諾使用合約指定的資源類型和數量相符。具體來說,當您指定的資源量多於或少於承諾量時,會發生下列情況:
- 如果承諾使用合約指定的資源類型多於附加的預留項目,Compute Engine 只會為承諾使用合約指定的資源保留容量。不過,您仍可使用剩餘的已承諾資源,具體取決於這些資源在您所在區域的供應情形。
- 如果預訂的資源數量超過承諾量,您仍只會針對符合資格的資源用量獲得 CUD。啟用CUD 共用後,系統會將 Cloud Billing 帳戶中依資源計算的承諾使用合約集中管理,並套用至任何符合資格的用量。如果附加的預留項目指定的資源超出承諾用量,額外用量可能會按照以量計價的費率收費。
舉例來說,如果您購買 4 個 vCPU 和 30 GB 記憶體的承諾,可以選擇執行下列任一操作:
- 完全不附加任何預留項目。
附加預留項目,指定這些資源類型的任意組合,例如:
- 4 個 vCPU 和 30 GB 記憶體
- 2 個 vCPU 和 50 GB 記憶體
- 10 個 vCPU 和 10 GB 記憶體
不過,如果承諾使用合約指定任何需要附加預留項目的額外資源類型,您仍須附加這些資源的預留項目。
如要瞭解如何購買不需要預訂的資源承諾使用合約,請參閱「購買不附加保留項目的依資源計算承諾使用合約」。
需要附加預留項目的資源類型
對於所有 GPU 和大多數本機 SSD 磁碟,您必須預留這些資源,並將預留項目附加至依資源計算的承諾使用合約。如果沒有這些資源的附加預訂,您就無法購買依資源計算的承諾使用合約。部分本機 Titanium SSD 磁碟可搭配特定機器系列使用,因此不需附加預留項目。 購買內含 GPU、適用的本機 SSD 或兩者的資源承諾使用合約時,您必須預留這些資源,並將預留項目附加至承諾使用合約。你可以使用單一預留項目,或結合多個預留項目來完成這項操作。
購買需要附加預留項目的資源承諾時,您也可以選擇在同一份承諾中加入不需要附加預留項目的資源。在這種情況下,您可以選擇執行下列任一操作:
- 預留與承諾用量相符的選用資源數量。
- 預留的選用資源數量與承諾數量不同。
- 完全不預留選用資源。
如要瞭解如何購買 GPU 或本機 SSD 磁碟的承諾使用合約,請參閱下列文章:
搭配 A4X Max、A4X、A4 或 A3 Ultra 機型使用的 GPU:請參閱 AI Hypercomputer 說明文件中的「預留容量」。
所有其他 GPU 類型和適用的本機 SSD:請參閱本文中的「購買附加預留項目的資源承諾使用合約」。
如果承諾使用合約指定任何需要附加預留項目的資源類型,附加的預留項目必須指定這些資源的確切數量和類型。因此,附加的預留項目中也不得有任何額外的這類資源數量或類型。
舉例來說,假設您購買 30 GB 記憶體和 4 個 NVIDIA V100 GPU 的承諾。附加的預訂項目 (或附加的預訂項目組合) 可以指定任何數量的 vCPU 或記憶體,但必須有 4 個 NVIDIA V100 類型的 GPU。在本範例中,您無法附加指定下列任何資源組合的預訂:
- 6 個 NVIDIA V100 GPU
- 2 個 NVIDIA V100 GPU
- 4 個 NVIDIA V100 GPU 和 2 個 NVIDIA A100 GPU
- 4 個 NVIDIA V100 GPU 和 4 個本機 SSD 磁碟
如要查看支援 GPU 和本機 SSD 磁碟 CUD 的完整機器系列清單,請參閱資源型 CUD 說明文件的「硬體承諾類型」一節。
購買承諾後預留項目的行為
購買附加保留項目的承諾使用合約後,保留項目行為取決於承諾使用合約是否指定任何需要附加保留項目的資源類型:
- 需要附加預訂的承諾:如果承諾指定任何這類資源類型,則在承諾的生命週期內,您無法執行下列操作:
- 刪除附加的預留項目,或啟用這些預留項目的自動刪除設定。指定這些資源類型的約期到期時,系統會自動刪除所有附加的預留項目。
- 調整預訂大小,或修改預訂的任何屬性 (共用設定除外)。不過,您可以以新預訂項目取代現有預訂項目。
- 預留項目為選用項目的合約:如果合約適用於預留項目為選用項目的資源類型,您可以隨時刪除預留項目、變更預留 VM 數量,或修改自動刪除等屬性。這些約期到期後,除非您設定自動刪除,否則附加的預訂項目會繼續存在。刪除這些預留項目不會影響使用預留容量的執行中 VM。執行中的 VM 會持續運作,您也會繼續享有 CUD 涵蓋範圍,直到約期結束為止。
如要進一步瞭解附加預訂內容可變更和不可變更的項目,請參閱本文的「允許的變更」一節。
購買附加預留項目的依資源計算承諾使用合約
購買新的承諾使用合約時,您可以透過下列任一方式,將預訂項目附加至承諾使用合約:購買承諾後,承諾會在美國和加拿大太平洋時間 (即 UTC-8,日光節約時間實行期間則為 UTC-7) 隔天凌晨 12 點生效。 Compute Engine 會在您購買承諾使用合約的專案中, 為每個區域保留專案防刪除鎖定。在專案中為任何區域購買新的承諾使用方案時,Compute Engine 會將該區域的防刪除鎖定與新建立的承諾使用方案建立關聯。
購買承諾使用合約後到啟用之前,合約狀態會維持為 NOT_YET_ACTIVE (或 PENDING,視Google Cloud 控制台而定)。啟用之後,承諾使用合約的狀態會變更為「有效」ACTIVE。舉例來說,假設您在 2024 年 1 月 20 日晚上 10 點 (美國和加拿大太平洋時間,即 UTC-8 或 UTC-7) 購買承諾,Compute Engine 會立即建立承諾,狀態為 NOT_YET_ACTIVE。您的承諾將於 2024 年 1 月 21 日美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點ACTIVE生效。
需求條件
購買附帶預訂的約定方案前,請先詳閱下列規定,並確認約定方案和預訂符合下列條件:
- 您必須在相同專案和區域中購買承諾使用合約,並建立附加的預訂。
- 您必須購買承諾,並為同一機器家族系列中的資源建立附加保留項目。
- 如果約定指定任何需要附加預留項目的資源類型,請務必在附加的預留項目中停用自動刪除選項。進一步瞭解需要附加預留項目的資源類型。
- 如果承諾使用合約包含 GPU,則預留項目和承諾使用合約中指定的 GPU 類型必須相符。
對於 GPU 和大多數本機 SSD 磁碟,每種資源類型的預留資源數量,必須與該資源類型的承諾資源數量完全相符。不過,如果您在承諾中指定任何本機 Titanium SSD 磁碟,用於 C4、C4A、C4D、C4N、G4、H4D 或 Z3 機型,則不適用這項規定。
舉例來說,如要購買 4 個 V100 GPU 和 2 個本機 SSD 磁碟的承諾使用合約,則承諾使用合約附加的預留項目必須指定總共 4 個 V100 GPU 和 2 個本機 SSD。您預留的 vCPU 和記憶體數量可多於或少於承諾數量。不過,如果您在承諾使用合約中指定 4 個 C4A vCPU 和 2 個本機 Titanium SSD 磁碟,則不必將任何預訂項目附加至承諾使用合約。
如果是 GPU,請針對您打算使用的特定 GPU 類型購買承諾使用價格。舉例來說,您可以購買 NVIDIA A100 或 NVIDIA V100 的承諾,但不能使用為 NVIDIA A100 GPU 購買的承諾,來支付 NVIDIA V100 GPU 的費用。
如果附加的預留項目是共用預留項目,且您想在承諾專案以外使用該預留項目時,獲得適用的承諾使用折扣,則必須執行下列兩項操作:
- 保留項目只能在與承諾方案屬於同一個 Cloud Billing 帳戶的專案之間共用。
- 確認該 Cloud Billing 帳戶已啟用 CUD 共用功能。
加入現有預留項目
購買承諾時,可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 附加現有預留資源。
控制台
使用 Google Cloud 控制台購買承諾前,請選取要用於購買承諾的專案。如果 Cloud Billing 帳戶已啟用CUD 共用功能,您可以使用該 Cloud Billing 帳戶的任何專案購買承諾。選取專案後,請按照下列步驟操作:
前往 Google Cloud 控制台的「承諾使用折扣」頁面。 前往「承諾使用折扣」頁面
按一下「購買承諾」。 系統隨即會顯示「購買承諾使用合約」頁面。
在「Name」(名稱) 欄位中,輸入承諾的名稱。
在「Region」(區域) 欄位中,選取要購買約定的區域。
在「承諾類型」欄位中,選取承諾的機器家族系列。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:
- 如果是 A2 機型,請選取「加速器最佳化 A2」
- 如果是 A3 Edge 和 A3 High 機型,請選取「加速器最佳化 A3」
- 如果是 A3 Mega 機型,請選取「Accelerator-optimized A3 Mega」(加速器最佳化 A3 Mega)。
- 如果是 G2 機型,請選取「圖形最佳化 G2」
- 如果是 G4 機型,請選取「圖形最佳化 G4」
- 如果是 C2 機型,請選取「運算最佳化 C2」
- 如果是 C2D 機型,請選取「運算最佳化 C2D」
- 如果是 C3 機型,請選取「一般用途 C3」
- 如果是 C3D 機型,請選取「一般用途 C3D」
- 如果是 C4 機型,請選取「一般用途 C4」
- 如為 C4A 機型,請選取「一般用途 C4A」
- 如果是 C4D 機型,請選取「一般用途 C4D」
- 如為 C4N 機型,請選取「網路最佳化 C4N」
- 如果是 N1 機型,請選取「一般用途 N1」
- 如果是 N2 機型,請選取「一般用途 N2」
- 如果是 N2D 機型,請選取「一般用途 N2D」
- 如果是 M1 機型,請選取「記憶體最佳化 M1/M2」
- 如果是 M3 機型,請選取「記憶體最佳化 M3」
- 如果是 Z3 機型,請選取「儲存空間最佳化 Z3」
如要將一或多個現有預留項目加入承諾使用合約,請按照下列步驟操作:
勾選「附加現有或新的預留項目」核取方塊。
按一下「附加現有預留項目」。「Attach existing reservations」(附加現有預留項目) 窗格隨即顯示,並列出專案中的預留項目。這份清單會經過篩選,只顯示符合指定區域和使用承諾類型的項目。
在「附加現有預留項目」窗格中,找出要附加的預留項目,然後勾選對應的核取方塊。
查看所選預訂項目的資源摘要,然後按一下「附加」。
附加預留項目後,Compute Engine 會自動填入「承諾詳細資料」部分中的欄位,以符合所附加預留項目的資源數量和類型。如果您在附加預留項目之前,已在「承諾詳細資料」部分手動輸入任何資源的值,系統會以預留項目中的值覆寫這些值。
在「Commitment details」(承諾詳細資料) 部分,執行下列操作:
在「核心」欄位中,確認預先填入的值。您可以視需要指定不同數量的 vCPU。
在「記憶體」欄位中,確認預先填入的記憶體容量 (以 GB 為單位)。你也可以視需要指定其他金額。記憶體只能以 0.25 GB 為單位指定。如要為約定用量指定自訂記憶體值,請改用 gcloud CLI 或 REST。
展開「GPU 和本機 SSD」部分,並確認承諾和附加預留項目之間的類型和數量相符,如下所示:
在「GPU 類型」欄位中,確認預先填入的 GPU 類型。
在「Number of GPUs」(GPU 數量) 欄位中,確認預先填入的 GPU 數量。
在「本機 SSD」欄位中,確認預先填入的磁碟數量。
如果手動為任何這些欄位指定與附加預訂不同的值,承諾購買程序就會失敗。對於所有 GPU 和大部分的本機 SSD 磁碟,承諾使用合約和附加預留項目之間的總數和類型必須相符。
在「Term」(期限) 部分,執行下列操作:
如要指定承諾的方案,請選取「1 年」或「3 年」。方案會決定承諾的 CUD 費率和預設期限。
查看「開始日期」欄位,瞭解承諾生效的日期和時間。這個欄位會自動設為目前日期隔天的美國和加拿大太平洋時間凌晨 12 點。
選用。如要將承諾的約期延長至承諾方案預設的約期以外,請在「結束日期」欄位中,為承諾指定自訂結束日期。詳情請參閱「延長承諾使用合約期限」。
選用。如要讓承諾使用合約在約期結束時自動續訂,請選取「自動續訂承諾使用合約」核取方塊。
在「摘要」窗格中,查看承諾詳細資料和任何潛在配額限制。
如要完成購買承諾方案,請按照下列步驟操作:
gcloud
如要購買承諾使用合約並附加現有預留項目,請執行 gcloud compute commitments create 指令。在指令中加入 --existing-reservation 旗標,指定要附加至承諾的現有預訂。針對要附加的每個現有預訂項目,加入這個旗標的新例項。您可以將任意數量的現有預留項目附加至承諾。
舉例來說,如要購買承諾並附加兩項預訂,請執行下列指令:
gcloud compute commitments create COMMITMENT_NAME \
--region=REGION \
--project=PROJECT_ID \
--resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
--resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
--plan=PLAN \
--type=COMMITMENT_TYPE \
--custom-end-time=CUSTOM_END_DATE \
--existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \
--existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'
更改下列內容:
COMMITMENT_NAME:承諾方案的名稱。REGION:承諾所在的區域。PROJECT_ID:您要在當中購買承諾的專案 ID,並附上預訂。PLAN:承諾方案,決定 CUD 費率和預設期限。指定12-month或36-month。CUSTOM_END_DATE:選用。學期的自訂結束日期,格式必須為YYYY-MM-DD。舉例來說,如要將自訂結束日期設為 2024 年 4 月 20 日,請將格式設為2024-04-20。COMMITMENT_TYPE:承諾使用合約類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:- 如果是 A2 機型,請使用
accelerator-optimized - 如果是 A3 Edge 和 A3 High 機型,請使用
accelerator-optimized-a3 - 如為 A3 Mega 機型,請使用
accelerator-optimized-a3-mega - 如果是 G2 機型,請使用
graphics-optimized - 如要使用 G4 機型,請使用
graphics-optimized-g4 - 如果是 C2 機型,請使用
compute-optimized - 如果是 C2D 機型,請使用
compute-optimized-c2d - 如果是 C3 機型,請使用
compute-optimized-c3 - 如果是 C3D 機型,請使用
compute-optimized-c3d - 如果是 N1 機型,請使用
general-purpose - 如果是 C4 機型,請使用
general-purpose-c4 - 如為 C4A 機型,請使用
general-purpose-c4a - 如果是 C4D 機型,請使用
general-purpose-c4d - 如為 C4N 機型,請使用
network-optimized-c4n - 如果是 N2 機型,請使用
general-purpose-n2 - 如果是 N2D 機型,請使用
general-purpose-n2d - 如果是 M1 機型,請使用
memory-optimized - 如果是 M3 機型,請使用
memory-optimized-m3 - 如果是 Z3 機型,請使用
storage-optimized-z3
- 如果是 A2 機型,請使用
COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。該數字必須為正整數。COMMITTED_MEMORY:您希望在約定中使用的記憶體量,以 MB 或 GB 為單位。例如10240MB或10GB。使用 gcloud CLI 時,您可以指定以 MB 或 GB 為單位的記憶體。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 會以 MB 做為預設單位。COMMITTED_LOCAL_SSD:承諾使用的本機 SSD 空間量 (以 GB 為單位)。COMMITTED_ACCELERATOR_COUNT:承諾使用合約中要使用的 GPU 數量。COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。RESERVATION_NAME_1和RESERVATION_NAME_2:要附加至約定的現有預訂項目名稱。RESERVATION_ZONE_1和RESERVATION_ZONE_2:要附加至約定的現有預留資源可用區。
範例:附加現有預留項目來購買承諾使用合約
假設專案 myproject 的 us-central1-a 和 us-central1-b 可用區中有兩個預留項目 res-01 和 res-02。假設這些預留項目合計可容納 4 個 NVIDIA T4 GPU 和 4 個本機 SSD 磁碟。如要為這些 GPU 和本機 SSD,在這個專案的 us-central1 區域購買新的承諾使用合約,並將這些現有預留項目做為附加預留項目,請執行下列指令。承諾指定 96 個 vCPU、624 GB 記憶體、4 個 NVIDIA T4 GPU,以及 1,500 GB 的本機 SSD 儲存空間 (相當於 4 個本機 SSD 磁碟)。本機 SSD 儲存空間值必須以 GB 為單位指定 (例如 375GB)。使用 gcloud CLI 時,可以 MB 或 GB 為單位指定記憶體。如果未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 會以 MB 做為預設單位。
gcloud compute commitments create commitment-01 \
--region=us-central1 \
--project=myproject \
--resources=vcpu=96,memory=624GB,local-ssd=1500 \
--resources-accelerator=type=nvidia-tesla-t4,count=4 \
--plan 12-month \
--existing-reservation=name=res-01,zone=us-central1-a \
--existing-reservation=name=res-02,zone=us-central1-b
REST
如要購買附加現有預留項目的承諾使用合約,請向 regionCommitments.insert 方法發出 POST 要求。
在要求中加入 existingReservations 欄位,以半形逗號分隔的清單指定要附加至承諾的所有現有預訂。您可以將任意數量的現有預訂項目附加至年約。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
"name": "COMMITMENT_NAME",
"plan": "PLAN",
"type": "COMMITMENT_TYPE",
"resources":
[
{
"amount": "COMMITTED_VCPUS",
"type": "VCPU"
},
{
"amount": "COMMITTED_MEMORY",
"type": "MEMORY"
},
{
"acceleratorType": "COMMITTED_ACCELERATOR_TYPE",
"amount": "COMMITTED_ACCELERATOR_COUNT",
"type": "ACCELERATOR"
},
{
"amount": "COMMITTED_LOCAL_SSD",
"type": "LOCAL_SSD"
}
],
"customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ",
"existingReservations": "RESERVATION_URLs"
}
更改下列內容:
COMMITMENT_NAME:承諾方案的名稱。REGION:承諾所在的區域。PROJECT_ID:您要在當中購買承諾的專案 ID,並附上預訂。PLAN:承諾方案,決定 CUD 費率和預設期限。指定TWELVE_MONTH或THIRTY_SIX_MONTH。COMMITMENT_TYPE:承諾使用合約類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:- 如果是 A2 機型,請使用
ACCELERATOR_OPTIMIZED - 如果是 A3 Edge 和 A3 High 機型,請使用
ACCELERATOR_OPTIMIZED_A3 - 如為 A3 Mega 機型,請使用
ACCELERATOR_OPTIMIZED_A3_MEGA - 如果是 G2 機型,請使用
GRAPHICS_OPTIMIZED - 如要使用 G4 機型,請使用
GRAPHICS_OPTIMIZED_G4 - 如果是 C2 機型,請使用
COMPUTE_OPTIMIZED - 如果是 C2D 機型,請使用
COMPUTE_OPTIMIZED_C2D - 如果是 C3 機型,請使用
COMPUTE_OPTIMIZED_C3 - 如果是 C3D 機型,請使用
COMPUTE_OPTIMIZED_C3D - 如果是 N1 機型,請使用
GENERAL_PURPOSE - 如果是 C4 機型,請使用
GENERAL_PURPOSE_C4 - 如為 C4A 機型,請使用
GENERAL_PURPOSE_C4A - 如果是 C4D 機型,請使用
GENERAL_PURPOSE_C4D - 如為 C4N 機型,請使用
NETWORK_OPTIMIZED_C4N - 如果是 N2 機型,請使用
GENERAL_PURPOSE_N2 - 如果是 N2D 機型,請使用
GENERAL_PURPOSE_N2D - 如果是 M1 機型,請使用
MEMORY_OPTIMIZED - 如果是 M3 機型,請使用
MEMORY_OPTIMIZED_M3 - 如果是 Z3 機型,請使用
STORAGE_OPTIMIZED_Z3
- 如果是 A2 機型,請使用
COMMITTED_VCPUS:承諾使用的 vCPU 數量。該數字必須為正整數。COMMITTED_MEMORY:您要在承諾中使用的記憶體量。如果是 REST,Compute Engine 預設會使用 MB 做為單位。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為預設單位。COMMITTED_LOCAL_SSD:承諾使用合約中本機 SSD 儲存空間的大小 (以 GB 為單位)。COMMITTED_ACCELERATOR_COUNT:您希望在承諾中使用的 GPU 數量。COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。CUSTOM_END_DATE:選用。自訂約期結束日期,格式必須為YYYY-MM-DD。舉例來說,如要將自訂結束日期設為 2024 年 4 月 20 日,請將格式設為2024-04-20。END_TIME:美國和加拿大太平洋時間凌晨 12 點 (UTC-8 或 UTC-7),即世界標準時間 (UTC) 的時差。 只有在為合約指定自訂結束日期時,才需要指定這個值。請指定下列其中一個值:- 日光節約時間:
07:00:00 - 其他時間:
08:00:00
- 日光節約時間:
RESERVATION_URLs:以半形逗號分隔的現有預訂網址清單,您要將這些預訂項目附加至承諾。舉例來說,如要附加兩個預留項目 (res-1和res-2),請指定下列項目:"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1", "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
範例:附加現有預留項目來購買承諾使用合約
假設專案 myproject 的 us-central1-a 和 us-central1-b 可用區中有兩個預留項目 res-01 和 res-02。假設這些預留項目合計可容納 4 個 NVIDIA T4 GPU 和 4 個本機 SSD 磁碟。如要為這些 GPU 和本機 SSD 購買這個專案 us-central1 區域的新承諾使用合約,並將這些現有預留項目做為附加預留項目,請提出下列 POST 要求。承諾指定 96 個 vCPU、624 GB 記憶體、4 個 NVIDIA T4 GPU 和 1,500 GB 本機 SSD 儲存空間。請注意,本機 SSD 儲存空間值必須以 GB 為單位。記憶體:
必須以 MB 為單位指定值。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為記憶體的預設單位。
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments
{
"name": "commitment-01",
"plan": "TWELVE_MONTH",
"type": "GENERAL_PURPOSE",
"resources":
[
{
"amount": "96",
"type": "VCPU"
},
{
"amount": "638976",
"type": "MEMORY"
},
{
"acceleratorType": "nvidia-tesla-t4",
"amount": "4",
"type": "ACCELERATOR"
},
{
"amount": "1500",
"type": "LOCAL_SSD"
}
],
"existingReservations":
[
"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/res-01",
"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-b/reservations/res-02"
]
}
建立要附加的新預留項目
購買承諾時,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 建立附加預留資源。
控制台
使用 Google Cloud 控制台購買承諾前,請選取要用於購買承諾的專案。如果 Cloud Billing 帳戶已啟用CUD 共用功能,您可以使用該 Cloud Billing 帳戶的任何專案購買承諾。選取專案後,請按照下列步驟操作:
前往 Google Cloud 控制台的「承諾使用折扣」頁面。 前往「承諾使用折扣」頁面
按一下「購買承諾」。 系統隨即會顯示「購買承諾使用合約」頁面。
在「Name」(名稱) 欄位中,輸入承諾的名稱。
在「Region」(區域) 欄位中,選取要購買約定的區域。
在「承諾類型」欄位中,選取承諾的機器家族系列。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:
- 如果是 A2 機型,請選取「加速器最佳化 A2」
- 如果是 A3 Edge 和 A3 High 機型,請選取「加速器最佳化 A3」
- 如果是 A3 Mega 機型,請選取「Accelerator-optimized A3 Mega」(加速器最佳化 A3 Mega)。
- 如果是 G2 機型,請選取「圖形最佳化 G2」
- 如果是 G4 機型,請選取「圖形最佳化 G4」
- 如果是 C2 機型,請選取「運算最佳化 C2」
- 如果是 C2D 機型,請選取「運算最佳化 C2D」
- 如果是 C3 機型,請選取「一般用途 C3」
- 如果是 C3D 機型,請選取「一般用途 C3D」
- 如果是 C4 機型,請選取「一般用途 C4」
- 如為 C4A 機型,請選取「一般用途 C4A」
- 如果是 C4D 機型,請選取「一般用途 C4D」
- 如為 C4N 機型,請選取「網路最佳化 C4N」
- 如果是 N1 機型,請選取「一般用途 N1」
- 如果是 N2 機型,請選取「一般用途 N2」
- 如果是 N2D 機型,請選取「一般用途 N2D」
- 如果是 M1 機型,請選取「記憶體最佳化 M1/M2」
- 如果是 M3 機型,請選取「記憶體最佳化 M3」
- 如果是 Z3 機型,請選取「儲存空間最佳化 Z3」
如要建立新的預留項目並附加至承諾使用合約,請按照下列步驟操作:
勾選「附加現有或新的預留項目」核取方塊。
按一下「建立新預留項目」。「建立新的預留項目」窗格隨即顯示。
在「Name」(名稱) 欄位中,輸入預留項目的名稱。
選用:在「Description」(說明) 欄位中輸入說明。
在「Zone」(可用區) 欄位中,選取要提供預留資源的可用區。
在「共用類型」部分,指定要如何共用這項預訂:
- 如要建立單一專案預留項目,請選取「本機」。
- 如要建立可供多個專案使用的預留項目,請選取「共用」。然後按一下「新增專案」,選取所需專案。
在「Google Cloud Services」(Google Cloud 服務) 部分,指定是否要與 Google Kubernetes Engine 或 Vertex AI 等其他服務共用此預留項目。
在「Use with VM instance」(用於 VM 執行個體) 專區中,選取 VM 要如何使用預留項目:
- 如要允許屬性相符的 VM 自動使用這個預留項目,請選取「Use reservation automatically」(自動使用預留項目)。
- 如要只在明確指定這個預留項目名稱時,才使用這個預留項目的資源,請選用「Select specific reservation」(選取特定預留項目)。
在「資源詳細資料」部分,執行下列操作:
在「Number of VM instances」(VM 執行個體數量) 欄位中,輸入 VM 數量。
在「機器設定」部分,選取「機型」來指定屬性。從清單中選取機型,或選取「自訂」Custom來指定「核心」Cores數量和「記憶體」Memory容量。
選用:如要預留 GPU,請按一下「新增 GPU」,然後為每個 VM 指定「GPU 類型」和「GPU 數量」。
選用:如要預留本機 SSD 磁碟,請指定磁碟數量和介面類型。
選用:如要指定群組配置政策,請在「群組配置政策」清單中選取或建立政策。
如要完成指定這項預留項目的屬性,請按一下「建立並附加」。
選用:如要建立及附加更多新的預訂,請再次點選「建立新的預訂」,然後重複這些步驟。
附加預留項目後,Compute Engine 會自動填入「承諾詳細資料」部分中的欄位,以符合所附加預留項目的資源數量和類型。如果您在附加預留項目之前,已在「承諾詳細資料」部分手動輸入任何資源的值,系統會以預留項目中的值覆寫這些值。
在「Commitment details」(承諾詳細資料) 部分,執行下列操作:
在「核心」欄位中,確認預先填入的值。您可以視需要指定不同數量的 vCPU。
在「記憶體」欄位中,確認預先填入的記憶體容量 (以 GB 為單位)。你也可以視需要指定其他金額。記憶體只能以 0.25 GB 為單位指定。如要為約定用量指定自訂記憶體值,請改用 gcloud CLI 或 REST。
展開「GPU 和本機 SSD」部分,並確認承諾和附加預留項目之間的類型和數量相符,如下所示:
在「GPU 類型」欄位中,確認預先填入的 GPU 類型。
在「Number of GPUs」(GPU 數量) 欄位中,確認預先填入的 GPU 數量。
在「本機 SSD」欄位中,確認預先填入的磁碟數量。
如果手動為任何這些欄位指定與附加預訂不同的值,承諾購買程序就會失敗。對於所有 GPU 和大部分的本機 SSD 磁碟,承諾使用合約和附加預留項目之間的總數和類型必須相符。
在「Term」(期限) 部分,執行下列操作:
如要指定承諾的方案,請選取「1 年」或「3 年」。方案會決定承諾的 CUD 費率和預設期限。
查看「開始日期」欄位,瞭解承諾生效的日期和時間。這個欄位會自動設為目前日期隔天的美國和加拿大太平洋時間凌晨 12 點。
選用。如要將承諾的約期延長至承諾方案預設的約期以外,請在「結束日期」欄位中,為承諾指定自訂結束日期。詳情請參閱「延長承諾使用合約期限」。
選用。如要讓承諾使用合約在約期結束時自動續訂,請選取「自動續訂承諾使用合約」核取方塊。
在「摘要」窗格中,查看承諾詳細資料和任何潛在配額限制。
如要完成購買承諾方案,請按照下列步驟操作:
gcloud
如要在購買承諾使用合約時建立附加的預留項目,請執行 gcloud compute commitments create 指令。
視要附加單一或多個預訂項目而定,請以下列其中一種方式執行指令:
如要建立單一預留項目並附加至承諾,請執行下列指令,定義附加預留項目的屬性:
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --plan PLAN \ --type COMMITMENT_TYPE --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --custom-end-time=CUSTOM_END_DATE \ --reservation=RESERVATION_NAME \ --reservation-zone=RESERVATION_ZONE \ --machine-type=RESERVED_MACHINE_TYPE \ --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \ --vm-count=NUMBER_OF_RESERVED_VMs \ --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \ --local-ssd=interface=INTERFACE_1,size=375 \ --local-ssd=interface=INTERFACE_2,size=375 \ --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \ --share-setting=SHARE_SETTING \ --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2如要建立多個預訂並附加至約期,請使用 YAML 檔案定義預訂的屬性,然後在用於購買約期的指令中指定該 YAML 檔案。您也可以選擇使用這個 YAML 檔案方法,為約期建立及附加單一預留項目。如要使用這個方法建立附加預訂,請按照下列步驟操作:
在目前目錄中建立 YAML 檔案,並為每個附加預訂項目指定所需設定。舉例來說,如要指定與兩個專案共用的共用預留資源設定,其中指定了 GPU、兩個本機 SSD 磁碟和最低 CPU 平台,請在 YAML 檔案中加入下列文字:
- reservation: RESERVATION_NAME reservation_zone: RESERVATION_ZONE require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE vm_count: NUMBER_OF_RESERVED_VMs machine_type: RESERVED_MACHINE_TYPE accelerator: - count: RESERVED_ACCELERATOR_COUNT type: RESERVED_ACCELERATOR_TYPE localssd: - interface: INTERFACE_1 size: 375 - interface: INTERFACE_2 size: 375 project: OWNER_PROJECT_ID minimum-cpu-platform: MINIMUM_CPU_PLATFORM share-setting: SHARE_SETTING share-with: - CONSUMER_PROJECT_ID_1 - CONSUMER_PROJECT_ID_2如要為多個預訂項目指定設定,請針對要建立的每個預訂項目重複這些屬性。您可以將任意數量的現有預留項目附加至承諾方案。
執行
gcloud compute commitments create指令並加上--reservation-from-file旗標。gcloud compute commitments create COMMITMENT_NAME \ --region REGION \ --project PROJECT_ID \ --plan PLAN \ --type COMMITMENT_TYPE \ --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --reservations-from-file=YAML_FILE
將下列項目換成承諾和附加預留項目的對應屬性:
承諾使用合約
COMMITMENT_NAME:承諾方案的名稱。REGION:承諾所在的區域。PROJECT_ID:您要在當中購買承諾的專案 ID,並附上預訂。PLAN:承諾方案,決定 CUD 費率和預設期限。指定12-month或36-month。CUSTOM_END_DATE:選用。學期的自訂結束日期,格式必須為YYYY-MM-DD。舉例來說,如要將自訂結束日期設為 2024 年 4 月 20 日,請將格式設為2024-04-20。COMMITMENT_TYPE:承諾使用合約類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:- 如果是 A2 機型,請使用
accelerator-optimized - 如果是 A3 Edge 和 A3 High 機型,請使用
accelerator-optimized-a3 - 如為 A3 Mega 機型,請使用
accelerator-optimized-a3-mega - 如果是 G2 機型,請使用
graphics-optimized - 如要使用 G4 機型,請使用
graphics-optimized-g4 - 如果是 C2 機型,請使用
compute-optimized - 如果是 C2D 機型,請使用
compute-optimized-c2d - 如果是 C3 機型,請使用
compute-optimized-c3 - 如果是 C3D 機型,請使用
compute-optimized-c3d - 如果是 N1 機型,請使用
general-purpose - 如果是 C4 機型,請使用
general-purpose-c4 - 如為 C4A 機型,請使用
general-purpose-c4a - 如果是 C4D 機型,請使用
general-purpose-c4d - 如為 C4N 機型,請使用
network-optimized-c4n - 如果是 N2 機型,請使用
general-purpose-n2 - 如果是 N2D 機型,請使用
general-purpose-n2d - 如果是 M1 機型,請使用
memory-optimized - 如果是 M3 機型,請使用
memory-optimized-m3 - 如果是 Z3 機型,請使用
storage-optimized-z3
- 如果是 A2 機型,請使用
COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。該數字必須為正整數。COMMITTED_MEMORY:您希望在約定中使用的記憶體量,以 MB 或 GB 為單位。例如10GB或10240MB。使用 gcloud CLI 時,您可以指定 MB 或 GB 的記憶體。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 會以 MB 做為預設單位。COMMITTED_LOCAL_SSD:本機 SSD 儲存空間大小,必須以 GB 為單位指定,例如375GB。COMMITTED_ACCELERATOR_COUNT:您希望在承諾中使用的 GPU 數量。COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。YAML_FILE:YAML 檔案的路徑,其中包含附加預留位置的設定。
附加的預留項目
RESERVATION_NAME:附加預訂的名稱。RESERVATION_ZONE:附加預留項目的可用區。REQUIRE_SPECIFIC_RESERVATION_VALUE:指定附加的預留項目是否為明確指定的預留項目;可為true或false。如要進一步瞭解特定預留項目,請參閱「預留項目的運作方式」。NUMBER_OF_RESERVED_VMS:要在附加的預留項目中預留的 VM 數量。RESERVED_MACHINE_TYPE:您要用於附加預留項目的 VM 的機型。- 如要使用預先定義的機型,請使用
MACHINE_FAMILY-standard-CPUS格式,例如n2-standard-4。 如為自訂機器類型,請使用
MACHINE_FAMILY-custom-CPUS-MEMORY格式,例如n2-custom-4-5120。如需完整限制清單,請參閱自訂機型規格。更改下列內容:
MACHINE_FAMILY:機器類型系列,例如為 N2 VM 指定n2。CPUS:vCPUs 數量。MEMORY:預留 VM 的總記憶體。記憶體必須是 256 MB 的倍數,且必須以 MB 為單位提供;舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用n2-custom-4-5120。
- 如要使用預先定義的機型,請使用
RESERVED_ACCELERATOR_COUNT:您要在附加的預留項目中,為每個 VM 新增的 GPU 數量。RESERVED_ACCELERATOR_TYPE:要在隨附預訂中新增的加速器類型。INTERFACE_1和INTERFACE_2:您希望每個預留 VM 使用的本機 SSD 磁碟介面類型。有效選項為scsi和nvme。 針對要新增的每個本機 SSD 磁碟,重複local_ssd參數。最多可指定 24 個本機 SSD 磁碟。OWNER_PROJECT_ID:您要在當中購買承諾的專案 ID,並附上預訂。如要跨多個消費者專案共用附加的預留項目,請指定這個欄位。MINIMUM_CPU_PLATFORM:要為附加預留項目指定的最低 CPU 平台。SHARE_SETTING:附加預訂的分享類型。如要跨多個消費者專案共用附加的預留項目,請將這個欄位的值指定為projects。如要建立單一專案預留項目,請排除這個欄位。CONSUMER_PROJECT_ID_1和CONSUMER_PROJECT_ID_2:可共用這項預留項目的專案專案 ID,例如project-1和project-2。最多可加入 100 個消費性專案。這些專案必須與擁有者專案位於同一個機構。請勿加入您建立這項預留項目的專案 ID,因為該專案預設可使用這項預留項目。如要建立單一專案預留項目,請排除這些欄位。
只有在要求時,目標可用區有足夠的指定機型資源和配額,Compute Engine 才會建立承諾和附加的預留項目。如果購買成功,您會看到類似以下的成功訊息:
Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]
範例
以下範例情境和指令說明如何建立新的預留項目,並附加至承諾使用合約,藉此購買 GPU、本機 SSD 磁碟或兩者的承諾使用合約。
範例 1:附加單一新預留項目,購買 GPU 的承諾使用合約
假設您想在 us-central1 區域購買 1 年期承諾使用合約,以取得 96 個 vCPU、624 GB 記憶體和 4 個 NVIDIA V100 GPU 的一般用途資源 (或 GPU 資源)。您想在 us-central1-a 區域中建立新的預留項目 reservation-01,預留 2 個 n1-standard-32 VM (每個 VM 都有 32 個 vCPU、120 GB 記憶體和 2 個 NVIDIA V100 GPU),以使用這些承諾資源。如要購買這個範例承諾使用合約,並附加預留項目,請執行下列指令。使用 gcloud CLI 時,可以 MB 或 GB 為單位指定記憶體。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 會以 MB 做為預設單位。
gcloud compute commitments create commitment-01 \
--region=us-central1 \
--project=myproject \
--resources=vcpu=96,memory=624GB \
--resources-accelerator=type=nvidia-tesla-v100,count=4 \
--plan 12-month \
--reservation=reservation-01 \
--reservation-zone=us-central1-a \
--machine-type=n1-standard-32 \
--accelerator=type=nvidia-tesla-v100,count=2 \
--vm-count=2
範例 2:購買 GPU 承諾使用合約,但不指定 vCPU 或記憶體
如要承諾使用並預留 GPU 和本機 SSD 磁碟,但不想承諾使用 vCPU 或記憶體,請將 vCPU 和記憶體數量指定為 0。舉例來說,假設您想在 us-west2 區域購買 1 年期 GPU 資源承諾使用合約,當中包含 0 個 vCPU、0 GB 記憶體和 1 個 NVIDIA P4 GPU。您也想在 us-west2-b 可用區建立新的預留項目 reservation-01,預留 1 個 n1-standard-2 VM (具備 2 個 vCPU、7.5 GB 記憶體和 1 個 NVIDIA P4 GPU),並附加至承諾使用合約。如要購買這個範例承諾使用合約和附加的預留項目,請執行下列指令。使用 gcloud CLI 時,您可以指定 MB 或 GB 的記憶體。如未指定單位,Compute Engine 會使用 GB 做為預設單位。不過請注意,使用 REST 時,Compute Engine 會以 MB 做為預設單位。
gcloud compute commitments create commitment-02 \
--region=us-west2 \
--project=myproject \
--resources=vcpu=0,memory=0 \
--resources-accelerator=type=nvidia-tesla-p4,count=1 \
--plan 12-month \
--reservation=reservation-01 \
--reservation-zone=us-west2-b \
--machine-type=n1-standard-2 \
--accelerator=type=nvidia-tesla-p4,count=1 \
--vm-count=1
示例 3:附加多個新預留項目,購買 GPU 和本機 SSD 承諾使用合約
假設您想在 us-central1 區域購買一般用途資源 (或 GPU 和本機 SSD 資源) 的 1 年期承諾使用合約。您希望承諾使用 96 個 vCPU、624 GB 記憶體、1 個 NVIDIA V100 GPU 和 750 GB 本機 SSD 儲存空間 (相當於 2 個本機 SSD 磁碟)。您也想在 us-central1-a 可用區建立並附加兩個預留項目。在第一個預訂中 (res-01),您想預訂 1 個 n1-standard-2 VM (含 2 個 vCPU、7.5 GB 記憶體和 1 個 NVIDIA V100 GPU);這是目標預訂。在第二個預留項目 res-02 中,您想預留 1 個 n1-standard-8 VM (具備 8 個 vCPU、30 GB 記憶體),並附加 2 個本機 SSD 磁碟 (一個 SCSI 介面,一個 NVMe 介面)。
如要購買這個範例承諾使用合約並附加預留項目,請先建立 YAML 檔案,並加入兩個預留項目的屬性,如下所示:
- reservation: res-01
reservation_zone: us-central1-a
require_specific_reservation: true
vm_count: 1
machine_type: n1-standard-2
accelerator:
- count: 1
type: nvidia-tesla-v100
- reservation: res-02
reservation_zone: us-central1-a
vm_count: 1
machine_type: n1-standard-8
local_ssd:
- interface: scsi
size: 375
- interface: nvme
size: 375
建立 YAML 檔案後,請執行下列指令,完成購買附帶預留項目的約定。本機 SSD 儲存空間值必須以 GB 為單位指定 (例如 375GB)。使用 gcloud CLI 時,可以 MB 或 GB 為單位指定記憶體。如未指定單位,Compute Engine 會預設使用 GB。不過請注意,使用 REST 時,Compute Engine 預設會以 MB 做為記憶體單位。
gcloud compute commitments create commitment-03 \
--region=us-central1 \
--project=myproject \
--resources=vcpu=96,memory=624,local-ssd=750 \
--resources-accelerator=type=nvidia-tesla-v100,count=1 \
--plan 12-month \
--reservations-from-file=YAML_FILE
REST
如要在購買約定期間建立附加預留項目,請對 regionCommitments.insert 方法提出 POST 要求。在要求中加入 reservations 欄位,定義要建立及附加的所有新預訂清單。您可以將任意數量的現有預留項目附加至年約。
如要手動指定所有 VM 屬性來建立新預訂,請加入
instanceProperties欄位,並排除sourceInstanceTemplate欄位。舉例來說,如要手動指定與兩個專案共用的預留項目設定,並指定 GPU、兩個本機 SSD 磁碟和最低 CPU 平台,請提出下列要求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "PLAN", "type": "COMMITMENT_TYPE", "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" }, { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "reservations": [ { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_RESERVED_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": "RESERVED_ACCELERATOR_COUNT", "acceleratorType": "RESERVED_ACCELERATOR_TYPE" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "RESERVED_INTERFACE_1" }, { "diskSizeGb": "375", "interface": "RESERVED_INTERFACE_2" } ], "machineType": "RESERVED_MACHINE_TYPE", "minCpuPlatform": "MINIMUM_CPU_PLATFORM" } }, "specificReservationRequired": "REQUIRE_SPECIFIC_RESERVATION_VALUE", "zone": "RESERVED_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } } ] }如要指定執行個體範本來建立新預留項目,請加入
sourceInstanceTemplate欄位並排除instanceProperties欄位。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "PLAN", "type": "COMMITMENT_TYPE", "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" }, { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "reservations": [ { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_RESERVED_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" }, "specificReservationRequired": "REQUIRE_SPECIFIC_RESERVATION_VALUE", "zone": "RESERVED_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } } ] }
將下列項目換成承諾和附加預留項目的對應屬性:
承諾使用合約
COMMITMENT_NAME:承諾方案的名稱。REGION:承諾所在的區域。PROJECT_ID:您要在當中購買承諾的專案 ID,並附上預訂。PLAN:承諾方案,決定 CUD 費率和預設期限。指定TWELVE_MONTH或THIRTY_SIX_MONTH。COMMITMENT_TYPE:承諾使用合約類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:- 如果是 A2 機型,請使用
ACCELERATOR_OPTIMIZED - 如果是 A3 Edge 和 A3 High 機型,請使用
ACCELERATOR_OPTIMIZED_A3 - 如為 A3 Mega 機型,請使用
ACCELERATOR_OPTIMIZED_A3_MEGA - 如果是 G2 機型,請使用
GRAPHICS_OPTIMIZED - 如要使用 G4 機型,請使用
GRAPHICS_OPTIMIZED_G4 - 如果是 C2 機型,請使用
COMPUTE_OPTIMIZED - 如果是 C2D 機型,請使用
COMPUTE_OPTIMIZED_C2D - 如果是 C3 機型,請使用
COMPUTE_OPTIMIZED_C3 - 如果是 C3D 機型,請使用
COMPUTE_OPTIMIZED_C3D - 如果是 N1 機型,請使用
GENERAL_PURPOSE - 如果是 C4 機型,請使用
GENERAL_PURPOSE_C4 - 如為 C4A 機型,請使用
GENERAL_PURPOSE_C4A - 如果是 C4D 機型,請使用
GENERAL_PURPOSE_C4D - 如為 C4N 機型,請使用
NETWORK_OPTIMIZED_C4N - 如果是 N2 機型,請使用
GENERAL_PURPOSE_N2 - 如果是 N2D 機型,請使用
GENERAL_PURPOSE_N2D - 如果是 M1 機型,請使用
MEMORY_OPTIMIZED - 如果是 M3 機型,請使用
MEMORY_OPTIMIZED_M3 - 如果是 Z3 機型,請使用
STORAGE_OPTIMIZED_Z3
- 如果是 A2 機型,請使用
COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。該數字必須為正整數。COMMITTED_MEMORY:您要在承諾中使用的記憶體量。如果是 REST,Compute Engine 預設會使用 MB 做為單位。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為預設單位。COMMITTED_LOCAL_SSD:承諾使用合約中本機 SSD 儲存空間的大小 (以 GB 為單位)。COMMITTED_ACCELERATOR_COUNT:您希望在承諾中使用的 GPU 數量。COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。CUSTOM_END_DATE:選用。學期的自訂結束日期,格式必須為YYYY-MM-DD。舉例來說,如要將自訂結束日期設為 2024 年 4 月 20 日,請將格式設為2024-04-20。END_TIME:美國和加拿大太平洋時間凌晨 12 點 (UTC-8 或 UTC-7),即世界標準時間 (UTC) 的時差。 只有在為合約指定自訂結束日期時,才需要指定這個值。請指定下列其中一個值:- 日光節約時間:
07:00:00 - 其他時間:
08:00:00
- 日光節約時間:
附加的預留項目
RESERVATION_NAME:附加預訂的名稱。RESERVATION_ZONE:附加預留項目的可用區。REQUIRE_SPECIFIC_RESERVATION_VALUE:指定附加的預留項目是否為明確指定的預留項目;可為true或false。如要進一步瞭解特定預留項目,請參閱「預留項目的運作方式」。NUMBER_OF_RESERVED_VMS:要在附加的預留項目中預留的 VM 數量。RESERVED_MACHINE_TYPE:您要用於附加預留項目的 VM 的機型。- 如要使用預先定義的機型,請使用
MACHINE_FAMILY-standard-CPUS格式,例如n2-standard-4。 如為自訂機器類型,請使用
MACHINE_FAMILY-custom-CPUS-MEMORY格式,例如n2-custom-4-5120。如需完整限制清單,請參閱自訂機型規格。更改下列內容:
MACHINE_FAMILY:機器類型系列,例如為 N2 VM 指定n2。CPUS:vCPUs 數量。MEMORY:預留 VM 的總記憶體。記憶體必須是 256 MB 的倍數,且必須以 MB 為單位提供;舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用n2-custom-4-5120。
- 如要使用預先定義的機型,請使用
RESERVED_ACCELERATOR_COUNT:您要在附加的預留項目中,為每個 VM 新增的 GPU 數量。RESERVED_ACCELERATOR_TYPE:要在隨附預訂中新增的加速器類型。INTERFACE_1和INTERFACE_2:您希望每個預留 VM 使用的本機 SSD 磁碟介面類型。有效選項為scsi和nvme。針對要新增的每個本機 SSD 磁碟,重複使用localSsds參數。最多可指定 24 個本機 SSD 磁碟。MINIMUM_CPU_PLATFORM:要為附加預留項目指定的最低 CPU 平台。INSTANCE_TEMPLATE_NAME:要用於建立附加預留項目的執行個體範本名稱。SHARE_SETTING:附加預訂的分享類型。如要跨多個消費者專案共用附加的預留項目,請將這個欄位指定為SPECIFIC_PROJECTS值。如要建立單一專案預留項目,請排除這個欄位。CONSUMER_PROJECT_ID_1和CONSUMER_PROJECT_ID_2:可共用此預留項目的專案專案 ID,例如project-1和project-2。最多可加入 100 個消費性專案。這些專案必須與擁有者專案位於同一個機構。請勿加入您建立這項預留項目的專案 ID,因為該專案預設可使用這項預留項目。如要建立單一專案預留項目,請排除這些欄位。
只有在要求時,目標可用區有足夠的指定機型資源和配額,Compute Engine 才會建立承諾和附加的預留項目。如果購買成功,Compute Engine 會針對 REST API 要求傳回 200 狀態。
範例
以下範例情境和指令說明如何建立新的預留項目,並附加至承諾使用合約,藉此購買 GPU、本機 SSD 磁碟或兩者的承諾使用合約。
範例 1:附加單一新預留項目,購買 GPU 的承諾使用合約
假設您想在 us-central1 區域購買一般用途資源的 1 年期方案,包括 96 個 vCPU、624 GB 的記憶體 (相當於 638976 MB) 和 4 個 NVIDIA V100 GPU。您想在 us-central1-a 可用區中建立新的預訂 reservation-01,預訂 2 個 n1-standard-8 VM (每個 VM 具備 8 個 vCPU、30 GB 記憶體和 2 個 NVIDIA V100 GPU),並將這些 VM 附加至該約期。如要購買這個範例承諾,並附上預留項目,請提出下列 POST 要求。如果是 REST,您必須以 MB 為單位指定記憶體。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為預設單位。
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments
{
"name": "commitment-01",
"plan": "TWELVE_MONTH",
"type": "GENERAL_PURPOSE",
"resources":
[
{
"amount": "96",
"type": "VCPU"
},
{
"amount": "638976",
"type": "MEMORY"
},
{
"acceleratorType": "nvidia-tesla-v100",
"amount": "4",
"type": "ACCELERATOR"
}
],
"reservations":
[
{
"name": "reservation-01",
"specificReservation":
{
"count": "2",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": 2,
"acceleratorType": "nvidia-tesla-v100"
}
],
"machineType": "n1-standard-8"
}
},
"specificReservationRequired": false,
"zone": "us-central1-a"
}
]
}
範例 2:購買 GPU 承諾使用合約,但不指定 vCPU 或記憶體
如要承諾使用並預留 GPU 和本機 SSD 磁碟,但不想承諾使用 vCPU 或記憶體,請將 vCPU 和記憶體數量指定為 0。舉例來說,假設您只想在 us-west2 區域購買 1 年的 GPU 資源承諾使用合約,且 vCPU 數量為 0、記憶體容量為 0 MB,以及 4 個 NVIDIA P4 GPU。您也想在 us-west2-b 區域建立新的預留項目 reservation-01,預留 1 個 n1-standard-2 VM (具備 2 個 vCPU、7.5 GB 記憶體和 4 個 NVIDIA P4 GPU),並附加至承諾使用合約。如要購買這個範例承諾使用合約 (附帶保留項目),請發出下列 POST 要求。如果是 REST,您必須以 MB 為單位指定記憶體。
不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為預設單位。
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments
{
"name": "commitment-02",
"plan": "TWELVE_MONTH",
"type": "GENERAL_PURPOSE",
"resources":
[
{
"amount": "0",
"type": "VCPU"
},
{
"amount": "0",
"type": "MEMORY"
},
{
"acceleratorType": "nvidia-tesla-p4",
"amount": "4",
"type": "ACCELERATOR"
}
],
"reservations":
[
{
"name": "reservation-01",
"specificReservation":
{
"count": "1",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": 4,
"acceleratorType": "nvidia-tesla-p4"
}
],
"machineType": "n1-standard-2"
}
},
"specificReservationRequired": false,
"zone": "us-west2-b"
}
]
}
示例 3:附加多個新預留項目,購買 GPU 和本機 SSD 承諾使用合約
假設您想在 us-central1 區域購買一般用途資源的 1 年期承諾,其中包含 96 個 vCPU、624 GB 記憶體 (相當於 638976 MB)、1 個 NVIDIA V100 GPU,以及 750 GB 的本機 SSD 儲存空間。您也想在 us-central1-a 可用區中建立並附加兩個預留項目。在第一個預訂中 (res-01),您想預訂 1 個 n1-standard-2 VM (含 2 個 vCPU、7.5 GB 記憶體和 1 個 NVIDIA V100 GPU),這是目標預訂。在第二個預訂項目 res-02 中,您要預訂 1 個 n1-standard-8 VM (具備 8 個 vCPU、30 GB 記憶體),並附加 2 個本機 SSD 磁碟 (一個 SCSI 介面,一個 NVMe 介面)。如要購買這個範例承諾使用合約和附加預留項目,請發出下列 POST 要求。請注意,本機 SSD 儲存空間值必須以 GB 為單位。
記憶體的值必須以 MB 為單位。不過請注意,使用 gcloud CLI 時,Compute Engine 會以 GB 做為預設的記憶體單位。
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments
{
"name": "commitment-03",
"plan": "TWELVE_MONTH",
"type": "GENERAL_PURPOSE",
"resources":
[
{
"amount": "96",
"type": "VCPU"
},
{
"amount": "638976",
"type": "MEMORY"
},
{
"acceleratorType": "nvidia-tesla-v100",
"amount": "1",
"type": "ACCELERATOR"
},
{
"amount": "750",
"type": "LOCAL_SSD"
}
],
"reservations":
[
{
"name": "res-01",
"specificReservation":
{
"count": "1",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": 1,
"acceleratorType": "nvidia-tesla-v100"
}
],
"machineType": "n1-standard-2"
}
},
"specificReservationRequired": true,
"zone": "us-central1-a"
},
{
"name": "res-02",
"specificReservation":
{
"count": "1",
"instanceProperties":
{
"localSsds":
[
{
"diskSizeGb": "375",
"interface": "SCSI"
},
{
"diskSizeGb": "375",
"interface": "NVME"
}
],
"machineType": "n1-standard-8"
}
},
"specificReservationRequired": false,
"zone": "us-central1-a"
}
]
}
取代附加至承諾的預留項目
如果承諾使用合約需要附加預留項目,您無法直接刪除、調整大小或修改附加的預留項目。不過,您可以修改附加預訂中指定的 VM 機器類型和數量。如要進行這類修改,請將現有附加預留項目替換為新的附加預留項目。
如果承諾使用合約附加的預留項目為選用項目,您可以直接刪除或調整附加預留項目的大小。如要進一步瞭解行為差異,請參閱「購買承諾使用合約後的預留項目行為」。
系統一律會建立新的預訂來取代舊預訂。 如要取代已附加的預訂項目,必須指定要用來取代的預訂項目屬性。Compute Engine 接著會自動建立具有這些屬性的新預留項目,並用來取代您附加的預留項目。您無法使用現有預留項目取代已附加的預留項目。
允許的變更
以新預訂項目取代使用承諾現有的附加預訂項目時,您可以要求進行下列任一變更:
- 您可以預留其他機型的 VM。不過,您仍須預留相同機器系列的 VM,才能繼續為預留資源取得 CUD。
- 您可以變更要預留的 VM 數量。
- 只要預留的 GPU 和本機 SSD 磁碟總數不變,您就可以變更每個 VM 連接的 GPU 和本機 SSD 磁碟數量。
- 您可以指定要將取代的預留項目設為單一專案 (在 Google Cloud 控制台中也稱為「本機」) 或共用預留項目。
需求條件
以新預訂項目取代承諾方案隨附的預訂項目時,要求必須符合下列所有規定:
- 一次只能更換一個附加預訂,且只能更換為一個新的附加預訂。如要更換已附加的預訂項目,請同時移除現有已附加的預訂項目 (將 VM 數量設為 0),並定義要用來取代的新附加預訂項目。
- 新預訂項目必須與合約位於相同專案。
- 新預訂項目必須與移除的預訂項目位於同一個區域。
- 新預留項目指定的 GPU 數量和類型,必須與移除的預留項目相同。
- 新預留項目中指定的本機 SSD 磁碟數量和類型,必須與移除的預留項目相符。
- 每個要求最多只能變更 100 部 VM。如要變更超過 100 個 VM,請將變更分成多個較小的要求,或與 Google Cloud 支援團隊聯絡。
更換預留項目的要求也取決於當時的容量。如果要求容量不足,要求就會失敗並傳回資源可用性錯誤,您可以嘗試修改或延後要求來解決問題。
如果更換附加保留項目的要求失敗,附加的保留項目和現有預留資源不會受到影響。為保留容量,請等待預留項目更換要求成功後,再對 VM 進行任何相應變更。
更換附加預留項目的步驟
您可以使用 Google Cloud CLI 或 REST,替換約定的預留項目。
gcloud
如要替換附加至承諾的預留項目,請按照下列步驟操作:
在目前目錄中建立 YAML 檔案,並設定以下附加預訂的設定:
要替換的目前預訂。
如要擷取這項預訂的詳細資料,請參閱「查看預訂詳細資料」。
新的替代預訂。
YAML 檔案的內容類似下列範例:
- reservation: CURRENT_RESERVATION_NAME reservation_zone: CURRENT_RESERVATION_ZONE vm_count: 0 machine_type: CURRENT_RESERVATION_MACHINE_TYPE accelerator: - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS type: CURRENT_RESERVATION_ACCELERATOR_TYPE local_ssd: - interface: CURRENT_RESERVATION_INTERFACE_1 size: 375 - interface: CURRENT_RESERVATION_INTERFACE_2 size: 375 project: CURRENT_RESERVATION_PROJECT_ID share_setting: CURRENT_RESERVATION_SHARE_SETTING share_with: - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1 - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2 - reservation: REPLACEMENT_RESERVATION_NAME reservation_zone: REPLACEMENT_RESERVATION_ZONE vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE accelerator: - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE local_ssd: - interface: REPLACEMENT_RESERVATION_INTERFACE_1 size: 375 - interface: REPLACEMENT_RESERVATION_INTERFACE_2 size: 375 project: REPLACEMENT_RESERVATION_PROJECT_ID share_setting: REPLACEMENT_RESERVATION_SHARE_SETTING share_with: - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1 - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2將下列項目替換為目前和更換預訂的對應屬性:
目前的預訂
目前預訂的所有屬性都必須與您查看預訂時完全相同。如果目前的預訂項目沒有任何屬性,請省略這些屬性的欄位。
CURRENT_RESERVATION_NAME:目前附加預訂的名稱。CURRENT_RESERVATION_ZONE:目前附加預留項目的可用區。CURRENT_RESERVATION_MACHINE_TYPE:目前附加預留項目的機器類型。CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS:目前附加預留項目中預留的 GPU 數量。CURRENT_RESERVATION_ACCELERATOR_TYPE:目前附加預訂保留的加速器類型。CURRENT_RESERVATION_INTERFACE_1和CURRENT_RESERVATION_INTERFACE_2:目前附加預留項目中,每個預留 VM 使用的本機 SSD 磁碟介面類型。有效選項為scsi和nvme。每個本機 SSD 磁碟為 375 GB。針對所有預留的本機 SSD 磁碟,重複local_ssd參數。CURRENT_RESERVATION_PROJECT_ID: 目前專案的專案 ID,該專案具有承諾和附加的預留項目。如果目前附加的預留項目與多個消費者專案共用,請指定這個欄位。CURRENT_RESERVATION_SHARE_SETTING: 目前預訂的分享類型。如果目前附加的預留項目在多個消費者專案之間共用,請將這個欄位的值指定為projects。CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1和CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2:您要共用目前附加預留項目的專案專案 ID,例如project-1和project-2。
換貨預訂
請為替代預留項目設定下列必要屬性。指定這些屬性時,請確保符合所有規定。省略任何不想使用的其他欄位。
REPLACEMENT_RESERVATION_NAME:新替代預訂的名稱。REPLACEMENT_RESERVATION_ZONE:新替代預留資源的可用區。REPLACEMENT_RESERVATION_NUMBER_OF_VMS:要在新的替代預留項目中預留的 VM 數量。REPLACEMENT_RESERVATION_MACHINE_TYPE:新替代預留項目中 VM 的機型。- 如要使用預先定義的機型,請使用
MACHINE_FAMILY-standard-CPUS格式,例如n2-standard-4。 - 如為自訂機器類型,請使用
MACHINE_FAMILY-custom-CPUS-MEMORY格式,例如n2-custom-4-5120。如需完整限制清單,請參閱自訂機型規格。
更改下列內容:
MACHINE_FAMILY:機器類型系列,例如為 N2 VM 指定n2。CPUS:vCPUs 數量。MEMORY:預留 VM 的總記憶體。記憶體必須是 256 MB 的倍數,且須以 MB 為單位來提供。舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用n2-custom-4-5120。
- 如要使用預先定義的機型,請使用
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS:每個 VM 要在替代預留項目中新增的 GPU 數量。REPLACEMENT_RESERVATION_ACCELERATOR_TYPE:要在替代預留項目中新增的加速器類型。REPLACEMENT_RESERVATION_INTERFACE_1和REPLACEMENT_RESERVATION_INTERFACE_2:您希望每個預留 VM 應使用的「Local SSD」(本機 SSD) 磁碟介面類型。有效選項為scsi和nvme。 每個本機 SSD 磁碟為 375 GB。針對要新增的每個本機 SSD 磁碟,重複local_ssd參數。最多可以指定 24 個本機 SSD 磁碟。REPLACEMENT_RESERVATION_PROJECT_ID: 目前專案的專案 ID,該專案具有承諾和附加的預留項目。如要跨多個消費者專案共用更換預留項目,請指定這個欄位。REPLACEMENT_RESERVATION_SHARE_SETTING: 替代預訂的共用類型。 如要跨多個消費者專案共用替代預留項目,請將這個欄位的值指定為projects。REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1和REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2:可共用這項預留項目的專案專案 ID,例如project-1,project-2。最多可加入 100 個消費者專案。 這些專案必須與擁有者專案位於同一個機構。 請勿加入REPLACEMENT_RESERVATION_PROJECT_ID, 因為預設已允許該項目使用這項預留資源。
執行
gcloud beta compute commitments update-reservations指令,並使用--reservations-from-file旗標指定 YAML 檔案的路徑。gcloud beta compute commitments update-reservations COMMITMENT_NAME \ --project= PROJECT_ID \ --region= REGION \ --reservations-from-file= YAML_FILE更改下列內容:
COMMITMENT_NAME:附加預訂項目的承諾名稱。PROJECT_ID:附加預留資源的承諾專案 ID。REGION:承諾所在的區域。YAML_FILE:YAML 檔案的路徑,其中包含目前和替代預訂的設定。
替換附加至承諾使用合約的預留項目範例
為說明這點,本節將提供附帶預留項目的範例承諾,並說明如何取代範例附帶預留項目。
附加保留項目的承諾範例
舉例來說,假設您想更新使用下列指令購買的 my-commitment-with-reservations 承諾使用合約附加預留項目:
gcloud beta compute commitments create my-commitment-with-reservations \
--region=asia-east1 \
--resources=vcpu=16,memory=60GB,local-ssd=3000 \
--resources-accelerator=type=nvidia-tesla-v100,count=4 \
--plan=12-month \
--type=general-purpose \
--reservations-from-file=one-reservation.yaml
以這個範例來說,假設執行這項指令時,one-reservation.yaml 是目前目錄中的檔案,且包含下列內容,定義名為 res-1 的附加預訂。
- reservation: res-1
reservation_zone: asia-east1-a
vm_count: 4
machine_type: n1-standard-4
accelerator:
- count: 1
type: nvidia-tesla-v100
local_ssd:
- interface: scsi
size: 375
- interface: scsi
size: 375
這項my-commitment-with-reservations承諾和附加的預留項目res-1,產生了下列承諾和預留資源:
| 資源類型 | 使用承諾中的資源 ( my-commitment-with-reservations) |
目前附加預留項目中的資源 ( res-1) |
|---|---|---|
| vCPU 和記憶體 | 16 個 vCPU 和 60 GB | 16 個 vCPU 和 60 GB (4 個預留 n1-standard-4 VM)* |
| GPU | 4 個 V100 GPU | 4 個 V100 GPU
(每個 VM 1 個 V100 GPU,共 4 個 VM)* |
| 本機固態硬碟磁碟 | 3000 GB 或 8 個本機 SSD 磁碟 | 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)* |
*具體來說,附加的預留項目範例 res-1 會預留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 V100 GPU 和 2 個介面類型為 scsi 的本機 SSD 磁碟。n1-standard-4
機型
會為每個 VM 使用 4 個 vCPU 和 15 GB。
取代附加的範例預留項目
假設您想將附加預留項目 res-1 替換為新的附加預留項目 res-2,並將預留資源變更為下列項目:
| 資源類型 | 使用承諾中的資源 ( my-commitment-with-reservations) |
目前附加預留項目中的資源 ( res-1) |
替代預訂項目中的資源 ( res-2) |
|---|---|---|---|
| vCPU 和記憶體 | 16 個 vCPU 和 60 GB | 16 個 vCPU 和 60 GB (4 個預留 n1-standard-4 VM)* |
16 個 vCPU 和 60 GB (2 個預留和共用 n1-standard-8 VM)† |
| GPU | 4 個 V100 GPU | 4 個 V100 GPU (每個 VM 1 個 V100 GPU,共 4 個 VM)* |
4 個 V100 GPU (每個 VM 2 個 V100 GPU,共 2 個 VM)† |
| 本機固態硬碟磁碟 | 3000 GB 或 8 個本機 SSD 磁碟 | 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)* |
3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 1500 GB 或 4 個本機 SSD 磁碟,適用於 2 個 VM)* |
*具體來說,附加的預留項目範例 res-1 會預留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 V100 GPU 和 2 個介面類型為 scsi 的本機 SSD 磁碟。n1-standard-4
機型
會為每個 VM 使用 4 個 vCPU 和 15 GB。
†具體來說,替代附加預留項目定義 res-2,其中預留 2 個 n1-standard-8 VM,每個 VM 都有 2 個 V100 GPU 和 4 個 scsi 介面類型的本機 SSD 磁碟。此外,res-2 也與其他 2 個專案 (project-1 和 project-2) 共用,且由目前專案 my-project 擁有。n1-standard-8 機型為每個 VM 使用 8 個 vCPU 和 30 GB。
如要將附加預留項目 res-1 替換為 my-commitment-with-reservations 承諾的 res-2,請按照下列步驟操作:
在目前目錄中建立名為
two-reservations.yaml的檔案,並在當中加入下列內容:- reservation: res-1 reservation_zone: asia-east1-a vm_count: 0 machine_type: n1-standard-4 accelerator: - count: 1 type: nvidia-tesla-v100 local_ssd: - interface: scsi size: 375 - interface: scsi size: 375 - reservation: res-2 reservation_zone: asia-east1-a vm_count: 2 machine_type: n1-standard-8 accelerator: - count: 2 type: nvidia-tesla-v100 project: my-project share_setting: projects share_with: - project-1 - project-2 local_ssd: - interface: scsi size: 375 - interface: scsi size: 375 - interface: scsi size: 375 - interface: scsi size: 375執行下列指令:
gcloud beta compute commitments update-reservations my-commitment-with-reservations \ --region=asia-east1 \ --reservations-from-file=two-reservations.yaml
REST
如要更換附加至承諾的預訂項目,請使用 regionCommitments.updateReservations 方法發出 POST 要求。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations
{
"reservations":
[
{
"name": "REPLACEMENT_RESERVATION_NAME",
"specificReservation":
{
"count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS",
"acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE"
}
],
"localSsds":
[
{
"diskSizeGb": "375",
"interface": "REPLACEMENT_RESERVATION_INTERFACE_1"
},
{
"diskSizeGb": "375",
"interface": "REPLACEMENT_RESERVATION_INTERFACE_2"
}
],
"machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE"
}
},
"zone": "REPLACEMENT_RESERVATION_ZONE",
"shareSettings":
{
"shareType": "SPECIFIC_PROJECTS",
"projectMap":
{
"REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1":
{
"projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1"
},
"REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2":
{
"projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2"
}
}
}
},
{
"name": "CURRENT_RESERVATION_NAME",
"specificReservation":
{
"count": "0",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS",
"acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE"
}
],
"localSsds":
[
{
"diskSizeGb": "375",
"interface": "CURRENT_RESERVATION_INTERFACE_1"
},
{
"diskSizeGb": "375",
"interface": "CURRENT_RESERVATION_INTERFACE_2"
}
],
"machineType": "CURRENT_RESERVATION_MACHINE_TYPE"
}
},
"zone": "CURRENT_RESERVATION_ZONE",
"shareSettings":
{
"shareType": "SPECIFIC_PROJECTS",
"projectMap":
{
"CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1":
{
"projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1"
},
"CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2":
{
"projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2"
}
}
}
}
]
}
將下列項目換成承諾、目前預留項目和替代預留項目的對應屬性:
承諾使用合約
COMMITMENT_NAME:附加預留資源的承諾名稱。PROJECT_ID:附加預留資源的承諾專案 ID。這也是目前和已附加預留項目的專案 ID。COMMITMENT_ZONE:附加預留項目的承諾方案可用區。
目前的預訂
目前預訂的所有屬性都必須與您查看預訂時完全相同。如果目前的預訂項目尚未指定任何屬性,請省略這些屬性的欄位。
CURRENT_RESERVATION_NAME:目前附加預訂的名稱。CURRENT_RESERVATION_ZONE:目前附加預留項目的可用區。CURRENT_RESERVATION_MACHINE_TYPE:目前附加預留項目的機器類型。CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS:目前附加預留項目中預留的 GPU 數量。CURRENT_RESERVATION_ACCELERATOR_TYPE:目前附加預訂保留的加速器類型。CURRENT_RESERVATION_INTERFACE_1和CURRENT_RESERVATION_INTERFACE_2:每個預留 VM 在目前附加的預留項目中使用的本機 SSD 磁碟介面類型。有效選項為scsi和nvme。每個本機 SSD 磁碟為 375 GB。 為所有保留的本機 SSD 磁碟重複localSsds參數。CURRENT_RESERVATION_SHARE_SETTING: 目前預訂的分享類型。如果目前附加的預留項目會與多個消費者專案共用,請將這個參數的值指定為projects。CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1和CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2:要共用目前附加預留項目的專案專案 ID,例如project-1和project-2。
換貨預訂
請為替代預留項目設定下列必要屬性。指定這些屬性時,請確保符合所有規定。省略任何不想使用的其他欄位。
REPLACEMENT_RESERVATION_NAME:新替代預訂的名稱。REPLACEMENT_RESERVATION_ZONE:新替代預留項目的可用區。REPLACEMENT_RESERVATION_NUMBER_OF_VMS:要在新的替代預訂中預留的 VM 數量。REPLACEMENT_RESERVATION_MACHINE_TYPE:新替代預留項目中 VM 的機型。- 如要使用預先定義的機型,請使用
MACHINE_FAMILY-standard-CPUS格式,例如n2-standard-4。 - 如為自訂機器類型,請使用
MACHINE_FAMILY-custom-CPUS-MEMORY格式,例如n2-custom-4-5120。如需完整限制清單,請參閱自訂機型規格。
更改下列內容:
MACHINE_FAMILY:機型系列;例如,為 N2 VM 指定n2。CPUS:vCPUs 數量。MEMORY:預留 VM 的總記憶體。記憶體必須是 256 MB 的倍數,且必須以 MB 為單位提供;舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用n2-custom-4-5120。
- 如要使用預先定義的機型,請使用
REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS:每個 VM 要在替代預留項目中新增的 GPU 數量。REPLACEMENT_RESERVATION_ACCELERATOR_TYPE:要在替代預留項目中新增的加速器類型。REPLACEMENT_RESERVATION_INTERFACE_1和REPLACEMENT_RESERVATION_INTERFACE_2:您希望每個預留 VM 使用的本機 SSD 磁碟介面類型。有效選項為scsi和nvme。 每個本機 SSD 磁碟為 375 GB。如要新增多個本機 SSD 磁碟,請重複使用localSsds參數。最多可以指定 24 個本機 SSD 磁碟。REPLACEMENT_RESERVATION_SHARE_SETTING: 替代預訂的共用類型。如要跨多個消費者專案共用替代預訂,請將這個參數的值指定為projects。REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1和REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2:可共用這項預留項目的專案專案 ID,例如project-1,project-2。最多可加入 100 個消費者專案。 這些專案必須與擁有者專案位於同一個機構。 請勿加入PROJECT_ID, 因為預設已允許該項目使用這項預留資源。
替換附加至承諾使用合約的預留項目範例
為說明這點,本節將提供附帶預留項目的範例承諾,並說明如何取代範例附帶預留項目。
附加保留項目的承諾範例
舉例來說,假設您想替換 my-commitment-with-reservations 承諾的附加預留項目 res-1,而該承諾是透過發出下列 POST 要求所購買:
POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments
{
"name": "my-commitment-with-reservations",
"plan": "TWELVE_MONTH",
"reservations":
[
{
"name": "res-1",
"specificReservation":
{
"count": "4",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": "1",
"acceleratorType": "nvidia-tesla-v100"
}
],
"localSsds":
[
{
"diskSizeGb": "375",
"interface": "scsi"
},
{
"diskSizeGb": "375",
"interface": "scsi"
}
],
"machineType": "n1-standard-4"
}
},
"zone": "asia-east1-a"
}
],
"resources":
[
{
"amount": "16",
"type": "VCPU"
},
{
"amount": "61440",
"type": "MEMORY"
},
{
"acceleratorType": "nvidia-tesla-v100",
"amount": "4",
"type": "ACCELERATOR"
}
{
"amount": "3072000",
"type": "LOCAL_SSD"
}
],
"type": "GENERAL_PURPOSE"
}
這項my-commitment-with-reservations承諾和附加的預留項目res-1,產生了下列承諾和預留資源:
| 資源類型 | 使用承諾中的資源 ( my-commitment-with-reservations) |
目前附加預留項目中的資源 ( res-1) |
|---|---|---|
| vCPU 和記憶體 | 16 個 vCPU 和 60 GB | 16 個 vCPU 和 60 GB (4 個預留 n1-standard-4 VM)* |
| GPU | 4 個 V100 GPU | 4 個 V100 GPU
(每個 VM 1 個 V100 GPU,共 4 個 VM)* |
| 本機固態硬碟磁碟 | 3000 GB 或 8 個本機 SSD 磁碟 | 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)* |
*具體來說,附加的預留項目範例 res-1 會預留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 V100 GPU 和 2 個 scsi 介面類型的本機 SSD 磁碟。n1-standard-4
機型
會為每個 VM 使用 4 個 vCPU 和 15 GB。
取代附加的範例預留項目
假設您想將附加預留項目 res-1 替換為新的附加預留項目 res-2,並將預留資源變更為下列項目:
| 資源類型 | 使用承諾中的資源 ( my-commitment-with-reservations) |
目前附加預留項目中的資源 ( res-1) |
替代預訂項目中的資源 ( res-2) |
|---|---|---|---|
| vCPU 和記憶體 | 16 個 vCPU 和 60 GB | 16 個 vCPU 和 60 GB (4 個預留 n1-standard-4 VM)* |
16 個 vCPU 和 60 GB (2 個預留和共用 n1-standard-8 VM)† |
| GPU | 4 個 V100 GPU | 4 個 V100 GPU (每個 VM 1 個 V100 GPU,共 4 個 VM)* |
4 個 V100 GPU (每個 VM 2 個 V100 GPU,共 2 個 VM)† |
| 本機固態硬碟磁碟 | 3000 GB 或 8 個本機 SSD 磁碟 | 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)* |
3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 1500 GB 或 4 個本機 SSD 磁碟,適用於 2 個 VM)* |
*具體來說,附加的預留項目範例 res-1 會預留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 V100 GPU 和 2 個介面類型為 scsi 的本機 SSD 磁碟。n1-standard-4
機型
會為每個 VM 使用 4 個 vCPU 和 15 GB。
†具體來說,替代附加預留項目定義 res-2,其中預留 2 個 n1-standard-8 VM,每個 VM 都有 2 個 V100 GPU 和 4 個 scsi 介面類型的本機 SSD 磁碟。此外,res-2 也與其他 2 個專案 (project-1 和 project-2) 共用,且由目前專案 my-project 擁有。n1-standard-8 機型會為每個 VM 使用 8 個 vCPU 和 30 GB。
如要將附加的預留項目 res-1 替換為 res-2,請使用 regionCommitments.updateReservations 方法,針對 my-commitment-with-reservations 承諾發出下列 POST 要求:
POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservations/updateReservations
{
"reservations":
[
{
"name": "res-2",
"specificReservation":
{
"count": "2",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": 2,
"acceleratorType": "nvidia-tesla-v100"
}
],
"localSsds":
[
{
"diskSizeGb": "375",
"interface": "scsi"
},
{
"diskSizeGb": "375",
"interface": "scsi"
},
{
"diskSizeGb": "375",
"interface": "scsi"
},
{
"diskSizeGb": "375",
"interface": "scsi"
}
],
"machineType": "n1-standard-8"
}
},
"zone": "asia-east1-a"
},
{
"name": "res-1",
"specificReservation":
{
"count": "0",
"instanceProperties":
{
"guestAccelerators":
[
{
"acceleratorCount": 1,
"acceleratorType": "nvidia-tesla-v100"
}
],
"localSsds":
[
{
"diskSizeGb": "375",
"interface": "scsi"
},
{
"diskSizeGb": "375",
"interface": "scsi"
}
],
"machineType": "n1-standard-4"
}
},
"zone": "asia-east1-a"
}
]
}
後續步驟
- 進一步瞭解依資源計算的 CUD。
- 瞭解如何使用預訂。
- 瞭解如何修改預訂。
- 瞭解如何刪除預訂。