How to connect a VM running on an ESXi host to that host via a VMKernel NIC

iscsinetworkingvmware-esxi

Say I have an ESXi (5.0) host that runs a Linux distribution which hosts iSCSI targets, which contain the images for other VMs which the host will run. When it's used, I'll start the host first, then the iSCSI server, and then refresh all storage targets/HBAs in order to see the provided shares as online. I know it's a strange puzzle-box solution, but I was told to implement it.

The ESXi host itself has a gigabit NIC which connects to the outside world. The guest OS (CentOS) supports VMXNet3, however, and if I can, I'd like to use its VMXNET3 NIC to host iSCSI for the ESXi host. How should I go about doing this?

I went to create a new virtual network, and selected "VKernel", as it suggested that I use that type of network for SAN traffic, but it is apparently not set up for "self-hosted" SAN hosts, as the new network did not appear as an option to attach the CentOS box's VMXNET3 NIC to.

How should I best connect an iSCSI host out to its "parent" ESXi host, if I need a) a 10gb connection, and (optionally) b) a VMKernel network for it?

Best Answer

You'll need a VMKernel port group for the host to use to connect, and a Virtual Machine port group for the VM to "plug in". Since these won't need to talk outside the host, a vSwitch with no physical network interfaces will work just fine.

vswitch

Give the storage VM a NIC in the VM Network with an address in that same subnet, and your host will be able to connect to it via iSCSI.