Opciones de configuración y ejemplos de ONTAP SAN
Aprende cómo crear y usar controladores ONTAP SAN con tu instalación de Trident. Esta sección ofrece ejemplos de configuración de backends y detalles para asignar backends a StorageClasses.
"Sistemas ASA r2" difieren de otros sistemas ONTAP (ASA, AFF y FAS) en la implementación de su capa de almacenamiento. Estas variaciones afectan el uso de ciertos parámetros como se indica. "Conoce más sobre las diferencias entre los sistemas ASA r2 y otros sistemas ONTAP".
|
|
Solo el controlador ontap-san (con protocolos iSCSI, NVMe/TCP y FC) es compatible con los sistemas ASA r2.
|
En la configuración del backend de Trident, no necesitas especificar que tu sistema es ASA r2. Cuando seleccionas ontap-san como storageDriverName, Trident detecta automáticamente el ASA r2 u otros sistemas ONTAP. Algunos parámetros de configuración del backend no aplican a los sistemas ASA r2, como se indica en la tabla de abajo.
Opciones de configuración del backend
Consulta la siguiente tabla para ver las opciones de configuración del backend:
| Parámetro | Descripción | Predeterminado | ||
|---|---|---|---|---|
|
Siempre 1 |
|||
|
Nombre del controlador de almacenamiento |
|
||
|
Nombre personalizado o el backend de almacenamiento |
Nombre del driver + "_" + dataLIF |
||
|
Dirección IP de un LIF de gestión de clúster o SVM. Se puede especificar un nombre de dominio completo (FQDN). Puede configurarse para usar direcciones IPv6 si Trident se instaló usando la bandera IPv6. Las direcciones IPv6 deben definirse entre corchetes, como Para una conmutación de sitios sin interrupciones de MetroCluster, consulta el Ejemplo de MetroCluster.
|
"10.0.0.1", "[2001:1234:abcd::fefe]" |
||
|
Dirección IP del LIF de protocolo. Puede configurarse para usar direcciones IPv6 si Trident se instaló usando el indicador IPv6. Las direcciones IPv6 deben definirse entre corchetes, como |
Derivado por la SVM |
||
|
Máquina virtual de almacenamiento a usar Omitir para MetroCluster. Consulta el Ejemplo de MetroCluster. |
Se deriva si se especifica un SVM |
||
|
Usa CHAP para autenticar iSCSI para los controladores ONTAP SAN [parámetro booleano]. Establécelo en |
|
||
|
Secreto del iniciador de CHAP. Obligatorio si |
"" |
||
|
Conjunto de etiquetas arbitrarias con formato JSON para aplicar en volúmenes |
"" |
||
|
Secreto del iniciador de destino CHAP. Obligatorio si |
"" |
||
|
Nombre de usuario de entrada. Obligatorio si |
"" |
||
|
Nombre de usuario de destino. Requerido si |
"" |
||
|
Valor codificado en Base64 del certificado del cliente. Usado para autenticación basada en certificados |
"" |
||
|
Valor codificado en Base64 de la clave privada del cliente. Usado para auth basada en certificados |
"" |
||
|
Valor codificado en Base64 del certificado de CA de confianza. Opcional. Se usa para la autenticación basada en certificados. |
"" |
||
|
Nombre de usuario necesario para comunicarte con el clúster ONTAP. Se usa para la autenticación basada en credenciales. Para la autenticación de Active Directory, consulta "Autentica Trident en un SVM backend usando credenciales de Active Directory". |
"" |
||
|
Contraseña necesaria para comunicarte con el clúster ONTAP. Se usa para la autenticación basada en credenciales. Para la autenticación de Active Directory, mira "Autentica Trident en un SVM backend usando credenciales de Active Directory". |
"" |
||
|
Máquina virtual de almacenamiento que vas a usar |
Se deriva si se especifica un SVM |
||
|
Prefijo utilizado al aprovisionar nuevos volúmenes en la SVM. No se puede modificar después. Para actualizar este parámetro, tendrás que crear un nuevo backend. |
|
||
|
Agregado para aprovisionamiento (opcional; si se configura, debe asignarse a la SVM). Para el
No especifiques para sistemas ASA r2. |
"" |
||
|
Falla el aprovisionamiento si el uso es superior a este porcentaje. Si estás usando un backend de Amazon FSx para NetApp ONTAP, no especifiques |
"" (no aplicado por defecto) |
||
|
Falla el aprovisionamiento si el tamaño del volumen solicitado es superior a este valor. También restringe el tamaño máximo de los volúmenes que gestiona para LUNs. |
"" (no aplicado por defecto) |
||
|
Máximo de LUNs por FlexVol, debe estar en el rango [50, 200] |
|
||
|
Indicadores de depuración para utilizar cuando estés solucionando problemas. Por ejemplo, {"api":false, "method":true} no lo uses a menos que estés solucionando problemas y necesites un volcado detallado del registro. |
|
||
|
Parámetro booleano para usar las API REST de ONTAP. `useREST`Cuando se configura en `true`, Trident usa las API REST de ONTAP para comunicarse con el backend; cuando se configura en `false`, Trident usa llamadas ONTAPI (ZAPI) para comunicarse con el backend. Esta función requiere ONTAP 9.11.1 y versiones posteriores. Además, el rol de inicio de sesión de ONTAP utilizado debe tener acceso a la aplicación `ontapi`. Esto se cumple con los roles predefinidos `vsadmin` y `cluster-admin`. A partir de la versión Trident 24.06 y ONTAP 9.15.1 o posteriores, `useREST` se configura en `true` de forma predeterminada; cambia `useREST` a `false` para usar llamadas ONTAPI (ZAPI).
Si se especifica, siempre configúralo en |
|
||
|
Usa para seleccionar |
|
||
|
Usa Compatible con |
|||
|
Tamaño máximo solicitable de FlexVol al utilizar LUNs en el backend de ontap-san-economy. |
"" (no aplicado por defecto) |
||
|
Restringe |
Recomendaciones para usar formatOptions
Trident recomienda las siguientes opciones para acelerar el proceso de formateo:
-
-E nodiscard (ext3, ext4): No intentes descartar bloques al momento de ejecutar mkfs (descartar bloques inicialmente es útil en dispositivos de estado sólido y almacenamiento disperso o Thin-Provisioning). Esto reemplaza la opción obsoleta "-K" y es aplicable a los sistemas de archivos ext3 y ext4.
-
-K (xfs): No intentes descartar bloques durante la ejecución de mkfs. Esta opción es aplicable al sistema de archivos xfs.
Autentica Trident en un SVM backend usando credenciales de Active Directory
Puedes configurar Trident para que se autentique en una SVM de backend usando credenciales de Active Directory (AD). Antes de que una cuenta de AD pueda acceder a la SVM, tienes que configurar el acceso del controlador de dominio de AD al clúster o a la SVM. Para la administración del clúster con una cuenta de AD, tienes que crear un domain tunnel. Consulta "Configura el acceso al controlador de dominio de Active Directory en ONTAP" para más detalles.
-
Configura los ajustes de Domain Name System (DNS) para un SVM de backend:
vserver services dns create -vserver <svm_name> -dns-servers <dns_server_ip1>,<dns_server_ip2> -
Ejecuta el siguiente comando para crear una cuenta de equipo para la SVM en Active Directory:
vserver active-directory create -vserver DataSVM -account-name ADSERVER1 -domain demo.netapp.com -
Usa este comando para crear un usuario o grupo de AD para administrar el clúster o SVM
security login create -vserver <svm_name> -user-or-group-name <ad_user_or_group> -application <application> -authentication-method domain -role vsadmin -
En el archivo de configuración del backend de Trident, establece los parámetros
usernameypassworden el nombre de usuario o grupo de AD y la contraseña, respectivamente.
Opciones de configuración de backend para aprovisionar volúmenes
Puedes controlar el aprovisionamiento predeterminado usando estas opciones en la defaults sección de la configuración. Por ejemplo, mira los ejemplos de configuración abajo.
| Parámetro | Descripción | Predeterminado |
|---|---|---|
|
Asignación de espacio para LUNs |
"verdadero" Si se especifica, configúralo en |
|
Modo de reserva de espacio; "ninguno" (thin) o "volumen" (thick). Configúralo en |
"none" |
|
Política de SnapVault que se va a usar. Establece en |
"none" |
|
Grupo de políticas de QoS para asignar a los volúmenes creados. Elige uno de qosPolicy o adaptiveQosPolicy por pool de almacenamiento/backend. Usar grupos de políticas de QoS con Trident requiere ONTAP 9.8 o una versión posterior. Deberías usar un grupo de políticas de QoS no compartido y asegurarte de que el grupo de políticas se aplique a cada componente individualmente. Un grupo de políticas de QoS compartido impone el límite para el rendimiento total de todas las cargas de trabajo. |
"" |
|
Grupo de políticas de QoS adaptativo para asignar a los volúmenes creados. Elige uno de qosPolicy o adaptiveQosPolicy por cada pool de almacenamiento/backend |
"" |
|
Porcentaje de volumen reservado para instantáneas. No especificar para sistemas ASA r2. |
"0" si |
|
Divide un clon de su padre al momento de su creación |
"false" |
|
Habilita NetApp Volume Encryption (NVE) en el nuevo volumen; el valor predeterminado es |
"falso" Si se especifica, configúralo en |
|
Habilita el cifrado LUKS. Consulta "Usa Linux Unified Key Setup (LUKS)". |
"" Establécelo en |
|
Política de niveles para usar "none" No especificar para sistemas ASA r2. |
|
|
Plantilla para crear nombres de volúmenes personalizados. |
"" |
Ejemplos de aprovisionamiento de volumen
Aquí tienes un ejemplo con valores predeterminados definidos:
---
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'
|
|
Para todos los volúmenes creados usando el ontap-san driver, Trident añade un 10 por ciento extra de capacidad al FlexVol para alojar los metadatos del LUN. El LUN se aprovisionará con el tamaño exacto que el usuario solicite en la PVC. Trident añade un 10 por ciento al FlexVol (se muestra como tamaño disponible en ONTAP). Ahora los usuarios obtendrán la cantidad de capacidad utilizable que solicitaron. Este cambio también evita que los LUN se vuelvan de solo lectura a menos que se utilice completamente el espacio disponible. Esto no aplica a ontap-san-economy.
|
Para los backends que definen snapshotReserve, Trident calcula el tamaño de los volúmenes de la siguiente manera:
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
El 1.1 es el 10 % adicional que Trident añade a la FlexVol para alojar los metadatos del LUN. Para snapshotReserve = 5 %, y una solicitud de PVC de 5 GiB, el tamaño total del volumen es 5.79 GiB y el tamaño disponible es 5.5 GiB. El volume show comando debería mostrar resultados similares a este ejemplo:
Actualmente, cambiar el tamaño es la única manera de usar el nuevo cálculo para un volumen existente.
Ejemplos de configuración mínima
Los siguientes ejemplos muestran configuraciones básicas que dejan la mayoría de los parámetros en sus valores predeterminados. Esta es la forma más fácil de definir un backend.
|
|
Si estás usando Amazon FSx en NetApp ONTAP con Trident, NetApp recomienda que especifiques nombres DNS para las LIFs en vez de direcciones IP. |
Ejemplo de ONTAP SAN
Esta es una configuración básica usando el 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>
Ejemplo de MetroCluster
Puedes configurar el backend para evitar tener que actualizar manualmente la definición del backend después de la conmutación de sitios y la conmutación de vuelta durante "Replicación y recuperación de SVM".
Para una conmutación de sitios y reversión sin problemas, especifica el SVM usando managementLIF y omite los parámetros svm. Por ejemplo:
version: 1
storageDriverName: ontap-san
managementLIF: 192.168.1.66
username: vsadmin
password: password
Ejemplo de ONTAP SAN economy
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
username: vsadmin
password: <password>
Ejemplo de autenticación basada en certificados
En este ejemplo de configuración básica clientCertificate, clientPrivateKey y trustedCACertificate (opcional, si usas una CA confiable) se completan en backend.json y toman los valores codificados en base64 del certificado del cliente, la clave privada y el certificado de CA confiable, respectivamente.
---
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
Ejemplos de CHAP bidireccional
Estos ejemplos crean un backend con useCHAP configurado en 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>
Ejemplo de NVMe/TCP
Debes tener una SVM configurada con NVMe en tu backend de ONTAP. Esta es una configuración básica de backend para 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
Ejemplo de SCSI sobre FC (FCP)
Debes tener una SVM configurada con FC en tu backend de ONTAP. Esta es una configuración básica de backend para 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
Ejemplo de configuración de 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}}_{{.vo\
lume.RequestName}}"
labels:
cluster: ClusterA
PVC: "{{.volume.Namespace}}_{{.volume.RequestName}}"
formatOptions ejemplo para el controlador 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
Ejemplos de backends con pools virtuales
En estos archivos de definición de backend de ejemplo, se establecen valores predeterminados específicos para todos los grupos de almacenamiento, como spaceReserve en ninguno, spaceAllocation en falso y encryption en falso. Los grupos virtuales se definen en la sección de almacenamiento.
Trident establece las etiquetas de aprovisionamiento en el campo "Comentarios". Los comentarios se establecen en el volumen FlexVol. Trident copia todas las etiquetas presentes en un pool virtual al volumen de almacenamiento durante el aprovisionamiento. Para mayor comodidad, los administradores de almacenamiento pueden definir etiquetas por pool virtual y agrupar volúmenes por etiqueta.
En estos ejemplos, algunos de los pools de almacenamiento establecen sus propios spaceReserve, spaceAllocation y encryption valores, y algunos pools anulan los valores predeterminados.
Ejemplo de ONTAP SAN
---
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"
Ejemplo de ONTAP SAN economy
---
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"
Ejemplo de 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"
Asigna backends a StorageClasses
Las siguientes definiciones de StorageClass se refieren a Ejemplos de backends con pools virtuales. Usando el campo parameters.selector, cada StorageClass indica qué grupos virtuales pueden usarse para alojar un volumen. El volumen tendrá los aspectos definidos en el grupo virtual elegido.
-
El
protection-goldStorageClass se asignará al primer pool virtual en elontap-sanbackend. Este es el único pool que ofrece protección de nivel oro.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4" -
El
protection-not-goldStorageClass se asignará al segundo y tercer pool virtual enontap-sanbackend. Estos son los únicos pools que ofrecen un nivel de protección distinto al oro.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: csi.trident.netapp.io parameters: selector: "protection!=gold" fsType: "ext4" -
El
app-mysqldbStorageClass se asignará al tercer pool virtual enontap-san-economybackend. Este es el único pool que ofrece configuración de pool de almacenamiento para la app tipo mysqldb.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: csi.trident.netapp.io parameters: selector: "app=mysqldb" fsType: "ext4" -
El
protection-silver-creditpoints-20kStorageClass se asignará al segundo pool virtual enontap-sanbackend. Este es el único pool que ofrece protección de nivel plata y 20000 puntos de crédito.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" -
El
creditpoints-5kStorageClass se asignará al tercer grupo virtual en elontap-sanbackend y al cuarto grupo virtual en elontap-san-economybackend. Estas son las únicas ofertas de grupos con 5000 puntos de crédito.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4" -
El
my-test-app-scStorageClass se asignará altestAPPgrupo virtual en elontap-sandriver consanType: nvme. Este es el único grupo que ofrecetestApp.--- 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 decidirá qué grupo virtual se selecciona y se asegurará de que se cumpla el requisito de almacenamiento.