Opzioni ed esempi di configurazione del SAN ONTAP
Scopri come creare e utilizzare i driver SAN ONTAP con la tua installazione Astra 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 di una LIF di gestione SVM. È possibile specificare un nome di dominio completo (FQDN). Può essere impostato per utilizzare gli indirizzi IPv6 se Astra 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. Non specificare per iSCSI. Astra Trident utilizza "Mappa LUN selettiva ONTAP" per scoprire le LIF di isci necessarie per stabilire una sessione multi-path. Viene generato un avviso se |
Derivato dalla SVM |
|
Macchina virtuale di archiviazione da utilizzare omit for MetroCluster. Consultare la [mcc-best]. |
Derivata se viene specificata una SVM |
|
Utilizzare CHAP per autenticare iSCSI per i driver SAN ONTAP [booleano]. Impostare su |
|
|
Segreto iniziatore CHAP. Richiesto se |
"" |
|
Set di etichette arbitrarie formattate con JSON da applicare sui volumi |
"" |
|
CHAP target Initiator secret. Richiesto se |
"" |
|
Nome utente inbound. Richiesto se |
"" |
|
Nome utente di destinazione. Richiesto se |
"" |
|
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 necessario per comunicare con il cluster ONTAP. Utilizzato per l'autenticazione basata su credenziali. |
"" |
|
Password necessaria per comunicare con il cluster ONTAP. Utilizzato per l'autenticazione basata su credenziali. |
"" |
|
Macchina virtuale per lo storage da utilizzare |
Derivata se viene specificata una SVM |
|
Prefisso utilizzato per il provisioning di nuovi volumi nella SVM. Non può essere modificato in seguito. Per aggiornare questo parametro, è necessario creare un nuovo backend. |
|
|
Il provisioning non riesce se l'utilizzo è superiore a questa percentuale. Se si utilizza un backend Amazon FSX per NetApp ONTAP, non specificare |
"" (non applicato per impostazione predefinita) |
|
Fallire il provisioning se la dimensione del volume richiesta è superiore a questo valore. Limita inoltre le dimensioni massime dei volumi gestiti per qtree e LUN. |
"" (non applicato per impostazione predefinita) |
|
LUN massimi per FlexVol, devono essere compresi nell'intervallo [50, 200] |
|
|
Flag di debug da utilizzare per la risoluzione dei problemi. Ad esempio, {"api":false, "method":true} non utilizzare a meno che non si stia risolvendo il problema e si richieda un dump dettagliato del log. |
|
|
Parametro booleano per l'utilizzo delle API REST di ONTAP. |
|
|
Utilizzare questa opzione per selezionare |
|
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 LUN |
"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. L'utilizzo di gruppi di policy QoS con Astra Trident richiede ONTAP 9.8 o versione successiva. Si consiglia di utilizzare un gruppo di policy QoS non condiviso e di assicurarsi che il gruppo di policy venga applicato a ciascun componente singolarmente. Un gruppo di policy QoS condiviso applicherà il limite massimo per il throughput totale di tutti i carichi di lavoro. |
"" |
|
Gruppo di criteri QoS adattivi da assegnare per i volumi creati. Scegliere tra qosPolicy o adaptiveQosPolicy per pool di storage/backend |
"" |
|
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" |
|
Attivare la crittografia LUKS. Fare riferimento alla "Utilizzo di Linux Unified Key Setup (LUKS)". La crittografia LUKS non è supportata per NVMe/TCP. |
"" |
|
Stile di sicurezza per nuovi volumi |
|
|
Criterio di tiering da utilizzare "nessuno" |
"Solo Snapshot" per la configurazione SVM-DR pre-ONTAP 9,5 |
|
Modello per creare nomi di volume personalizzati. |
"" |
|
Dimensioni massime degli FlexVol richiedibili quando si utilizzano le LUN di un backend ONTAP-san-economy. |
"" (non applicato per impostazione predefinita) |
Esempi di provisioning di volumi
Ecco un esempio con i valori predefiniti definiti:
--- version: 1 storageDriverName: ontap-san managementLIF: 10.0.0.1 svm: trident_svm username: admin password: <password> labels: k8scluster: dev2 backend: dev2-sanbackend storagePrefix: alternate-trident debugTraceFlags: api: false method: true defaults: spaceReserve: volume qosPolicy: standard spaceAllocation: 'false' snapshotPolicy: default snapshotReserve: '10'
Per tutti i volumi creati utilizzando il ontap-san driver, Astra Trident aggiunge una capacità extra del 10% alla FlexVol per ospitare i metadati delle LUN. Il LUN viene fornito con le dimensioni esatte richieste dall'utente nel PVC. Astra Trident aggiunge il 10% al FlexVol (viene visualizzato come dimensione disponibile in ONTAP). A questo punto, gli utenti otterranno la quantità di capacità utilizzabile richiesta. Questa modifica impedisce inoltre che le LUN diventino di sola lettura, a meno che lo spazio disponibile non sia completamente utilizzato. Ciò non si applica a ontap-san-Economy.
|
Per i backend che definiscono snapshotReserve
, Astra Trident calcola la dimensione dei volumi come segue:
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
Il 1.1 è il 10% aggiuntivo che Astra Trident aggiunge a FlexVol per ospitare i metadati LUN. Per snapshotReserve
= 5% e richiesta PVC = 5GiB, la dimensione totale del volume è 5,79GiB e la dimensione disponibile è 5,5GiB. Il volume show
comando dovrebbe mostrare risultati simili a questo esempio:
Attualmente, il ridimensionamento è l'unico modo per utilizzare il nuovo calcolo per un volume esistente.
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 Astra Trident, si consiglia di specificare i nomi DNS per i file LIF anziché gli indirizzi IP. |
Esempio DI SAN ONTAP
Si tratta di una configurazione di base che utilizza il ontap-san
driver.
--- version: 1 storageDriverName: ontap-san managementLIF: 10.0.0.1 svm: svm_iscsi labels: k8scluster: test-cluster-1 backend: testcluster1-sanbackend username: vsadmin password: <password>
Esempio di economia SAN ONTAP
--- version: 1 storageDriverName: ontap-san-economy managementLIF: 10.0.0.1 svm: svm_iscsi_eco username: vsadmin password: <password>
-
esempio
È 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-san managementLIF: 192.168.1.66 username: vsadmin password: password
Esempio di autenticazione basata su certificato
In questo esempio di configurazione di base clientCertificate
, clientPrivateKey
, e trustedCACertificate
(opzionale, se si utilizza una CA attendibile) vengono compilati e assumono i valori codificati in backend.json
base64 del certificato client, della chiave privata e del certificato CA attendibile, rispettivamente.
--- version: 1 storageDriverName: ontap-san backendName: DefaultSANBackend managementLIF: 10.0.0.1 svm: svm_iscsi useCHAP: true chapInitiatorSecret: cl9qxIm36DKyawxy chapTargetInitiatorSecret: rqxigXgkesIpwxyz chapTargetUsername: iJF4heBRT0TCwxyz chapUsername: uh2aNCLSd6cNwxyz clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2 clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
Esempi CHAP bidirezionali
Questi esempi creano un backend con useCHAP
impostato su true
.
--- version: 1 storageDriverName: ontap-san managementLIF: 10.0.0.1 svm: svm_iscsi labels: k8scluster: test-cluster-1 backend: testcluster1-sanbackend useCHAP: true chapInitiatorSecret: cl9qxIm36DKyawxy chapTargetInitiatorSecret: rqxigXgkesIpwxyz chapTargetUsername: iJF4heBRT0TCwxyz chapUsername: uh2aNCLSd6cNwxyz username: vsadmin password: <password>
--- version: 1 storageDriverName: ontap-san-economy managementLIF: 10.0.0.1 svm: svm_iscsi_eco useCHAP: true chapInitiatorSecret: cl9qxIm36DKyawxy chapTargetInitiatorSecret: rqxigXgkesIpwxyz chapTargetUsername: iJF4heBRT0TCwxyz chapUsername: uh2aNCLSd6cNwxyz username: vsadmin password: <password>
Esempio NVMe/TCP
Devi disporre di una SVM configurata con NVMe sul back-end ONTAP. Si tratta di una configurazione backend di base per NVMe/TCP.
--- version: 1 backendName: NVMeBackend storageDriverName: ontap-san managementLIF: 10.0.0.1 svm: svm_nvme username: vsadmin password: password sanType: nvme useREST: true
Esempio di configurazione backend con nameTemplate
--- version: 1 storageDriverName: ontap-san backendName: ontap-san-backend managementLIF: <ip address> svm: svm0 username: <admin> password: <password> defaults: { "nameTemplate": "{{.volume.Name}}_{{.labels.cluster}}_{{.volume.Namespace}}_{{.volume.RequestName}}" }, "labels": {"cluster": "ClusterA", "PVC": "{{.volume.Namespace}}_{{.volume.RequestName}}"}
Esempi di backend con pool virtuali
In questi file di definizione di backend di esempio, vengono impostati valori predefiniti specifici per tutti i pool di storage, ad esempio spaceReserve
Nessuno, spaceAllocation
falso e encryption
falso. I pool virtuali sono definiti nella sezione storage.
Astra Trident imposta le etichette di provisioning nel campo "commenti". I commenti vengono impostati su FlexVol. Astra 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 SAN ONTAP
--- version: 1 storageDriverName: ontap-san managementLIF: 10.0.0.1 svm: svm_iscsi useCHAP: true chapInitiatorSecret: cl9qxIm36DKyawxy chapTargetInitiatorSecret: rqxigXgkesIpwxyz chapTargetUsername: iJF4heBRT0TCwxyz chapUsername: uh2aNCLSd6cNwxyz username: vsadmin password: <password> defaults: spaceAllocation: 'false' encryption: 'false' qosPolicy: standard labels: store: san_store kubernetes-cluster: prod-cluster-1 region: us_east_1 storage: - labels: protection: gold creditpoints: '40000' zone: us_east_1a defaults: spaceAllocation: 'true' encryption: 'true' adaptiveQosPolicy: adaptive-extreme - labels: protection: silver creditpoints: '20000' zone: us_east_1b defaults: spaceAllocation: 'false' encryption: 'true' qosPolicy: premium - labels: protection: bronze creditpoints: '5000' zone: us_east_1c defaults: spaceAllocation: 'true' encryption: 'false'
Esempio di economia SAN ONTAP
--- version: 1 storageDriverName: ontap-san-economy managementLIF: 10.0.0.1 svm: svm_iscsi_eco useCHAP: true chapInitiatorSecret: cl9qxIm36DKyawxy chapTargetInitiatorSecret: rqxigXgkesIpwxyz chapTargetUsername: iJF4heBRT0TCwxyz chapUsername: uh2aNCLSd6cNwxyz username: vsadmin password: <password> defaults: spaceAllocation: 'false' encryption: 'false' labels: store: san_economy_store region: us_east_1 storage: - labels: app: oracledb cost: '30' zone: us_east_1a defaults: spaceAllocation: 'true' encryption: 'true' - labels: app: postgresdb cost: '20' zone: us_east_1b defaults: spaceAllocation: 'false' encryption: 'true' - labels: app: mysqldb cost: '10' zone: us_east_1c defaults: spaceAllocation: 'true' encryption: 'false' - labels: department: legal creditpoints: '5000' zone: us_east_1c defaults: spaceAllocation: 'true' encryption: 'false'
Esempio NVMe/TCP
--- version: 1 storageDriverName: ontap-san sanType: nvme managementLIF: 10.0.0.1 svm: nvme_svm username: vsadmin password: <password> useREST: true defaults: spaceAllocation: 'false' encryption: 'true' storage: - labels: app: testApp cost: '20' defaults: spaceAllocation: 'false' encryption: 'false'
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 pool virtuale del `ontap-san
backend. Questo è l'unico pool che offre 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 verrà mappato al secondo e al terzo pool virtuale del `ontap-san
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 terzo pool virtuale del `ontap-san-economy
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"
-
protection-silver-creditpoints-20k`StorageClass verrà mappato al secondo pool virtuale nel `ontap-san
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 backend e al quarto pool virtuale `ontap-san-economy
nelontap-san
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"
-
my-test-app-sc`StorageClass esegue la mappatura al `testAPP
pool virtuale nelontap-san
driver consanType: nvme
. Questa e' l'unica offerta di piscinatestApp
.--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-test-app-sc provisioner: csi.trident.netapp.io parameters: selector: "app=testApp" fsType: "ext4"
Astra Trident deciderà quale pool virtuale è selezionato e garantirà il rispetto dei requisiti di storage.