啟用高效能區塊儲存空間

Google Distributed Cloud (GDC) 實體隔離方案提供高效能儲存層,可滿足嚴苛工作負載的需求。這個層級的效能最高可達每 GB 30 IOPS,相較於標準區塊儲存空間層級 (每 GB 最高 3 IOPS),效能提升不少。本文說明如何啟用高效能區塊儲存空間,以及如何監控相關指標、快訊和帳單詳細資料。適用於平台管理員群組 (例如 IT 管理員) 或應用程式營運人員群組 (例如應用程式開發人員)。

Kubernetes 叢集可使用 performance-rwo 高效能儲存空間級別。

新增高效能 SKU 後,使用 performance-* 儲存空間類別的磁碟區,其磁碟區快照和還原程序與 standard-* 儲存空間類別類似。您可以建立磁碟區快照,並還原類似的 PVC,完全不必變更儲存空間類別或基礎標準服務品質 (QoS) 值。performance volumesnapshotclass 會擷取磁碟區類型,您可以使用這個 volumesnapshot,還原具有相同儲存空間類別的磁碟區。

事前準備

開始之前,請先確認下列事項:

  • GDC 環境和版本

    • 已升級至 1.15.1 以上版本的執行中 GDC 執行個體。
  • 專案

    • 機構中的 GDC 專案,您打算在其中佈建高效能磁碟區。
  • 存取權與權限

    • 具備足夠的 Kubernetes 權限,可為容器工作負載建立、管理及使用 PersistentVolumeClaim (PVC) 資源,或為目標專案命名空間內的虛擬機器建立 VirtualMachineDisk 資源。常見的必要角色包括:
      • project-vm-admin 管理 VM 和 VM 磁碟。
      • 允許管理 PVC 的角色,通常包含在編輯或自訂角色中。
      • 如果專案叢集已提供高效能儲存空間類別,使用者通常不需要任何機構層級的特殊角色,即可使用儲存空間。這些類別的設定和公開作業由基礎架構營運商 (IO) 或 PA 負責。
  • 瞭解儲存空間級別

    • 熟悉 Kubernetes StorageClass 物件的概念。高效能層級會透過特定儲存空間類別公開。
    • 建立 PVC 或虛擬機器磁碟時,您必須指定高效能儲存空間類別。
  • 容量和配額

    • 確認機構和專案已分配足夠的高效能層級儲存空間配額。
    • 請注意特定 GDC 環境和硬體的容量限制或效能防護措施。

subcomponentOverride 套用至所需叢集

高效能 SKU 的 FeatureGate 預設為 State: TEST。如要啟用 performance-* 儲存空間類別,平台管理員 (PA) 或應用程式運算子 (AO) 必須將 subcomponentOverride 套用至所需叢集,且 FileHighPerformanceStorageClassStage 值要高於預設的 value。以下範例使用較高的 production 值。

apiVersion: lcm.private.gdc.goog/v1
kind: SubcomponentOverride
metadata:
  name: file-common
  namespace: NAMESPACE
spec:
  features:
    operableParameters:
      FileHighPerformanceStorageClassStage: production
  subComponentRef: file-common

SubcomponentOverride 中的命名空間會指定要設定旗標的叢集命名空間 (例如 cluster-1)。將 NAMESPACE 換成叢集的對應命名空間,然後建立 SubcomponentOverride 檔案。使用下列指令套用這項變更:

kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG_PATH apply -f SUBOVERRIDE_USER_FILE

更改下列內容:

  • MANAGEMENT_API_SERVER_KUBECONFIG_PATH:管理 API 伺服器叢集 kubeconfig 檔案的路徑。
  • SUBOVERRIDE_USER_FILE:Kubernetes 叢集的 SubcomponentOverride YAML 檔案路徑。

如要為 Kubernetes 叢集啟用高效能 SKU,請將 subcomponentOverride 套用至管理 API 伺服器叢集。

監控高效能指標和快訊

高效能儲存空間也包含其他指標,例如 QOSPolicy 詳細資料。這項功能可根據 ONTAP 中的 QOSPolicy 篩選及匯總指標,方便您區分高效能磁碟區和標準磁碟區。

觀察指標

檔案可觀測性堆疊提供下列高效能指標:

  • metering_storage_allocated_capacity_bytes
  • metering_storage_used_capacity_bytes

這兩項指標都已透過 ONTAP 的 qos_policy 資訊進行擴充。

觀察資訊主頁

以先前的指標強化功能為基礎,標準和高效能儲存空間都提供快訊功能,可根據效能等級進行目標式監控,並更快偵測到問題。如要以視覺化方式呈現這項資料,可以使用高效能資訊主頁,這些資訊主頁會使用經過擴充的指標,深入分析高效能磁碟區的效能和用量。

如要查看這些資訊主頁,請存取 Grafana,然後依序前往「Dashboards」(資訊主頁)>「FILE and Dashboards」(檔案和資訊主頁)>「FILE/ONTAP」(檔案/ONTAP)

