With a few tweaks to Xen virtualization, it’s possible to run Oracle databases inside virtual machines without performance issues, but you should be mindful of the support problems that may arise.
In the early days of virtualization, running Oracle databases in virtual machines (VMs) wasn't necessarily a good idea. The hypervisor needed to trap and emulate instructions from the virtualized operating system before sending them to the hardware. Called full virtualization, this method reduced the database’s performance when compared with running on bare metal.
That changed with Xen’s paravirtualization feature, which sends instructions directly to the hardware, bypassing the hypervisor. This feature eliminates the performance gap between the Xen virtualization and running on physical hardware, allowing you to virtualize Oracle databases without any performance worries. All brands of Xen virtualization offer this method, including Citrix Systems XenServer, SUSE Linux and Oracle VM. The only requirement is an operating system that supports paravirtualization.
Optimizing Xen virtualization for an Oracle database
When running Oracle databases in a Xen-based infrastructure, there are ways to ensure your workload is achieving the best possible performance.
First, you must optimize the hypervisor settings. In general, there aren’t many adjustments you can make to a hypervisor. But you can choose between paravirtualization or full virtualization. Generally, paravirtualization is faster for virtualized Oracle workloads. But you should always test which Xen virtualization method is faster, because speeds may vary depending on your database workload.
You also want to ensure that the virtualized OS, which is running the Oracle database, has access to enough hardware resources. For example, use CPU pinning to ensure that every virtual CPU reserved for the Oracle database is paired with a physical CPU core. In this configuration, all of the available physical CPU cycles are offered to the Oracle database.
Next, you must choose the right OS. Oracle databases mainly run on Linux OSes, most of which support paravirtualization. Even if you choose another OS, you can run a virtualized Oracle database without a performance hit as long as the OS kernel supports paravirtualization.
Ultimately, the real optimizations occur at the OS level. For instance, the kernel parameters must allocate enough resources for the Oracle database’s shared memory and simultaneously opened files. But this approach is true for every virtualization platform that runs Oracle databases, not just Xen virtualization.
Support considerations for running Oracle databases on Xen
So can you virtualize Oracle on any brand of Xen virtualization? From a technology perspective, the answer is yes. It doesn't matter if you run it on XenServer, SUSE Linux or Oracle VM.
But Oracle doesn’t support every virtualization platform. Obviously, Oracle prefers that you use Oracle VM, but the company also has qualified support for its databases running on VMware. And, as of now, XenServer is not an option.