Google Distributed Cloud (GDC) con air gap ofrece un nivel de almacenamiento de alto rendimiento diseñado para cargas de trabajo exigentes. Este nivel ofrece un rendimiento de hasta 30 IOPS por GB, lo que supone un aumento en comparación con el nivel de almacenamiento en bloques estándar, que ofrece hasta 3 IOPS por GB. En este documento se describe cómo habilitar el almacenamiento en bloques de alto rendimiento y cómo monitorizar las métricas, las alertas y los detalles de facturación asociados. Está pensada para audiencias que forman parte del grupo de administradores de la plataforma (como los administradores de TI) o del grupo de operadores de la aplicación (como los desarrolladores de aplicaciones).
La clase de almacenamiento de performance-rwoalto rendimiento está disponible para el clúster de Kubernetes.
Con la incorporación de la SKU de alto rendimiento, en los volúmenes que usan clases de almacenamiento performance-*, el proceso de creación y restauración de instantáneas de volumen es similar al de las clases de almacenamiento standard-*. Puedes crear una instantánea de volumen y restaurar un PVC similar sin cambiar la clase de almacenamiento ni los valores de calidad de servicio (QoS) subyacentes. El performance volumesnapshotclass captura el tipo de volumen y, con este volumesnapshot, puedes restaurar el volumen con la misma clase de almacenamiento.
Antes de empezar
Antes de empezar, asegúrate de que cumples los siguientes requisitos:
Entorno y versión de GDC
- Una instancia de GDC en ejecución que se haya actualizado a la versión 1.15.1 o a una posterior.
Proyecto
- Un proyecto de GDC en una organización en la que quieras aprovisionar volúmenes de alto rendimiento.
Acceso y permisos
- Permisos de Kubernetes suficientes para crear, gestionar y usar recursos PersistentVolumeClaim (PVC) para cargas de trabajo de contenedores o recursos
VirtualMachineDiskpara máquinas virtuales en el espacio de nombres del proyecto de destino. Entre los roles habituales que se necesitan se incluyen los siguientes:project-vm-adminpara gestionar máquinas virtuales y discos de máquinas virtuales.- Roles que permiten gestionar los PVCs, que suelen incluirse en los roles de edición o personalizados.
- Por lo general, los usuarios finales no necesitan ningún rol especial a nivel de organización para consumir el almacenamiento si las clases de almacenamiento de alto rendimiento ya están disponibles en el clúster de su proyecto. La configuración y la exposición de estas clases son responsabilidad del operador de infraestructura (IO) o del proveedor de acceso (PA).
- Permisos de Kubernetes suficientes para crear, gestionar y usar recursos PersistentVolumeClaim (PVC) para cargas de trabajo de contenedores o recursos
Conocimientos sobre las clases de almacenamiento
- Familiaridad con el concepto de objetos de Kubernetes
StorageClass. Los niveles de alto rendimiento se exponen a través de clases de almacenamiento específicas. - Debe especificar una clase de almacenamiento de alto rendimiento al crear un PVC o un disco de máquina virtual.
- Familiaridad con el concepto de objetos de Kubernetes
Capacidad y cuotas
- Asegúrate de que la organización y el proyecto tengan suficiente cuota de almacenamiento asignada al nivel de alto rendimiento.
- Ten en cuenta las limitaciones de capacidad o las medidas de protección del rendimiento del entorno y el hardware de GDC específicos.
Aplica subcomponentOverride a los clústeres necesarios.
De forma predeterminada, el FeatureGate de la SKU de alto rendimiento es State: TEST. Para habilitar las performance-* clases de almacenamiento, el administrador de la plataforma o el operador de la aplicación deben aplicar un subcomponentOverride a los clústeres necesarios con un valor de FileHighPerformanceStorageClassStage superior al valor predeterminado value. En el siguiente ejemplo se usa el valor más alto de production.
apiVersion: lcm.private.gdc.goog/v1
kind: SubcomponentOverride
metadata:
name: file-common
namespace: NAMESPACE
spec:
features:
operableParameters:
FileHighPerformanceStorageClassStage: production
subComponentRef: file-common
El espacio de nombres de SubcomponentOverride especifica el espacio de nombres del clúster (por ejemplo, cluster-1) en el que se va a definir la marca. Sustituye NAMESPACE por los espacios de nombres correspondientes de los clústeres y crea los archivos SubcomponentOverride. Aplica este cambio con el siguiente comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG_PATH apply -f SUBOVERRIDE_USER_FILE
Haz los cambios siguientes:
MANAGEMENT_API_SERVER_KUBECONFIG_PATH: la ruta al archivo kubeconfig del clúster del servidor de la API Management.SUBOVERRIDE_USER_FILE: la ruta al archivoSubcomponentOverrideYAML del clúster de Kubernetes.
Para habilitar la SKU de alto rendimiento en los clústeres de Kubernetes, aplica la subcomponentOverride al clúster del servidor de la API de gestión.
Monitorizar métricas y alertas de alto rendimiento
El almacenamiento de alto rendimiento también incluye métricas adicionales, como los QOSPolicy detalles. Esta función permite filtrar y agregar métricas en función del QOSPolicy de ONTAP, lo que permite distinguir los volúmenes de alto rendimiento de los estándar.
Observar métricas
Las siguientes métricas de alto rendimiento están disponibles para la pila de observabilidad de archivos:
metering_storage_allocated_capacity_bytesmetering_storage_used_capacity_bytes
Ambas métricas se han enriquecido con qos_policy información de ONTAP.
Paneles de control de Observe
Además de las mejoras de las métricas anteriores, las alertas están disponibles para el almacenamiento estándar y de alto rendimiento, lo que permite una monitorización específica y una detección más rápida de los problemas en función de la clase de rendimiento. Para visualizar estos datos, hay disponibles paneles de alto rendimiento que usan las métricas enriquecidas para proporcionar estadísticas sobre el rendimiento y el uso de los volúmenes de alto rendimiento.
Para ver estos paneles de control, accede a Grafana y ve a Paneles de control> FILE y Paneles de control> FILE/ONTAP.
Estos son los paneles de control de alto rendimiento disponibles:
- Panel de equilibrio del rendimiento del almacenamiento en bloques de archivos de la organización.
- Los paneles de control FILE/ONTAP son paneles que extraen datos de Harvest. De esta forma, puede monitorizar directamente el rendimiento de ONTAP desde Grafana.
Observar alertas
Además de las métricas y los paneles de control, también hay alertas relacionadas con el alto rendimiento. Estas alertas ayudan a detectar problemas de almacenamiento y dirigen a los usuarios a los runbooks que contienen instrucciones para resolver las alertas. Si se activa una alerta, esta proporcionará un código de manual de operaciones que se puede consultar en el manual de servicio. Los asistentes deben seguir estos manuales de operaciones para resolver la alerta. Estas alertas se pueden ver en la sección Alert Rules (Reglas de alertas) de Grafana. Para ello, ve a infra-obs > file-block-storage-perf-monitoring-rules (infra-obs > reglas-de-monitorización-del-rendimiento-del-almacenamiento-en-bloques-de-archivos).
Estas son las alertas de alto rendimiento disponibles:
fb_high_org_volume_latencyyfb_high_org_avg_volume_latencypara monitorizar la latencia media del volumen de una organización y de cada usuario, respectivamente.fb_storage_node_too_busypara monitorizar el uso de CPU de un nodo y enviar alertas si el uso de CPU es demasiado alto.fb_current_ops_higher_than_expectedpara alertar si la cantidad de operaciones en un nodo actual es superior a la esperada.
Consultar la facturación de alto rendimiento
La SKU del almacenamiento en bloques de alto rendimiento es C008-4FF2-45E7. La facturación de este SKU se realiza con la siguiente consulta de Prometheus:
sum_over_time(metering_storage_allocated_capacity_bytes{sku_id='c008-4ff2-45e7'}[{{.RangeHalfOpen}}:1m]) / 2^30 / 60 / {{.Hours}}
Si usas metering_storage_allocated_capacity_bytes, la facturación se basa en los bytes asignados en lugar de en los bytes utilizados.
La clase de almacenamiento y la política de QoS de los volúmenes se definen cuando se aprovisionan por primera vez. Como la política de calidad del servicio es una variable que se puede cambiar directamente en ONTAP, definimos sku_id en las métricas en función de qos_policy y, después, facturamos por sku_id.
Ejemplos de flujos de trabajo
Puede usar SKUs de alto rendimiento en sus flujos de trabajo mediante diferentes tipos de declaraciones de volumen. En última instancia, el mecanismo subyacente sigue siendo el mismo, por ejemplo, un PVC respaldado por performance-*. En los siguientes ejemplos se muestran las diferentes formas de crear un nuevo nivel de volúmenes.
Aplica las siguientes configuraciones de YAML al clúster correspondiente haciendo referencia al nombre de clase de almacenamiento performance-* correcto.
PVCs y montajes de pods de alto rendimiento:
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"
Discos y máquinas virtuales de alto rendimiento:
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
Capturas y restauraciones de volumen de alto rendimiento:
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
Haz los cambios siguientes:
BOOT_DISK_NAME: el nombre del disco de arranque de la máquina virtual.CONTAINER_NAME: el nombre del contenedor.DATA_DISK_NAME: el nombre del disco de datos de la máquina virtual.NAMESPACE: el espacio de nombres de Kubernetes de los recursos.POD_NAME: el nombre del pod.PVC_NAME: el nombre del recursoPersistentVolumeClaim.RESTORED_PVC_NAME: el nombre del recursoPersistentVolumeClaimrestaurado.SOURCE_PVC_NAME: nombre del recursoPersistentVolumeClaimde origen de la instantánea.VM_NAME: nombre de la máquina virtual.VOLUME_NAME: el nombre del volumen.VOLUME_SNAPSHOT_NAME: el nombre del recursoVolumeSnapshot.GKE_RELEASE: la versión de lanzamiento de GKE.