以下是可用的高效能資訊主頁:

  • 機構檔案區塊儲存空間效能平衡資訊主頁
  • FILE/ONTAP 資訊主頁會擷取 Harvest 資料。這樣就能直接從 Grafana 監控 ONTAP 效能。

觀察警示

除了指標和資訊主頁,您也可以查看與高效能相關的快訊。這些快訊有助於偵測儲存空間問題,並引導使用者前往包含操作說明的執行手冊,協助解決快訊問題。如果觸發快訊,快訊會提供可在服務手冊中查看的 Runbook 程式碼。PA 應按照這些執行手冊解決快訊問題。如要查看這些快訊,請依序前往「infra-obs」 >「file-block-storage-perf-monitoring-rules」,然後在 Grafana 的「Alert Rules」部分查看。

以下是可用的高成效快訊:

  • fb_high_org_volume_latencyfb_high_org_avg_volume_latency,分別追蹤機構和個別的平均音量延遲。
  • fb_storage_node_too_busy,追蹤節點的 CPU 使用率,並在 CPU 使用率過高時發出快訊。
  • fb_current_ops_higher_than_expected,在目前節點上的作業數量高於預期時發出警報。

查詢高效能帳單

高效能區塊儲存空間的 SKU 為 C008-4FF2-45E7。這個 SKU 的計費方式是使用下列 Prometheus 查詢:


sum_over_time(metering_storage_allocated_capacity_bytes{sku_id='c008-4ff2-45e7'}[{{.RangeHalfOpen}}:1m]) / 2^30 / 60 / {{.Hours}}

使用 metering_storage_allocated_capacity_bytes 表示系統會根據配置的位元組而非實際使用的位元組計費。

磁碟區的儲存空間類別和 QoS 政策會在首次佈建時設定。由於 QoS 政策是可直接在 ONTAP 中變更的變數,因此我們會根據 qos_policy 在指標中設定 sku_id,然後依 sku_id 計費。

工作流程範例

您可以透過不同類型的磁碟區宣告,在工作流程中使用高效能 SKU。但最終的基礎機制仍維持不變,例如以 performance-* 為後端的 PVC。以下範例展示了建立新磁碟區層級的不同方式。

參考正確的performance-*儲存空間類別名稱,將下列 YAML 設定套用至適當的叢集。

高效能 PVC 和 Pod 掛接:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: PVC_NAME
spec:
  storageClassName: performance-rwo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

---

apiVersion: v1
kind: Pod
metadata:
  name: POD_NAME
spec:
  volumes:
    - name: VOLUME_NAME
      persistentVolumeClaim:
        claimName: PVC_NAME
  containers:
    - name: CONTAINER_NAME
      image: gcr.io/GKE_RELEASE/asm/proxyv2:1.23.6-asm.14
      ports:
        - containerPort: 80
      volumeMounts:
        - name: VOLUME_NAME
          mountPath: "/data"

高效能 VM 磁碟和 VM:

apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: BOOT_DISK_NAME
  namespace: NAMESPACE
spec:
  source:
    image:
      name: ubuntu-24.04-v20250809-gdch
      namespace: vm-system
  size: 25Gi
  type: Performance

---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: DATA_DISK_NAME
  namespace: NAMESPACE
spec:
  size: 2Gi
  type: Performance
---

apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
  name: VM_NAME
  namespace: NAMESPACE
spec:
  compute:
    virtualMachineType: n3-standard-2-gdc
  disks:
  - virtualMachineDiskRef:
      name: BOOT_DISK_NAME
    boot: true
    autoDelete: true
  - virtualMachineDiskRef:
      name: DATA_DISK_NAME
    autoDelete: true

高效能磁碟區快照和還原:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: SOURCE_PVC_NAME
spec:
  storageClassName: performance-rwo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: VOLUME_SNAPSHOT_NAME
  namespace: NAMESPACE
spec:
  volumeSnapshotClassName: performance
  source:
    persistentVolumeClaimName: SOURCE_PVC_NAME

---


apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: RESTORED_PVC_NAME
  namespace: NAMESPACE
spec:
  dataSource:
    name: VOLUME_SNAPSHOT_NAME
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io
  storageClassName: performance-rwo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5i

更改下列內容:

  • BOOT_DISK_NAME:虛擬機器的開機磁碟名稱。
  • CONTAINER_NAME:容器名稱。
  • DATA_DISK_NAME:虛擬機器資料磁碟的名稱。
  • NAMESPACE:資源的 Kubernetes 命名空間。
  • POD_NAME:Pod 的名稱。
  • PVC_NAMEPersistentVolumeClaim 資源的名稱。
  • RESTORED_PVC_NAME:還原的 PersistentVolumeClaim 資源名稱。
  • SOURCE_PVC_NAME:快照的來源 PersistentVolumeClaim 資源名稱。
  • VM_NAME:虛擬機器的名稱。
  • VOLUME_NAME:磁碟區名稱。
  • VOLUME_SNAPSHOT_NAMEVolumeSnapshot 資源的名稱。
  • GKE_RELEASE:GKE 發布版本。