Last week a colleague, who sells applications running on an Oracle Database, had some questions regarding Oracle and running it in a Virtual Machine (VM) on top of a VMware infrastructure with a customer.

1) How to license Oracle in a virtual environment?

I pointed him to an article about licensing the Oracle software in a virtual environment I wrote some time ago.

Oracle can namely be hard- and soft partitioned, where VMware, XenServer, Hyper V and Oracle VM are all marked as soft partitioning, while looking into the way Oracle VM can be hard partitioned I stumbled on the following how to do it:

There are two methods to pin virtual CPUs. You can use the xm command to pin a guests’s virtual CPUs or you can hardcode the CPU mapping in a guest’s vm.cfg file. The difference between pinning CPUs with xm and hard coding the CPU mapping in a guest’s vm.cfg file is the persistence of the CPU mapping. CPUs that are pinned with xm are not persistent between reboots. Hard coding the CPU mapping in a guest’s vm.cfg file is persistent between reboots. To comply with Oracle’s hard partitioning policy, you must hardcode the CPU mapping in a guest’s vm.cfg file.

For Oracle CPU licensing purposes it is required to hardcode the cpu binding in the vm.cfg file for each guest or virtual machine.

vm.cfg examples :
cpus = ‘0-3’
cpus = ‘0,1’

In the first case, only CPUs (or cores in actuality) 0 1 2 3 can be used for the guest; in the second case, cores 0 and 1. If you have a guest that has 4 virtual CPUs and you put cpus = ‘0’ in the vm.cfg file, then all 4 vCPUs will be scheduled on the same physical core. If you have a guest that has 4 virtual CPUs and want them to run on 2 cores, then you put cpus = ‘0,1’ in your config.

NOTE: On live migration, when using xm vcpu-pin or when you modify the config file using cpus = ”, the settings are lost and you need to repin the cpus on the other physical machine.

This is from the Oracle document:  Hard Partitioning with Oracle VM

With astonishment I read the note at the bottom stating that you, as a customer, are responsible  for repinning the vCPUs to the pCPUs when you are using live migration.  So if you forget to modify vm.cfg file after a live migration and let the Oracle VM run loose, you are obligated and liable to pay additional licenses because the DBA_FEATURE_USAGE_STATISTICS table will be filled with other CPU id’s.

For more information about Oracle faqs surrounding licensing see link


2) Why not use Oracle VM for the whole virtualization environment, because Oracle claims that Oracle VM is three times more efficient than any other server virtualization hypervisor?

I had to scratch my head for this one first. So Oracle says: Oracle VM is three times more efficient then any other server virtualization product, on their dutch Oracle site, strangely enough this remark is nowhere to be found on any English Oracle page. The last time I looked the latest released Oracle VM 2.2 is based on the Xen 3.4 hypervisor, so it even runs 3 times more efficient then XenServer with the same hypervisor, remarkable isn’t it.

I started a search on benchmark results because i got curious if Oracle could back up the claim they make, unfortunatly I could not find anything about it. Except the study from the Tolly Group which addresses native (physical) against Oracle VM. After reading that study the only thing they proof is that the best way to go is to go virtual, which made me smile.

On my search quest for benchmarks regarding Oracle on Oracle VM 2.2, VMware vSphere 4, XenServer 5.5 or Hyper-V Server 2008 R2 I did stumble on some results VMware has published a while back running Oracle on vSphere 4. VMware has published test results of vSphere 4 running Oracle using a TPC-C based workload, what is nice to see is that vSphere VMs can deliver close to native performance while running Oracle databases. Report.

So I asked my colleague: what are the business needs of the customer for a virtual environment?
Do they need to run only Oracle applications on it or also other applications from other vendors like Microsoft, SAP, etc. The answer was’t a big surprise, the customer also needs to run a large chunk of Microsoft applications in the virtual environment, so I headed over to the Microsoft SVVP website.

On the Microsoft website the following products have passed the SVVP requirements for Windows Server 2008 R2 and they are also considered supported on Windows Server 2008, Windows 2000 Server SP4 and Windows Server 2003 SP2 and later Service Packs, both x86 32-bit, and x64 64-bit.

