Storage guys do not love talking about IOPS, especially when far too much attention is being paid to them by customers buying Exchange solutions. You would think a die hard storage guy would delight in pulling out one of their many spreadsheets and calculating the optimal disk layout to meet your IOPS needs, but sadly this is not often the case. So from time to time you may find your storage guy is too busy installing enterprise backup solutions somewhere across town to help you with your IOPS needs, and have to do it on your own.
What are IOPS?
IOPS stands for Input/Output operations Per Second, and is basically a measure of how fast a disk (or disk array) can read and write data to and from a hard disk.
IOPS are somewhat important to your Exchange Server 2007 design because you want to ensure you provide Exchange with an adequate storage configuration to handle the transactional I/O load it will produce in daily operations.
Gross generalisation #1 – in smaller environments you will often find that simply providing enough storage capacity of the usual recommended RAID types will achieve your IOPS needs.
Gross generalisation #2 – in larger environments you will often find that simply providing enough IOPS of the usual recommended RAID types will achieve your storage capacity needs.
What type of RAID do you recommend?
- Transaction Logs – RAID1+0, RAID1, or RAID5 (in that order of preference)
- Databases – RAID5
Where do I get some IOPS then?
Microsoft (once again) has provided extensive guidance on how to plan your Exchange Server 2007 storage design. Although there are considerations for several of the Exchange Server 2007 roles most often the only role you need to pay very close attention to is the Mailbox Server role.
Here is an example of calculating IOPS requirements for a simple 1000 mailbox environment. Although in this example the server is multi-role, the Transport queue is on a separate LUN and therefore the Transaction Log and Database LUN IOPS can be calculated without taking it into consideration.
Your first stop should be the Exchange Server 2007 Storage Calculator. This is an Excel spreadsheet developed by the Exchange Server Team at Microsoft to help customers calculate their storage requirements.
First enter some basic information, such as the version of Exchange you are deploying (in this case SP1), the number of mailbox servers, and whether any continuous replication is being deployed.
Next, enter the type of user profile that best represents the environment. I have selected 1000 “average” users (10 sent/40 received per day), with a 250mb mailbox limit.
Switch to the “Storage Requirements” tab and you will be presented with the results of the IOPS calculations.
Now we see that the calculator is estimating 206 IOPS for databases, and 68 IOPS for transaction logs. How can we design a disk layout to provide this? Lets look at the types of disks we will be using here.
A 10K SCSI disk provides 100 IOPS/disk. A 15K SCSI disk provides 120 IOPS/disk. The customer in this example has 15K disks.
When used in a RAID configuration there is an IOPS penalty applied to the calculation as follows:
- RAID 0 – x1.0 penalty
- RAID1/1+0 – x0.8 penalty
- RAID5 – x0.57 penalty
Being budget conscious the customer wishes to go with RAID1 for transaction logs, and RAID5 for databases. We are provided with two 15K SCSI 300Gb disks (do you still buy smaller than that?) for the transaction logs and four 15k SCSI 300Gb disks for the databases.
So given the above data, the IOPS that will be provided by the disks are as follows:
- Transaction logs – (2 x 120 IOPS) x 0.8 penalty = 192 IOPS. This exceeds the requirement of 68 IOPS for transaction logs.
- Databases – (4 x 120 IOPS) x 0.57 penalty = 273 IOPS. This exceeds the requirement of 206 IOPS for databases.
You can also see that if 1000 mailboxes is considered a “larger” environment then Gross Generalisation #2 is proven, in that providing adequate IOPS to the Exchange server has also met storage capacity requirements:
- Transaction logs – 2 x 300Gb RAID1 = 279Gb usable space. This exceeds the requirement of 72Gb storage capacity for transaction logs.
- Databases – 4 x 300Gb RAID5 = 838Gb usable space. This exceeds the requirement of 441Gb storage capacity for databases.