It’s very difficult to write about Exadata Appliance, the famous jewel in the Oracle offering, machine that combine HW and SW that are engineered to work together.
There is no point to repeat what you can already know or find in books, web or wherever.
On the other side, rarely you can find that someone write negative side of Exadata appliance.
For that reason I decided to expose shortcomings of Exadata from the engineer point of view, that you can easily compare it with commercials.
I assume that most of the readers already know architecture and all parts of Exadata machine, generations, versions, setup etc. For that reason I won’t go in detail to describe it.
Let’s start with the most obvious cons against Exadata.
OS Virtualization is the most obvious one as Exadata is delivered configured with Cluster which consists of 2 nodes with OEL (Oracle Linux) as basic OS.
As per Oracle Doc, the only supported virtualization technology on Linux is OVM (Oracle Virtual Machine). You can use VMware or KVM, but that is not supported (or limited supported only Oracle defects) and you have to license the whole server machine which can be costly option for Oracle SW.
To leverage it, client needs to destroy delivered setup, install OVM and configure 2 node cluster from the beginning.
One issue with that approach is that task is time consuming an demanding/difficult task to do.
The other issue is if there are already many databases deployed on Exadata, in which case you need to first export all databases on some other server, completely destroy cluster and Databases there, install and setup OVM, install Oracle Grid/Clusterware, install Oracle database SW and import all databases back.
It’s a huge task to do, that include several teams to work together (Network team, sysadmins to install and properly configure Oracle VM, and DBA’s to do all tasks related to exp/imp databases, Install and configure Cluster and DB SW, and re-import databases back).
Third issue is that Oracle VM adds additional layer in infrastructure that you need to maintain (setup, patch, upgrade…).
Fourth reason is that I’ve never seen large, high performing Oracle databases to run on Oracle VM.
Usually OVM is used for dev Db environments as well as for Oracle Middleware (WebLogic, SOA…) to reduce licensing cost and because there are no heavy IO load in both cases, or for smaller production databases (I wish someone can provide user case where OVM is used for a large, heavy prod Db).
But what Oracle on Exadata has to offer as server virtualization replacement?
Up to 11g, the best Oracle can offer is Resource Manager, which is limited to only one instance and that is the major drawback.
If you have several instances, resource Manager cannot help to control them.
Besides, there are numerous bugs related to resource Manager, which is complex part of Oracle database.
With 11g it’s possible to do Instance Caging. This is definitely step in right direction, as you can limited the number of CPU resources that are at disposal to some database instance.
Behind the scene, Instance Caging leverage Resource Plan to control the available CPU.
While you can control CPU limits, memory for example still cannot be controlled (no PGA limit in 11g).
Besides there will be many Oracle processes per instance which can have influence on OS stability.
With arrival of 12c database, the main feature is called Multitenancy, which means that you can have many plugable instances under the root instance, and more powerful Resource Manager with more features to control all instances.
In addition, this time you can control the memory (PGA_AGGREGATE_LIMIT that sets PGA limits, similar to SGA_MAX_SIZE).
Although Multitenancy will significantly reduce the number of Oracle processes (many background processes will be common for all plugable databases), it still has many drawbacks.
First one is that you have to license it, which will increase your costs, while OS virtualization is much cheaper or completely free (like Oracle VM which is based on open source Xen hypervizor).
Second one is that Multitenancy targets light dev/test or small production databases.
Third one is that OS Virtualization platforms have many advantages and features that are not available with Multitenancy option, like CPU pools distribution (capped and pools), memory management, IO management etc + moving VM’s from one server to the other one, failover etc., just to mention few features.
On the following picture you can see flexibility of OS virtualization (Migration and HA features)
Next picture is showing flexibility in managing many VMs
Next picture is showing flexibility at your disposal when VM needs more resources (scale up)
The last picture is showing live VM migration to another host without downtime
Here I mention only a few the most important features, but there are a lot more.
Besides all those reasons, with OS Virtualization you’ll have lower number of OS processes (but with more threads) that won’t impact OS stability.
Here I mention only a few the most important features of OS Virtualization that should be just enough to get impression what you cannot do on Exadata.
In the next blog I’ll continue with the rest of shortcomings of Exadata appliance.