Skip to main content
SAN hosts and cloud clients
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Configuration hôte NVMe-of pour Ubuntu 24.04 avec ONTAP

Contributeurs

NVMe over Fabrics (NVMe-of), y compris NVMe over Fibre Channel (NVMe/FC) et d'autres moyens de transport, est pris en charge avec Ubuntu 24.04 et ANA (Asymmetric Namespace Access). Dans les environnements NVMe-of, ANA est l'équivalent des chemins d'accès multiples ALUA dans les environnements iSCSI et FC. Il est implémenté avec les chemins d'accès multiples NVMe intégrés au noyau.

La prise en charge suivante est disponible pour la configuration hôte NVMe-of pour Ubuntu 24.04 avec ONTAP :

  • Le plug-in NetApp du package nvme-cli natif affiche les détails des ONTAP pour les namespaces NVMe/FC.

  • 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.

Pour plus d'informations sur les configurations prises en charge, reportez-vous au "Matrice d'interopérabilité NetApp".

Caractéristiques

Ubuntu 24.04 dispose par défaut d'un multipath NVMe intégré au noyau activé pour les namespaces NVMe. Cela signifie que vous n'avez pas besoin de paramètres explicites.

Limites connues

Le démarrage SAN à l'aide du protocole NVMe-of n'est actuellement pas pris en charge pour Ubuntu 24.04 avec ONTAP.

Validation des versions logicielles

Vous pouvez utiliser la procédure suivante pour valider les versions minimales du logiciel Ubuntu 24.04 prises en charge.

Étapes
  1. Installez Ubuntu 24.04 sur le serveur. Une fois l'installation terminée, vérifiez que vous exécutez le noyau Ubuntu 24.04 spécifié :

    uname -r
    6.8.0-31-generic
  2. Installer le nvme-cli groupe :

    apt list | grep nvme
    nvme-cli/noble-updates 2.8-1ubuntu0.1 amd64
  3. Sur l'hôte Ubuntu 24.04, vérifiez la chaîne hostnqn à l'adresse /etc/nvme/hostnqn:

    cat /etc/nvme/hostnqn
    nqn.2014-08.org.nvmexpress:uuid:ace18dd8-1f5a-11ec-b0c3-3a68dd61a6ff
  4. Vérifiez que la hostnqn chaîne de /etc/nvme/hostnqn correspond à la hostnqn chaîne du sous-système correspondant sur la baie ONTAP :

    vserver nvme subsystem host show -vserver vs_106_fc_nvme
    Vserver     Subsystem          Host NQN
    ----------- --------------- ----------------------------------------------------------
    vs_106_fc_nvme ub_106 nqn.2014-08.org.nvmexpress:uuid:c04702c8-e91e-4353-9995-ba4536214631
    Remarque Si les hostnqn chaînes ne correspondent pas, utilisez la vserver modify commande pour mettre à jour la hostnqn chaîne sur votre sous-système de matrice ONTAP correspondant afin qu'elle corresponde à la hostnqn chaîne de /etc/nvme/hostnqn sur l'hôte.

Configurez NVMe/FC

Vous pouvez configurer NVMe/FC pour les cartes Broadcom/Emulex ou Marvell/Qlogic.

Broadcom/Emulex

Configuration de NVMe/FC pour une carte Broadcom/Emulex

Étapes
  1. Vérifiez que vous utilisez le modèle d'adaptateur pris en charge :

    1. cat /sys/class/scsi_host/host*/modelname

      LPe36002-M64
      LPe36002-M64
    2. cat /sys/class/scsi_host/host*/modeldesc

      Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
      Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
  2. Vérifiez que vous utilisez le micrologiciel Broadcom et le pilote de boîte de réception recommandés lpfc.

    1. cat /sys/class/scsi_host/host*/fwrev

      14.4.317.10, sli-4:6:d
      14.4.317.10, sli-4:6:d
    2. cat /sys/module/lpfc/version

      0:14.2.0.17

      Pour obtenir la liste actuelle des versions de pilotes et de micrologiciels de carte prises en charge, consultez le "Matrice d'interopérabilité NetApp".

  3. Vérifiez-le lpfc_enable_fc4_type est défini sur 3:

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type

    La sortie attendue est 3.

  4. Vérifier que les ports initiateurs sont opérationnels et que les LIFs cibles sont visibles :

    1. cat /sys/class/fc_host/host*/port_name

      0x100000109bf0447b
      0x100000109bf0447c
    2. cat /sys/class/fc_host/host*/port_state

      Online
      Online
    3. cat /sys/class/scsi_host/host*/nvme_info

      Affiche un exemple de résultat
      NVME Initiator Enabled
      XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
      NVME LPORT lpfc0 WWPN x100000109bf0447b WWNN x200000109bf0447b DID x022600 ONLINE
      NVME RPORT       WWPN x200fd039eaa8138b WWNN x200ad039eaa8138b DID x021006 TARGET DISCSRVC ONLINE
      
      NVME Statistics
      LS: Xmt 0000000187 Cmpl 0000000187 Abort 00000000
      LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
      Total FCP Cmpl 0000000014096514 Issue 000000001407fcd6 OutIO fffffffffffe97c2
              abort 00000048 noxri 00000000 nondlp 0000001c qdepth 00000000 wqerr 00000000 err 00000000
      FCP CMPL: xb 00000048 Err 00000077
      
      NVME Initiator Enabled
      XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
      NVME LPORT lpfc1 WWPN x100000109bf0447c WWNN x200000109bf0447c DID x022300 ONLINE
      NVME RPORT       WWPN x2010d039eaa8138b WWNN x200ad039eaa8138b DID x021106 TARGET DISCSRVC ONLINE
      
      NVME Statistics
      LS: Xmt 0000000187 Cmpl 0000000187 Abort 00000000
      LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
      Total FCP Cmpl 00000000140970ed Issue 00000000140813da OutIO fffffffffffea2ed
              abort 00000047 noxri 00000000 nondlp 0000002b qdepth 00000000 wqerr 00000000 err 00000000
      FCP CMPL: xb 00000047 Err 00000075
