關於 GKE 適用的超磁碟

Google Cloud Hyperdisk 是 GKE 提供的網路區塊儲存空間選項。您可以在 GKE 叢集中使用這個儲存空間選項,方法與其他 Compute Engine 永久磁碟磁碟區類似,但可更靈活地調整工作負載效能。相較於 Persistent Disk 儲存空間,Hyperdisk 的每秒輸入/輸出作業數 (IOPS) 和處理量上限大幅提高。Persistent Disk 磁碟區的效能是由連結至節點的所有磁碟區共用,Hyperdisk 則可讓您指定及調整各個 Hyperdisk 磁碟區的效能等級。

您可以在 GKE 上選擇下列 Hyperdisk 選項:

儲存空間選項 GKE 作業模式 說明
Hyperdisk Balanced Autopilot
Standard

最適合大多數工作負載。這個選項適合用於部署大多數企業和業務範圍應用程式,以及資料庫和網路伺服器。

Hyperdisk Throughput Autopilot
Standard

針對高成本效益的高處理量進行最佳化。如果您的用途是向外擴充數據分析 (例如 Hadoop 或 Kafka),以及以處理量為導向且對成本敏感的工作負載,這個選項就很適合。

Hyperdisk Extreme Autopilot
Standard

已針對 IOPS 效能進行最佳化調整。如要部署高效能工作負載 (例如資料庫管理系統),這個選項是不錯的選擇。

Hyperdisk ML Autopilot
Standard

經過最佳化調整,適合需要快速載入模型權重的 AI/機器學習訓練和推論工作負載。如果 AI/機器學習工作負載有高尖峰讀取處理量需求,請使用這個選項。如要減少載入資料時 GPU/TPU 資源閒置的情況,這是最佳選項。

Hyperdisk Balanced High Availability Autopilot
Standard

效能等級與 Hyperdisk Balanced 相似,可在區域內的兩個可用區之間同步複製,有助於降低成本。如要建構需要高可用性的工作負載,或需要某個區域中的多個節點同時寫入同一個磁碟,請使用這個選項。

優點

  • 有了 Hyperdisk,您部署的有狀態工作負載效能會更穩定。
  • 有了 Hyperdisk,您可以在 GKE 上佈建、管理及擴充有狀態工作負載,不必費心管理地端部署儲存區域網路 (SAN),也無須負擔相關費用。
  • Hyperdisk 儲存空間容量會分區,並以個別磁碟區的形式提供給 GKE 節點。Hyperdisk 磁碟區與節點分離,因此您可以在節點之間連接、卸載及移動磁碟區。儲存在 Hyperdisk 磁碟區中的資料,在節點重新啟動和刪除後仍會保留。您也可以將多個 Hyperdisk 磁碟區新增至單一 GKE 節點。

定價

系統會按照 Hyperdisk 磁碟區的總佈建容量計費,直到您刪除這些項目為止。系統會每月按 GiB 收費。此外,您也需要支付下列費用:

  • 對於超出基準值 3,000 的 IOPS 和 140 MiB/s 的輸送量,Hyperdisk Balanced 會按照每月費率,針對佈建 IOPS 和佈建輸送量 (以 MiB/s 為單位) 收取費用。
  • Hyperdisk Extreme 會按照佈建 IOPS 按月收費。
  • Hyperdisk Throughput 會按照佈建輸送量 (以 MiB/s 為單位) 按月收費。

如需定價資訊,請參閱 Compute Engine 說明文件中的磁碟定價。

限制

  • 建立磁碟區後,您只能透過 Compute Engine API 修改下列設定:
    • 處理量:Hyperdisk Throughput 和 Hyperdisk Balanced 磁碟區
    • IOPS:Hyperdisk Extreme 和 Hyperdisk Balanced 磁碟區
  • Hyperdisk 磁碟區只能連接至特定執行個體類型,不支援唯讀連接。
  • Hyperdisk ML 專屬限制:
    • Hyperdisk ML 無法做為開機磁碟。
    • Hyperdisk ML 無法在多重寫入模式下使用。
    • Hyperdisk ML 不支援儲存空間集區。
  • Hyperdisk Balanced HA 專屬限制:
    • Hyperdisk Balanced HA 無法用於 Kubernetes ReadOnlyMany 模式。
    • 如果磁碟區處於 ReadWriteMany 存取模式,Hyperdisk Balanced HA 不支援快照。
    • 另請參閱 Compute Engine 說明文件中有關區域磁碟的「限制」一節。
  • 詳情請參閱 Compute Engine 說明文件的「限制」一節。

支援的節點排程

您可以使用自訂 StorageClass,自動將 Hyperdisk 工作負載排定至支援的節點。如要啟用這項行為,請使用 use-allowed-disk-topology: "true" 參數建立 StorageClass。如要使用這項功能,叢集和節點集區必須為 1.34.1-gke.2541000 以上版本。使用這個 StorageClass 佈建的磁碟區不會在較低版本的節點集區中排程。

