Virtualizing an Oracle RAC isn't necessarily a stupid idea, but it should only be done with a full understanding of the benefits and risks. You are asking questions, so that is a good step in the right direction.
Your question doesn't say which virtualization technology, the Oracle version, or the edition. For now I will assume this is for production on VMWare with the enterprise edition of Oracle 11.2.0.2+.
Virtualization provides some of the same benefits of RAC, though in a dramatically different way. Both can reduce or eliminate downtime due to some hardware failures, and both can allow servers to be restarted without affecting availability. RAC increases capacity and allows for rolling upgrades, which are things virtualization can't do. VMware on the other hand can allow servers to be restarted, hardware to be changed, and storage to be relocated all without bringing any instances down.
Licensing
With VMWare the entire server has to be licensed even if it will be running multiple virtual machines only one of which is for Oracle. This can either be a good thing or a bad thing. If you are virtualizing Oracle onto an existing cluster with other VMs, then all the machines in the cluster will need Oracle licenses. This could significantly increase your licensing costs likely to the point of making the purchase of additional hardware miniscule in comparison.
On the other hand, a VMWare cluster dedicated to Oracle can allow virtualized instances to float to less busy nodes and under-utilized hardware can handle multiple instances, potentially decreasing the overall hardware costs and licensing costs.
Support
Oracle's official stance for running databases on VMWare can be found in ID 249212.1, which says certification has not been done for it's products on VMWare. Since virtualization can be viewed as a hardware layer, this would be in keeping with the general lack of hardware certification.
The following note was added with 11.2.0.2:
NOTE: Oracle has not certified any of its products on VMWare. For
Oracle RAC, Oracle will only accept Service Requests as described in
this note on Oracle RAC 11.2.0.2 and later releases.
Read the entire note for the full context, but it seems that Oracle is beginning to make allowances for even RAC on VMWare.
Application Support
If your applications are all RAC aware and can gracefully handle the loss of an instance, then some of the benefits that VMWare add would not be as worthwhile. On the other hand, if the applications are not RAC aware and will need to re-connect anyway, then the transparency of VMWare VMotion would be more desirable.
Complexity/Flexibility
The combination of RAC and virtualization allows for a lot of flexibility, but also increases complexity considerably. To restart a server you could VMotion all the instances off of that node to other nodes using VMWare, or you could bring the instances on that box down using RAC. Each option has pros and cons that you would have to consider.
Thoughts
Since virtualization provides some of the benefits of RAC, you could abandon RAC and potentially save a lot of licensing cost and reduce the overall complexity.
Moving multiple nodes of the RAC to the same virtual machine host would be a very bad idea. You would loose some of the benefits of RAC while increasing the complexity and decreasing the availability.
It will likely all come down to licensing. If you have to license even one additional CPU due to the move to VMWare, it would likely cost less to just buy more hardware. Of course there are many factors that could affect this.
There is much more information that could be discussed on this subject, so please don't use this information here as your sole source in making your decision.
Best Answer
This is definitely possible both with
VMware
andVirtualBox
and any other mainstream virtualization product as well I guess.On my
VMware vSphere
sandbox, I have created an additional virtual switch that is not mapped to any physical network adapters. This network is not visible/reachable from the outside world, but VMs attached to it can reach each other through interfaces using this switch, so it's perfect for a RAC private network with 1 host machine.In
VirtualBox
, I useNAT Network
(available since version 4.3) for RAC private network. It's a similar concept, a virtual network not visible/reachable from the outside world, but VMs with interfaces in this network can communicate each other through it.You can use the above for RAC public networks as well, so you don't need to allocate any IP addresses on your real physical network. For example, in
VirtualBox
, you can use 1NAT
network interface as "management interface", and define port forwarding rules on it, so you can access the VM from your local machine thorugh RDP/SSH without using the VM console. Then use anotherNAT Network
interface for the RAC public network, and anotherNAT Network
interface for the RAC private network, so 3 interfaces in total.I would not bother with
openfiler
, bothVMware
andVirtualBox
support shared virtual disks.