Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Automatische Volumenerweiterung

Beitragende joan-ing
Änderungen vorschlagen

Die automatische Volumenerweiterung ermöglicht es, dass von Trident bereitgestellte Persistent Volumes automatisch wachsen, sobald die genutzte Kapazität einen definierten Schwellenwert erreicht. Diese Funktion reduziert den Betriebsaufwand und trägt dazu bei, Anwendungsunterbrechungen aufgrund von Kapazitätsengpässen zu vermeiden.

Die automatische Volumenerweiterung wird mithilfe von Autogrow Policies implementiert. Eine Autogrow Policy definiert:

  • Die Auslastungsschwelle, die die Erweiterung auslöst

  • Die Menge, um die das Volumen wächst

  • Die maximale Größe, die das Volume erreichen kann

Volumes erhöhen sich automatisch, wenn der festgelegte Auslastungsschwellenwert überschritten wird. Volumes werden niemals automatisch reduziert.

Anforderungen

Bevor Sie die automatische Volumenerweiterung konfigurieren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Trident 26.02 oder später

  • Rollenbasierte Zugriffssteuerungsberechtigungen zum Erstellen TridentAutogrowPolicy benutzerdefinierter Ressourcen

  • StorageClasses konfiguriert mit allowVolumeExpansion: true

  • Unterstützte ONTAP-Protokolle:

    • Netzwerkdateisystem

    • Internet Small Computer Systems Interface

    • Fibre Channel-Protokoll

    • Non-Volatile Memory Express über Fabrics

Einschränkungen

  • ONTAP Non-Volatile Memory Express Raw-Block-Volumes früher als ONTAP 9.16.1 unterstützen keine automatische Erweiterung.

  • Für SAN-Volumes, wenn growthAmount kleiner oder gleich 50 Mebibyte ist, erhöht Trident den Wert automatisch auf 51 Mebibyte, bevor die Größe angepasst wird, vorausgesetzt, die resultierende Größe überschreitet nicht maxSize.

  • In Brownfield-Umgebungen funktioniert die automatische Erweiterung möglicherweise nicht für bestimmte vorhandene Volumes aufgrund des Migrationsverhaltens bei der Volume-Veröffentlichung.

  • Wenn ein Volumen maxSize erreicht, findet keine weitere Erweiterung statt.

  • Unterstützte Protokolle für die automatische Volumenerweiterung:

    • Netzwerkdateisystem

    • Internet Small Computer Systems Interface

    • Fibre Channel-Protokoll

    • Non-Volatile Memory Express über Fabrics

Volumes mit Autogrow-Richtlinie bereitstellen

Die Autogrow Policy kann auf zwei Ebenen konfiguriert werden:

  • Speicherklassenebene: Legt den Standardwert für alle Volumes fest (mittels Annotation)

  • PVC-Ebene: Überschreibt die Standardeinstellung der Speicherklasse (using annotation)

Erstellen Sie eine Autogrow-Richtlinie

Autogrow-Richtlinien ermöglichen die automatische Volumenerweiterung, wenn Volumes einen definierten Kapazitätsschwellenwert erreichen.

Stellen Sie sicher, dass Sie Folgendes haben:

  • Trident 26.02 oder höher installiert

  • Rollenbasierte Zugriffssteuerungsberechtigungen zum Erstellen TridentAutogrowPolicy von Ressourcen

  • Verständnis der Anforderungen an das Arbeitslastwachstum

Eine Autogrow Policy definiert, wie sich Volumes automatisch vergrößern, wenn sie einen festgelegten Kapazitätsschwellenwert erreichen.

Sie können Autogrow Policies an jeder beliebigen Stelle in Ihrem Workflow erstellen:

  • Bevor StorageClasses und Volumes erstellt werden

  • Nachdem StorageClasses existieren

  • Nachdem die Volumes bereitgestellt wurden

Diese Flexibilität ermöglicht es Ihnen, eine automatische Erweiterung einzuführen, ohne bestehende Ressourcen neu zu erstellen.

Spezifikationen der Autogrow Policy

Autogrow Policies sind benutzerdefinierte Kubernetes-Ressourcen, die wie folgt definiert sind:

Feld Beschreibung Formatieren Erforderlich Beispiel Standard

Name

Eindeutige Richtlinienkennung

Zeichenfolge

Ja.

Produktionsdatenbankrichtlinie

Keine

usedThreshold

Kapazitätsprozentsatz, der die Erweiterung auslöst

Prozentzeichenkette

Ja.

"80%"

Keine

growthAmount

Betrag, um den erhöht wird, wenn der Schwellenwert erreicht ist

Prozentualer Anteil oder Größe

Nein

"10%" oder "5Gi"

"10%"

maxSize

Maximale Volumengrößenbeschränkung

Kubernetes-Menge

Nein

"500Gi"

Unbegrenzt

Erstellen Sie eine Autogrow-Richtlinie

