關於 GKE 適用的 Hyperdisk

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

您可以在 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 磁碟區中的資料會在節點重新啟動和刪除後保留。您也可以在單一 GKE 節點中新增多個 Hyperdisk 磁碟區。

定價

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

  • 對於已超出基準值 3,000 的 IOPS 和 140 MiB/s 的處理量,Hyperdisk Balanced 會按照每月費率,針對佈建 IOPS 和佈建處理量 (以 MiB/s 為單位) 收取費用。
  • Hyperdisk Extreme 會按照佈建 IOPS 按月收費。
  • Hyperdisk 處理量會按照佈建輸送量 (以 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"

自動選取磁碟類型

GKE 會根據排定工作負載的節點機器類型,為工作負載選取適當的磁碟類型。採用這種做法,您就能建立單一 StorageClass,在遷移至新版運算技術時,支援搭載舊版 VM 的叢集,並在相容的新版執行個體 (例如 C3 或 C4) 上佈建 Hyperdisk,同時在舊版執行個體上回溯至永久磁碟。

如要啟用自動磁碟選取功能,叢集必須為 1.35.0-gke.2232000 以上版本,且 StorageClass 中的 type 參數為 dynamic。您可以使用下列參數設定特定磁碟選項:

參數 說明 預設
type 這是必要旗標,設為 dynamic 可啟用智慧磁碟選取功能。 不適用
use-allowed-disk-topology (建議使用) 如果選取 true,GKE 會確保 Pod 只會排程到支援所選磁碟類型的節點。 false
hyperdisk-type 要在支援的節點上使用的 Hyperdisk 類型 (例如 hyperdisk-balanced)。 hyperdisk-balanced
pd-type 在其他節點上做為備援的永久磁碟類型 (例如 pd-balanced)。 pd-balanced
disk-type-preference 如果節點同時支援這兩個選項,則會覆寫 hyperdisk-type 的預設偏好設定。 hyperdisk-type

注意: 您仍可使用標準區塊儲存空間參數。建立磁碟區時,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-famility: "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/秒,每 TiB 容量最多 90 MiB/秒,視機器類型而定。
  • 每個磁碟區最多 600 MiB/s,視機器類型而定。

如果為一或多個 Hyperdisk 處理量磁碟區佈建的總處理量,超過 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 和永久磁碟磁碟區連結至同一個 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 容量。不過,磁碟區所連結的 VM 執行個體,其每執行個體限制最終會限制總處理量或 IOPS。如要進一步瞭解這些限制,請參閱 Compute Engine 說明文件中的「關於 Hyperdisk Google Cloud 」一文。

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

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

後續步驟