Warakorn - Fotolia

How do you virtualize database servers?

Virtualizing database servers has consolidation and efficiency benefits, but you must carefully choose which databases to virtualize and which tools to virtualize with.

VMs traditionally host OSes, desktops and applications, but if you want to virtualize a database server, there are some extra steps you must take to ensure the process goes smoothly so you can reap all the available benefits.

Virtualizing database servers can offer advantages, such as live migrations, server consolidation, a reduction of physical infrastructure operational costs and more efficient resource allocation. However, a virtualized database can be sensitive to availability issues, resource consumption or overcommitting memory. It's important to research the issues before you virtualize a database server.

Ask which databases you can or should virtualize. For example, you might want to virtualize development, production or low I/O databases. Once you decide which databases you want to virtualize, you should monitor those systems to determine the performance and resource usage of those physical deployments before sizing the VM. Use monitoring such as Nagios, Zenoss or Zabbix to make this easier.

For example, Nagios enables you to monitor memory and disk usage, microprocessor loads, and the number of currently running processes and log files. The information that monitoring tools gather can give you insight into a server's current resource consumption and what resources you should dedicate to the VM.

Once you ensure that you have the resources to operate a database within a VM, you can begin to virtualize the database server. The process of virtualizing database servers should begin with virtualizing servers, supporting applications and hard disks. For example, you can virtualize hard disks as virtual hard disks or as pass-through disks. A pass-through disk is a physical disk that connects to a VM to serve as a storage source for a virtual disk with existing disk and file formats.

Deploy, integrate and virtualize a database server

You can enact virtualization through the deployment of hypervisors such as Microsoft Hyper-V and VMware vSphere, or through the use of virtualization tools such as VMware vCenter Converter or PlateSpin Migrate.

VMware vCenter Converter is a semi-automated physical to virtual (P2V) migration tool that can help migrate a physical machine to a VM. However, the VMs that vCenter Converter creates only support other VMware software as a destination. PlateSpin Migrate is a fully-automated P2V tool, which means it can virtualize infrastructure without any assistance from the end user.

Database applications can be particularly demanding applications and might require at least as many virtualized resources, such as vCPUs and memory, as they consume on a physical machine. In some cases, it might be necessary to adjust or increase the resources allocated to the resulting VM to ensure adequate database performance.

It's a good idea to keep the original database deployed and operational until the VM is fully tested.

Once a VM is available, admins can deploy the database within the established VM, connect storage and network resources, and test the database. It's a good idea to keep the original database deployed and operational until the VM is fully tested. At that point, you can redirect users to the virtualized database server and take the original database offline, and eventually retire and remove it from the infrastructure.

After you virtualize the database server, add resilience to ensure safe operation. It's important to continually monitor the performance of VMs. Performance levels could drop significantly if you don't properly provide the necessary resources, such as CPU or memory requirements, to each VM. You can use monitoring software to see if any VM requires more resources and then allocate available resources to it. You can also distribute workloads to keep from overloading a server.

A cluster is a group of servers that act as a single system that enables high availability and resiliency in the event one server fails. Establishing a database VM cluster enables multiple virtualized systems to share the workload and prevent large database failures if a VM or underlying server fails.

Live migration enables you to move a workload between servers and restart them using a backup or a virtual image. Migration gives the workload a level of flexibility if you need downtime or maintenance. For example, you can move a workload and restart it on a separate VM if the underlying server is updating.

You can also add resilience through replication. Replication copies data from one database server to another. You can use replication for disaster recovery so that when one database goes down, you can still access another copy of that database.

Dig Deeper on Containers and virtualization

Software Quality
App Architecture
Cloud Computing
Data Center