After upgrading the HBA card driver, storage adapter names change for some of the FC vmhbas
search cancel

After upgrading the HBA card driver, storage adapter names change for some of the FC vmhbas

book

Article ID: 344268

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
  • After upgrading an HBA card driver, storage adapter names change for some of the Fiber Channel vmhbas.

    For example:

    : Before upgrade After upgrade
    vmhba2 vmhba64
    vmhba3 vmhba65

    The example illustrates the random change that occurs if you use the esxcli storage core adapter list command. In this case, the device alias numbers vmhba2 and vmhba3 change to vmhba64 and vmhba65, when device numbers vmhba5 and vmhba6 are not changed. However, if you use the
    esxcli hardware pci list command, the device numbers do not change after upgrade.


Environment

VMware vSphere ESXi 6.5
VMware vSphere ESXi 6.0
VMware vSphere ESXi 7.0.x
VMware vSphere ESXi 6.7
VMware vSphere 6.7.x
VMware vSphere ESXi 8.0
VMware vSphere ESXi 5.5

Cause

This is not an ESXi issue. A driver did not understand the API Contract, and has broken upgrade compatibility.

During the esx boot process, the esx.conf file was changed.

In the esx.conf file, you see entries similar to:

/vmkdevmgr/pci/s00000001.00/alias = "vmhba2"
/vmkdevmgr/pci/s00000001.01/alias = "vmhba3"
/vmkdevmgr/pci/s00000003.00/alias = "vmhba5"
/vmkdevmgr/pci/s00000003.01/alias = "vmhba6"
/vmkdevmgr/logical/pci#s00000001.00#2/alias = "vmhba2"
/vmkdevmgr/logical/pci#s00000001.01#3/alias = "vmhba3"
/vmkdevmgr/logical/pci#s00000003.00#256/alias = "vmhba5"
/vmkdevmgr/logical/pci#s00000003.01#512/alias = "vmhba6"
/vmkdevmgr/logical/pci#s00000001.00#256/alias = "vmhba64"
/vmkdevmgr/logical/pci#s00000001.01#512/alias = "vmhba65"


Note: This issue is external to VMware and may not affect you. ESXi displays device alias names but it does not use them for any operations.

Resolution

To resolve this issue, use any one of these options:
  • Using host profile to change the VMHBA alias name
  • Change the esx.conf file manually
Caution: VMware does not recommend changing the esx.conf file manually.


Addressing this issue on ESXi 7.0 
To resolve this issue, customer needs to use configstorecli to change the VMHBA alias name.

1. List all vmhba alias entries.

$ configstorecli config current get -c esx -g system -k device_data

2. Identify affected vmhba alias, based on the 'bus_address' + 'alias' fields.
For example:

   {
     "alias": "vmhba3",
     "alias_pending": false,
     "bus_address": "pci#s00000005.00#2"
     "bus_type": "logical"
     "cs_generated_id: "52 3c 3a 77 cf 0d ad ba-26 86 29 be 72 97 72 72"
   }

3. Delete affected vmhba alias.
$ configstorecli config current delete -c esx -g system -k device_data -i CS_GENERATED_ID
For example:

$configstorecli config current delete -c esx -g system -k device_data -i "52 3c 3a 77 cf 0d ad ba-26 86 29 be 72 97 72 72
"

4. Change affected vmhba alias as previous.
$ localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias ALIAS --bus-address LOGICAL_ADDRESS

For example:
$localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmhba9 --bus-add
ress "pci#s00000003.00#0"
$configstorecli config current get -c esx -g system -k device_data
   {
      "alias": "vmhba9",
      "alias_pending": true,
      "bus_address": "pci#s00000003.00#0",
      "bus_type": "logical",
      "cs_generated_id": "52 d5 30 30 4d cf 9a 40-80 6b 97 5d 25 b9 60 b9"
   },

5. List vmhba alias to confirm alias is changed correctly.

6. Reboot.

 
To change the VMHBA alias name using the host profile (ESXi 6.0)
  1. Log in to the VMware vSphere ESXi 6.0 host as root through console or SSH.
  2. Run this command to save the original esx.conf file:

    cp /etc/vmware/esx.conf /etc/vmware/esx.conf.bak
     
  3. Using a text editor, open the /etc/esx.conf file. The content of the file looks similar to:

    /vmkdevmgr/pci/s00000001.00/alias = "vmhba2"
    /vmkdevmgr/pci/s00000001.01/alias = "vmhba3"
    /vmkdevmgr/pci/s00000003.00/alias = "vmhba5"
    /vmkdevmgr/pci/s00000003.01/alias = "vmhba6"
    /vmkdevmgr/logical/pci#s00000001.00#2/alias = "vmhba2"
    /vmkdevmgr/logical/pci#s00000001.01#3/alias = "vmhba3"
    /vmkdevmgr/logical/pci#s00000003.00#256/alias = "vmhba5"
    /vmkdevmgr/logical/pci#s00000003.01#512/alias = "vmhba6"
    /vmkdevmgr/logical/pci#s00000001.00#256/alias = "vmhba64"
    /vmkdevmgr/logical/pci#s00000001.01#512/alias = "vmhba65"

     
  4. In the /etc/esx.conf file, locate this line:

    /vmkdevmgr/logical/pci#s00000003.00#0/alias = "vmhba5"

    Modify the line as:

    /vmkdevmgr/logical/pci#s00000003.00#256/alias = "vmhba5"
     
  5. In the /etc/esx.conf file, locate this line:

    /vmkdevmgr/logical/pci#s00000003.01#0/alias = "vmhba6"

    Modify the line as:

    /vmkdevmgr/logical/pci#s00000003.01#512/alias = "vmhba6"
     
  6. In the /etc/esx.conf file, locate these two lines and delete them:

    /vmkdevmgr/logical/pci#s00000001.00#256/alias = "vmhba64"
    /vmkdevmgr/logical/pci#s00000001.01#512/alias = "vmhba65"

     
  7. Save and close the file.
  8. Reboot ESXi.


For more information see How VMware ESXi 5.5 and 6.0 determine the order in which names are assigned to devices (2091560).


Additional Information

 

How VMware ESXi determines the order in which names are assigned to devices
升级 HBA 卡驱动程序后,部分 FC vmhba 的存储适配器名称会更改
HBA カード ドライバをアップグレードすると一部の FC vmhbas のストレージ アダプタ名が変更される