Virtualization may be the best direction to go for your company, but like any good thing, there are always exceptions. Whether or not to virtualize tier-one applications is a question every company must carefully review. Virtualizing IO or throughput-intensive SQL database servers that support tier-one applications is no cake walk, especially those that focus on real-time data. This is not to say it cannot be done, but rather it’s a question of practicality.
When I’ve had to design for systems with multiple tiers, I have always hit a bottleneck when putting heavy IO database servers on physical hardware. VMware says that with vSphere 5 these “Monster VMs” can be virtualized. vSphere 5 supports larger VM configurations, that with the right hardware configuration can support up to 32 vCPUs, 1 TB of memory and upwards of 1 million IOPS. The additional features and support vSphere 5 offers for larger VMs are great.
Issues with large tier-one application VMs that I’ve come across are usually with storage IO, CPU and/or MEM latency. Latency in CPU or MEM can usually be addressed by using the reservations feature. While reservations can be a good, they have a downside. Reserved resources can’t be used by other VMs, which can reduce consolidation ratios. For example, if you have an HA/DRS cluster and use CPU or MEM reservations without planning for them upfront, you’ll be in for a big surprise. You may get far less utilization out of the servers than expected.
Profile-driven policies and storage IO, which now supports NFS, can be used to help make sure tier-one VMs get what they need to perform well. However, this takes a lot of work hours; first tweaking the OS and/or the database system, then post -application implementation when the application is running and experiencing issues. At this point, the end user is unhappy and virtualization is becoming a menace, not a tool.
It could be argued that proper load testing must be done before releasing to production. Although this is a best practice, the fact remains that not all companies have the luxury of owning such a tool or the knowledge to effectively use one. Home-grown applications are hard to virtualize, and although they might not be completely optimized for physical hardware, they work well enough, and save you some of the internal and technical headaches.
With the complications that accompany virtualizing tier-one applications, keeping these applications on physical hardware can be the best bet. This ensures the end-user has the best experience for now, and the applications can be virtualized later, when there is a system in place that makes the task easier.
Are you virtualizing tier-one applications? Why or why not?
Unique control with VM-level actions for infrastructure functions including snapshots, replication and QoS make protection and performance certain in production, and accelerate test and development cycles.