Configurar Oracle Linux 7x con NVMe-oF para almacenamiento ONTAP
Los hosts Oracle Linux admiten los protocolos NVMe sobre canal de fibra (NVMe/FC) y NVMe sobre TCP (NVMe/TCP) con acceso asimétrico al espacio de nombres (ANA). ANA proporciona una funcionalidad de múltiples rutas equivalente al acceso a unidad lógica asimétrica (ALUA) en entornos iSCSI y FCP.
Aprenda a configurar hosts NVMe over Fabrics (NVMe-oF) para Oracle Linux 7x. Para obtener más información sobre asistencia y funciones, consulte "Compatibilidad y características de Oracle Linux ONTAP".
NVMe-oF con Oracle Linux 7x tiene las siguientes limitaciones conocidas:
-
No se admite el arranque SAN mediante el protocolo NVMe-oF.
-
La compatibilidad con la utilidad de host sanlun de NetApp no está disponible para NVMe-oF en un host Oracle Linux 7x. En su lugar, puede confiar en el complemento NetApp incluido en el paquete nativo.
nvme-clipaquete para todos los transportes NVMe-oF. -
Las secuencias de comandos de conexión automática NVMe/FC nativas no están disponibles en el paquete nvme-cli. Use las secuencias de comandos de conexión automática externas proporcionadas por el proveedor HBA.
-
El equilibrio de carga round-robin no está habilitado de forma predeterminada para las rutas múltiples NVMe. Para habilitar esta funcionalidad, escriba una regla udev.
Paso 1: Instale el software Oracle Linux y NVMe y verifique su configuración
Utilice el siguiente procedimiento para validar las versiones mínimas compatibles del software Oracle Linux 7x.
-
Instalar Oracle Linux 7x en el servidor. Una vez completada la instalación, verifique que esté ejecutando el kernel Oracle Linux 7x especificado.
uname -rEjemplo de versión del kernel de Oracle Linux:
5.4.17-2011.6.2.el7uek.x86_64
-
Instale el
nvme-clipaquete:rpm -qa | grep nvme-cliEl siguiente ejemplo muestra un
nvme-cliversión del paquete:nvme-cli-1.8.1-3.el7.x86_64
-
Agregue la siguiente cadena como una regla udev separada para
/lib/udev/rules.d/71-nvme-iopolicy-netapp-ONTAP.rules. Esto permite el equilibrio de carga por turnos para rutas múltiples NVMe.cat /lib/udev/rules.d/71-nvme-iopolicy-netapp-ONTAP.rules Enable round-robin for NetApp ONTAP ACTION=="add", SUBSYSTEMS=="nvme-subsystem", ATTRS{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="round-robin" -
En el host Oracle Linux 7x, verifique la
hostnqncuerda en/etc/nvme/hostnqn:cat /etc/nvme/hostnqnEl siguiente ejemplo muestra un
hostnqnversión:nqn.2014-08.org.nvmexpress:uuid:497ad959-e6d0-4987-8dc2-a89267400874
-
En el sistema ONTAP , verifique que
hostnqnLa cadena coincide con lahostnqncadena para el subsistema correspondiente en el sistema de almacenamiento ONTAP :*> vserver nvme subsystem host show -vserver vs_nvme_10Muestra el ejemplo
Vserver Subsystem Host NQN ------- --------- -------------------------------------- ----------- ol_157_nvme_ss_10_0 nqn.2014-08.org.nvmexpress:uuid:497ad959-e6d0-4987-8dc2-a89267400874
Si hostnqnlas cadenas no coinciden, usevserver modifyel comando para actualizar lahostnqncadena en el subsistema de cabina ONTAP correspondiente a fin de que coincida con lahostnqncadena del/etc/nvme/hostnqnhost. -
Reinicie el host.
Paso 2: Configurar NVMe/FC
Configuración de NVMe/FC para un adaptador Broadcom/Emulex.
-
Compruebe que está utilizando el modelo de adaptador compatible:
-
Mostrar los nombres de los modelos:
cat /sys/class/scsi_host/host*/modelnameDebe ver la siguiente salida:
LPe32002-M2 LPe32002-M2
-
Mostrar las descripciones del modelo:
cat /sys/class/scsi_host/host*/modeldescDebería ver un resultado similar al siguiente ejemplo:
Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
-
-
Compruebe que
lpfc_enable_fc4_typeestá configurado en «3»:cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type -
Instale los scripts de conexión automática lpfc recomendados:
rpm -ivh nvmefc-connect-12.8.264.0-1.noarch.rpm -
Verifique que los scripts de conexión automática estén instalados:
rpm -qa | grep nvmefcDebe ver la siguiente salida:
nvmefc-connect-12.8.264.0-1.noarch
-
Compruebe que los puertos de iniciador estén en línea:
-
Mostrar el nombre del puerto:
cat /sys/class/fc_host/host*/port_nameDebe ver la siguiente salida:
0x10000090fae0ec61 0x10000090fae0ec62
-
Mostrar el nombre del puerto:
cat /sys/class/fc_host/host*/port_stateDebe ver la siguiente salida:
Online Online
-
-
Compruebe que los puertos de iniciador NVMe/FC estén habilitados y que los puertos de destino estén visibles:
cat /sys/class/scsi_host/host*/nvme_infoMuestra el ejemplo
NVME Initiator Enabled XRI Dist lpfc0 Total 6144 NVME 2947 SCSI 2947 ELS 250 NVME LPORT lpfc0 WWPN x10000090fae0ec61 WWNN x20000090fae0ec61 DID x012000 ONLINE NVME RPORT WWPN x202d00a098c80f09 WWNN x202c00a098c80f09 DID x010201 TARGET DISCSRVC ONLINE NVME RPORT WWPN x203100a098c80f09 WWNN x202c00a098c80f09 DID x010601 TARGET DISCSRVC ONLINE
Paso 3: Opcionalmente, habilite 1 MB de E/S para NVMe/FC
ONTAP informa un tamaño máximo de transferencia de datos (MDTS) de 8 en los datos del controlador de identificación. Esto significa que el tamaño máximo de solicitud de E/S puede ser de hasta 1 MB. Para emitir solicitudes de E/S de tamaño 1 MB para un host Broadcom NVMe/FC, debe aumentar el lpfc valor de la lpfc_sg_seg_cnt parámetro a 256 desde el valor predeterminado de 64.
|
|
Estos pasos no se aplican a los hosts Qlogic NVMe/FC. |
-
Defina el
lpfc_sg_seg_cntparámetro en 256:cat /etc/modprobe.d/lpfc.confDebería ver un resultado similar al siguiente ejemplo:
options lpfc lpfc_sg_seg_cnt=256
-
Ejecute
dracut -fel comando y reinicie el host. -
Compruebe que el valor de
lpfc_sg_seg_cntes 256:cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
Paso 4: Verificar la configuración de rutas múltiples
Verifique que el estado de multivía de NVMe en kernel, el estado de ANA y los espacios de nombres de ONTAP sean correctos para la configuración de NVMe-oF.
-
Compruebe que la multivía NVMe en kernel esté habilitada:
cat /sys/module/nvme_core/parameters/multipathDebe ver la siguiente salida:
Y
-
Compruebe que la configuración NVMe-oF adecuada (como, por ejemplo, el modelo configurado en la controladora NetApp ONTAP y la política de balanceo de carga establecida en round-robin) en los respectivos espacios de nombres de ONTAP se reflejen correctamente en el host:
-
Mostrar los subsistemas:
cat /sys/class/nvme-subsystem/nvme-subsys*/modelDebe ver la siguiente salida:
NetApp ONTAP Controller NetApp ONTAP Controller
-
Mostrar la política:
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicyDebe ver la siguiente salida:
round-robin round-robin
-
-
Verifique que los espacios de nombres se hayan creado y detectado correctamente en el host:
nvme listMuestra el ejemplo
Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ----------------------- /dev/nvme0n1 80BADBKnB/JvAAAAAAAC NetApp ONTAP Controller 1 53.69 GB / 53.69 GB 4 KiB + 0 B FFFFFFFF
-
Compruebe que el estado de la controladora de cada ruta sea activo y que tenga el estado de ANA correcto:
nvme list-subsys /dev/nvme0n1Muestra el ejemplo
Nvme-subsysf0 – NQN=nqn.1992-08.com.netapp:sn.341541339b9511e8a9b500a098c80f09:subsystem.ol_157_nvme_ss_10_0 \ +- nvme0 fc traddr=nn-0x202c00a098c80f09:pn-0x202d00a098c80f09 host_traddr=nn-0x20000090fae0ec61:pn-0x10000090fae0ec61 live optimized +- nvme1 fc traddr=nn-0x207300a098dfdd91:pn-0x207600a098dfdd91 host_traddr=nn-0x200000109b1c1204:pn-0x100000109b1c1204 live inaccessible +- nvme2 fc traddr=nn-0x207300a098dfdd91:pn-0x207500a098dfdd91 host_traddr=nn-0x200000109b1c1205:pn-0x100000109b1c1205 live optimized +- nvme3 fc traddr=nn-0x207300a098dfdd91:pn-0x207700a098dfdd91 host traddr=nn-0x200000109b1c1205:pn-0x100000109b1c1205 live inaccessible
-
Confirmar que el complemento de NetApp muestra los valores correctos para cada dispositivo de espacio de nombres ONTAP:
Columnanvme netapp ontapdevices -o columnMuestra el ejemplo
Device Vserver Namespace Path NSID UUID Size ------- -------- ------------------------- ------ ----- ----- /dev/nvme0n1 vs_nvme_10 /vol/rhel_141_vol_10_0/ol_157_ns_10_0 1 55baf453-f629-4a18-9364-b6aee3f50dad 53.69GB
JSONnvme netapp ontapdevices -o jsonMuestra el ejemplo
{ "ONTAPdevices" : [ { Device" : "/dev/nvme0n1", "Vserver" : "vs_nvme_10", "Namespace_Path" : "/vol/rhel_141_vol_10_0/ol_157_ns_10_0", "NSID" : 1, "UUID" : "55baf453-f629-4a18-9364-b6aee3f50dad", "Size" : "53.69GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 13107200 } ]
Paso 5: Revisar los problemas conocidos
No hay problemas conocidos.