Discrepancy in MultipathPolicy output between vSphere UI and PowerCLI for NVMe over TCP devices - VMware vSphere ESXi
search cancel

Discrepancy in MultipathPolicy output between vSphere UI and PowerCLI for NVMe over TCP devices - VMware vSphere ESXi

book

Article ID: 456190

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

When using PowerCLI to query the MultipathPolicy of an NVMe over TCP datastore, the Get-ScsiLun cmdlet may report the policy as "Fixed," whereas the vSphere Client UI correctly displays the actual path selection scheme (e.g., LB-LATENCY or LB-RR). 

Environment

  • VMware vSphere ESXi
  • NVMe over TCP storage configuration
  • PowerCLI

Cause

The Get-ScsiLun cmdlet is designed for standard SCSI devices and does not natively support the VMware High Performance Plug-In (HPP) architecture used by NVMe over TCP. Consequently, it defaults to reporting "Fixed" when it cannot interpret the HPP parameters.

Resolution

To accurately retrieve the Path Selection Scheme for NVMe over TCP devices via PowerCLI, utilize the ESXCLI HPP namespace directly instead of Get-ScsiLun.

  1. Execute the following PowerCLI command:
    $esxcli.storage.hpp.device.list.Invoke(@{device="<DEVICEUUID>"})
  2. Replace <DEVICEUUID> with the specific canonical name of the NVMe device in question.

This command directly queries the HPP module to provide the correct PathSelectionScheme used by the NVMe over TCP storage.

Example:

CurrentPath               : vmhba##:C#:T#:L##
Device                    : uuid.##############################
DeviceDisplayName         : NVMe TCP Disk (uuid.##############################)
IsLocal                   : false
IsSSD                     : true
Path                      :
PathSelectionScheme       : LB-RR  
PathSelectionSchemeConfig : {iops=1000,bytes=10485760;}
Paths                     : {vmhba##:C#:T#:L##, vmhba##:C#:T#:L##, vmhba##:C#:T#:L##, vmhba##:C#:T#:L##...}
UseANO                    : false
WorkingPathSet            : {vmhba##:C#:T#:L##, vmhba##:C#:T#:L##, vmhba##:C#:T#:L##, vmhba##:C#:T#:L##..}