Yesterday, I blogged about issues with VMWare Workstation and clustering. Instead of trying to work around it with the settings I described, I followed another approach: iSCSI.
Because this solution will be entirely based on software inside the host and guest operating systems, you do not need to use settings in the vmx file to enable SCSI reservation on the virtual bus or disks. Instead, you need to have software that implements the iSCSI Initiator and the iSCSI Target. With the iSCSI Target software, you make storage available over an IP network. With the iSCSI Initiator software, you connect to the resources offered by the target.
The first question is: “What software do you use for the iSCSI Target?”. There are a couple of solutions:
I used StarWind and installed in on my host pc. The Windows 2003 cluster in VMWare will run on this host pc.
The second question is: “What software do you use for the iSCSI Initiator?”. Again, there are multiple solutions:
- Microsoft iSCSI Software Initiator
- StarPort (from the vendor of StarWind)
I used StarPort and installed it in the VMWare Windows 2003 guest operating systems.
So, what is the basic setup here?
- On the host pc (I used my laptop), you install StarWind (the iSCSI Target software).
- On the host pc, you make disks available that can be used for the quorum resource and data in MSCS. I used ImageFiles as disk, not real ones.
- In the guest operating systems (running in VMWare 5 on the host pc), install StarPort (the iSCSI Initiator software).
- In the guest operating system, configure StarPort to use the disks made available by StarWind. You will then see extra SCSI disks in Windows 2003 that you can format and assign a drive letter to.
You need to make sure that the guest os can connect to your host pc over a virtual network. I used the host-only network in VMWare for this purpose.
The procedure to install the Windows 2003 cluster in VMWare 5.0 is as follows:
Step 1: Install StarWind on host pc and configure the target disks
The StarWind installation is simple. Just launch the installer and follow the prompts. After installation, you can add devices and make them available over the network with iSCSI. For a basic cluster setup, I need a quorum disk and a data disk. The data disk will be used for Exchange or SQL data. I decided to use ImageFiles for this purpose.
The StarWind installation directory contains a program called mksparse.exe. In the StarWind directory, you should create a folder called images. In that images folder, create the image files with mksparse.exe:
mksparse -o <StarWind install dir>\images\quorum.img 500M
mksparse -o <StarWind install dir>\images\data.img 1500M
This creates two files that can be added as devices. This means that the iSCSI initiator software (see later) can be configured to use these devices. Add the devices with the StarWind administration console:
VERY IMPORTANT: when you add these devices, use the clustering option to allow multiple initiators to connect to the device.
Step 2: Install the 2 nodes in VMWare and configure StarPort
This is basic stuff. Just think about the network connections a bit. I used three.
- Public: a virtual network card that uses bridged networking. I need this because my domain controllers are running under GSX on another computer in the network.
- Private: a virtual network card that uses a custom virtual network (VMNet9) that will be used for the MSCS heartbeat.
- iSCSI: a virtual network card that uses the host-only network to connect to the iSCSI target on the host pc.
After installing the first guest, install the StarPort software and add the remote iSCSI devices:

In Disk Management, you can then format the disks and assign drive letters:

Shut down the first guest and repeat the steps (install StarPort software, configure the disks and assign the same drive letters).
Step 3: Install MSCS
On the node that is up, install MSCS as you normally would. I always use the minimal configuration. In that case, you specify that you want to use Q: as the quorum resource. Other resources then need to be added manually (in this case R: ). I created a group called Exchange and added a disk resource using drive R:
The result is something like this:

Conclusion
You now have multiple options to build a cluster in VMWare workstation:
- You can enable SCSI reservation on the virtual bus or disks (like in VMWare GSX) but you might get mixed results. You need to modify the vmx files and create virtual disks and share them between the guest operating systems. In essence, this solution is not supported by VMWare so don’t complain if it does not work.
- You can use iSCSI to build your cluster. The steps above show it is fairly simple to do but you need some extra software. Sadly, the iSCSI Target software is not free.
Have fun when you try this yourself and let me know about your results.




