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.

Scalabilità del controller

Collaboratori joan-ing

Trident introduce la scalabilità del controller attraverso una migliore concorrenza tra più driver di storage. I clienti possono identificare quali driver Trident supportano la scalabilità del controller al momento della disponibilità generale e quali driver sono disponibili come anteprima tecnica in Trident 26.02. Questo consente decisioni di implementazione informate e una gestione appropriata dei rischi per ambienti Kubernetes scalabili.

Concetti chiave e definizioni

Scalabilità del controller

La scalabilità del controller si riferisce alla capacità del controller Trident di elaborare più operazioni di storage in parallelo anziché serializzarle dietro un singolo blocco. Queste operazioni includono la creazione, l'eliminazione, il ridimensionamento dei volumi, la creazione e l'eliminazione di snapshot, la pubblicazione e l'annullamento della pubblicazione dei volumi e la gestione del backend.

Quando la scalabilità del controller è abilitata, le operazioni su volumi e backend diversi procedono contemporaneamente. Ciò aumenta il throughput e riduce i tempi operativi end-to-end in ambienti con un numero elevato di operazioni PersistentVolumeClaim e VolumeSnapshot simultanee.

Supporto per la scalabilità del controller

Trident supporta la scalabilità del controller con diversi livelli di maturità a seconda del driver di storage.

Disponibilità generale

I seguenti driver supportano la scalabilità del controller alla disponibilità generale in Trident 26.02:

  • ontap-san

  • ontap-nas

  • google-cloud-netapp-volumes

Nota

I google-cloud-netapp-volumes e google-cloud-netapp-volumes-san driver sono diversi. Solo google-cloud-netapp-volumes è supportato. Non utilizzare google-cloud-netapp-volumes-san nelle configurazioni di backend o negli esempi.

Abilita la scalabilità del controller

La scalabilità del controller è controllata dall'opzione di configurazione enableConcurrency. Questa opzione deve essere abilitata esplicitamente durante l'installazione di Trident o aggiornando una distribuzione esistente.

Distribuzione dell'operatore Trident

Per abilitare la scalabilità del controller con l'operatore Trident, impostare enableConcurrency su true nella TridentOrchestrator risorsa personalizzata.

Nuova installazione

Crea o modifica il TridentOrchestrator CR con enableConcurrency impostato su true:

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  namespace: trident
  enableConcurrency: true

Applicare la CR:

kubectl apply -f tridentorchestrator_cr.yaml

Installazione esistente

Applicare una patch al TridentOrchestrator CR esistente per abilitare la scalabilità del controller:

kubectl patch torc trident --type=merge -p '{"spec":{"enableConcurrency":true}}'

Verificare che l'impostazione sia stata applicata:

kubectl get torc trident -o jsonpath='{.status.currentInstallationParams.enableConcurrency}'

Distribuzione Helm

Per abilitare la scalabilità del controller con Helm, impostare il enableConcurrency valore su true.

Nuova installazione

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace --set enableConcurrency=true

Installazione esistente

helm upgrade trident netapp-trident/trident-operator --namespace trident --set enableConcurrency=true

In alternativa, imposta enableConcurrency su true in un file values.yaml personalizzato:

# values.yaml
enableConcurrency: true

Quindi installa o aggiorna utilizzando il file values:

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace -f values.yaml

implementazione tridentctl

Per abilitare la scalabilità del controller con tridentctl, passare il --enable-concurrency flag durante l'installazione.

Nuova installazione

tridentctl install -n trident --enable-concurrency

Installazione esistente

Per abilitare la scalabilità del controller su una distribuzione esistente basata su tridentctl, disinstallarla e reinstallarla con il flag:

tridentctl uninstall -n trident
tridentctl install -n trident --enable-concurrency

Verifica che la scalabilità del controller sia abilitata

Dopo aver abilitato la scalabilità del controller, verificare che il controller Trident sia in esecuzione con la concorrenza abilitata controllando i log del pod del controller:

kubectl logs -n trident deploy/trident-controller | grep -i concurrency

Dovresti vedere una voce di log che indica che la concorrenza è abilitata.

Anteprima tecnica

I seguenti driver supportano la scalabilità del controller come anteprima tecnica in Trident 26.02:

  • nas-eco

  • san-eco

Per questi driver:

  • La concorrenza del controller è disponibile per la valutazione e il testing

  • Il comportamento potrebbe cambiare nelle versioni future

  • L'uso in ambienti di produzione non è raccomandato

Comportamento della concorrenza

Quando la scalabilità del controller è abilitata:

  • Trident sostituisce il singolo blocco globale con un blocco a grana fine per risorsa

  • Le operazioni che modificano la stessa risorsa vengono serializzate per mantenere la coerenza dei dati

  • Le operazioni che leggono solo da una risorsa possono procedere contemporaneamente ad altre operazioni di lettura su quella risorsa

  • Trident limita le richieste API ONTAP simultanee a 20 per LIF di gestione per evitare il sovraccarico dei sistemi di archiviazione backend

  • Se più backend condividono lo stesso LIF di gestione, condividono questo limite di 20 richieste

Limitazioni e considerazioni note

Le seguenti considerazioni si applicano alla scalabilità del controller:

  • La concorrenza è gestita internamente dal Trident controller

  • In questa release non sono presenti limiti di concorrenza configurabili dall'utente

  • Il throughput complessivo dipende da:

    • Il driver di archiviazione in uso

    • Reattività del backend

    • Prestazioni del server API Kubernetes

  • Un'elevata concorrenza può aumentare il carico sui sistemi di storage back-end

Avvertenze e limitazioni

Le seguenti limitazioni si applicano in Trident 26.02:

  • Il comportamento di scalabilità del controller non è identico in tutti i driver

  • I driver di anteprima tecnica potrebbero presentare:

    • Prestazioni incoerenti sotto carico elevato

    • Modifiche nel comportamento tra le release

  • Il debug delle operazioni concorrenti può essere più complesso a causa dell'esecuzione parallela

  • Le metriche e i registri potrebbero mostrare output di operazioni intercalate

Raccomandazioni

  • Utilizza driver di disponibilità generale (GA) per ambienti di produzione che richiedono elevata scalabilità

  • Valuta i driver di anteprima tecnica in ambienti non di produzione

  • Monitora le prestazioni del backend e del controller quando si opera su larga scala

  • Evita di dare per scontato l'ordinamento delle operazioni negli script di automazione