Virtual utility computing, finally a reality (mostly)

For some time vendors of all kinds have been pitching the promise of utility computing for heterogeneous systems/infrastructure. “Just throw more servers in the pool, no need to think! It’s easy!” – yea, right. It’s an easier task if all your systems are running the same application – great load balancers have been around a long time to help with this, but not when they are running different applications and have different load profiles. The promise as pitched is quite compelling – if your compute pool is running hot, just add more resources to a large pool of cpu/memory/disk, allowing the “system” to load balance, handle failures, and alert of issues. The issue has been that the tool sets to implement, manage and maintain have been lacking – weak partitioning tools, HA schemes that didn’t work in all situations, difficult migrations or downtime events to add more resources.

Recently mrz took on the task of upgrading our VMWare infrastructure to the latest update – 3.5. As part of that upgrade, he investigated and subsequently implemented dynamic resource scheduler or DRS. Once up, he moved over all the ops/IT virtual machines (VMs) to the resource pool.

After seeing how it works, I think truly utility computing may finally have arrived. Once migrated to the resource pool, the system took inventory of all the VMs, inspected the load (both cpu and memory) of all the esx hosts, then made recommendations on how to load balance them – but thats not all. With *no* downtime, it automatically performed these migrations, with no user interaction via vmotion (which in itself is pretty amazing). Super slick. It keeps tabs on how loaded the esx systems are, will perform VM migrations automatically if cpu load or memory usage on servers change, allows for reservation of cpu/memory and gives partitioning functionality in case you want to make sure 2 VM’s aren’t ever on the same esx host.

After working with the system a bit – it became quite apparent that the idea of utility computing for heterogeneous machines is finally here, center stage. No longer do we need to manually balance pools of VMs, worry about downtime for upgrades, etc – it’s all handled. Quite literally, as we need more capacity we simply add more hosts to the resource pool.

As far as it’s come, I still think there are some areas for improvement (which may have already been solved, I just haven’t heard about them):
* Storage – still have to allocate a VM to an array of some kind. While there are ways to move the VM storage around while live, it’s not tied into the DRS system and is a manual process. I’d love to treat storage (both space and iops) as a resource pool and have dynamic allocation of storage resources.
* Management tools – I know of some third party tools that help with this, but I think this should be a focus point for VMWare. They have the most information on the system and really should make metrics a top priority.

Regardless, it’s come a long way, and using virtualization for the right areas of your infrastructure can really pay off. It’s really made a real difference to our users and admins in the areas of management, power usage and overall server utilization. Now, if someone could *please* compete with VMWare – some competition (no, Xen is not there yet, but it up and coming) would truly be welcomed.

No Comments Yet

You can be the first to comment!

Leave a Comment

You must be logged in to post a comment.