How Does Exchange 2010 Impact Storage?
Last week I had to opportunity to setup Exchange 2010, which is currently in beta. Microsoft had a great story about the improvements with Exchange 2007, particularly around storage and IO. Although I was not a big fan of role-based implementations, this type of setup has allowed for great scalability and also has made some components of Exchange viable candidates for virtualization.
Exchange 2010 uses some cool new technologies like PowerShell v2 and Windows Remote Management v2, both of which are still CTP.
Microsoft has improved the performance of Exchange again in Exchange 2010. When Exchange 2007 was released, Microsoft boasted a 70% decrease in IO. For example, an Exchange 2003 heavy mailbox profile used 1 IOPS/mailbox, while a Exchange 2007 heavy mailbox profile only uses .32 IOPS/mailbox.
In Exchange 2010, you can expect up to a 50% reduction in disk IO from Exchange 2007 levels. This means that more disks meet the minimum performance required to run Exchange, driving down storage costs. In addition, IO patterns have been optimized and are not “bursty” like they have been in previous versions.
With the ability to replicate up to 16 copies of each mailbox database, automatic page patching takes advantage of these replicated copies by using them as the source for repairs in the event page corruption or other minor database glitches occur. Sounds pretty cool!
The schema has been revamped and message/header content is now stored in a single table. In addition, Single Instance Storage is out, but automatic attachment compression is in.
One of the bigger changes in Exchange 2007 was the page in the database page size from 4K to 8K. In Exchange 2010, this changes again to 32K, allowing for larger block IO. This charge is particularly helpful in keeping chunks of data together like attachments instead of having them scatter all about.
Exchange 2010 is expected to be released in late 2009, but the beta is available for download at http://www.microsoft.com/exchange/2010/en/us/try-it.aspx.