NVMe over TCP targets not visible in vSphere Client for every path.
search cancel

NVMe over TCP targets not visible in vSphere Client for every path.

book

Article ID: 433394

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Note: In VMware vSphere environments, there is a distinct difference in how storage targets are identified and displayed when comparing legacy iSCSI (SCSI stack) and NVMe over TCP (NVMe stack). This article clarifies the architectural shift that results in empty "Target" details for NVMe-oF paths.

Symptoms:

  • In vSphere environments using NVMe over TCP, navigating to Host > Storage Adapters > Paths shows an empty "Target" list.


  • But, iSCSI devices correctly display IQN details under the "Target" list in the same view.

Environment

  • VMware vSphere ESXi 7.x
  • VMware vSphere ESXi 8.x

Cause

This is expected architectural behavior due to the shift from the SCSI stack to the NVMe stack:

  • Protocol Stack: ESXi utilizes the native NVMe stack rather than the legacy SCSI mid-layer.

  • Identification: Devices use EUI/NGUID identifiers instead of NAA.

  • Connection Model: NVMe-oF replaces "Target IQN + Session" with a model based on Subsystems, Controllers, and Namespaces.
    When discovering NVME over TCP devices, the vSphere Client and legacy esxcfg-mpath utility do not populate the "Target" metadata field because the device is managed via the High Performance Plug-in (HPP) as a local controller rather than a SCSI target.

  • UI Limitation: The legacy Paths view in the vSphere Client is designed for SCSI introspection and does not map NVMe Controller details into the "Target" field.

Cause Validation:   

A comparison of esxcfg-mpath -b output highlights this difference:

  • Output of the command "esxcfg-mpath -b" for iscsi devices lists the iscsi target and adapter iqn:
    naa.########### : TrueNAS iSCSI Disk (naa.###########)
       vmhba65:C1:T0:L11 LUN:11 state:active iscsi Adapter: iqn.##################:esxi1  Target: IQN=iqn.##################:target-site1 Alias= Session=############ PortalTag=1
       vmhba65:C2:T0:L11 LUN:11 state:active iscsi Adapter: iqn.##################:esxi1  Target: IQN=iqn.##################:target-site1 Alias= Session=############ PortalTag=1

  • But, output of the same command "esxcfg-mpath -b" for nvme over TCP devices do not list the target NQN. 
    eui.########### : NVMe TCP Disk (eui..###########)
       vmhba66:C0:T0:L17 LUN:17 state:active Local HBA vmhba66 channel 0 target 0
       vmhba66:C0:T1:L17 LUN:17 state:active Local HBA vmhba66 channel 0 target 1

 

Resolution

This is characteristically expected behavior for NVMe over TCP on ESXi. To further verify connectivity:

  • Navigate to Host > Configure > Storage > Storage Adapters.

  • Select the NVMe/TCP adapter and click the Controllers tab (this replaces the functionality of the "Targets" view for NVMe-oF).

  • Confirm the Controller status is Online.

  • Use the ESXi command line to verify the transport state:
    • esxcli nvme adapter list:

      Adapter  Adapter Qualified Name                                                           Transport Type  Driver     Associated Devices
      -------  -------------------------------------------------------------------------------  --------------  ---------  ------------------
      vmhba66  aqn:#######:##-##-##-##-##-##-#                                                  TCP             nvmetcp    vmnic1
      vmhba65  aqn:#######:##-##-##-##-##-##-#                                                  TCP             nvmetcp    vmnic5

    • esxcli nvme controller list:

      Name                                                                               Controller Number  Adapter  Transport Type  Is Online  Controller Type  Is VVOL  Keep Alive Timeout  IO Queue Number  IO Queue Size
      ---------------------------------------------------------------------------------  -----------------  -------  --------------  ---------  ---------------  -------  ------------------  ---------------  -------------
      nqn.####-##.###.###########:##########.#################vmhba66###.#.###.#:4420                  263  vmhba66  TCP             true       I/O              false                    10               16             32
      nqn.####-##.###.###########:##########.#################vmhba66###.#.###.#:4420                  264  vmhba66  TCP             true       I/O              false                    10               16             32