Marvell/QLogic

Le pilote natif de boîte de réception qla2xxx inclus dans le noyau Ubuntu 24.04 GA a les derniers correctifs en amont. Ces correctifs sont essentiels à la prise en charge de ONTAP.

Configuration du NVMe/FC pour un adaptateur Marvell/QLogic

Étapes
  1. Vérifiez que vous exécutez les versions du pilote de carte et du micrologiciel prises en charge :

    cat /sys/class/fc_host/host*/symbolic_name
    QLE2872 FW: v9.15.00 DVR: v10.02.09.100-k
    QLE2872 FW: v9.15.00 DVR: v10.02.09.100-k
  2. Vérifiez-le ql2xnvmeenable est défini. L'adaptateur Marvell peut ainsi fonctionner en tant qu'initiateur NVMe/FC :

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

    La sortie attendue est 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.

Remarque Ces étapes ne s'appliquent pas aux hôtes NVMe/FC Qlogic.
Étapes
  1. Réglez le lpfc_sg_seg_cnt paramètre sur 256 :

    cat /etc/modprobe.d/lpfc.conf
    options lpfc lpfc_sg_seg_cnt=256
  2. Exécutez dracut -f la commande et redémarrez l'hôte.

  3. 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 prend pas en charge la fonctionnalité de connexion automatique. Vous pouvez détecter manuellement les sous-systèmes et les espaces de noms NVMe/TCP à l'aide des connect commandes ou connect-all.

Étapes
  1. Vérifiez que le port initiateur peut récupérer les données de la page de journal de découverte sur les LIF NVMe/TCP prises en charge :

    nvme discover -t tcp -w <host-traddr> -a <traddr>
    Montrer l'exemple
    # nvme discover -t tcp -w 192.168.167.150 -a 192.168.167.155
    Discovery Log Number of Records 8, Generation counter 10
    =====Discovery Log Entry 0======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  4
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery
    traddr:  192.168.167.156
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 1======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  2
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery
    traddr:  192.168.166.156
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 2======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  3
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery
    traddr:  192.168.167.155
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 3======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  1
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:discovery
    traddr:  192.168.166.155
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 4======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  4
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211
    traddr:  192.168.167.156
    eflags:  none
    sectype: none
    =====Discovery Log Entry 5======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  2
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211
    traddr:  192.168.166.156
    eflags:  none
    sectype: none
    =====Discovery Log Entry 6======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  3
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211
    traddr:  192.168.167.155
    eflags:  none
    sectype: none
    =====Discovery Log Entry 7======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  1
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211
    traddr:  192.168.166.155
    eflags:  none
    sectype: none
  2. Vérifiez que les autres combinaisons de LIF cible-initiateur NVMe/TCP peuvent récupérer les données de la page du journal de détection :

    nvme discover -t tcp -w <host-traddr> -a <traddr>
    Affiche un exemple de résultat
    #nvme discover -t tcp -w 192.168.167.150 -a 192.168.167.155
    #nvme discover -t tcp -w 192.168.167.150 -a 192.168.167.156
    #nvme discover -t tcp -w 192.168.166.150 -a 192.168.166.155
    #nvme discover -t tcp -w 192.168.166.150 -a 192.168.166.156
  3. Exécutez le nvme connect-all Commande sur toutes les LIF cible-initiateur NVMe/TCP prises en charge sur l'ensemble des nœuds :

    nvme connect-all -t tcp -w <host-traddr> -a <traddr>
    Affiche un exemple de résultat
    #nvme connect-all -t tcp -w 192.168.167.150 -a 192.168.167.155
    #nvme connect-all -t tcp -w 192.168.167.150 -a 192.168.167.156
    #nvme connect-all -t tcp -w 192.168.166.150 -a 192.168.166.155
    #nvme connect-all -t tcp -w 192.168.166.150 -a 192.168.166.156
    Remarque À partir d'Ubuntu 24.04, le paramètre par défaut du délai d'expiration ctrl_Loss_tmo pour NVMe/TCP est désactivé. Cela signifie qu'il n'y a pas de limite au nombre de tentatives (tentatives indéterminées) et que vous n'avez pas besoin de configurer manuellement une durée de temporisation ctrl_Loss_tmo spécifique lors de l'utilisation des nvme connect commandes ou nvme connect-all (option -l ). Avec ce comportement par défaut, les contrôleurs NVMe/TCP ne connaissent pas de délais d'expiration en cas de défaillance de chemin et restent connectés indéfiniment.

