Google Distributed Cloud (GDC) sous air gap propose un niveau de stockage hautes performances conçu pour les charges de travail exigeantes. Ce niveau offre des performances évolutives jusqu'à 30 IOPS par Go, ce qui représente une augmentation par rapport au niveau de stockage de blocs standard, qui offre jusqu'à 3 IOPS par Go. Ce document explique comment activer le stockage par blocs hautes performances et comment surveiller les métriques, les alertes et les informations de facturation associées. Il est destiné aux audiences du groupe d'administrateurs de plate-forme (comme les administrateurs informatiques) ou du groupe d'opérateurs d'applications (comme les développeurs d'applications).
La classe de stockage hautes performances performance-rwo est disponible pour le cluster Kubernetes.
Avec l'ajout du SKU hautes performances, pour les volumes utilisant des classes de stockage performance-*, le processus d'instantané et de restauration de volume est similaire à celui des classes de stockage standard-*. Vous pouvez prendre un instantané de volume et restaurer un PVC similaire sans modifier la classe de stockage ni les valeurs de qualité de service (QoS) sous-jacentes. performance volumesnapshotclass capture le type de volume. À l'aide de volumesnapshot, vous pouvez restaurer le volume avec la même classe de stockage.
Avant de commencer
Avant de commencer, assurez-vous de remplir les conditions préalables suivantes :
Environnement et version GDC
- Une instance GDC en cours d'exécution mise à niveau vers la version 1.15.1 ou ultérieure.
Projet
- Projet GDC au sein d'une organisation dans lequel vous prévoyez de provisionner des volumes hautes performances.
Accès et autorisations
- Autorisations Kubernetes suffisantes pour créer, gérer et utiliser des ressources PersistentVolumeClaim (PVC) pour les charges de travail de conteneurs, ou des ressources
VirtualMachineDiskpour les machines virtuelles dans l'espace de noms du projet cible. Voici quelques rôles courants dont vous aurez besoin :project-vm-adminpour gérer les VM et les disques de VM.- Rôles permettant la gestion des PVC, qui sont souvent inclus dans les rôles de modification ou personnalisés.
- En général, aucun rôle spécial au niveau de l'organisation n'est requis pour qu'un utilisateur final puisse consommer du stockage si les classes de stockage hautes performances sont déjà disponibles dans le cluster de son projet. La configuration et l'exposition de ces classes relèvent de la responsabilité de l'opérateur d'infrastructure (IO) ou de l'administrateur de plate-forme (PA).
- Autorisations Kubernetes suffisantes pour créer, gérer et utiliser des ressources PersistentVolumeClaim (PVC) pour les charges de travail de conteneurs, ou des ressources
Comprendre les classes de stockage
- Connaissance du concept d'objets
StorageClassKubernetes. Les niveaux de performances élevées sont exposés par le biais de classes de stockage spécifiques. - Vous devez spécifier une classe de stockage à hautes performances lorsque vous créez un disque de machine virtuelle ou un PVC.
- Connaissance du concept d'objets
Capacité et quotas
- Assurez-vous que l'organisation et le projet disposent d'un quota de stockage suffisant pour le niveau hautes performances.
- Tenez compte des éventuelles limites de capacité ou des consignes de performances de l'environnement et du matériel GDC spécifiques.
Appliquez subcomponentOverride aux clusters requis.
Par défaut, la valeur FeatureGate pour le SKU hautes performances est définie sur State: TEST. Pour activer les classes de stockage performance-*, l'administrateur de plate-forme (PA) ou l'opérateur d'application (AO) doivent appliquer un subcomponentOverride aux clusters requis avec une valeur FileHighPerformanceStorageClassStage supérieure à la valeur par défaut value. L'exemple suivant utilise la valeur la plus élevée, à savoir production.
apiVersion: lcm.private.gdc.goog/v1
kind: SubcomponentOverride
metadata:
name: file-common
namespace: NAMESPACE
spec:
features:
operableParameters:
FileHighPerformanceStorageClassStage: production
subComponentRef: file-common
L'espace de noms dans SubcomponentOverride spécifie l'espace de noms du cluster (par exemple, cluster-1) où l'indicateur sera défini. Remplacez NAMESPACE par les espaces de noms correspondants des clusters et créez les fichiers SubcomponentOverride. Appliquez cette modification à l'aide de la commande suivante :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG_PATH apply -f SUBOVERRIDE_USER_FILE
Remplacez les éléments suivants :
MANAGEMENT_API_SERVER_KUBECONFIG_PATH: chemin d'accès au fichier kubeconfig du cluster du serveur de l'API Management.SUBOVERRIDE_USER_FILE: chemin d'accès au fichier YAMLSubcomponentOverridepour le cluster Kubernetes.
Pour activer le SKU hautes performances pour les clusters Kubernetes, appliquez subcomponentOverride au cluster du serveur d'API de gestion.
Surveiller les métriques et les alertes de hautes performances
Le stockage hautes performances inclut également des métriques supplémentaires, telles que les détails QOSPolicy. Cette fonctionnalité permet de filtrer et d'agréger les métriques en fonction de QOSPolicy dans ONTAP, ce qui permet de distinguer les volumes hautes performances de ceux standards.
Observer les métriques
Les métriques de performances élevées suivantes sont disponibles pour la pile d'observabilité des fichiers :
metering_storage_allocated_capacity_bytesmetering_storage_used_capacity_bytes
Ces deux métriques ont été enrichies avec des informations qos_policy provenant d'ONTAP.
Observer les tableaux de bord
En complément des améliorations apportées aux métriques, des alertes sont disponibles pour le stockage standard et hautes performances. Elles permettent une surveillance ciblée et une détection plus rapide des problèmes en fonction de la classe de performances. Pour visualiser ces données, des tableaux de bord hautes performances sont disponibles. Ils utilisent les métriques enrichies pour fournir des insights sur les performances et l'utilisation des volumes hautes performances.
Pour afficher ces tableaux de bord, accédez à Grafana, puis accédez à Dashboards> FILE and Dashboards> FILE/ONTAP.
Les tableaux de bord à hautes performances suivants sont disponibles :
- Tableau de bord "Équilibre des performances de stockage de blocs de fichiers de l'organisation"
- Les tableaux de bord FILE/ONTAP sont des tableaux de bord qui récupèrent les données Harvest. Cela vous permet de surveiller directement les performances ONTAP depuis Grafana.
Observer les alertes
En plus des métriques et des tableaux de bord, des alertes liées aux performances élevées sont également disponibles. Ces alertes permettent de détecter les problèmes de stockage et d'orienter les utilisateurs vers les runbooks contenant des instructions pour les résoudre. Si une alerte est déclenchée, elle fournit un code de runbook qui peut être consulté dans le manuel d'entretien. Les AP doivent suivre ces runbooks pour résoudre l'alerte. Vous pouvez afficher ces alertes dans la section Alert Rules (Règles d'alerte) de Grafana en accédant à infra-obs > file-block-storage-perf-monitoring-rules.
Voici les alertes de performances élevées disponibles :
fb_high_org_volume_latencyetfb_high_org_avg_volume_latencypour suivre respectivement la latence moyenne du volume dans une organisation et individuellement.fb_storage_node_too_busypour suivre l'utilisation du processeur d'un nœud et recevoir des alertes si elle est trop élevée.fb_current_ops_higher_than_expectedpour alerter si le nombre d'opérations sur un nœud actuel est plus élevé que prévu.
Interroger la facturation hautes performances
Le SKU pour le stockage de blocs hautes performances est C008-4FF2-45E7. La facturation de ce SKU est effectuée avec la requête Prometheus suivante :
sum_over_time(metering_storage_allocated_capacity_bytes{sku_id='c008-4ff2-45e7'}[{{.RangeHalfOpen}}:1m]) / 2^30 / 60 / {{.Hours}}
Si vous utilisez metering_storage_allocated_capacity_bytes, la facturation se base sur les octets alloués plutôt que sur les octets réellement utilisés.
La classe de stockage et la stratégie de qualité de service (QoS) des volumes sont définies lors de leur premier provisionnement. Étant donné que la règle QoS est une variable qui peut être modifiée directement dans ONTAP, nous définissons sku_id dans les métriques en fonction de qos_policy, puis nous facturons par sku_id.
Exemples de workflows
Vous pouvez utiliser le SKU à hautes performances dans vos workflows grâce à différents types de déclarations de volume. En fin de compte, le mécanisme sous-jacent reste le même, par exemple une PVC soutenue par performance-*. Les exemples suivants montrent différentes façons de créer un niveau de volumes.
Appliquez les configurations YAML suivantes au cluster approprié en référençant le nom de classe de stockage performance-* exact.
PVC et montages de pods hautes performances :
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"
Disques et VM hautes performances :
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
Instantanés et restaurations de volumes hautes performances :
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
Remplacez les éléments suivants :
BOOT_DISK_NAME: nom du disque de démarrage de la machine virtuelle.CONTAINER_NAME: nom du conteneur.DATA_DISK_NAME: nom du disque de données de la machine virtuelle.NAMESPACE: espace de noms Kubernetes pour les ressources.POD_NAME: nom du pod.PVC_NAME: le nom de la ressourcePersistentVolumeClaim.RESTORED_PVC_NAME: nom de la ressourcePersistentVolumeClaimrestaurée.SOURCE_PVC_NAME: nom de la ressourcePersistentVolumeClaimsource pour l'instantané.VM_NAME: nom de la machine virtuelleVOLUME_NAME: nom du volume.VOLUME_SNAPSHOT_NAME: le nom de la ressourceVolumeSnapshot.GKE_RELEASE: version de GKE.