關於 GKE 適用的超磁碟

Google Cloud Hyperdisk 是 GKE 提供的網路區塊儲存空間選項,您可以在 GKE 叢集中使用這個儲存空間選項,方式與其他 Compute Engine 永久磁碟磁碟區類似,但可更彈性地調整工作負載的效能。相較於 Persistent Disk 儲存空間,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 磁碟區中的資料,在節點重新啟動和刪除後仍會保留。您也可以將多個 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 世代。舉例來說,如果您逐步將節點遷移至較新的機器系列,可以佈建與 Hyperdisk 相容的機器系列 (例如 C3 和 C4),同時在 C2 等機器系列上回退至 Persistent Disk。

如要啟用自動磁碟選取功能,請將 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:使用永久磁碟,而非超磁碟。

您可以在 StorageClass 中使用 Hyperdisk 和永久磁碟的其他區塊儲存空間參數。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/秒,每 TiB 容量最多 90 MiB/秒,視機型而定。
  • 每個磁碟區最多 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 說明文件中的「關於 Hyperdisk Cloud de Confiance 」。

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

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

後續步驟