Storage DRS of Exchange 2010 Workloads
On September 15th, VMware released a new whitepaper entitled “Microsoft Exchange Server 2010 Performance on vSphere 5.” If you are interested in virtualizing Exchange 2010 (or really any mission critical application) I’d recommend giving it a read.
One of the interesting things they’ve done in this test aside from scale up/scale out testing is to formally test vMotion and Storage vMotion during LoadGen. LoadGen, if you are unfamiliar, is a Microsoft tool used to simulate user activity in an Exchange environment and measure user response time.
I won’t spoil the ending of the report, but as expected the vMotion and Storage vMotion operations did not cause exceptions that would cause the LoadGen test to fail. In fact, the Storage vMotion had almost no impact whatsoever.
This brings up an interesting point – since VMware was able to prove that Storage vMotion caused no impact even during an Exchange performance test, it may be a good candidate for Storage DRS in vSphere 5. Microsoft has improved the I/O consumption of Exchange 2010 so much that it actually consumes very little I/O at all (relatively speaking compared to previous versions). Still, Exchange is a mission critical application and heavily utilized Exchange environments could benefit from Storage DRS migrating particular mailbox database VMDKs to less utilized storage to optimize the user experience. And as this whitepaper shows there is very little impact during the migration.
There may be reasons why organizations would chose to exclude their Exchange VMs from automatic Storage vMotion with Storage DRS. Some of those reasons could be around compliance, acceptance of this new vSphere 5 feature, concerns about performance, and possibly the impact on backup/DR strategies. Assuming those could be mitigated, I believe this testing shows that Exchange VMs actually make good candidates for Storage DRS.
I’m curious of what others think, so feel free to leave a comment.
Isolated clusters for mission critical applications?
I’ve seen a theme at several customers who are virtualizing mission critical applications on vSphere: The isolated vSphere cluster used just for that application. I’ve seen organizations do this many times when virtualizing Exchange 2010, often dedicating two or three vSphere hosts just for Exchange and related components (domain controller, virtual load balancer, etc).
There are several (understandable) reasons why organizations choose to go down this road. The most common I’ve heard are:
1) “I don’t want my Exchange/SQL/SharePoint guys messing with the rest of the VMs on my production cluster(s).”
2) “I don’t want any other workload taking resources away from my Exchange/SQL/SharePoint VMs.”
I can see why folks make both of these arguments and can understand their logic. Many vSphere admins live in the Hosts and Clusters view where they see all virtual machines rather than those organized into folders (where granular permissions can be set more easily). And some are concerned that setting reservations on virtual machines to guarantee access to resources will have a negative impact on available slots in a cluster.
I don’t believe that either of these arguments are enough to require a dedicated vSphere cluster. A few thoughts are below, starting with addressing the two most common reasons I listed above.
1) VMs can be grouped into application specific folders, and granular permissions can be set to only grant access to those folders or VMs.
2) Reservations aren’t a bad thing or something to be scared of, they just need to be factored into any design. And using the “Percentage of Cluster Resources'” policy gets around worrying about individual slot sizes (though total resource assignments still need to be considered and calculated).
3) Fewer hosts in a cluster gives VMware features like DRS or HA fewer options when trying to initiate a failover or migrate virtual machines based on resource consumption. If an application is truly mission critical, I’d rather have more options to optimize availability and performance rather than fewer.
4) Let’s be honest – vSphere isn’t free or cheap, so dedicating hosts to a specific application is likely to result in heavily underutilized hosts and higher costs. Aren’t underutilized servers and cost reduction some of the reasons why we got into this virtualization business in the first place? If you made dedicated clusters for all of your mission critical applications you would end up with application silos that greatly reduce the efficiency of virtualization.
At the end of the day a design decision like this should always come down to the requirements. There may be very valid requirements, like compliance, security, or extremely large applications that make an isolated vSphere cluster a necessity. Assuming those requirements are not necessary in your environment I would strongly consider whether there is really a reason to use a dedicated cluster for your mission critical applications.
If you agree/disagree/think I’m crazy - feel free to let me know in the comments..

