Is It a Good Idea to Run a Database on a Virtual Machine?

The eWeek Knowledge Center features IT experts answering questions about the most pertinent enterprise technology issues of the day. This installment features Kevin Closson, Chief Software Architect, HP-PolyServe.

Q: Whats your take on Microsofts announcement that they will allow unlimited virtualization of SQL Server at no extra charge? Is this a sign that virtualization will really change the way people deploy database applications?
A: Virtualization is wonderful for bean counters who want to improve utilization, but it isnt always wonderful for users who want performance. What were really looking at here is the phenomenon of database sprawl. It used to be that people ran one or two databases per server. As they needed more databases, they added more servers. Then Moores law kicked in and processors started to get extremely fast. Right around the same time SQL Server started to get pretty fast too, so people started to pack lots of databases on virtual machines. The problem is that just because you have a lot of small databases that arent using up all of your servers processor throughput, that doesnt mean each database doesnt need good input/output performance. Most of the time these applications might be sleeping and not using a lot of processor cycles. But when they wake and go critical - because some user is using them - they are still going to need reasonable i/o throughput to perform well for the user. And they cant necessarily get that when theyre running on virtual machines. The people in charge of paying for software licenses and datacenter floor space and electricity are happy with virtualization, because they are bean counters. But the users are not, because their database is being treated as a second class citizen.