Oracle 8i | Oracle 9i | Oracle 10g | Oracle 11g | Oracle 12c | Miscellaneous | PL/SQL | SQL | Oracle RAC | Oracle Apps | Linux

A Cure for Virtual Insanity: A Vendor-Neutral Introduction to Virtualization Without the Hype

The purpose of this article is to provide a brief introduction to virtualization, without getting too bogged down in technical detail, or vendor-specific politics.

What is Virtualization?

In my opinion, the following three sentences are the most important points in defining virtualization:

For the purposes of this article, we can assume a virtual machine is made up of virtual hardware, on which you can install an operating system and applications.

Virtual Machine

During this article, the term "host" will mean the physical server, while "guest" refers to a virtual machine.

How Does Virtualization work?

Variations on virtualization have been discussed and implemented since the 1960s, so it is far from being a new concept. There are several types of virtualization, but their classificatons can be a little tricky, since there is a little crossover in some cases.

In the early days of virtualization, some of the big-iron vendors offered hardware virtualization, where the hardware itself was responsible for dividing resources between virtual machines and making sure system calls from multiple virtual machines could not interfere with each other.

An alternative to hardware virtualizaton is OS virtualization, where the operating system takes on the role of managing the host resources.

The final group to consider is software virtualization, where a program called a hypervisor is used to manage the resources on the physical server. Software virtualization on commodity hardware is probably the most common form of virtualization these days.

Types of Software Virtualization

There are three main types of software virtualization:

The different vendors of virtualization software have different preferences for the type of software virtualization used, but most focus on paravirtualization and hardware assisted virtualization, with combinations of the two also.

Types of Virtualization

What Virtualization Products Are Available?

There are several virtualization products available from a number of vendors. Each have pros and cons, so it is difficult to pick one product that could be considered "the best". The available products can be split into two basic types.

Some common virtualization products are shown in the diagram below.

Types of Virtualization again

You will note that I've classified KVM in both groups. This is because in my opinion it doesn't fit neatly into either classification. On the one hand, it is totally dependent on the Linux installation, making it seem like a hosted solution, but it is so closely tied into the Linux operating system it is effectively turning the Linux installation on the host into a hypervisor. Depending on your virtualization politics, I think it is possible to justify it's inclusion in either category.

Why Should You Care About Virtualization?

Over recent years there has been a lot of talk about server consolidation to reduce data center costs. It is often cheaper to divide one big server into multiple virtual machines, than to buy a server per application, especially if most of those physical servers would be running at less than 100% capacity. So virtualization can provide a good combination of application separation and cost savings.

Less physical servers results in associated power savings as far as hardware is concerned, but it can also reduce peripheral costs associated with data center space, like requirements for space, cooling and battery backups.

In addition to cost savings, virtualization can provide increased flexibility in a number of key areas:

What's the Deal With Licensing?

Licensing in virtualized environments can be a little confusing at first.

For the hypervisors themselves, most of the vendors provide free virtualization products, reducing the barrier to entry. In reality, you will probably require the additional management tools, features and support associated with the licensed products.

More complicated is the licensing of software running in virtualized environments. Using Oracle as an example, they do not recognize software virtualization without hard partitioning as a means of reducing licensing costs.

What does this mean? If you buy an 8 core physical server and create a VM with 4 virtual CPUs running the Oracle database, you still need to buy database licenses for 8 cores, not 4. If you are consolidating database workloads on to a server this is not a problem, but if you were planning to run mixed workloads, like 4 cores for database and 4 cores for application server, you will be required to buy double the licenses you believe you are using.

So consolidating mixed workloads on VMware products, on which Oracle do not recognize hard partitioning of CPU resources, is not practical from an Oracle licensing perspective.

In contrast, Oracle recognise hard partitioning in Oracle VM. That is, you can associate virtual CPUs with physical cores.

Provided you are using Oracle VM properly, you can limit your Oracle licensing to a subset of the cores available on your physical server.

The key here is to be very careful when deciding on your virtualization product, paying special attention to the licensing implications.

To complicate matters further, the relationship between virtualization farms/clusters and licensing is also a little obscure. The default position of Oracle is that in a cluster of physical servers, Oracle is "capable" of running on any of the servers in that cluster, so all the CPUs/Cores in the cluster must be licensed. In the case of a VMware cluster, where Distributed Resources Scheduler (DRS) can move VMs between servers for optimum resource utilization, you would have to break your farm into multiple clusters, each for a specific purpose, as shown in the diagram below.

Distributed Resources Scheduler (DRS) High Availability (HA) Cluster

The use of Mandatory Host Affinity allows DRS to be limited to specific hosts within the cluster, allowing a unified cluster, while still complying with the Oracle licensing terms, as show in the diagram below.

Unified Distributed Resources Scheduler (DRS) High Availability (HA) Cluster

Provided you can produce evidence that your Oracle-related VMs are limited to specific machines in the cluster, the default licensing position can be challenged, which has happened on numerous occasions, as documented here.

Remember, don't embark down any path without first agreeing your setup and licensing with Oracle Licensing Management Services (LMS). Avoid speaking to sales staff or technical people about this, as they are often badly informed about the licensing implications in this regard. You *must* get this stuff down on paper from LMS directly. You don't want to get any unpleasant surprises down the line.

It is worth mentioning that Amazon RDS introduces a new licensing model.

What is Amazon RDS for Oracle Database?

Amazon Relational Database Services (RDS) for Oracle is a Software as a Service (SaaS) model for Oracle databases, implemented using Oracle VM. It provides a number of features including:

Amazon RDS for Oracle supports the existing Oracle licensing model, know as "bring your own license", but also provides an on-demand licensing model for Standard Edition One databases.

The RDS feature set gets extended on regular basis, and many Amazon services see regular price reductions over time, so keep checking the RDS website for the latest information!

One thing to remember about RDS is it does not provide you with all the database features you may be used to. Many administrative features, including access to the operating system and file system are off limits. Instead, some of these features are made available via APIs. As a result, you need to make certain the available feature set suits your needs.

What About Support?

The support status of virtualized environments can be a source of confusion for many people. This is mostly because of mis-information that has been published over the last few years.

For a long time, Oracle have supported many of their products in virtualized environments provided by VMware and Oracle VM. This includes the database, applications servers and even RAC installations. A recent announcement (June 2013) has extended this support to Windows Hyper-V and Windows Azure.

Where most of the confusion comes from is Oracle's stance on certification of their products in virtualized environments. For a long time Oracle only certified their products running under Oracle VM. More recently they announced certification for Oracle products on Windows Hyper-V and Windows Azure. Currently there is no certification for Oracle products running under VMware. The impact of this is, if you come across a bug, that is not considered a generic bug, while running their products under VMware, Oracle have the right to ask you to prove the issue is reproduceable on physical hardware. See Support Position for Oracle Products Running on VMWare Virtualized Environments [ID 249212.1].

That sounds a little scary, but I've not heard of many cases where Oracle have played this card. In an attempt to counter this stance, VMware recommend opening service requests with their Global Support Services (GSS) in any problem situations.

What's All This About Virtual Insanity?

Every environment, physical or virtual, can have its own set of problems, but most of the problems people encounter with virtualization tend to be because they don't size their physical hardware appropriately. Consider the following points when using virtualization:

For more information see:

Hope this helps. Regards Tim...

Back to the Top.