Configuration hôte NVMe-of pour RHEL 9.1 avec ONTAP
Les protocoles NVMe over Fabrics ou NVMe-of (y compris NVMe/FC et NVMe/TCP) sont pris en charge avec RHEL 9.1 avec un accès à l'espace de noms asymétrique (ANA) requis pour les autres basculements de stockage (SFO) sur la baie ONTAP. ANA est l'équivalent ALUA (Asymmetric Logical Unit Access) dans l'environnement NVMe-of, et actuellement implémenté avec NVMe Multipath dans le noyau. À l'aide de cette procédure, vous pouvez activer NVMe-of avec le multichemin NVMe intégré au noyau en utilisant ANA sur RHEL 9.1 et ONTAP comme cible.
La prise en charge suivante est disponible pour la configuration hôte NVMe-of pour RHEL 9.1 avec ONTAP :
-
Prise en charge de NVMe over TCP (NVMe/TCP) en plus de NVMe/FC. Le plug-in NetApp du package nvme-cli natif affiche les détails des ONTAP pour les namespaces NVMe/FC et NVMe/TCP.
-
Utilisation du trafic existant NVMe et SCSI sur le même hôte sur un adaptateur de bus hôte (HBA) donné, sans les paramètres dm-multipathing explicites pour empêcher la demande d'espaces de noms NVMe.
Reportez-vous à la "Matrice d'interopérabilité NetApp" pour des informations précises sur les configurations prises en charge.
Caractéristiques
RHEL 9.1 inclut la prise en charge des chemins d'accès multiples NVMe dans le noyau pour les espaces de noms NVMe activés par défaut, sans la nécessité de paramètres explicites.
Limites connues
Le démarrage SAN à l'aide du protocole NVMe-of n'est pas pris en charge pour le moment.
Activez le chemins d'accès multiples NVMe dans le noyau
Vous pouvez utiliser la procédure suivante pour activer les chemins d'accès multiples NVMe in-kernel.
-
Installez RHEL 9.1 sur le serveur.
-
Une fois l'installation terminée, vérifiez que vous exécutez le noyau RHEL 9.1 spécifié. Voir la "Matrice d'interopérabilité NetApp" pour obtenir la liste la plus récente des versions prises en charge.
Exemple :
# uname -r 5.14.0-162.6.1.el9_1.x86_64
-
Installer le
nvme-cli
groupe :Exemple :
# rpm -qa|grep nvme-cli nvme-cli-2.0-4.el9.x86_64
-
Sur l'hôte, vérifiez la chaîne NQN hôte à
/etc/nvme/hostnqn
Et vérifiez qu'il correspond à la chaîne NQN hôte pour le sous-système correspondant de la matrice ONTAP. Exemple :# cat /etc/nvme/hostnqn nqn.2014-08.org.nvmexpress:uuid:325e7554-1f9b-11ec-8489-3a68dd61a4df ::> vserver nvme subsystem host show -vserver vs_nvme207 Vserver Subsystem Host NQN ----------- --------------- ---------------------------------------------------------- vs_nvme207 rhel_207_LPe32002 nqn.2014-08.org.nvmexpress:uuid:325e7554-1f9b-11ec-8489-3a68dd61a4df
Si les chaînes NQN hôte ne correspondent pas, vous devez utiliser le vserver modify
Commande pour mettre à jour la chaîne NQN hôte sur le sous-système NVMe ONTAP correspondant afin qu'elle corresponde à la chaîne NQN hôte/etc/nvme/hostnqn
sur l'hôte. -
Redémarrez l'hôte.
Configurez NVMe/FC
Vous pouvez configurer NVMe/FC pour les cartes Broadcom/Emulex ou Marvell/Qlogic.
-
Vérifiez que vous utilisez la carte prise en charge. Voir la "Matrice d'interopérabilité NetApp" pour consulter la liste la plus récente des cartes prises en charge.
# cat /sys/class/scsi_host/host*/modelname LPe32002-M2 LPe32002-M2 # cat /sys/class/scsi_host/host*/modeldesc Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter Emulex LightPulse LPe32002-M2 2-Port 32Gb Fibre Channel Adapter
-
Vérifiez que vous utilisez le micrologiciel et le pilote recommandés pour la boîte de réception Broadcom lpfc. Voir la "Matrice d'interopérabilité NetApp" pour obtenir la liste la plus récente des versions de pilote de carte et de micrologiciel prises en charge.
# cat /sys/class/scsi_host/host*/fwrev 14.0.505.11, sli-4:2:c 14.0.505.11, sli-4:2:c
# cat /sys/module/lpfc/version 0:14.2.0.5
-
Vérifiez-le
lpfc_enable_fc4_type
est défini sur 3# cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type 3
-
Vérifiez que les ports initiateurs sont opérationnels et que vous pouvez voir les LIFs cibles.
# cat /sys/class/fc_host/host*/port_name 0x100000109b1b95ef 0x100000109b1b95f0
# cat /sys/class/fc_host/host*/port_state Online Online
# cat /sys/class/scsi_host/host*/nvme_info NVME Initiator Enabled XRI Dist lpfc0 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc0 WWPN x100000109b1b95ef WWNN x200000109b1b95ef DID x061700 ONLINE NVME RPORT WWPN x2035d039ea1308e5 WWNN x2082d039ea1308e5 DID x062f05 TARGET DISCSRVC ONLINE NVME RPORT WWPN x2083d039ea1308e5 WWNN x2082d039ea1308e5 DID x062407 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 000000000e Cmpl 000000000e Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 000000000001df6c Issue 000000000001df6e OutIO 0000000000000002 abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000000 Err 00000004 NVME Initiator Enabled XRI Dist lpfc1 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc1 WWPN x100000109b1b95f0 WWNN x200000109b1b95f0 DID x061400 ONLINE NVME RPORT WWPN x2036d039ea1308e5 WWNN x2082d039ea1308e5 DID x061605 TARGET DISCSRVC ONLINE NVME RPORT WWPN x2037d039ea1308e5 WWNN x2082d039ea1308e5 DID x062007 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 000000000e Cmpl 000000000e Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 000000000001dd28 Issue 000000000001dd29 OutIO 0000000000000001 abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000000 Err 00000004
Le pilote intégré natif qla2xxx
inclus dans le noyau RHEL 9.1 dispose des derniers correctifs. Ces correctifs sont essentiels à la prise en charge de ONTAP.
-
Vérifiez que vous exécutez les versions du pilote de carte et du micrologiciel prises en charge à l'aide de la commande suivante :
# cat /sys/class/fc_host/host*/symbolic_name QLE2772 FW:v9.08.02 DVR:v10.02.07.400-k-debug QLE2772 FW:v9.08.02 DVR:v10.02.07.400-k-debug
-
La vérification
ql2xnvmeenable
Est défini pour que l'adaptateur Marvell puisse fonctionner comme un initiateur NVMe/FC à l'aide de la commande suivante :# cat /sys/module/qla2xxx/parameters/ql2xnvmeenable 1
Activer les E/S de 1 Mo (en option)
ONTAP signale une taille de transfert MAX Data (MDT) de 8 dans les données Identify Controller. La taille maximale des demandes d'E/S peut donc atteindre 1 Mo. Pour émettre des demandes d'E/S d'une taille de 1 Mo pour un hôte Broadcom NVMe/FC, augmentez la lpfc
valeur du lpfc_sg_seg_cnt
paramètre à 256 par rapport à la valeur par défaut 64.
Ces étapes ne s'appliquent pas aux hôtes NVMe/FC Qlogic. |
-
Réglez le
lpfc_sg_seg_cnt
paramètre sur 256 :cat /etc/modprobe.d/lpfc.conf
options lpfc lpfc_sg_seg_cnt=256
-
Exécutez
dracut -f
la commande et redémarrez l'hôte. -
Vérifier que la valeur attendue de
lpfc_sg_seg_cnt
est 256 :cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
Configurez NVMe/TCP
NVMe/TCP ne dispose pas de la fonctionnalité de connexion automatique. Par conséquent, si un chemin tombe en panne et n'est pas rétabli dans le délai par défaut de 10 minutes, NVMe/TCP ne peut pas se reconnecter automatiquement. Pour éviter une temporisation, vous devez définir la période de nouvelle tentative pour les événements de basculement sur incident à au moins 30 minutes.
-
Vérifiez si le port initiateur peut récupérer les données de la page du journal de découverte sur les LIF NVMe/TCP prises en charge :
# nvme discover -t tcp -w 192.168.1.8 -a 192.168.1.51 Discovery Log Number of Records 10, Generation counter 119 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 0 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.56e362e9bb4f11ebbaded039ea165abc:subsystem.nvme_118_tcp_1 traddr: 192.168.2.56 sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 1 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.56e362e9bb4f11ebbaded039ea165abc:subsystem.nvme_118_tcp_1 traddr: 192.168.1.51 sectype: none =====Discovery Log Entry 2====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 0 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.56e362e9bb4f11ebbaded039ea165abc:subsystem.nvme_118_tcp_2 traddr: 192.168.2.56 sectype: none ...
-
Vérifiez que les autres combos LIF cible-initiateur NVMe/TCP peuvent extraire les données de la page du journal de découverte. Par exemple :
# nvme discover -t tcp -w 192.168.1.8 -a 192.168.1.51 # nvme discover -t tcp -w 192.168.1.8 -a 192.168.1.52 # nvme discover -t tcp -w 192.168.2.9 -a 192.168.2.56 # nvme discover -t tcp -w 192.168.2.9 -a 192.168.2.57
-
Courez
nvme connect-all
Contrôlez l'ensemble des LIF cible initiateur-initiateur NVMe/TCP prises en charge sur l'ensemble des nœuds. Assurez-vous de régler une plus longue duréectrl_loss_tmo
période de relance de la minuterie (par exemple, 30 minutes, qui peuvent être réglées à-l 1800
) pendant l'exécution duconnect-all
commande afin qu'elle puisse réessayer pendant une période plus longue en cas de perte d'un chemin. Par exemple :# nvme connect-all -t tcp -w 192.168.1.8 -a 192.168.1.51 -l 1800 # nvme connect-all -t tcp -w 192.168.1.8 -a 192.168.1.52 -l 1800 # nvme connect-all -t tcp -w 192.168.2.9 -a 192.168.2.56 -l 1800 # nvme connect-all -t tcp -w 192.168.2.9 -a 192.168.2.57 -l 1800
Validez la spécification NVMe-of
La procédure suivante permet de valider NVMe-of.
-
Vérifier que le chemin d'accès multiples NVMe dans le noyau est activé en cochant la case :
# cat /sys/module/nvme_core/parameters/multipath Y
-
Vérifiez que les paramètres NVMe-of appropriés (par exemple,
model
réglez surNetApp ONTAP Controller
et équilibrage de la chargeiopolicy
réglez surround-robin
) Pour les espaces de noms ONTAP respectifs reflètent correctement sur l'hôte :# cat /sys/class/nvme-subsystem/nvme-subsys*/model NetApp ONTAP Controller NetApp ONTAP Controller
# cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy round-robin round-robin
-
Vérifier que les espaces de noms ONTAP reflètent correctement sur l'hôte. Par exemple :
# nvme list Node SN Model Namespace ------------ --------------------- --------------------------------- /dev/nvme0n1 81CZ5BQuUNfGAAAAAAAB NetApp ONTAP Controller 1 Usage Format FW Rev ------------------- ----------- -------- 85.90 GB / 85.90 GB 4 KiB + 0 B FFFFFFFF
-
Vérifiez que l'état du contrôleur de chaque chemin est actif et que le statut ANA est correct. Par exemple :
Exemple (a) :
# nvme list-subsys /dev/nvme0n1 nvme-subsys10 - NQN=nqn.1992-08.com.netapp:sn.82e7f9edc72311ec8187d039ea14107d:subsystem.rhel_131_QLe2742 \ +- nvme2 fc traddr=nn-0x2038d039ea1308e5:pn-0x2039d039ea1308e5,host_traddr=nn-0x20000024ff171d30:pn-0x21000024ff171d30 live non-optimized +- nvme3 fc traddr=nn-0x2038d039ea1308e5:pn-0x203cd039ea1308e5,host_traddr=nn-0x20000024ff171d31:pn-0x21000024ff171d31 live optimized +- nvme4 fc traddr=nn-0x2038d039ea1308e5:pn-0x203bd039ea1308e5,host_traddr=nn-0x20000024ff171d30:pn-0x21000024ff171d30 live optimized +- nvme5 fc traddr=nn-0x2038d039ea1308e5:pn-0x203ad039ea1308e5,host_traddr=nn-0x20000024ff171d31:pn-0x21000024ff171d31 live non-optimized
Exemple (b) :
# nvme list-subsys /dev/nvme0n1 nvme-subsys1 - NQN=nqn.1992-08.com.netapp:sn.bf0691a7c74411ec8187d039ea14107d:subsystem.rhel_tcp_133 \ +- nvme1 tcp traddr=192.168.166.21,trsvcid=4420,host_traddr=192.168.166.5 live non-optimized +- nvme2 tcp traddr=192.168.166.20,trsvcid=4420,host_traddr=192.168.166.5 live optimized +- nvme3 tcp traddr=192.168.167.21,trsvcid=4420,host_traddr=192.168.167.5 live non-optimized +- nvme4 tcp traddr=192.168.167.20,trsvcid=4420,host_traddr=192.168.167.5 live optimized
-
Vérifiez que le plug-in NetApp affiche les valeurs appropriées pour chaque système d'espace de noms ONTAP.
Exemple (a) :
# nvme netapp ontapdevices -o column Device Vserver Namespace Path --------- ------- -------------------------------------------------- /dev/nvme0n1 vs_tcp79 /vol/vol1/ns1 NSID UUID Size ---- ------------------------------ ------ 1 79c2c569-b7fa-42d5-b870-d9d6d7e5fa84 21.47GB # nvme netapp ontapdevices -o json { "ONTAPdevices" : [ { "Device" : "/dev/nvme0n1", "Vserver" : "vs_tcp79", "Namespace_Path" : "/vol/vol1/ns1", "NSID" : 1, "UUID" : "79c2c569-b7fa-42d5-b870-d9d6d7e5fa84", "Size" : "21.47GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 5242880 }, ] }
Exemple (b) :
# nvme netapp ontapdevices -o column Device Vserver Namespace Path ---------------- ------------------------- ----------------------------------- /dev/nvme1n1 vs_tcp_133 /vol/vol1/ns1 NSID UUID Size ------------------------------------------------------- 1 1ef7cb56-bfed-43c1-97c1-ef22eeb92657 21.47GB # nvme netapp ontapdevices -o json { "ONTAPdevices":[ { "Device":"/dev/nvme1n1", "Vserver":"vs_tcp_133", "Namespace_Path":"/vol/vol1/ns1", "NSID":1, "UUID":"1ef7cb56-bfed-43c1-97c1-ef22eeb92657", "Size":"21.47GB", "LBA_Data_Size":4096, "Namespace_Size":5242880 }, ] }
Problèmes connus
La configuration hôte NVMe-of pour RHEL 9.1 avec ONTAP présente les problèmes connus suivants :
ID de bug NetApp | Titre | Description |
---|---|---|
1503468 |
|
Le |