Running Oracle on VMware is troublesome on two points – support and licensing. Last week I have participated in Oracle licensing workshop held by local Oracle authorized distributor so in this article I will address the second point. It seems the bigger market share a software company has the more complicated its software licensing policy is with the goal to get as much money from their customers as possible.
VMware virtualization platform is considered soft partitioning (as opposed to Oracle’s own Oracle VM) which means that number of virtual CPUs of the Oracle virtual machine does not affect the number of needed licenses; but the number of physical CPUs on the host does. When designing virtualized environment it is the best to put as many Oracle databases on one host as possible. As you have to license all physical CPUs on that host it does not matter how many virtualized Oracle instances run on it. But what about VMware clusters? The cluster in VMware environment can have two functions – Distributed Resource Scheduling (DRS) and/or High Availability (HA).
In the case of DRS cluster it is the best to disable DRS on Oracle virtual machines so they stay on the designated Oracle licensed host. If one host cannot run all the Oracle virtual machines then it is possible with vSphere 4.1 to create Virtual Machines DRS Groups and Host DRS Groups and pin group of virtual machines (in our cases those with Oracle) to specified hosts with DRS affinity rule “Must run on hosts in group”. Only those hosts then have to be Oracle licensed even if they are part of a larger DRS cluster.
What if you need to put the Oracle licensed host in a maintenance mode and migrate all virtual machines for a short time away? See the next paragraph.
Oracle has a special provision for licensing data recovery environments. It says that in failover mode if the primary node fails, then an unlicensed second node can run the Oracle product for up to ten separate days in any given calendar year. Once the primary licensed node is repaired the Oracle product must be failed back to it. It seems this provision can be used both for DRS maintenance mode and HA cluster. If there are more than one Oracle virtual machines running on the primary node, they all have to be restarted (in case of HA) or migrated (in case of DRS maintenance) on the same secondary node. As the cluster can have more than two nodes it must be secured that they start on the same host by DRS affinity rule which is as of vSphere 4.1 integrated with HA. The rule could be either “Keep Virtual Machines Together” in case there is only one Oracle licensed host or “Must run on hosts in group” as mentioned in the previous paragraph.