Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Espansione automatica del volume

Collaboratori joan-ing

L'espansione automatica del volume consente ai Persistent Volumes forniti da Trident di aumentare automaticamente quando la capacità utilizzata raggiunge una soglia definita. Questa funzionalità riduce il sovraccarico operativo e aiuta a prevenire l'interruzione delle applicazioni causata dall'esaurimento della capacità.

L'espansione automatica del volume viene implementata utilizzando Autogrow Policies. Una Autogrow Policy definisce:

  • La soglia di utilizzo che attiva l'espansione

  • La quantità di cui cresce il volume

  • La dimensione massima che il volume può raggiungere

I volumi aumentano automaticamente di dimensione quando viene superata la soglia di utilizzo definita. I volumi non vengono mai ridotti automaticamente.

Requisiti

Prima di configurare l'espansione automatica del volume, assicurarsi che siano soddisfatti i seguenti requisiti:

  • Trident 26.02 o versioni successive

  • Autorizzazioni di controllo degli accessi basate sui ruoli per creare TridentAutogrowPolicy risorse personalizzate

  • StorageClasses configurati con allowVolumeExpansion: true

  • Protocolli ONTAP supportati:

    • Network File System (NFS)

    • Internet Small Computer Systems Interface (iSCSI)

    • Protocollo Fibre Channel (NVMe)

    • Non-Volatile Memory Express over Fabrics (FCP)

Limitazioni

  • I volumi raw block ONTAP Non-Volatile Memory Express precedenti a ONTAP 9.16.1 non supportano l'espansione automatica.

  • Per i volumi di storage area network, se growthAmount è inferiore o uguale a 50 mebibyte, Trident aumenta automaticamente il valore a 51 mebibyte prima del ridimensionamento, a condizione che la dimensione risultante non superi maxSize.

  • Negli ambienti brownfield, l'espansione automatica potrebbe non funzionare per alcuni volumi esistenti a causa del comportamento di migrazione della pubblicazione del volume.

  • Quando un volume raggiunge maxSize, non si verifica alcuna ulteriore espansione.

  • Protocolli supportati per l'espansione automatica del volume:

    • Network File System (NFS)

    • Internet Small Computer Systems Interface (iSCSI)

    • Protocollo Fibre Channel (NVMe)

    • Non-Volatile Memory Express over Fabrics (FCP)

Provision Volumes con criterio di Autogrow

La policy di Autogrow può essere configurata a due livelli:

  • Livello di classe di archiviazione: imposta il valore predefinito per tutti i volumi (usando l'annotazione)

  • Livello PVC: sostituisce la classe di archiviazione predefinita (utilizzando annotazione)

Crea una policy di Autogrow

Le Autogrow Policies consentono l'espansione automatica del volume quando i volumi raggiungono una soglia di capacità definita.

Assicurati di avere:

  • Trident 26.02 o versioni successive installato

  • Autorizzazioni di controllo degli accessi basate sui ruoli per creare TridentAutogrowPolicy risorse

  • Comprensione dei requisiti di crescita del carico di lavoro

Una Autogrow Policy definisce come i volumi si espandono automaticamente quando raggiungono una soglia di capacità definita.

È possibile creare Autogrow Policies in qualsiasi momento del flusso di lavoro:

  • Prima che StorageClasses e i volumi vengano creati

  • Dopo che StorageClasses esistono

  • Dopo che i volumi sono stati effettuati il provisioning

Questa flessibilità consente di introdurre l'espansione automatica senza ricreare le risorse esistenti.

Specifiche della Autogrow Policy

Le Autogrow Policies sono risorse personalizzate di Kubernetes definite come segue:

Campo Descrizione Formato Obbligatorio Esempio Predefinito

nome

Identificatore univoco della policy

Stringa

production-db-policy

Nessuno

usedThreshold

Percentuale di capacità che innesca l'espansione

Stringa percentuale

"80%"

Nessuno

growthAmount

Quantità da aumentare quando viene raggiunta la soglia

Percentuale o dimensione

No

"10%" o "5Gi"

"10%"

maxSize

Limite massimo della dimensione del volume

Quantità Kubernetes

No

"500Gi"

Illimitato

Crea una policy di Autogrow

Fasi
  1. Crea un file YAML che definisce la tua Autogrow Policy:

    apiVersion: trident.netapp.io/v1
    kind: TridentAutogrowPolicy
    metadata:
      name: standard-autogrow
    spec:
      usedThreshold: "80%"
      growthAmount: "10%"
      maxSize: "500Gi"
  2. Applica la policy al tuo cluster:

    kubectl apply -f autogrow-policy.yaml
  3. Verificare che la policy sia stata creata:

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

Stati delle policy

Dopo aver creato una policy, Trident convalida la specifica e assegna uno dei seguenti stati:

Stato Descrizione Azione richiesta

Successo

La policy è convalidata e pronta per l'uso.

Nessuno.

Non riuscito

Sono stati rilevati errori di convalida.

Rivedi e correggi la specifica.

Eliminazione

L'eliminazione è in corso.

Attendere il completamento.

Associa una policy a un StorageClass

È possibile associare una Autogrow Policy a una StorageClass utilizzando l' `trident.netapp.io/autogrowPolicy`annotazione. Tutti i volumi forniti da quella StorageClass ereditano la policy.

Nota Il StorageClass deve avere allowVolumeExpansion: true.
Fasi
  1. Crea o modifica una StorageClass con l'annotazione Autogrow Policy:

    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. Applica il StorageClass:

    kubectl apply -f storageclass.yaml
  3. Verifica l'annotazione:

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

Precedenza delle policy

Quando le annotazioni Autogrow Policy sono impostate sia su una StorageClass che su un PVC, Trident applica le seguenti regole di precedenza:

  1. L'annotazione PVC ha la priorità. Se un PVC imposta trident.netapp.io/autogrowPolicy, quel valore viene sempre utilizzato.

  2. StorageClass annotation si applica solo quando il PVC non ha annotazione.

  3. Se nessuno dei due ha l'annotazione, non viene applicata alcuna Autogrow Policy.

Annotazione StorageClass Annotazione PVC Comportamento efficace

trident.netapp.io/autogrowPolicy: standard-agp

Non impostato

Usa standard-agp.

trident.netapp.io/autogrowPolicy: standard-agp

trident.netapp.io/autogrowPolicy: logs-policy

Utilizza logs-policy (PVC sostituisce StorageClass).

trident.netapp.io/autogrowPolicy: standard-agp

trident.netapp.io/autogrowPolicy: "none"

No Autogrow Policy (PVC disabilita autogrow).

Non impostato

trident.netapp.io/autogrowPolicy: dev-policy

Usi dev-policy.

Non impostato

Non impostato

Nessuna Autogrow Policy.

Esempi di configurazione

Gli esempi seguenti mostrano configurazioni comuni di Autogrow Policy per diversi casi d'uso.

Politica conservativa per database di produzione

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

Archiviazione dei log con incrementi di crescita fissi

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

Politica minima con valori predefiniti

Quando si omettono growthAmount e maxSize, Trident utilizza i valori predefiniti (10% crescita, dimensione illimitata):

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

Policy con un maxSize personalizzato e growthAmount predefinito

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

Crescita aggressiva con maxSize illimitata

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

Policy con percentuali frazionarie

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: precise-policy
spec:
  usedThreshold: "80.28%"
  growthAmount: "10.65%"
  maxSize: "100Gi"
Nota Sono supportate le percentuali frazionarie. Se si specificano più di tre cifre decimali, Trident arrotonda il valore a tre cifre decimali.

NAS StorageClass con 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 con crescita automatica

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