Software iSCSI adapter in ESXi disappears after an upgrade
search cancel

Software iSCSI adapter in ESXi disappears after an upgrade

book

Article ID: 334540

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
  • After performing an ESXi upgrade, the Software iSCSI adapter on the host disappears.
  • The LUNs are not detected.
  • Previously mounted Datastores are not discovered. 
  • Creating a new Software iSCSI adapter fails with the error:
WARNING: Device: 1316: Failed to register device 0x430707b65050 logical#vmkernel#com.vmware.iscsi_vmk0 com.vmware.iscsi_vmk (parent=0x2b3430707b65254): Already exists
  • In VMkernel logs, you see entries similar to:

    WARNING: Elf: 480: Fixed strtoul conversion failure
    WARNING: Elf: 3017: Kernel based module load of iscsi_vmk failed: Bad parameter < ElfParseModuleParams failed >
  • The iSCSI module will show as enabled but not loaded.
For example:
Name            Is Loaded             Is Enabled
--------          ------------------          -----------------
iscsi_vmk            false                      true
  • Loading the iSCSI module manually fails with the error:
Unable to load module /usr/lib/vmware/vmkmod/iscsi_vmk: Bad parameter


Environment

VMware vSphere ESXi 6.5

Cause

This issue occurs when invalid options are specified for a iSCSI driver module. During ESX/ESXi startup, the driver module options are validated. If an invalid module option is configured, it may not be noticed until a subsequent reboot.

Resolution

Caution: Do not edit the /etc/vmware/esx.conf file configuration file directly.

To resolve this issue, validate the currently configured driver module options:

  1. Open a console to the ESX/ESXi host. 
  2. Run this command to view a list of the options available for the driver module:
# vmkload_mod -s iscsi_vmk
  1. Run this command to for an iSCSI driver module options and whether it is loaded on boot.
# esxcfg-module -g iscsi_vmk

You can also use esxcli command to achieve the above results.
  1. Run this command to get Software iSCSI information .
# esxcli iscsi software get
  1. Run this command to list their parameters.
# esxcli system module parameters list -m iscsi_vmk
  1. Using the esxcfg-module or esxcli commands, specify correct options for the iSCSI driver module or remove all module options.
    1. To specify correct options use the below command:
# esxcli system module parameters set -m module_name -p "Parameter_to_be_set"

For example, to set lun queue depth to 255:
 
# esxcli system module parameters set -m iscsi_vmk -p "iscsivmk_LunQDepth=255"
  1. To remove all module options, simply enter a null value for the option, which appears as "".
# esxcfg-module --set-options "" iscsi_vmk

or 
 
# esxcli system module parameters set -m iscsi_vmk -p ""

Note: Ensure that there is no white space while setting parameters for any module.
  1. Reboot the ESXi host for the changes to take effect.