以下範例說明已啟用這項功能的 StorageClass。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: hyperdisk-balanced-compatible-scheduling
provisioner: pd.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
  type: hyperdisk-balanced
  use-allowed-disk-topology: "true"

自動選取磁碟類型

在 1.35.3-gke.1290000 以上版本中,您可以在 StorageClass 中指定 Hyperdisk 和 Persistent Disk 的偏好磁碟類型。GKE 會根據節點的機器類型,自動為工作負載選取磁碟類型。這種做法可讓您建立單一 StorageClass,支援多個 VM 世代,這是在使用自訂 ComputeClass 進行多系列容量備用時的必要條件。由於 C4、C4D 和 N4 等較新的機器系列僅支援 Hyperdisk,而 N2 和 N2D 等較舊的系列支援 Persistent Disk,因此固定至單一磁碟類型的 StorageClass 可防止有狀態 Pod 在可用區資源短缺期間,跨機器世代容錯移轉。自動選取磁碟類型後,您可以佈建與 Hyperdisk 相容的機器系列 (例如 C4、C3 和 N4),同時在 N2D 或 C2 等機器系列上改用永久磁碟。

如要啟用自動選取磁碟功能,請將 StorageClass 中的 parameters.type 欄位設為 dynamic。您可以使用下列參數指定偏好的磁碟類型:

動態磁碟類型參數
hyperdisk-type 在支援 Hyperdisk 的節點上使用的 Hyperdisk 類型。如果省略這個參數,預設值為 hyperdisk-balanced。
pd-type 在支援 Persistent Disk 的節點上使用的 Persistent Disk 類型。如果省略這個參數,預設值為 pd-balanced。
disk-type-preference

在同時支援 Hyperdisk 和 Persistent Disk 的節點上,要使用的儲存空間類型。請指定下列其中一個值:

  • hyperdisk-type:使用 Hyperdisk。如果省略 disk-type-preference 參數,系統會使用這個預設值。
  • pd-type:使用 Persistent Disk,而非 Hyperdisk。

您可以在 StorageClass 中,使用 Hyperdisk 和 Persistent Disk 的任何其他區塊儲存空間參數。GKE 建立使用特定磁碟類型的磁碟區時,只會套用與該類型對應的參數。

下列 StorageClass 說明如何設定動態磁碟類型選取,優先為支援的節點使用 hyperdisk-balanced,並自動為其他節點使用 pd-balanced。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: dynamic-volume
provisioner: pd.csi.storage.gke.io
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
  type: dynamic
  pd-type: pd-balanced
  hyperdisk-type: hyperdisk-balanced
  use-allowed-disk-topology: "true"
  # The parameters below only apply to the hyperdisk-type and are ignored if
  # the pd-type is selected.
  provisioned-throughput-on-create: "250Mi"
  provisioned-iops-on-create: "3000"

Hyperdisk 和 Autopilot 運算級別

如要在使用運算類別的 Autopilot 叢集上使用 Hyperdisk,請確認節點的機型支援 Hyperdisk,且支援運算類別。

以下範例說明如何指定 nodeSelector 屬性,在使用 Hyperdisk Balanced 時,控制 Autopilot 叢集上 Pod 的排程,並搭配效能運算類別。

cloud.google.com/compute-class: "Performance"
cloud.google.com/machine-family: "c3"

詳情請參閱「選擇 Autopilot Pod 的運算級別」。

規劃 Hyperdisk 磁碟區的效能等級

請參考下列注意事項,為 Hyperdisk 磁碟區規劃適當的效能等級。

Hyperdisk Balanced

使用 Hyperdisk Balanced 時,您可以分別佈建容量、處理量和 IOPS。如要佈建輸送量或 IOPS,請選取特定磁碟區的等級。個別磁碟區的處理量完全獨立,每個磁碟區都能使用該磁碟區的所有指定處理量或 IOPS 容量。不過,處理量或 IOPS 最終會受限於磁碟區所連結 VM 執行個體的個別執行個體限制。如要進一步瞭解這些限制,請參閱 Compute Engine 說明文件中的「Hyperdisk Balanced 的佈建效能」。

讀取和寫入作業都會計入 Hyperdisk Balanced 磁碟區佈建的處理量和 IOPS 限制。佈建的處理量或 IOPS,以及上限,適用於讀取和寫入作業的總和。

如果為一或多個 Hyperdisk 磁碟區佈建的總處理量或 IOPS,超過 VM 執行個體層級可用的總處理量或 IOPS,效能就會受限於執行個體效能層級。

Hyperdisk Throughput

