Oracle, Open Source and Virtualization…

Due to other commitments, I only made it to 2 presentations today…

Executive Panel: Oracle and Open Source:

The session was a seeded question and answer session to highlight Oracles commitment to “Free” software downloads, Open Source and Open Standards. If you follow the subject areas, I guess you know the score. The standout points for me were:

  • InnoDB and BerkeleyDB are have continued investment.
  • The linux kernel community is really happy with the work being done by Oracle. Oracle are not considered an evil empire by the inner circle.
  • The new Windows drivers for Oracle VM are currently in use within Oracle. No fixed release date, but they are on their way, so Windows performance under Oracle VM should improve when this is released. The were expected some time ago, but Microsoft have revised a bunch of APIs, so they had to be rewritten.
  • Oracle VM has supported Live Migration of VMs since it was released, but this is a manual process. Something similar to VMwares automated VMotion will be introduced at some point, but it will probably be under the control of Enterprise Manager/Grid Control, not part of the Oracle VM product itself. The impression I got was that this is a feature they want, not one that is in development, so don’t hold your breath.
  • Oracle are continuing to invest in a variety of Open Source products and Open Standards. Obviously they have their own interests at heart, but being open source means it is helping the Open Source community generally. If Linux get’s better, Oracle benefit, but so does everyone else.

Oracle Database in a server virtualization environment

A general run through current support/certification of virtualization by Oracle. Standout points include:

  • In addition to Oracle VM, Oracle support a variety of hardware partitioning and OS partioning methods provided by the big UNIX vendors. There was a URL of a certification matrix on OTN, but I can’t find it now. 🙁
  • Oracle support dynamic resource configuration in single instance databases. So you can alter the number of CPU’s and amount of memory allocated to a VM and Oracle will notice and work with it. Some of this was possible since 9i, but there were issues. It’s now solid for (+ patches) and
  • Oracle support RAC on Oracle VM, but the configuration is quite limited at the moment. The RAC must be on OEL 5.1 or above and be running on OVM 2.1.2. In addiiton it must be paravirtualized and is only supported in static mode, so there are no dynamic changes to CPU or memory and no live migrations. I assume over time some of these restrictions will be lifted and 11g support will be added.

As far as best practices go, I guess most of it was pretty standard:

  • Don’t overcommit resources. You can’t expect good performance if you have 1 core running 5 VMs.
  • Standard CPU, memory, I/O and network sizing/thoughout considerations still apply.
  • RAC should use dedicated NICs, not shared ones.
  • NIC bonding best done at hypervisor level (Dom0), not at the VM level.
  • All VMs, especially RAC, need time synchronization (NTP).
  • Use native physical devices and multipath or NFS. This will perform much better than virtual disks.
  • Oracle still recommend consolidation of databases, rather than many small databases/instances. Only split things into multiple VMs, database or instances when it is necessary, otherwise you are wasting resources.
  • Expected performance will depend on platform, application type, workload type and resource allocation.

The licensing issue will no doubt catch many people out. Oracle doesn’t recognize software virtualizations ability to limit processing to specifc processors or cores, so by default you must license the Oracle software for all cores on the system when using software virtualization. Those platforms which support hard partitioning (big UNIX vendors) can use per-core licensing. If you plan on using a server just for VMs running the database, this is fine, but if you want to run half database and half app server you will be buying double the CPU licenses that you are using. Bummer. 🙁

Update: A talk this morning says pinning the VMs to specifc cores is within the spirit of the licensing agreement. Nice to see a consistent message… Not! 🙂