Schritte
  1. Erstellen Sie eine YAML-Datei, die Ihre Autogrow Policy definiert:

    apiVersion: trident.netapp.io/v1
    kind: TridentAutogrowPolicy
    metadata:
      name: standard-autogrow
    spec:
      usedThreshold: "80%"
      growthAmount: "10%"
      maxSize: "500Gi"
  2. Wenden Sie die Richtlinie auf Ihren Cluster an:

    kubectl apply -f autogrow-policy.yaml
  3. Überprüfen Sie, ob die Richtlinie erstellt wurde:

    kubectl get tridentautogrowpolicy standard-autogrow
    Erwartete Ausgabe
    NAME                USED THRESHOLD   GROWTH AMOUNT   STATE
    standard-autogrow   80%              10%             Success

Richtlinienstatus

Nachdem Sie eine Richtlinie erstellt haben, validiert Trident die Spezifikation und weist einen der folgenden Zustände zu:

Status Beschreibung Aktion erforderlich

Erfolg

Die Richtlinie ist validiert und einsatzbereit.

Keine.

Fehlgeschlagen

Validierungsfehler festgestellt.

Spezifikation prüfen und korrigieren.

Löschen

Löschung wird durchgeführt.

Warten Sie auf den Abschluss.

Ordnen Sie eine Richtlinie einer StorageClass zu

Sie können eine Autogrow-Richtlinie mit einer StorageClass durch die trident.netapp.io/autogrowPolicy Annotation verknüpfen. Alle Volumes, die aus dieser StorageClass bereitgestellt werden, erben die Richtlinie.

Hinweis Die StorageClass muss allowVolumeExpansion: true haben.
Schritte
  1. Erstellen oder ändern Sie eine StorageClass mit der Autogrow Policy-Annotation:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ontap-gold
      annotations:
        trident.netapp.io/autogrowPolicy: "production-db-policy"
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "ontap-san"
      fsType: "ext4"
    allowVolumeExpansion: true
  2. Wenden Sie die StorageClass an:

    kubectl apply -f storageclass.yaml
  3. Überprüfen Sie die Annotation:

    kubectl get storageclass ontap-gold -o jsonpath='{.metadata.annotations.trident\.netapp\.io/autogrowPolicy}'
    Erwartete Ausgabe
    production-db-policy

Richtlinienvorrang

Wenn Autogrow-Richtlinien-Annotationen sowohl für eine StorageClass als auch für ein PVC festgelegt sind, wendet Trident die folgenden Vorrangregeln an:

  1. PVC-Annotationen haben Vorrang. Wenn eine PVC trident.netapp.io/autogrowPolicy festlegt, wird dieser Wert immer verwendet.

  2. StorageClass-Anmerkung gilt nur, wenn die PVC keine Anmerkung enthält.

  3. Wenn keines der beiden die Annotation hat, wird keine Autogrow Policy angewendet.

StorageClass Anmerkung PVC-Anmerkung Effektives Verhalten

trident.netapp.io/autogrowPolicy: standard-agp

Nicht festgelegt

Anwendungsgebiete standard-agp.

trident.netapp.io/autogrowPolicy: standard-agp

trident.netapp.io/autogrowPolicy: logs-policy

Verwendet logs-policy (PVC überschreibt StorageClass).

trident.netapp.io/autogrowPolicy: standard-agp

trident.netapp.io/autogrowPolicy: "none"

Keine Autogrow-Richtlinie (PVC deaktiviert autogrow).

Nicht festgelegt

trident.netapp.io/autogrowPolicy: dev-policy

Anwendungsgebiete dev-policy.

Nicht festgelegt

Nicht festgelegt

Keine Autogrow Policy.

Konfigurationsbeispiele

Die folgenden Beispiele zeigen gängige Autogrow Policy-Konfigurationen für verschiedene Anwendungsfälle.

Konservative Richtlinie für Produktionsdatenbanken

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: production-db-policy
spec:
  usedThreshold: "75%"
  growthAmount: "20%"
  maxSize: "5Ti"

Protokollspeicherung mit festen Wachstumsschritten

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: log-storage-policy
spec:
  usedThreshold: "90%"
  growthAmount: "10Gi"
  maxSize: "100Gi"

Minimalrichtlinie mit Standardeinstellungen

Wenn Sie growthAmount und maxSize weglassen, verwendet Trident die Standardeinstellungen (10% Wachstum, unbegrenzte Größe):

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: logs-policy
spec:
  usedThreshold: "85%"

Richtlinie mit benutzerdefiniertem maxSize und standardmäßigem growthAmount

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: default-ga-policy
spec:
  usedThreshold: "70%"
  maxSize: "100Gi"

Aggressives Wachstum mit unbegrenztem maxSize

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: aggressive-growth-policy
spec:
  usedThreshold: "80%"
  growthAmount: "150%"

Richtlinie mit Bruchteilprozenten

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: precise-policy
spec:
  usedThreshold: "80.28%"
  growthAmount: "10.65%"
  maxSize: "100Gi"
Hinweis Bruchprozentsätze werden unterstützt. Wenn Sie mehr als drei Dezimalstellen angeben, rundet Trident den Wert auf drei Dezimalstellen.

NAS StorageClass mit Autogrow

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-nas-autogrow
  annotations:
    trident.netapp.io/autogrowPolicy: "standard-autogrow"
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  fsType: "ext4"
allowVolumeExpansion: true

SAN StorageClass mit Autogrow

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: database-storage
  annotations:
    trident.netapp.io/autogrowPolicy: "production-db-policy"
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-san"
  fsType: "ext4"
allowVolumeExpansion: true