Windows cluster in VMware



To create a Windows cluster configuration in VMware server you need to add a few options by hand in the .vmx files.

First off, create the shared disks;
quorum, 512MB
one or more data disks, 1 to as much as needed GB
(I prefer to keep these disks in a seperate directory called disks under a directory which also containes the cluster nodes directories)

Next, create two or more regular virtual servers with a single disk in seperate directories under the main directory for the cluster configuration.
Open the settings of one of the cluster nodes in the VMware console, then add the shared disks to the server on another SCSI bus.
For instance, if the local system disk of the node is on SCSI 0:0, add the shared disks to SCSI 1:0, 1:1, 1:2, etc.
Now do the same thing with all the other nodes.

Open the .vmx file of each node and add the following lines;

diskLib.dataCacheMaxSize = "0"
disk.locking = "false"



Here's the configuration of one of the nodes I created;

config.version = "8"
virtualHW.version = "4"
memsize = "256"
displayName = "node01"
guestOS = "winnetenterprise"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
workingDir = "."
uuid.location = "56 4d b2 9f bc bf ac 93-8b 40 df 27 af 38 a2 81"
uuid.bios = "56 4d b2 9f bc bf ac 93-8b 40 df 27 af 38 a2 81"
tools.syncTime = "FALSE"
floppy0.present = "FALSE"

diskLib.dataCacheMaxSize = "0"
disk.locking = "false"

ide1:0.autodetect = "TRUE"
ide1:0.present = "TRUE"
ide1:0.fileName = "E:\ISOs\W2K3_STD_R2_CD1.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.startConnected = "TRUE"

scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"

scsi0:0.present = "TRUE"
scsi0:0.fileName = "system.vmdk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "e:\cluster\disks\shdisk01.vmdk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "e:\cluster\disks\shdisk02.vmdk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "E:\cluster\disks\quorum.vmdk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "E:\cluster\disks\shdisk03.vmdk"

scsi0:0.redo = ""
scsi1:0.redo = ""
scsi1:1.redo = ""
scsi1:2.redo = ""
scsi1:3.redo = ""

Ethernet0.present = "TRUE"
Ethernet0.connectionType = "custom"
Ethernet1.present = "TRUE"
Ethernet1.connectionType = "custom"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:38:a2:81"
ethernet0.generatedAddressOffset = "0"
ethernet1.addressType = "generated"
ethernet1.generatedAddress = "00:0c:29:38:a2:8b"
ethernet1.generatedAddressOffset = "10"

Ethernet0.vnet = "VMnet7"
Ethernet1.vnet = "VMnet6"

(cleaned up the configuration because the files generated by VMware are a huge mess, just check out the locations file on a Linux VMware host)

This is the hardware part done, now you can take the usual steps of starting the first node and start the cluster configuration under Windows.