Habilita el almacenamiento en bloque de alto rendimiento

Google Distributed Cloud (GDC) aislado ofrece un nivel de almacenamiento de alto rendimiento diseñado para cargas de trabajo exigentes. Este nivel ofrece un rendimiento que se escala hasta 30 IOPS por GB, lo que representa un aumento en comparación con el nivel de almacenamiento en bloque estándar, que ofrece hasta 3 IOPS por GB. En este documento, se describe cómo habilitar el almacenamiento en bloque de alto rendimiento y cómo supervisar sus métricas, alertas y detalles de facturación asociados. Está destinado a públicos dentro del grupo de administradores de la plataforma (como administradores de TI) o del grupo de operadores de la aplicación (como desarrolladores de aplicaciones).

La clase de almacenamiento de alto rendimiento performance-rwo está disponible para el clúster de Kubernetes.

Con la incorporación del SKU de alto rendimiento, para los volúmenes que usan clases de almacenamiento performance-*, el proceso de instantáneas y restablecimiento de volúmenes es similar al de las clases de almacenamiento standard-*. Puedes tomar una instantánea de volumen y restablecer un PVC similar sin cambiar la clase de almacenamiento ni los valores subyacentes de la calidad de servicio (QoS) estándar. El performance volumesnapshotclass captura el tipo de volumen y, con este volumesnapshot, puedes restablecer el volumen con la misma clase de almacenamiento.

Antes de comenzar

Antes de comenzar, asegúrate de cumplir con los siguientes requisitos previos:

  • 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 posterior.
  • Proyecto

    • Es un proyecto de GDC dentro de una organización en el que planeas aprovisionar volúmenes de alto rendimiento.
  • Acceso y permisos

    • Permisos de Kubernetes suficientes para crear, administrar y usar recursos de PersistentVolumeClaim (PVC) para cargas de trabajo de contenedores, o recursos de VirtualMachineDisk para máquinas virtuales dentro del espacio de nombres del proyecto de destino Entre los roles comunes que se necesitan, se incluyen los siguientes:
      • project-vm-admin para administrar VMs y discos de VM
      • Roles que permiten la administración de PVC, que a menudo se incluyen en roles personalizados o de edición
      • Por lo general, no se requieren roles especiales a nivel de la organización para que un usuario final consuma 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 PA.
  • Información sobre las clases de almacenamiento

    • Conocimiento del concepto de objetos StorageClass de Kubernetes Los niveles de rendimiento alto se exponen a través de clases de almacenamiento específicas.
    • Debes especificar una clase de almacenamiento de alto rendimiento cuando crees un PVC o un disco de máquina virtual.
  • Capacidad y cuotas

    • Asegúrate de que la organización y el proyecto tengan suficiente cuota de almacenamiento asignada para el nivel de alto rendimiento.
    • Ten en cuenta las limitaciones de capacidad o las medidas de protección del rendimiento en el hardware y el entorno de GDC específicos.

Aplica subcomponentOverride a los clústeres requeridos

De forma predeterminada, el valor de FeatureGate para el SKU de alto rendimiento se establece en State: TEST. Para habilitar las clases de almacenamiento performance-*, el administrador de la plataforma (PA) o el operador de la aplicación (AO) deben aplicar un subcomponentOverride a los clústeres requeridos con un valor de FileHighPerformanceStorageClassStage más alto en comparación con el value predeterminado. 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 en SubcomponentOverride especifica el espacio de nombres del clúster (por ejemplo, cluster-1) en el que se establecerá la marca. Reemplaza 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

Reemplaza lo siguiente:

  • MANAGEMENT_API_SERVER_KUBECONFIG_PATH: Es la ruta al archivo kubeconfig del clúster del servidor de la API de administración.
  • SUBOVERRIDE_USER_FILE: Es la ruta de acceso al archivo YAML de SubcomponentOverride para el clúster de Kubernetes.

Para habilitar el SKU de alto rendimiento para los clústeres de Kubernetes, aplica subcomponentOverride al clúster del servidor de la API de administración.

Supervisa las métricas y las alertas de alto rendimiento

