Virtualizing servers is huge right now. And thanks to VMWare it is very easy to build virtual machines. In most of IT virtualizing servers is a good think. In the database world, that isn’t always the case. As we know SQL Server uses a lot of memory and CPU resources. If you try to virtualize a high load SQL Server you could end up with all the resources of the virtual server being used by the single virtual server.
Now don’t get me wrong. If you have a small server with low load which has a SQL Server on it, such as a Blackberry Enterprise Server, that may be an excellent server to virtualize. Your production CRM database, probably wouldn’t be a good server to virtualize as it probably needs more CPU and memory resources than your Virtual server would be able to afford to give it. Now that said; if your VM Servers are huge servers with hundreds of Gigs of RAM and lots of CPUs (such as the new HP DL 580 and 585 models) and rack space is tight, then virtualizing SQL Servers might be a good plan provided you can deal with any disk IO issues.
In addition to the CPU and memory concerns there are the disk performance issues to look into. Typically when setting up a virtual machine, the disk drives are also virtualized. This means that to the virtual server host the virtual machines disks are simply files stored on the file system. This probably isn’t the best way to store SQL Server databases (or any system which uses the disk subsystem a lot). If you can setup your disks to be mapped directly to physically SCSI arrays you can remove this potential problem. Check your VM solution to see if this is supportd (VMWare does, I don’t know about Microsoft Virtual Server). If you can provide information about this feel free to post as such in the comments.