VMworld Europe 2008 â€“ AP03 â€“ Virtualization of Microsoft Exchange Server ( the 16.000 mailboxes story)
After the keynotes this was my first session of the day and I was pleasantly surprised by the high technical level. If all sessions are like this one, VMworld will be a great event for me :-) David Korsunsky and Scott Drummonds talked about the performance benefits you can have when virtualizing Exchange. I was surprised to hear this, because although I was a big fan of virtualizing Exchange and just go and do it, I’ve also kept in mind that I might need more Exchange VMs than physical VMs. According to Scott and David, we don’t.
First they made it clear that virtualizing Exchange 2007 is much easier then virtualizing Exchange 2003. Exchange 2003 is a heavy hitter in the storage area because of 4k disk block size, where Exchange 2007 uses 8k blocks and write coalescing. With Exchange 2007 previous I/O challenges have been addressed.
At their desk the idea was born to just test the limits of Exchange 2007 in a virtual environment and together with some enthusiastic IBM engineers, they started collecting hardware to build their own big fat ESX hosts. It turned out to be an IBM x3850M2, with four quad-core Xeon 7350 CPU’s and a total of 128Gb RAM. When writing their test plan they had one big criteria that all tests should pass: â€œMicrosoft’s LoadGen Exchange test tool, has to pass the testâ€.
Next step was to define what virtual machines to create to run Exchange in. According to MS guidelines, a heavy Exchange user will sent 30 e-mails and receive 120 messages (a day???) and Exchange will need about 5Mb cache for this user. The base memory requirement for Exchange is 2Gb and for 4 cpu’s the max estimated amount of mailboxes is 2000. So they decided to create VMs with 2Gb + 2000x 5Mb = 12Gb RAM and 4 vCPUs.
Normally when scaling an Echange Server, the MS recommendation is to not go beyond 8 cores and 32GB of RAM per server. When using these figures, a physical Exchange 2007 server can only go to a max of 8000 mailboxes. Although there are very few stories about physical machines running this number of mailboxes, there is some reference about 6000 mailboxes per host. David and Scott decided to take it even further. Using the VM building block they created, the managed to put 4 VMs on this physical server without problems, latency times (key measurement factor for the Exchange admin) remained very low. When adding VM number 6, latency went up a little but was still well below the limits. VM number 7 showed there was trouble on the road ahead, latency doubled to 400ms and VM number 8 turned out to be the limit with 16.000 mailboxes !!!! and 900 ms latency. Even a 900 ms latency is below the MS limits of what is acceptable, but it was obvious that adding a ninth VM would go over this limit of 1000ms. All VMs together were now using 140Gb RAM, made possible by VMware transparent page sharing.
I was surprised to see such very good results on running Exchange in a virtual environment, this really is a great breakthrough and might help Exchange admins to take the step to and no longer be afraid to run their business critical app in a virtual environment. Once, they mind switch is made, Exchange can benefit from all the extras a virtual environment can offer.
For the RDM users among us, all test have been conducted on VMFS volumes! No need for RDM if you’re concerned about performance.