...
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
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.
Caution: Do not edit the /etc/vmware/esx.conf file configuration file directly.To resolve this issue, validate the currently configured driver module options: Open a console to the ESX/ESXi host. Run this command to view a list of the options available for the driver module: # vmkload_mod -s iscsi_vmk Run this command to for an iSCSI driver module options and whether it is loaded on boot. # esxcfg-module -g iscsi_vmkYou can also use esxcli command to achieve the above results. Run this command to get Software iSCSI information . # esxcli iscsi software get Run this command to list their parameters. # esxcli system module parameters list -m iscsi_vmk Using the esxcfg-module or esxcli commands, specify correct options for the iSCSI driver module or remove all module options. 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" 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. Reboot the ESXi host for the changes to take effect.