高パフォーマンスのブロック ストレージを有効にする

Google Distributed Cloud(GDC)エアギャップは、要求の厳しいワークロード向けに設計された高性能ストレージ階層を提供します。この階層では、GB あたり最大 30 IOPS のパフォーマンス スケーリングが実現します。これは、GB あたり最大 3 IOPS の標準ブロック ストレージ階層と比較して向上しています。このドキュメントでは、高パフォーマンス ブロック ストレージを有効にする方法と、関連する指標、アラート、課金情報をモニタリングする方法について説明します。これは、プラットフォーム管理者グループ(IT 管理者など)またはアプリケーション オペレーター グループ(アプリケーション デベロッパーなど)のユーザーを対象としています。

performance-rwo 高パフォーマンス ストレージ クラスは、Kubernetes クラスタで使用できます。

高性能 SKU の追加により、performance-* ストレージ クラスを使用するボリュームの場合、ボリューム スナップショットと復元プロセスは standard-* ストレージ クラスの場合と同様になります。ボリューム スナップショットを作成し、ストレージ クラスや基盤となる標準の品質(QoS)値を変更せずに、同様の PVC を復元できます。performance volumesnapshotclass はボリュームのタイプをキャプチャします。この volumesnapshot を使用して、同じストレージ クラスでボリュームを復元できます。

始める前に

開始する前に、次の前提条件を満たしていることを確認してください。

  • GDC 環境とバージョン

    • バージョン 1.15.1 以降にアップグレードされた実行中の GDC インスタンス。
  • プロジェクト

    • 高パフォーマンス ボリュームをプロビジョニングする組織内の GDC プロジェクト。
  • アクセスと権限

    • コンテナ ワークロードの PersistentVolumeClaim(PVC)リソース、またはターゲット プロジェクトの Namespace 内の仮想マシンの VirtualMachineDisk リソースを作成、管理、使用するための十分な Kubernetes 権限。必要な一般的なロールは次のとおりです。
      • project-vm-admin: VM と VM ディスクを管理します。
      • PVC の管理を許可するロール。多くの場合、編集ロールまたはカスタムロールに含まれています。
      • 高パフォーマンス ストレージ クラスがプロジェクトのクラスタですでに使用可能な場合、エンドユーザーがストレージを使用するために、通常は特別な組織レベルのロールは必要ありません。これらのクラスの設定と公開は、インフラストラクチャ オペレーター(IO)または PA の責任です。
  • ストレージ クラスの理解

    • Kubernetes StorageClass オブジェクトのコンセプトに関する知識。高パフォーマンス ティアは、特定のストレージ クラスを介して公開されます。
    • PVC または仮想マシン ディスクを作成するときに、高パフォーマンスのストレージ クラスを指定する必要があります。
  • 容量と割り当て

    • 組織とプロジェクトに、パフォーマンスの高い階層に十分なストレージ割り当てが割り当てられていることを確認します。
    • 特定の GDC 環境とハードウェアの容量制限やパフォーマンス ガードレールに注意してください。

必要なクラスタに subcomponentOverride を適用する

デフォルトでは、高パフォーマンス SKU の FeatureGateState: TEST に設定されています。performance-* ストレージ クラスを有効にするには、プラットフォーム管理者(PA)またはアプリケーション オペレーター(AO)が、デフォルトの value よりも大きい FileHighPerformanceStorageClassStage 値で必要なクラスタに subcomponentOverride を適用する必要があります。次の例では、production の大きい方の値を使用します。

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

SubcomponentOverride の Namespace は、フラグが設定されるクラスタ Namespace(cluster-1 など)を指定します。NAMESPACE をクラスタの対応する 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 にアクセスして、[ダッシュボード] > [ファイルとダッシュボード] > [FILE/ONTAP] に移動します。

次の高パフォーマンス ダッシュボードを使用できます。

  • 組織のファイル ブロック ストレージのパフォーマンス バランス ダッシュボード
  • FILE/ONTAP ダッシュボードは、Harvest データをスクレイピングするダッシュボードです。これにより、Grafana から ONTAP のパフォーマンスを直接モニタリングできます。

アラートを監視する

指標やダッシュボードに加えて、パフォーマンスの高いアラートも利用できます。これらのアラートは、ストレージの問題を検出し、アラートの解決に役立つ手順が記載されたランブックにユーザーを誘導します。アラートがトリガーされると、アラートにはサービス マニュアルで確認できるランブック コードが提供されます。PA は、これらのランブックに沿ってアラートを解決する必要があります。これらのアラートは、Grafana の [アラート ルール] セクションで確認できます。確認するには、infra-obs > file-block-storage-perf-monitoring-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 Namespace。
  • POD_NAME: Pod の名前。
  • PVC_NAME: PersistentVolumeClaim リソースの名前。
  • RESTORED_PVC_NAME: 復元された PersistentVolumeClaim リソースの名前。
  • SOURCE_PVC_NAME: スナップショットのソース PersistentVolumeClaim リソースの名前。
  • VM_NAME: 仮想マシンの名前。
  • VOLUME_NAME: ボリュームの名前。
  • VOLUME_SNAPSHOT_NAME: VolumeSnapshot リソースの名前。
  • GKE_RELEASE: GKE リリース バージョン。