Options et exemples de configuration des SAN ONTAP
Découvrez comment créer et utiliser les pilotes SAN ONTAP avec votre installation Trident. Cette section fournit des exemples de configuration back-end et des détails sur le mappage des systèmes back-end aux classes de stockage.
"Systèmes ASA r2"diffèrent des autres systèmes ONTAP (ASA, AFF et FAS) dans la mise en œuvre de leur couche de stockage. Ces variations ont une incidence sur l'utilisation de certains paramètres, comme indiqué. "En savoir plus sur les différences entre les systèmes ASA r2 et les autres systèmes ONTAP".
|
|
Seuls les ontap-san Le pilote (avec les protocoles iSCSI, NVMe/TCP et FC) est pris en charge pour les systèmes ASA r2.
|
Dans la configuration du backend Trident , il n'est pas nécessaire de préciser que votre système est un ASA r2. Lorsque vous sélectionnez ontap-san comme le storageDriverName Trident détecte automatiquement les systèmes ASA r2 ou autres systèmes ONTAP . Certains paramètres de configuration du backend ne sont pas applicables aux systèmes ASA r2, comme indiqué dans le tableau ci-dessous.
Options de configuration du back-end
Voir le tableau suivant pour les options de configuration du back-end :
| Paramètre | Description | Valeur par défaut | ||
|---|---|---|---|---|
|
Toujours 1 |
|||
|
Nom du pilote de stockage |
|
||
|
Nom personnalisé ou système back-end de stockage |
Nom du pilote + "_" + dataLIF |
||
|
Adresse IP d'un cluster ou d'une LIF de management du SVM. Un nom de domaine complet (FQDN) peut être spécifié. Peut être configuré pour utiliser des adresses IPv6 si Trident a été installé à l'aide de l'indicateur IPv6. Les adresses IPv6 doivent être définies entre crochets, par exemple Pour un basculement MetroCluster transparent, consultez le Exemple MetroCluster.
|
« 10.0.0.1 », « [2001:1234:abcd::fefe] » |
||
|
Adresse IP de la LIF de protocole. Peut être configuré pour utiliser des adresses IPv6 si Trident a été installé à l'aide de l'indicateur IPv6. Les adresses IPv6 doivent être définies entre crochets, par exemple |
Dérivé par la SVM |
||
|
Serveur virtuel de stockage à utiliser |
Dérivé d'un SVM |
||
|
Utilisez CHAP pour authentifier iSCSI pour les pilotes SAN ONTAP [Boolean]. Set to |
|
||
|
Secret de l'initiateur CHAP. Requis si |
« » |
||
|
Ensemble d'étiquettes arbitraires au format JSON à appliquer aux volumes |
« » |
||
|
Secret de l'initiateur cible CHAP. Requis si |
« » |
||
|
Nom d'utilisateur entrant. Requis si |
« » |
||
|
Nom d'utilisateur cible. Requis si |
« » |
||
|
Valeur encodée en Base64 du certificat client. Utilisé pour l'authentification par certificat |
« » |
||
|
Valeur encodée en Base64 de la clé privée du client. Utilisé pour l'authentification par certificat |
« » |
||
|
Valeur encodée en Base64 du certificat CA de confiance. Facultatif. Utilisé pour l'authentification basée sur des certificats. |
« » |
||
|
Nom d'utilisateur nécessaire pour communiquer avec le cluster ONTAP . Utilisé pour l'authentification basée sur les informations d'identification. Pour l'authentification Active Directory, voir "Authentifier Trident auprès d'une SVM principale à l'aide des informations d'identification Active Directory". |
« » |
||
|
Mot de passe nécessaire pour communiquer avec le cluster ONTAP . Utilisé pour l'authentification basée sur les informations d'identification. Pour l'authentification Active Directory, voir "Authentifier Trident auprès d'une SVM principale à l'aide des informations d'identification Active Directory". |
« » |
||
|
Serveur virtuel de stockage à utiliser |
Dérivé d'un SVM |
||
|
Préfixe utilisé pour le provisionnement des nouveaux volumes dans la SVM. Ne peut pas être modifié ultérieurement. Pour mettre à jour ce paramètre, vous devez créer un nouveau backend. |
|
||
|
Agrégat pour le provisionnement (facultatif ; si défini, doit être attribué au SVM) Pour le
Ne pas spécifier pour les systèmes ASA r2. |
« » |
||
|
Echec du provisionnement si l'utilisation est supérieure à ce pourcentage. Si vous utilisez un backend Amazon FSX for NetApp ONTAP, ne spécifiez pas |
« » (non appliqué par défaut) |
||
|
Echec du provisionnement si la taille du volume demandé est supérieure à cette valeur. Limite également la taille maximale des volumes qu'il gère pour les LUN. |
« » (non appliqué par défaut) |
||
|
Nombre maximal de LUN par FlexVol, doit être compris dans la plage [50, 200] |
|
||
|
Indicateurs de débogage à utiliser lors du dépannage. Exemple, {"api":false, "method":true} |
|
||
|
Paramètre booléen pour utiliser les API REST ONTAP . `useREST`Lorsqu'il est réglé sur `true` Trident utilise les API REST ONTAP pour communiquer avec le backend ; lorsqu'il est défini sur `false` Trident utilise les appels ONTAPI (ZAPI) pour communiquer avec le backend. Cette fonctionnalité nécessite ONTAP 9.11.1 et versions ultérieures. De plus, le rôle de connexion ONTAP utilisé doit avoir accès au `ontapi` application. Ceci est satisfait par le prédéfini `vsadmin` et `cluster-admin` rôles. À partir de la version Trident 24.06 et ONTAP 9.15.1 ou version ultérieure, `useREST` est réglé sur `true` par défaut; changer `useREST` à `false` pour utiliser les appels ONTAPI (ZAPI). `useREST`est entièrement qualifié pour NVMe/TCP.
Si spécifié, toujours défini sur |
|
||
|
Utilisez pour sélectionner |
|
||
|
Utilisez Pris en charge pour |
|||
|
Taille maximale des FlexVol pouvant être demandées lors de l'utilisation de LUN dans le back-end ONTAP-san Economy. |
« » (non appliqué par défaut) |
||
|
Limite les |
Recommandations pour l'utilisation des options de format
Trident recommande les options suivantes pour accélérer le processus de mise en forme :
-
-E nodiscard (ext3, ext4): Ne pas tenter de supprimer des blocs au moment de mkfs (la suppression initiale des blocs est utile sur les périphériques à semi-conducteurs et le stockage clairsemé / à provisionnement fin). Cette option remplace l'option obsolète « -K » et s'applique aux systèmes de fichiers ext3 et ext4.
-
-K (xfs): Ne tentez pas de supprimer des blocs au moment de mkfs. Cette option est applicable au système de fichiers xfs.
Authentifier Trident auprès d'une SVM principale à l'aide des informations d'identification Active Directory
Vous pouvez configurer Trident pour s'authentifier auprès d'une SVM principale à l'aide des informations d'identification Active Directory (AD). Avant qu’un compte AD puisse accéder au SVM, vous devez configurer l’accès du contrôleur de domaine AD au cluster ou au SVM. Pour l’administration du cluster avec un compte AD, vous devez créer un tunnel de domaine. Se référer à "Configurer l'accès au contrôleur de domaine Active Directory dans ONTAP" pour plus de détails.
-
Configurer les paramètres du système de noms de domaine (DNS) pour un SVM backend :
vserver services dns create -vserver <svm_name> -dns-servers <dns_server_ip1>,<dns_server_ip2> -
Exécutez la commande suivante pour créer un compte d’ordinateur pour le SVM dans Active Directory :
vserver active-directory create -vserver DataSVM -account-name ADSERVER1 -domain demo.netapp.com -
Utilisez cette commande pour créer un utilisateur ou un groupe AD pour gérer le cluster ou le SVM
security login create -vserver <svm_name> -user-or-group-name <ad_user_or_group> -application <application> -authentication-method domain -role vsadmin -
Dans le fichier de configuration du backend Trident , définissez le
usernameetpasswordparamètres au nom d'utilisateur ou de groupe AD et au mot de passe, respectivement.
Options de configuration back-end pour les volumes de provisionnement
Vous pouvez contrôler le provisionnement par défaut à l'aide de ces options dans defaults section de la configuration. Pour un exemple, voir les exemples de configuration ci-dessous.
| Paramètre | Description | Valeur par défaut |
|---|---|---|
|
Allocation d'espace pour les LUN |
"true" Si spécifié, défini sur |
|
Mode de réservation d'espace ; « aucun » (fin) ou « volume » (épais). Réglé sur |
« aucun » |
|
Règle Snapshot à utiliser. Réglé sur |
« aucun » |
|
QoS policy group à affecter pour les volumes créés. Choisissez une de qosPolicy ou adaptiveQosPolicy par pool de stockage/back-end. L'utilisation de groupes de règles de qualité de service avec Trident nécessite ONTAP 9.8 ou une version ultérieure. Vous devez utiliser un groupe de règles QoS non partagé et vous assurer que le groupe de règles est appliqué à chaque composant individuellement. Un groupe de règles de QoS partagées applique le débit total de toutes les charges de travail. |
« » |
|
Groupe de règles de QoS adaptative à attribuer aux volumes créés. Choisissez une de qosPolicy ou adaptiveQosPolicy par pool de stockage/back-end |
« » |
|
Pourcentage du volume réservé pour les snapshots. Ne pas spécifier pour les systèmes ASA r2. |
« 0 » si |
|
Séparer un clone de son parent lors de sa création |
« faux » |
|
Activez le chiffrement de volume NetApp (NVE) sur le nouveau volume. La valeur par défaut est |
"false" Si spécifié, définir sur |
|
Activez le cryptage LUKS. Reportez-vous à la "Utiliser la configuration de clé unifiée Linux (LUKS)". |
"" Définir sur |
|
Politique de hiérarchisation à utiliser « aucun » Ne pas spécifier pour les systèmes ASA r2. |
|
|
Modèle pour créer des noms de volume personnalisés. |
« » |
Exemples de provisionnement de volumes
Voici un exemple avec des valeurs par défaut définies :
---
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'
|
|
Pour tous les volumes créés à l'aide du ontap-san pilote, Trident ajoute 10 % de capacité supplémentaire au FlexVol pour prendre en charge les métadonnées des LUN. La LUN sera provisionnée avec la taille exacte que l'utilisateur demande dans la demande de volume persistant. Trident ajoute 10 % au FlexVol (s'affiche en tant que taille disponible dans ONTAP). Les utilisateurs obtiennent à présent la capacité utilisable requise. Cette modification empêche également que les LUN ne soient en lecture seule, à moins que l'espace disponible soit pleinement utilisé. Cela ne s'applique pas à l'économie d'ontap-san.
|
Pour les systèmes back-end définis par snapshotReserve, Trident calcule la taille des volumes comme suit :
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
Le 1.1 correspond aux 10 % supplémentaires ajoutés par Trident au FlexVol pour prendre en charge les métadonnées LUN . snapshotReserve = 5 %, et la demande PVC = 5 Gio, la taille totale du volume est de 5,79 Gio et la taille disponible est de 5,5 Gio . volume show la commande devrait afficher des résultats similaires à cet exemple :
Actuellement, le redimensionnement est le seul moyen d'utiliser le nouveau calcul pour un volume existant.
Exemples de configuration minimaux
Les exemples suivants montrent des configurations de base qui laissent la plupart des paramètres par défaut. C'est la façon la plus simple de définir un back-end.
|
|
Si vous utilisez Amazon FSX on NetApp ONTAP avec Trident, NetApp vous recommande de spécifier des noms DNS pour les LIF au lieu d'adresses IP. |
Exemple de SAN ONTAP
Il s'agit d'une configuration de base utilisant le ontap-san conducteur.
---
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>
Exemple MetroCluster
Vous pouvez configurer le back-end pour éviter d'avoir à mettre à jour manuellement la définition du back-end après le basculement et le rétablissement pendant "Réplication et restauration des SVM".
Pour un basculement et un retour en arrière transparents, préciser le SVM en utilisant managementLIF et omettre les svm paramètres. Par exemple :
version: 1
storageDriverName: ontap-san
managementLIF: 192.168.1.66
username: vsadmin
password: password
Exemple d'économie SAN ONTAP
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
username: vsadmin
password: <password>
Exemple d'authentification basée sur un certificat
Dans cet exemple de configuration de base clientCertificate, clientPrivateKey, et trustedCACertificate (Facultatif, si vous utilisez une autorité de certification approuvée) est renseigné backend.json Et prendre les valeurs codées en base64 du certificat client, de la clé privée et du certificat CA de confiance, respectivement.
---
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
Exemples CHAP bidirectionnels
Ces exemples créent un backend avec useCHAP réglez sur 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>
Exemple NVMe/TCP
Un SVM doit être configuré avec NVMe sur votre back-end ONTAP. Il s'agit d'une configuration back-end de base pour 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
Exemple de SCSI sur FC (FCP)
Vous devez avoir un SVM configuré avec FC sur votre back-end ONTAP. Il s'agit d'une configuration back-end de base pour FC.
---
version: 1
backendName: fcp-backend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_fc
username: vsadmin
password: password
sanType: fcp
useREST: true
Exemple de configuration back-end avec nomTemplate
---
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}}_{{.vo\
lume.RequestName}}"
labels:
cluster: ClusterA
PVC: "{{.volume.Namespace}}_{{.volume.RequestName}}"
Exemple de formatoptions pour le pilote ONTAP-san-Economy
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: ""
svm: svm1
username: ""
password: "!"
storagePrefix: whelk_
debugTraceFlags:
method: true
api: true
defaults:
formatOptions: -E nodiscard
Exemples de systèmes back-end avec pools virtuels
Dans ces exemples de fichiers de définition back-end, des valeurs par défaut spécifiques sont définies pour tous les pools de stockage, tels que spaceReserve aucune, spaceAllocation lors de la fausse idée, et encryption faux. Les pools virtuels sont définis dans la section stockage.
Trident définit les étiquettes de provisionnement dans le champ « Commentaires ». Les commentaires sont définis sur les copies FlexVol volume Trident. Toutes les étiquettes présentes sur un pool virtuel sont apposées sur le volume de stockage au moment du provisionnement. Pour plus de commodité, les administrateurs du stockage peuvent définir des étiquettes par pool virtuel et les volumes de groupe par étiquette.
Dans ces exemples, certains pools de stockage sont définis comme étant leurs propres spaceReserve, spaceAllocation, et encryption et certains pools remplacent les valeurs par défaut.
Exemple de 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"
Exemple d'économie 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"
Exemple 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"
Mappage des systèmes back-end aux classes de stockage
Les définitions de classe de stockage suivantes font référence au Exemples de systèmes back-end avec pools virtuels. À l'aide du parameters.selector Chaque classe de stockage indique quels pools virtuels peuvent être utilisés pour héberger un volume. Les aspects définis dans le pool virtuel sélectionné seront définis pour le volume.
-
Le
protection-goldStorageClass est mappé sur le premier pool virtuel duontap-sanback-end. Il s'agit du seul pool offrant une protection de niveau Gold.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4" -
Le
protection-not-goldStorageClass sera mappé au deuxième et au troisième pool virtuel dansontap-sanback-end. Ce sont les seuls pools offrant un niveau de protection autre que Gold.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: csi.trident.netapp.io parameters: selector: "protection!=gold" fsType: "ext4" -
Le
app-mysqldbStorageClass sera mappé sur le troisième pool virtuel dansontap-san-economyback-end. Il s'agit du seul pool offrant la configuration du pool de stockage pour l'application de type mysqldb.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: csi.trident.netapp.io parameters: selector: "app=mysqldb" fsType: "ext4" -
Le
protection-silver-creditpoints-20kStorageClass sera mappé sur le second pool virtuel dansontap-sanback-end. Il s'agit de la seule piscine offrant une protection de niveau argent et 20000 points de crédit.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" -
Le
creditpoints-5kStorageClass sera mappé sur le troisième pool virtuel dansontap-sanback-end et le quatrième pool virtuel dansontap-san-economyback-end. Il s'agit des seules offres de pool avec 5000 points de crédit.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4" -
Le
my-test-app-scLa classe de stockage est mappée surtestAPPpool virtuel dansontap-sanpilote avecsanType: nvme. Il s'agit de la seule offre de piscinetestApp.--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-test-app-sc provisioner: csi.trident.netapp.io parameters: selector: "app=testApp" fsType: "ext4"
Trident décide du pool virtuel sélectionné et s'assure que les besoins en stockage sont satisfaits.