Having problems getting iSCSI LUNs to appear in ESXi after enabling a second VMkernel switch on a separate subnet? Make sure you disable/re-enable the ESXi iSCSI Initiator AFTER adding the new vSwitch on the isolated network. I think iSCSI discovery only occurs on the Vswitches enabled at the time the initiator is enabled. Here is my scenario:

I recently setup an MD3000i SAN to connect to our VMware ESXi hosts via iSCSI on our internal LAN. My test server only has two NICs, but I only enabled eth0 with an IP of and left eth1 unused. I enabled iSCSI on the host, set send targets, config’d host access, created host-to-virt disk map, etc. and rescanned HBA. The test worked fine. After scan completed, I was able to see the LUNs in ESXi.

Next, I wanted to enable eth1 and move the iSCSI traffic off to dedicated, isolated, switches.

So I physically moved the MD iSCSI cables to 2 standalone switches, edited the MD Host Ports, setting them back to the defaults (192.168.130.x & 131.x). I left the two MD management ports in the LAN.

I enabled ESXi eth1 as VMkernel and set to IP in same range as one of the segments (192.168.130.103).

On ESXi, I removed the old send targets and entered the new IPs (192.168.130.101 & 102).

Rebooted everything for good measure. Rescanned HBA, but the LUNS did NOT show up in ESXi.

The solution? After enabling the VMKernel switch on the different subnet, disable ESXi iSCSI Initiator and reboot (maybe not needed, but I find ESXi likes a reboot for many things). When it returns (5+ minutes for mine), ENABLE the ESXi iSCSI Initiator and rescan HBA. I think iSCSI discovery only occurs on the Vswitches enabled at the time the initiator is enabled.