Opzioni ed esempi di configurazione del NAS ONTAP
Scopri come creare e utilizzare i driver NAS ONTAP con l'installazione Trident. In questa sezione vengono forniti esempi di configurazione backend e dettagli per la mappatura dei backend a StorageClasses.
Opzioni di configurazione back-end
Per le opzioni di configurazione del backend, consultare la tabella seguente:
Parametro | Descrizione | Predefinito | ||
---|---|---|---|---|
|
Sempre 1 |
|||
|
Nome del driver di storage |
|
||
|
Nome personalizzato o backend dello storage |
Nome del driver + "_" + dataLIF |
||
|
Indirizzo IP di un cluster o LIF di gestione SVM È possibile specificare Un nome di dominio completo (FQDN). Può essere impostato in modo da utilizzare gli indirizzi IPv6 se Trident è stato installato utilizzando il flag IPv6. Gli indirizzi IPv6 devono essere definiti tra parentesi quadre, ad esempio |
"10,0.0,1", "[2001:1234:abcd::fefe]" |
||
|
Indirizzo IP del protocollo LIF. NetApp consiglia di specificare |
Indirizzo specificato o derivato da SVM, se non specificato (non consigliato) |
||
|
Macchina virtuale di archiviazione da utilizzare omit for MetroCluster. Consultare la Esempio MetroCluster. |
Derivata se viene specificata una SVM |
||
|
Abilita la creazione e l'aggiornamento automatici dei criteri di esportazione [booleano]. Utilizzando le |
falso |
||
|
Elenco di CIDR per filtrare gli IP dei nodi di Kubernetes rispetto a quando |
["0,0.0,0/0", ":/0"]» |
||
|
Set di etichette arbitrarie formattate con JSON da applicare sui volumi |
"" |
||
|
Valore del certificato client codificato con base64. Utilizzato per l'autenticazione basata su certificato |
"" |
||
|
Valore codificato in base64 della chiave privata del client. Utilizzato per l'autenticazione basata su certificato |
"" |
||
|
Valore codificato in base64 del certificato CA attendibile. Opzionale. Utilizzato per l'autenticazione basata su certificato |
"" |
||
|
Nome utente per la connessione al cluster/SVM. Utilizzato per l'autenticazione basata sulle credenziali |
|||
|
Password per la connessione al cluster/SVM. Utilizzato per l'autenticazione basata sulle credenziali |
|||
|
Prefisso utilizzato per il provisioning di nuovi volumi nella SVM. Non può essere aggiornato dopo l'impostazione
|
"trident" |
||
|
Aggregato per il provisioning (facoltativo; se impostato, deve essere assegnato alla SVM). Per il
|
"" |
||
|
Il provisioning non riesce se l'utilizzo è superiore a questa percentuale. Non si applica ad Amazon FSX per ONTAP |
"" (non applicato per impostazione predefinita) |
||
FlexgroupAggregateList |
Elenco di aggregati per il provisioning (facoltativo; se impostato, deve essere assegnato alla SVM). Tutti gli aggregati assegnati alla SVM vengono utilizzati per il provisioning di un volume FlexGroup. Supportato per il driver di archiviazione ONTAP-nas-FlexGroup.
|
"" |
||
|
Fallire il provisioning se la dimensione del volume richiesta è superiore a questo valore. Limita anche la dimensione massima dei volumi gestiti per i qtree e l' `qtreesPerFlexvol`opzione consente di personalizzare il numero massimo di qtree per FlexVol volume |
"" (non applicato per impostazione predefinita) |
||
|
Flag di debug da utilizzare per la risoluzione dei problemi. Ad esempio, {"api":false, "method":true} non utilizzare |
nullo |
||
|
Configurare la creazione di volumi NFS o SMB. Le opzioni sono |
|
||
|
Elenco separato da virgole delle opzioni di montaggio NFS. Le opzioni di montaggio per volumi persistenti di Kubernetes vengono normalmente specificate in classi di storage, ma se non sono specificate opzioni di montaggio in una classe di storage, Trident tornerà all'utilizzo delle opzioni di montaggio specificate nel file di configurazione del backend di storage. Se non sono specificate opzioni di montaggio nella classe di storage o nel file di configurazione, Trident non imposterà alcuna opzione di montaggio su un volume persistente associato. |
"" |
||
|
Qtree massimi per FlexVol, devono essere compresi nell'intervallo [50, 300] |
"200" |
||
|
È possibile specificare uno dei seguenti elementi: Il nome di una condivisione SMB creata utilizzando la console di gestione Microsoft o l'interfaccia CLI di ONTAP; un nome che consente a Trident di creare la condivisione SMB; oppure è possibile lasciare vuoto il parametro per impedire l'accesso condiviso ai volumi. Questo parametro è facoltativo per ONTAP on-premise. Questo parametro è obbligatorio per i backend Amazon FSX per ONTAP e non può essere vuoto. |
|
||
|
Parametro booleano per l'utilizzo delle API REST di ONTAP. |
|
||
|
Dimensioni FlexVol massime richiedibili quando si utilizzano Qtree nel backend ONTAP-nas-Economy. |
"" (non applicato per impostazione predefinita) |
||
|
Limita |
Opzioni di configurazione back-end per il provisioning dei volumi
È possibile controllare il provisioning predefinito utilizzando queste opzioni nella defaults
sezione della configurazione. Per un esempio, vedere gli esempi di configurazione riportati di seguito.
Parametro | Descrizione | Predefinito |
---|---|---|
|
Allocazione dello spazio per Qtree |
"vero" |
|
Modalità di prenotazione dello spazio; "nessuno" (sottile) o "volume" (spesso) |
"nessuno" |
|
Policy di Snapshot da utilizzare |
"nessuno" |
|
Gruppo di criteri QoS da assegnare per i volumi creati. Scegliere tra qosPolicy o adaptiveQosPolicy per pool di storage/backend |
"" |
|
Gruppo di criteri QoS adattivi da assegnare per i volumi creati. Scegliere tra qosPolicy o adaptiveQosPolicy per pool di storage/backend. Non supportato da ontap-nas-Economy. |
"" |
|
Percentuale di volume riservato agli snapshot |
"0" se |
|
Separare un clone dal suo padre al momento della creazione |
"falso" |
|
Abilitare la crittografia del volume NetApp (NVE) sul nuovo volume; il valore predefinito è |
"falso" |
|
Criterio di tiering da utilizzare "nessuno" |
|
|
Per i nuovi volumi |
"777" per i volumi NFS; vuoto (non applicabile) per i volumi SMB |
|
Controlla l'accesso alla |
"True" per NFSv4 "false" per NFSv3 |
|
Policy di esportazione da utilizzare |
"predefinito" |
|
Stile di sicurezza per nuovi volumi. Supporti NFS |
Il valore predefinito NFS è |
|
Modello per creare nomi di volume personalizzati. |
"" |
|
L'utilizzo di gruppi di criteri QoS con Trident richiede ONTAP 9.8 o versioni successive. È necessario utilizzare un gruppo di criteri QoS non condiviso e assicurarsi che il gruppo di criteri venga applicato singolarmente a ciascun componente. Un gruppo di policy QoS condiviso impone un limite massimo per il throughput totale di tutti i carichi di lavoro. |
Esempi di provisioning di volumi
Ecco un esempio con i valori predefiniti definiti:
---
version: 1
storageDriverName: ontap-nas
backendName: customBackendName
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
labels:
k8scluster: dev1
backend: dev1-nasbackend
svm: trident_svm
username: cluster-admin
password: <password>
limitAggregateUsage: 80%
limitVolumeSize: 50Gi
nfsMountOptions: nfsvers=4
debugTraceFlags:
api: false
method: true
defaults:
spaceReserve: volume
qosPolicy: premium
exportPolicy: myk8scluster
snapshotPolicy: default
snapshotReserve: "10"
Per ontap-nas
e ontap-nas-flexgroups
, Trident utilizza ora un nuovo calcolo per garantire che il FlexVol sia dimensionato correttamente con la percentuale di snapshotReserve e il PVC. Quando l'utente richiede un PVC, Trident crea il FlexVol originale con più spazio utilizzando il nuovo calcolo. Questo calcolo garantisce che l'utente riceva lo spazio scrivibile richiesto nel PVC e non uno spazio inferiore a quello richiesto. Prima della versione 21.07, quando l'utente richiede un PVC (ad esempio, 5GiB), con SnapshotReserve al 50%, ottiene solo 2,5 GiB di spazio scrivibile. Questo perché ciò per cui l'utente ha richiesto è l'intero volume ed snapshotReserve
è una percentuale di questo. Con Trident 21,07, ciò che l'utente richiede è lo spazio scrivibile e Trident definisce il snapshotReserve
numero come percentuale dell'intero volume. Questo non si applica a ontap-nas-economy
. Vedere l'esempio seguente per vedere come funziona:
Il calcolo è il seguente:
Total volume size = (PVC requested size) / (1 - (snapshotReserve percentage) / 100)
Per snapshotReserve = 50% e richiesta PVC = 5GiB, la dimensione totale del volume è 5/0,5 = 10GiB e la dimensione disponibile è 5GiB, che è ciò che l'utente ha richiesto nella richiesta PVC. Il volume show
comando dovrebbe mostrare risultati simili a questo esempio:

