I recently read via Virtualization.info that VMware have released their "Best Practices Guide" for Exchange 2010. It transpires this was actually released a couple of months ago, however it’s the first time I’ve seen it and I certainly think if you run VMware vSphere and plan on running Exchange 2010 it’s worth a read.
VMware say in the best practices guide that "Exchange Server 2010 is proving to be an even better candidate for virtualization than its predecessors.", "The Exchange 2010 Mailbox Server role is lightweight, fast, and ready for virtualization." and "performance for a virtualized Exchange server is comparable to a non-virtualized server running on the same hardware".
So from VMware, it’s no surprise to hear that Exchange is a perfect workload to virtualize on their platform. If you’re currently running vSphere, and considering virtualizing Exchange 2010, VMware will definitely support this on their ESX platform. However, there are a few caveats…
If you’re currently running an Enterprise vSphere deployment, shared storage will most likely be your number one platform for all your VMs running in your virtual environment. Without it, the key VMware features like vMotion, DRS and VMware HA don’t work and you’re left with your eggs in a number of delicate baskets. So it won’t be shock that VMware say "It is preferable to deploy virtual machine files on shared storage ".. "This is considered a best practice for mission-critical Exchange deployments, which are often installed on third-party, shared-storage management solutions.". While I agree with the first part of that, I certainly don’t agree that it’s still best practice to use shared storage for Exchange – for starters Exchange 2010 no longer supports single copy clusters and CR based clusters such as DAG and CCR really excel when using DAS. Understandably, for VMware this is the main issue. vSphere in the Enterprise == Shared Storage, so to maintain this model they need to recommend shared storage for any application running atop the platform.
So, you’ve really got to use shared storage for Exchange on vSphere.. But that’s OK, isn’t it? NFS is getting wider acceptance for running VMs on and of course iSCSI is a great middle ground between F/C and NFS for using traditional storage protocols at a decent price… Well, iSCSI is supported for standalone Mailbox servers, but "For Mailbox servers that belong to a Database Availability Group, only Fibre Channel is currently supported".
According to VMware, though, only supporting DAG on F/C may not be a major problem, though. Instead of using DAG to have multiple database copies, VMware say "The building block approach is a recommended best practice for creating a standalone Exchange Mailbox Servers running on vSphere using pre-sized virtual machine configurations. Exchange servers that have been divided into virtual machine building blocks (as opposed to larger, monolithic Exchange servers) can simplify server sizing during the initial deployment and create a highly scalable solution using virtual machines with predictable performance patterns.". So if you don’t mind only having one database copy (or copying it at the array level), the the combination of iSCSI+VMware+Exchange 2010 may be for you.
It’s fair to say although there are a few disappointments in the document – like the focus on shared storage, gentle push to avoid DAG and the use of F/C disks in RAID 10s instead of large, dense SATA disks, it’s still a worthwhile read (so long as you follow Microsoft’s own best practices) and will help with small and large Exchange deployments on vSphere alike.
Update 1: Microsoft have recently posted (a few hours after this post, taking into account the time difference) a response to the Best Practices guide: Answering Exchange Virtualization Questions and Addressing Misleading VMware Guidance
Update 2: VMware have responded to Microsoft’s above post, addressing why VMware HA is a great compliment for DAGs: Virtualizing Exchange on VMware Provides More Recovery and Availability Options