Sunday, April 7, 2013

Virtualizing Oracle and Hadoop


Charles Kim, Nitin Vengurlekar  and I are doing a number of presentations on virtualizing Oracle and Hadoop at the Collaborate 2013 conference in Denver.  I thought I'd share a few of our insights and things we will be talking about around the virtualization of Tier One platforms which include Oracle, Hadoop and Business Critical Applications. 

Virtualizing Oracle Databases  Business Applications and Hadoop
Hypervisors today are getting faster with less overhead.   When you look at benchmarks being published today on running Tier One databases and applications the overhead can get down to 6% or less.  This low level of overhead means you can run 80-90% of all database servers in a Virtual Machine.  Critical systems that require ten of thousands of IOPs, high IO throughput, and excessive CPU requirements may generate more than the 6% of overhead.  If your application suffers from performance issues today, your best bet is to stay on the physical servers until your performance issues are isolated and resolved.  The rest of the typical business critical applications and database servers can run successfully in a virtual environment.   

Rapidly Provision Oracle on Virtualized Infrastructure
Imagine a world where your system administrators can provision a fully functional Linux server that is patched with all the up-to-date kernel parameters, updated device drivers, and updated configurations in 1 hour.  The time that you make the request to the time that you get access to a server that has a fully configured Red Hat 5/6 or Oracle Linux 5/6 environment is within one hour.   On top of all this, the build is perfect every time.  This should be a reality for most companies today.

Imagine providing a fully patched Oracle database on 11.2.0.3 with PSU 5 (January 2013 PSU) applied to your customers in 1 hour.  There is no reason why this cannot be accomplished today with the infrastructure that is provided by VMware and Oracle.

Lastly, imagine provisioning RAC clusters in matter of hours.  Imagine being able to provide a fully patched 2 node/3 node /4 node Grid Infrastructure with ASM and a fully patched database within one day.  This presentation does not go into the secret sauce of being able to do this but will lead you in the right direction.   Oracle and VMware provide the means to be able to provision even the most complicated RAC infrastructure in one day.  We no longer spend weeks and even months to setup our RAC environments.

Create Golden Image Templates
The concept of creating a golden image applies at all levels of the stack.  In the end, we need to create a golden image virtual machine template.  Before we can create a golden image VM template, we need to create a golden image OS.   This does not come over night but can easily be established.  There has to be lot of collaboration between the system administrators as to standards and policies.  Furthermore, someone has to be the “owner” of the templates to make sure all the standard build is applied to the golden image template.  As we mature within the organization, we can build automation to simplify the build process and parts of the builds that require manual intervention.  The level of automation will dictate how long it takes to provision the Linux VM.  Obviously, more you automate, the less time it will take.

As DBAs, we will want to focus on creating golden images of the database eco-system.  We need to create a golden image Grid Infrastructure stack.  We also need to create a golden image database software stack.  Finally, we need to create a golden image database to deploy to all the environments.  We can automate all of the above components to simplify and reduce the amount of time to provision Oracle databases.

Building An Enterprise Virtual Platform
Setting up a VirtualBox, VMware Fusion or VMware Workstation VM is pretty simple.  However there is a big difference in skill set required to  set up a bare metal hypervisor for running a POC and/or benchmarks.   It's then another thing to design, configure and implement an enterprise virtual platform for running Tier One platforms.   They key to building an enterprise virtual platform is to follow best practices and reference architectures.  Four levels of best practices that have to be followed include:
§  Validate virtualization and software configurations with vendor hardware compatibility lists.
§  Follow recommended reference architectures.
§  Follow virtualization vendor's best practices, deployment guides and workload characterizations.
§  Review storage vendor recommendations.
§  Validate internal best practices for configuring and managing VMs.

As we build out the enterprise virtual platform, standards will need to be created and tightly controlled.  Process and procedures for virtual machine deployments will also play a big factor in how successful your virtualization journey becomes.

Why Virtualize Oracle and Hadoop Environments
   Virtual Servers offer significant advantages over Physical Servers.
   Enabling Oracle or Hadoop as a service in a public or private cloud.
   Cloud providers are making it easy to deploy platforms for POCs, dev and test environments.
   Running a Consistent, Highly Reliable Hardware Environment.
   Standardizing on a Single Common Hardware Platform (software stack).
   Virtualization is a natural step towards the cloud.
   Cloud and virtualization vendors are offering elastic solutions.

Virtualization Features
These virtualization features offer a lot of additional functionality to Oracle database servers, applications and Hadoop environments.
Faster provisioning
Live Cloning
Elasticity
Live migrations
Templates
Multi-tenancy
Live storage migrations
Distributed Resource Scheduling
Storage I/O Control
High Availability
Hot CPU and Memory add
Network I/O Control
Live Cloning
VM Replication
16Gb FC Support
Network isolation using VXLANs
Multi-VM trust zones
iSCSI Jumbo Frame Support
VM Backups
Distributed Power Management
Node Affinity/Anit-Node Affinity

We cannot go over all the virtualization features in this paper.  We do plan on reviewing all of the terms and features in our presentation.  Also at the presentation we will provide the subtle differences between the two vendors.

vMotion / Live Migration
vMotion / Live Migration, by far, is one of the biggest benefits of a virtualization infrastructure.   With this feature enabled, we can migrate an active VM to another host machine without any downtime or disruptions while maintaining application services to users.  Granted the application may experience a slight degradation in performance, there will be no data loss during the few minutes needed to move a VM to another host machine.  It will be completely transparent to the applications that the live migration (vMotion) occurred.

Imagine if you lost the network card on one of the host machines and need to take the server down for maintenance.  In the absence of Oracle VM or VMware, you would experience a complete outage in a non-virtualized world.  If you happen to be on a RAC environment, you would run your databases in a reduced capacity.  In the virtual world however, we would simply move your database server VM to another host machine, perform our maintenance, reboot your host machine and let the database server VM migrate back.  While this is happening, you would never know that it happened.

High Availability (HA)
With virtualization, we automatically adopt what is known to be HA in the virtualization world.  If the host machine crashes for any reason, we can failover the VM to a surviving host machine in the cluster.  This happens automatically unless we set CPU and/or memory limits beyond what the host machine is capable of handling.

With HA, some companies may be able to forgo on RAC licenses if they are strictly leveraging RAC for high availability.  If customers can withstand a 10-15 minute outage for the VM to  re-start on a surviving host machine, you maybe able to eliminate your RAC licenses.

Distributed Resource Management (DRS)
Leveraging the vMotion / Live Migration infrastructure, we can evenly load balance the work load of every host machine in the virtualization cluster.  If one host machine becomes over-loaded, we can move the VM or VMs to a less loaded host machine.  This automatically happens without the users experiencing any perceived outages.  We can establish affinity and anti-affinity rules to even move VMs together with other VMs.  Again, we should not be afraid to fully leverage this technology.

In our detailed paper on "Virtualizing Oracle, A Technical Deep Dive we provide detailed links on best practices for virtualizing Oracle.  

No comments:

Post a Comment