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 の責任です。
- コンテナ ワークロードの PersistentVolumeClaim(PVC)リソース、またはターゲット プロジェクトの Namespace 内の仮想マシンの
ストレージ クラスの理解
- Kubernetes
StorageClassオブジェクトのコンセプトに関する知識。高パフォーマンス ティアは、特定のストレージ クラスを介して公開されます。 - PVC または仮想マシン ディスクを作成するときに、高パフォーマンスのストレージ クラスを指定する必要があります。
- Kubernetes
容量と割り当て
- 組織とプロジェクトに、パフォーマンスの高い階層に十分なストレージ割り当てが割り当てられていることを確認します。
- 特定の GDC 環境とハードウェアの容量制限やパフォーマンス ガードレールに注意してください。
必要なクラスタに subcomponentOverride を適用する
デフォルトでは、高パフォーマンス SKU の FeatureGate は State: 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 クラスタのSubcomponentOverrideYAML ファイルのパス。
Kubernetes クラスタで高パフォーマンス SKU を有効にするには、subcomponentOverride を管理 API サーバー クラスタに適用します。
高パフォーマンスの指標とアラートをモニタリングする
高パフォーマンス ストレージには、QOSPolicy の詳細などの追加指標も含まれます。この機能により、ONTAP の QOSPolicy に基づいて指標をフィルタして集計できるため、高パフォーマンス ボリュームと標準ボリュームを区別できます。
指標をモニタリングする
ファイル オブザーバビリティ スタックでは、次の高パフォーマンス指標を使用できます。
metering_storage_allocated_capacity_bytesmetering_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_latencyとfb_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 リリース バージョン。