El almacenamiento de alto rendimiento también incluye métricas adicionales, como los detalles de QOSPolicy. Esta función permite filtrar y agregar métricas según el QOSPolicy en ONTAP, lo que permite distinguir los volúmenes de alto rendimiento de los estándares.

Observa las métricas

Las siguientes métricas de alto rendimiento están disponibles para la pila de observabilidad de archivos:

  • metering_storage_allocated_capacity_bytes
  • metering_storage_used_capacity_bytes

Ambas métricas se enriquecieron con información de qos_policy de ONTAP.

Observa los paneles

Además de las mejoras en las métricas anteriores, las alertas están disponibles para el almacenamiento estándar y de alto rendimiento, lo que permite una supervisión segmentada y una detección de problemas más rápida según la clase de rendimiento. Para visualizar estos datos, hay disponibles paneles de alto rendimiento que utilizan 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, accede a Grafana y navega a Paneles>FILE y Paneles>FILE/ONTAP.

Están disponibles los siguientes paneles de alto rendimiento:

  • Panel de rendimiento del almacenamiento en bloque de archivos de la organización.
  • Los paneles de FILE/ONTAP son paneles que extraen datos de Harvest. Esto te permite supervisar directamente el rendimiento de ONTAP desde Grafana.

Observa las alertas

Junto con las métricas y los paneles, también hay disponibles alertas relacionadas con el alto rendimiento. Estas alertas ayudan a detectar problemas de almacenamiento y guían a los usuarios a los runbooks que tienen instrucciones para resolver las alertas. Si se activa una alerta, esta proporcionará un código de runbook que se puede ver en el manual de servicio. Los PAs deben seguir estos manuales de ejecución para resolver la alerta. Para ver estas alertas en la sección Alert Rules de Grafana, navega a infra-obs > file-block-storage-perf-monitoring-rules.

Están disponibles las siguientes alertas de alto rendimiento:

  • fb_high_org_volume_latency y fb_high_org_avg_volume_latency para hacer un seguimiento de la latencia promedio del volumen en una organización y de forma individual, respectivamente.
  • fb_storage_node_too_busy para hacer un seguimiento del uso de CPU de un nodo y generar alertas si el uso de CPU es demasiado alto
  • fb_current_ops_higher_than_expected para generar una alerta si la cantidad de operaciones en un nodo actual es mayor de lo esperado.

Consultar la facturación de alto rendimiento

El SKU para el almacenamiento en bloque 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}}

Usar metering_storage_allocated_capacity_bytes significa que la facturación se basa en los bytes asignados y no en los bytes reales utilizados.

La clase de almacenamiento y la política de QoS para los volúmenes se establecen cuando se aprovisionan por primera vez. Dado que la política de QoS es una variable que se puede cambiar directamente en ONTAP, establecemos sku_id en las métricas según qos_policy y, luego, facturamos según sku_id.

Flujos de trabajo de ejemplo

Puedes usar el SKU de alto rendimiento en tus flujos de trabajo a través de 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 en que puedes crear un nuevo nivel de volúmenes.

Aplica las siguientes configuraciones de YAML al clúster adecuado haciendo referencia al nombre exacto de la clase de almacenamiento performance-*.

PVC y montajes de Pod 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 VMs 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

Instantáneas y restablecimientos de volúmenes 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

Reemplaza lo siguiente:

  • BOOT_DISK_NAME: Es el nombre del disco de arranque de la máquina virtual.
  • CONTAINER_NAME: Es el nombre del contenedor.
  • DATA_DISK_NAME: Es el nombre del disco de datos de la máquina virtual.
  • NAMESPACE: Es el espacio de nombres de Kubernetes para los recursos.
  • POD_NAME: Es el nombre del Pod.
  • PVC_NAME: El nombre del recurso PersistentVolumeClaim.
  • RESTORED_PVC_NAME: Es el nombre del recurso PersistentVolumeClaim restablecido.
  • SOURCE_PVC_NAME: Es el nombre del recurso PersistentVolumeClaim de origen para la instantánea.
  • VM_NAME: el nombre de la máquina virtual.
  • VOLUME_NAME: el nombre del volumen
  • VOLUME_SNAPSHOT_NAME: El nombre del recurso VolumeSnapshot.
  • GKE_RELEASE: Es la versión de lanzamiento de GKE.