Usually Oracle 10g RAC database is installed on multiple machines connected to shared storage (such as an EMC) via fiber channel. We will try to do the same thing using VMWare on one machine. The trick is we could emulate all the components of the cluster using Vmware. The computer which runs the VMWare emulation software is called as the HOST computer and the virtual machines are called GUEST computers. So basically if you are planning to build a RAC on a single workstation, you will end up with 3 operating systems (2 virtual and 1 host) running on the same machine. Needless to say you will need atleast 2 GB of RAM and a good processor to try this setup.
Here are the minimum requirements.
| Component | Minimm | Recommended |
| Processor | 2 GHZ Pentium 4 | Dual Core Pentium 3.2 GHZ |
| Memory | 2 GB | 4GB |
| Hard Disk | 20 GB Free | 60 GB free |
A typical Real application cluster installation would look like the image below. You have multiple nodes each running an instance of the database communicating over a private network (interconnect) and using virtual IP addresses to communicate with the clients. Usually these virtual IP addresses are on the public network. We will try to emulate all of the following components using VMWare

When using VmWare you could create multiple networks internally by making the nodes connect to virtual switches. Connect both the nodes to the same switch and give them consecutive IP addresses and they will be able to communicate immediately.
For the public network I have chosen to use the NAT feature, although i chose the IP addresses instead of relying on DHCP.
| Node Name | Public Interface | Private Interface |
| Node1 | 192.168.107.101 | 10.0.0.101 |
| Node2 | 192.168.107.102 | 10.0.0.102 |
Your DHCP 3rd octet might be different. I noticed it was changing on different machines with VMWare installed.
Installing VMWare is straight forward. Download and Install version 5.0 workstation from http://www.vmware.com .
The best way to organize your virtual machines is as shown in the image below. You will have one Root folder called RAC - Each Node will have its own folder. Remember each node has its own OS / Oracle installation disk. This is named sda.vmdk. You will also need an OCR (Oracle cluster registry) and voting disk , I created both of them around 500 MB. There are advantages in creating them as seperate disks instead of partitions of a bigger disk
Also create ASM disks as you prefer. Here i have 3 ASM disks each with 10 GB capacity.
| Component | File Name | Size |
| Entire Structure | RAC.zip | 24 KB |
| Empty 10GB Disk | 10G.zip | 3 KB |
| Empty 20GB Disk | 20G.zip | 6 KB |
| Empty 500M Disk | 500M.zip | 1 KB |
The file sizes are small as VMWare does not allocate disk space(It is an option if you want to preallocate space) when creating the virtual machine. Below is the VMX file for each vmware node (Node 1 and Node 2).
| Node 1 ( Location : C:\RAC\Node1\rhel3.vmx ) |
| config.version = "8" virtualHW.version = "4" scsi0.present = "TRUE" scsi0.virtualDev = "lsilogic" memsize = "1024" scsi0:0.present = "TRUE" scsi0:0.fileName = "sda.vmdk" ide1:0.present = "TRUE" ide1:0.fileName = "auto detect" ide1:0.deviceType = "cdrom-raw" floppy0.present = "FALSE" ethernet0.present = "TRUE" ethernet0.connectionType = "nat" usb.present = "FALSE" sound.present = "FALSE" sound.virtualDev = "es1371" displayName = "Node1" guestOS = "rhel3" nvram = "rhel3.nvram" ethernet1.present = "TRUE" scsi1.present = "TRUE" scsi1:2.present = "TRUE" scsi1:3.present = "TRUE" scsi1:4.present = "TRUE" scsi1:5.present = "TRUE" scsi1:6.present = "TRUE" disk.locking = "FALSE" scsi0:0.redo = "" ethernet0.addressType = "generated" ide1:0.startConnected = "TRUE" tools.syncTime = "FALSE" scsi1:2.redo = "" |
| Node 2 ( Location : C:\RAC\Node2\rhel3.vmx ) |
config.version = "8" ethernet1.present = "TRUE" scsi1.present = "TRUE" scsi1:2.present = "TRUE" scsi1:3.present = "TRUE" scsi1:4.present = "TRUE" scsi1:5.present = "TRUE" scsi1:6.present = "TRUE" disk.locking = "FALSE" uuid.bios = "56 4d 88 e1 d8 25 00 e0-e3 ae f1 4f b1 65 76 26" scsi0:0.redo = "" tools.syncTime = "FALSE" scsi1:2.redo = ""
|
Open the virtual machines now in VmWare. You should see the screens like below.

Freshly opened VM's in VMWare
All the hardware components in each of your virtual machines. Now both nodes are ready for RHEL 3.0 installations.