VMware, Inc. (9)
Red Hat Inc. (4)
Citrix Systems, Inc (3)
HITACHI, Ltd. (2)
Riverbed Technology, Inc. (2)
Cisco Systems, Inc. (1)
Novell, Inc. (1)
Stratus Technologies Inc (1)

Hello, where is Oracle VM? In other words your Microsoft products, like Exchange 2007 and Windows 2008, are not supported to run on Oracle VM.

Yes Oracle as a company committed to the Microsoft SVVP program, but they do not have any certified hypervisor products like Oracle VM to run virtual machines on with Microsoft products inside. Even with the aquiring of Sun and Virtual Iron they still do not have a certified product to run Microsoft software on.

Companies busy choosing their enterprise hypervisor platform, will often not choose a second hypervisor platform for just a few server applications. By introducing a second hypervisor platform you add up to the overall TCO of your infrastructure, while increasing the management burden on the IT department. You will have to acquire more IT staff supporting the second hypervisor platform besides the first one, while it is not necessary today to have 2 hypervisor platforms.


3) What to do when replacing old hardware running Oracle applications, choose virtual or go physical?

Customers who bought a pServer 4-5 years ago with 1 pCPU are now facing the fact that dual core pCPUs are getting rare and pricy, so only pCPUs with 4 or more cores are a good option. As a customer you have the choice to go: a) virtual or b) stay on bare metal, but whatever you choose you are gonna pay more for licensing your Oracle software. If you want to start running virtual you have some decisions to make like which hypervisor platform to use and how to keep your licensing costs under control.

Running Oracle physical is license wise the easiest and the cheapest in a 1 to 1 comparison, because if you look at it by running an Oracle VM on top of a physical server it costs more then running it on bare metal, because you will have to pay $ 599 Support Price for a Oracle VM Premier Limited with max 2 pCPUs. This is ontop of the Oracle normal licensing price for the product you use.
(source: Oracle VM Support Global Price List December 1, 2009)

On the other hand when you can run multiple virtual machines on top of 1 pServer it gets attractive fast, because you only have to pay for the pCPUs in the pServer for that specific Oracle application.

Running Oracle virtual gives you all benefits server virtualization can bring you, like standardization, consolidation, lowering TCO, decoupling physical hardware from the OS, Mobility, Isolation and easier Business Continuity.


Concluding remarks
It is risky to use Oracle VM as your enterprise virtualization platform, if you have more than Oracle software to load into virtual machines, with for instance Microsoft Software you are going the unsupported route. Sounds familiar? isn’t that what Oracle is warning everyone who wants to run their software on for instance Hyper-V, VMware, XenServer or any other virtualization platform?

Oracle VM is not certified under the Microsoft SVVP program so running Microsoft applications, like Windows 2008 or Exchange 2007 for example, are not supported.

What is the future of Oracle VM? How is the acquisition of Virtual Iron and Sun going to impact the development roadmap of Oracle VM? With the acquisition of Sun they got another Xen based hypervisor namely xVM VirtualBox, will Oracle keep both Xen products or is one or even both headed for the recycle bin and will they continue with Virtual Iron? With acquiring Virtual Iron in may 2009, Oracle announced discontinued development of the Virtual Iron platform in spring 2009. Oracle says they are working to integrate the assets it acquired from Virtual Iron Software Inc. into Oracle VM, as of today we have not seen anything yet.

What is driving me nuts is that almost every document I studied from Oracle states the following on the botttom: For educational purposes only. Subject to change without notice. Has Oracle something to hide or what?  or is it just me being paranoid?
Can a company like Oracle move out of the beta stages and clearly state to its customers what they have to do, to be compliant with the licensing and support rules? Delivering clear and easy to understand rules, so the conditions are set and companies can work from there.

Time for Oracle to wake up and start modifying their license policy, because their current policy by licensing its applications per physical processor does by no mean favour running it in a virtual machine. Also the non transparent way of licensing and supporting Oracle products on a virtual environment is not in favour of Oracle and thereby its stock holders.

If they just make it easier to start running Oracle virtual on any hypervisor platform, by making their rules for support and certification transparent, more companies will choose to go virtual with Oracle and will decently  pay the appropriate license fee coming with it. Will be a win-win-win situation. Oracle will make more money selling licenses and support, companies are happy because they have a clearly stated supported solution and do not run the risk they are non-compliant with licensing rules and I get some more sleep.