I backend esistenti delle installazioni precedenti forniscono i volumi come spiegato sopra durante l'aggiornamento di Trident. Per i volumi creati prima dell'aggiornamento, è necessario ridimensionare i volumi per osservare la modifica. Ad esempio, un PVC da 2GiB GB con snapshotReserve=50
precedenti ha generato un volume che fornisce 1GiB GB di spazio scrivibile. Il ridimensionamento del volume su 3GiB, ad esempio, fornisce all'applicazione 3GiB di spazio scrivibile su un volume da 6 GiB.
Esempi di configurazione minimi
Gli esempi seguenti mostrano le configurazioni di base che lasciano la maggior parte dei parametri predefiniti. Questo è il modo più semplice per definire un backend.
|
Se si utilizza Amazon FSX su NetApp ONTAP con Trident, si consiglia di specificare i nomi DNS per le LIF anziché gli indirizzi IP. |
Esempio di economia NAS ONTAP
---
version: 1
storageDriverName: ontap-nas-economy
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
username: vsadmin
password: password
Esempio di FlexGroup NAS ONTAP
---
version: 1
storageDriverName: ontap-nas-flexgroup
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
username: vsadmin
password: password
Esempio MetroCluster
È possibile configurare il backend per evitare di dover aggiornare manualmente la definizione del backend dopo lo switchover e lo switchback durante "Replica e recovery di SVM".
Per uno switchover e uno switchback perfetto, specifica la SVM utilizzando managementLIF
ed omette i dataLIF
parametri e. svm
Ad esempio:
---
version: 1
storageDriverName: ontap-nas
managementLIF: 192.168.1.66
username: vsadmin
password: password
Esempio di volumi SMB
---
version: 1
backendName: ExampleBackend
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
nasType: smb
securityStyle: ntfs
unixPermissions: ""
dataLIF: 10.0.0.2
svm: svm_nfs
username: vsadmin
password: password
Esempio di autenticazione basata su certificato
Questo è un esempio di configurazione back-end minima. clientCertificate
, , clientPrivateKey
E trustedCACertificate
(facoltativo, se si utilizza una CA attendibile) vengono compilati backend.json
e assumono i valori codificati base64 del certificato client, della chiave privata e del certificato CA attendibile, rispettivamente.
---
version: 1
backendName: DefaultNASBackend
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
dataLIF: 10.0.0.15
svm: nfs_svm
clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2
clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX
trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
storagePrefix: myPrefix_
Esempio di policy di esportazione automatica
In questo esempio viene illustrato come impostare Trident in modo che utilizzi i criteri di esportazione dinamici per creare e gestire automaticamente i criteri di esportazione. Funziona allo stesso modo per i ontap-nas-economy
driver e ontap-nas-flexgroup
.
---
version: 1
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
labels:
k8scluster: test-cluster-east-1a
backend: test1-nasbackend
autoExportPolicy: true
autoExportCIDRs:
- 10.0.0.0/24
username: admin
password: password
nfsMountOptions: nfsvers=4
Esempio di indirizzi IPv6
Questo esempio mostra managementLIF
l'utilizzo di un indirizzo IPv6.
---
version: 1
storageDriverName: ontap-nas
backendName: nas_ipv6_backend
managementLIF: "[5c5d:5edf:8f:7657:bef8:109b:1b41:d491]"
labels:
k8scluster: test-cluster-east-1a
backend: test1-ontap-ipv6
svm: nas_ipv6_svm
username: vsadmin
password: password
Esempio di Amazon FSX per ONTAP con volumi SMB
Il smbShare
parametro è necessario per FSX per ONTAP che utilizza volumi SMB.
---
version: 1
backendName: SMBBackend
storageDriverName: ontap-nas
managementLIF: example.mgmt.fqdn.aws.com
nasType: smb
dataLIF: 10.0.0.15
svm: nfs_svm
smbShare: smb-share
clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2
clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX
trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
storagePrefix: myPrefix_
Esempio di configurazione backend con nameTemplate
---
version: 1
storageDriverName: ontap-nas
backendName: ontap-nas-backend
managementLIF: <ip address>
svm: svm0
username: <admin>
password: <password>
defaults:
nameTemplate: "{{.volume.Name}}_{{.labels.cluster}}_{{.volume.Namespace}}_{{.vo\
lume.RequestName}}"
labels:
cluster: ClusterA
PVC: "{{.volume.Namespace}}_{{.volume.RequestName}}"
Esempi di backend con pool virtuali
Nei file di definizione di backend di esempio illustrati di seguito, vengono impostati valori predefiniti specifici per tutti i pool di storage, ad esempio spaceReserve
Nessuno, spaceAllocation
falso e falso encryption
. I pool virtuali sono definiti nella sezione storage.
Trident imposta le etichette di provisioning nel campo "commenti". I commenti sono impostati su FlexVol for ontap-nas
o FlexGroup for ontap-nas-flexgroup
. Trident copia tutte le etichette presenti su un pool virtuale nel volume di storage al momento del provisioning. Per comodità, gli amministratori dello storage possono definire le etichette per ogni pool virtuale e raggruppare i volumi per etichetta.
In questi esempi, alcuni pool di archiviazione impostano spaceReserve
valori , spaceAllocation
, e , encryption
mentre alcuni pool sovrascrivono i valori predefiniti.
Esempio DI NAS ONTAP
---
version: 1
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
svm: svm_nfs
username: admin
password: <password>
nfsMountOptions: nfsvers=4
defaults:
spaceReserve: none
encryption: "false"
qosPolicy: standard
labels:
store: nas_store
k8scluster: prod-cluster-1
region: us_east_1
storage:
- labels:
app: msoffice
cost: "100"
zone: us_east_1a
defaults:
spaceReserve: volume
encryption: "true"
unixPermissions: "0755"
adaptiveQosPolicy: adaptive-premium
- labels:
app: slack
cost: "75"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
department: legal
creditpoints: "5000"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
app: wordpress
cost: "50"
zone: us_east_1c
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0775"
- labels:
app: mysqldb
cost: "25"
zone: us_east_1d
defaults:
spaceReserve: volume
encryption: "false"
unixPermissions: "0775"
Esempio di NAS FlexGroup ONTAP
---
version: 1
storageDriverName: ontap-nas-flexgroup
managementLIF: 10.0.0.1
svm: svm_nfs
username: vsadmin
password: <password>
defaults:
spaceReserve: none
encryption: "false"
labels:
store: flexgroup_store
k8scluster: prod-cluster-1
region: us_east_1
storage:
- labels:
protection: gold
creditpoints: "50000"
zone: us_east_1a
defaults:
spaceReserve: volume
encryption: "true"
unixPermissions: "0755"
- labels:
protection: gold
creditpoints: "30000"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
protection: silver
creditpoints: "20000"
zone: us_east_1c
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0775"
- labels:
protection: bronze
creditpoints: "10000"
zone: us_east_1d
defaults:
spaceReserve: volume
encryption: "false"
unixPermissions: "0775"
Esempio di economia NAS ONTAP
---
version: 1
storageDriverName: ontap-nas-economy
managementLIF: 10.0.0.1
svm: svm_nfs
username: vsadmin
password: <password>
defaults:
spaceReserve: none
encryption: "false"
labels:
store: nas_economy_store
region: us_east_1
storage:
- labels:
department: finance
creditpoints: "6000"
zone: us_east_1a
defaults:
spaceReserve: volume
encryption: "true"
unixPermissions: "0755"
- labels:
protection: bronze
creditpoints: "5000"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
department: engineering
creditpoints: "3000"
zone: us_east_1c
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0775"
- labels:
department: humanresource
creditpoints: "2000"
zone: us_east_1d
defaults:
spaceReserve: volume
encryption: "false"
unixPermissions: "0775"
Mappare i backend in StorageClasses
Le seguenti definizioni di StorageClass si riferiscono a Esempi di backend con pool virtuali. A tale parameters.selector
scopo, ogni StorageClass definisce i pool virtuali che è possibile utilizzare per ospitare un volume. Gli aspetti del volume saranno definiti nel pool virtuale scelto.
-
protection-gold`StorageClass verrà mappato al primo e al secondo pool virtuale nel `ontap-nas-flexgroup
backend. Questi sono gli unici pool che offrono una protezione di livello gold.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4"
-
protection-not-gold`StorageClass viene mappato al terzo e al quarto pool virtuale del `ontap-nas-flexgroup
backend. Questi sono gli unici pool che offrono un livello di protezione diverso dall'oro.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: csi.trident.netapp.io parameters: selector: "protection!=gold" fsType: "ext4"
-
app-mysqldb`StorageClass viene mappato al quarto pool virtuale del `ontap-nas
backend. Questo è l'unico pool che offre la configurazione del pool di storage per l'applicazione di tipo mysqldb.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: csi.trident.netapp.io parameters: selector: "app=mysqldb" fsType: "ext4"
-
L'oggetto
protection-silver-creditpoints-20k
StorageClass viene mappato al terzo pool virtuale delontap-nas-flexgroup
backend. Questo è l'unico pool che offre una protezione di livello Silver e 20000 punti di credito.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-silver-creditpoints-20k provisioner: csi.trident.netapp.io parameters: selector: "protection=silver; creditpoints=20000" fsType: "ext4"
-
creditpoints-5k`StorageClass viene mappato al terzo pool virtuale nel `ontap-nas
backend e al secondo pool virtuale nelontap-nas-economy
backend. Queste sono le uniche offerte di pool con 5000 punti di credito.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4"
Trident deciderà quale pool virtuale viene selezionato e garantirà che i requisiti di storage vengano soddisfatti.
Aggiornamento dataLIF
dopo la configurazione iniziale
Puoi modificare la dataLIF dopo la configurazione iniziale eseguendo il seguente comando per fornire il nuovo file JSON di backend con i dati LIF aggiornati.
tridentctl update backend <backend-name> -f <path-to-backend-json-file-with-updated-dataLIF>
|
Se sono collegati a uno o più pod, è necessario abbassare tutti i pod corrispondenti e quindi riportarli in posizione per rendere effettiva la nuova data LIF. |