Sometimes it seems as if there is a "do not virtualize SQL Server" echo in the SharePoint community, at conferences, and events. For many practical reasons, I reject this sentiment and believe that SQL should be one of the first roles to virtualize.
Here's ten quick reasons:
1. Storage - SAN storage, local drives or ISCSI drives. Storage can grow as requirements change.
2. Performance - Yes, SQL Server requires a lot of resources, but if you use resource governor in SQL Server 2008 and later you can control a lot of the spikes. In a virtualized environment, the pool of shared resources provides good spillover coverage for member servers.
3. HA - VMotion. Enough said. Sure, you can still leverage SQL native HA features such as clustering, replication, log shipping...but hardware failures occurring at a local site can be covered seamlessly with VMotion and require far less configuration at the DBMS level.
4. VMWare Snapshots - Right-click and snapshot before making configuration changes. Big sigh of relief for QA processes.
5. VMware Templates - Build an operating system, template it, re-use it over and over again.
6. SAN Snapshots - Many of the current storage arrays, such as Dell EquaLogic, ship with snapshot capabilities.
7. Centralized Management - Yeah, I like being able to access the whole farm from one console and monitor what is going on, quickly remote into systems.
8. Disaster Recovery - Advanced features to help facilitate remote site recovery. Several more layers of data and configuration protection than physical environments.
9. Physical to Virtual - Drivers aren't an issue, capture and protect important systems that happen to be running on legacy hardware.
10. Little Conveniences - How about an ISO drive where you can store and back up all of your ISO images for operating systems, software applications, etc.