Validez la spécification NVMe-of

La procédure suivante permet de valider la NVME-of.

Étapes
  1. Vérifiez que le chemin d'accès multiples NVMe intégré au noyau est activé :

    cat /sys/module/nvme_core/parameters/multipath

    La sortie attendue est « y ».

  2. Vérifiez que les paramètres NVMe-of appropriés (par exemple, modèle défini sur « contrôleur NetApp ONTAP » et iopole d'équilibrage de la charge défini sur « round-Robin ») pour les espaces de noms ONTAP respectifs s'affichent correctement sur l'hôte :

    1. cat /sys/class/nvme-subsystem/nvme-subsys*/model

      NetApp ONTAP Controller
      NetApp ONTAP Controller
    2. cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy

      round-robin
      round-robin
  3. Vérifiez que les espaces de noms sont créés et correctement découverts sur l'hôte :

    nvme list
    Affiche un exemple de résultat
    Node         SN                         Model
    ---------------------------------------------------------
    /dev/nvme0n1 81CZ5BQuUNfGAAAAAAAB	NetApp ONTAP Controller
    
    
    Namespace Usage   Format                FW            Rev
    -----------------------------------------------------------
    1                 21.47 GB / 21.47 GB	4 KiB + 0 B   FFFFFFFF
  4. Vérifiez que l'état du contrôleur de chaque chemin est actif et que l'état ANA est correct :

    NVMe/FC
    nvme list-subsys /dev/nvme0n1
    Affiche un exemple de résultat
    nvme-subsys4 - NQN=nqn.1992-08.com.netapp:sn.8763d311b2ac11ed950ed039ea951c46:subsystem. ubuntu_24.04 \
    +- nvme1 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a7d039ea954d17,host_traddr=nn-0x200000109b1b95ef:pn-0x100000109b1b95ef live optimized
    +- nvme2 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a8d039ea954d17,host_traddr=nn-0x200000109b1b95f0:pn-0x100000109b1b95f0 live optimized
    +- nvme3 fc traddr=nn-0x20a6d039ea954d17:pn-0x20aad039ea954d17,host_traddr=nn-0x200000109b1b95f0:pn-0x100000109b1b95f0 live non-optimized
    +- nvme5 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a9d039ea954d17,host_traddr=nn-0x200000109b1b95ef:pn-0x100000109b1b95ef live non-optimized
    NVMe/TCP
    nvme list-subsys /dev/nvme1n1
    Affiche un exemple de résultat
    nvme-subsys0 - NQN=nqn.1992-08.com.netapp:sn.9b7d42b764ff11efb8fed039eabac370:subsystem.ubuntu_24.04_tcp_211
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:4c4c4544-0050-3410-8035-c3c04f4a5933
                   iopolicy=round-robin
     +- nvme0 tcp traddr=192.168.166.155,trsvcid=4420,host_traddr=192.168.166.150,src_addr=192.168.166.150 live optimized
     +- nvme1 tcp traddr=192.168.167.155,trsvcid=4420,host_traddr=192.168.167.150,src_addr=192.168.167.150 live optimized
     +- nvme2 tcp traddr=192.168.166.156,trsvcid=4420,host_traddr=192.168.166.150,src_addr=192.168.166.150 live non-optimized
     +- nvme3 tcp traddr=192.168.167.156,trsvcid=4420,host_traddr=192.168.167.150,src_addr=192.168.167.150 live non-optimized
  5. Vérifier que le plug-in NetApp affiche les valeurs correctes pour chaque périphérique d'espace de noms ONTAP :

    Colonne
    nvme netapp ontapdevices -o column
    Affiche un exemple de résultat
    Device        Vserver        Namespace Path          NSID UUID                                   Size
    ------------- -------------  ----------------------- ---- -------------------------------------- ---------
    /dev/nvme0n1   vs_211_tcp    /vol/tcpvol1/ns1        1    1cc7bc78-8d7b-4d8e-a3c4-750f9461a6e9   21.47GB
    JSON
    nvme netapp ontapdevices -o json
    Affiche un exemple de résultat
    {
    
    "ONTAPdevices" : [
    {
          "Device":"/dev/nvme0n9",
          "Vserver":"vs_211_tcp",
          "Namespace_Path":"/vol/tcpvol9/ns9",
          "NSID":9,
          "UUID":"99640dd9-8463-4c12-8282-b525b39fc10b",
          "Size":"21.47GB",
          "LBA_Data_Size":4096,
          "Namespace_Size":5242880
        }
      ]
    }

Problèmes connus

Il n'existe aucun problème connu pour la configuration hôte NVMe-of pour Ubuntu 24.04 avec la version ONTAP.