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来管理虚拟机和虚拟机磁盘。- 允许 PVC 管理的角色,通常包含在编辑者角色或自定义角色中。
- 如果高性能存储类已在最终用户的项目集群中提供,则最终用户通常无需任何特殊的组织级角色即可使用存储。这些类的设置和公开是基础设施运维人员 (IO) 或 PA 的责任。
- 拥有足够的 Kubernetes 权限,可为容器工作负载创建、管理和使用 PersistentVolumeClaim (PVC) 资源,或为目标项目命名空间中的虚拟机创建、管理和使用
了解存储类别
- 熟悉 Kubernetes
StorageClass对象这一概念。高性能层级通过特定的存储类别公开。 - 创建 PVC 或虚拟机磁盘时,您必须指定高性能存储类别。
- 熟悉 Kubernetes
容量和配额
- 确保组织和项目已为高性能层分配足够的存储配额。
- 请注意特定 GDC 环境和硬件的任何容量限制或性能限制。
将 subcomponentOverride 应用于所需集群
默认情况下,高性能 SKU 的 FeatureGate 设置为 State: TEST。如需启用 performance-* 存储类,平台管理员 (PA) 或应用运维人员 (AO) 必须向所需集群应用 subcomponentOverride,且该 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 集群的SubcomponentOverrideYAML 文件的路径。
如需为 Kubernetes 集群启用高性能 SKU,请将 subcomponentOverride 应用到管理 API 服务器集群。
监控高性能指标和提醒
高性能存储方案还包含其他指标,例如 QOSPolicy 详情。借助此功能,可以根据 ONTAP 中的 QOSPolicy 过滤和汇总指标,从而区分高性能卷和标准卷。
观察指标
文件可观测性堆栈提供以下高性能指标:
metering_storage_allocated_capacity_bytesmetering_storage_used_capacity_bytes
这两个指标均已通过来自 ONTAP 的 qos_policy 信息进行丰富。
观察信息中心
在之前的指标增强功能的基础上,我们还为标准存储和高性能存储提供了提醒功能,以便根据性能等级进行有针对性的监控,并更快地检测到问题。为了直观呈现这些数据,我们提供了高性能信息中心,该信息中心使用丰富指标来深入了解高性能卷的性能和使用情况。
如需查看这些信息中心,请访问 Grafana,然后依次前往信息中心> FILE and Dashboards(文件和信息中心)> FILE/ONTAP。
以下高性能信息中心可供使用:
- 组织文件块存储性能平衡信息中心。
- FILE/ONTAP 信息中心是抓取 Harvest 数据的信息中心。这样,您就可以直接从 Grafana 监控 ONTAP 性能。
查看提醒
除了指标和信息中心之外,您还可以查看与高性能相关的提醒。这些提醒有助于检测存储方面的问题,并引导用户查看包含相关说明的 Runbook,以帮助解决提醒所指的问题。如果触发了提醒,该提醒将提供可在服务手册中查看的 Runbook 代码。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"
高性能虚拟机磁盘和虚拟机:
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_NAME:PersistentVolumeClaim资源的名称。RESTORED_PVC_NAME:已恢复的PersistentVolumeClaim资源的名称。SOURCE_PVC_NAME:快照的来源PersistentVolumeClaim资源的名称。VM_NAME:虚拟机的名称。VOLUME_NAME:卷的名称。VOLUME_SNAPSHOT_NAME:VolumeSnapshot资源的名称。GKE_RELEASE:GKE 发布版本。