使用 Hyperdisk Throughput 時,您可以分別佈建容量和處理量。如要佈建輸送量,請選取指定磁碟區的等級。個別磁碟區的處理量完全獨立,每個磁碟區都會獲得佈建的處理量。不過,處理量最終會受限於磁碟區所連結 VM 執行個體的個別執行個體限制。如要進一步瞭解這些限制,請參閱 Compute Engine 說明文件中的「關於佈建效能」。讀取和寫入作業都會計入 Hyperdisk Throughput 磁碟區佈建的處理量限制。佈建的處理量和上限適用於讀取和寫入處理量的總和。

定義 StorageClass 時,為 Hyperdisk Throughput 磁碟區佈建的處理量必須遵循下列規則:

  • 每 TiB 容量至少 10 MiB/s,每 TiB 容量不超過 90 MiB/s,視機型而定。
  • 每個磁碟區最多 600 MiB/s,視機型而定。

如果為一或多個 Hyperdisk Throughput 磁碟區佈建的總處理量,超過 VM 執行個體層級可用的總處理量,則處理量會限制在執行個體處理量層級。

Hyperdisk Extreme

使用 Hyperdisk Extreme 時,您可以將容量與 IOPS 級別分開佈建。如要佈建 IOPS 級別,請指定特定磁碟區的 IOPS 限制。個別磁碟區具有完整的 IOPS 層級隔離,每個磁碟區都會獲得佈建的 IOPS 層級。不過,IOPS 最終會受限於磁碟區所連結 VM 執行個體的個別執行個體限制。如要進一步瞭解這些限制,請參閱 Compute Engine 說明文件中的「關於佈建效能」。

讀取和寫入作業都會計入為 Hyperdisk Extreme 磁碟區佈建的 IOPS 限制。佈建的 IOPS 和本文列出的上限,適用於讀取和寫入 IOPS 的總和。

定義 StorageClass 時,為 Hyperdisk Extreme 磁碟區佈建的 IOPS 不得超過 350,000 IOPS,具體取決於機型。

如果為一或多個 Hyperdisk Extreme 磁碟區佈建的 IOPS 總量,超過 VM 執行個體層級可用的 IOPS 總量,效能會受限於執行個體 IOPS 層級。如果有多個 Hyperdisk 和 Persistent Disk 磁碟區連接至同一個 VM,且同時要求 IOPS,並達到 VM 限制,則每個磁碟區的 IOPS 級別會與其在所有連接的 Hyperdisk Extreme 磁碟區中佈建的總 IOPS 所占比例成正比。

Hyperdisk ML

使用 Hyperdisk ML 時,您可以分別佈建容量和效能。如要佈建效能,請選取特定磁碟區的處理量等級。個別磁碟區的效能完全獨立,每個磁碟區都會獲得佈建的效能。

如果一個磁碟區連接至多個執行個體,佈建輸送量會動態分配給各個執行個體。不過,處理量最終會受限於磁碟區所連結 VM 執行個體的個別執行個體限制。

在 READ-WRITE-SINGLE 模式下,讀取和寫入作業都會計入 Hyperdisk ML 磁碟區佈建的處理量限制。佈建的處理量和上限適用於讀取和寫入處理量的總和。

為 Hyperdisk ML 磁碟區佈建的處理量必須遵守下列規則:

  • 下限:(0.12 MBps * 磁碟大小) (以 GiB 為單位) 或 400 MBps,以較大者為準。
  • 上限:(1,600 MBps * 磁碟大小) (以 GiB 為單位),但不得超過 1.2 TBps。
  • 如果磁碟區以 READ-ONLY-MANY 模式連接至超過 20 個執行個體,則處理量值必須至少為 100 MBps * 連接的執行個體數量。

如果為一或多個 Hyperdisk ML 磁碟區佈建的總處理量,超過執行個體層級可用的總處理量,效能就會受限於執行個體層級的效能。

Hyperdisk Balanced HA

使用 Hyperdisk Balanced High Availability 時,您可以分別佈建容量、輸送量和 IOPS。如要佈建輸送量或 IOPS,請選取特定磁碟區的輸送量和 IOPS 等級。個別磁碟區的處理量完全獨立,每個磁碟區都能使用該磁碟區的所有指定處理量或 IOPS 容量。不過,處理量或 IOPS 最終會受限於磁碟區所連結 VM 執行個體的個別執行個體限制。如要進一步瞭解這些限制,請參閱 Compute Engine 說明文件中的「關於 Cloud de Confiance Hyperdisk」。

讀取和寫入作業都會計入為 Hyperdisk Balanced High Availability 磁碟區佈建的處理量和 IOPS 限制。佈建的處理量或 IOPS 和上限,適用於讀取和寫入作業的總和。

如果為一或多個 Hyperdisk 磁碟區佈建的總處理量或 IOPS,超過 VM 執行個體層級可用的總處理量或 IOPS,效能就會受限於執行個體層級效能。

後續步驟