How to get best performance from iSCSI between Virtual Host and Guest

iscsivirtualizationvmware-serverwindows-server-2008

I am using iSCSI to connect to some hard drives on the host from a guest.

Here is my setup:

  • Vmware Server 2 on host
  • Windows Server 2008 (host and guest)
  • StarWind Enterprise iSCSI target on host
  • MS iSCSI initiator on the guest

The guest only has one network adaptor – setup in bridged mode from the host.

With this out-of-box configuration I am getting about 10 MB/s. I know the physical disks are capable of at least 50MB/s.

Any tips for better performance?

Best Answer

iSCSI doesn't respond well to shared network scenarios (where iSCSI traffic has to contend with general purpose traffic for the machine). It might help to create a dedicated connection for iSCSI traffic only - add another virtual Nic to the Guest, connect it to VMnet1 (the Host-Only Virtual Switch), set up your iSCSI Target Software to use the address on the Host-Only Virtual NIC within the host OS and reconfigure the iSCSI initiator to connect to the new Target address.

Your scenario will add a fair amount of CPU overhead - you should expect a couple of hundred Mhz additional load within the guest and a similar additional load in the host just from the iSCSI and virtual networking traffic.

Make sure you have VMWare tools installed. It improves the network stack significantly and the virtual disk subsystem within the guest.