Having sufficient disk I/O throughput to support a specific number of users is just as important as having sufficient disk space. This is especially important for disk-intensive applications such as Exchange 2003. In general, the speed and number of physical disks have the largest influence on the overall storage system performance. If large or slow disks are used on a SAN to provide the required storage space, disk I/O requirements (and not storage space) become the deciding factor for sizing the storage configuration. In such a case, more disks may be required, not for the additional storage space, but for the increased I/O provided by the additional spindles.
For example, consider a properly sized and balanced logical unit number (LUN) composed of ten 18-GB 15,000 RPM disk drives for a database set with 50-megabyte (MB) mailbox quotas. Five 36-GB 15,000 RPM disk drives would provide the same amount of storage but with only half the disk spindles and, therefore, only half the I/O operations per second (which may be inadequate disk I/O performance). It is also important to note that doubling the LUN size by using ten 36-GB 15,000 RPM disk drives does not necessarily mean that the mailbox quota can be increased from 50 to 100 MB. Although such a configuration is likely to provide equal or better I/O per second performance, the potential doubling of database sizes will likely extend the database recovery window beyond what is called for in the SLA.
Following the performance assumptions in the Exchange 2003 MAPI Messaging Benchmark version 3 (MMB3), on an average, each user generates 0.5 I/O requests per second to the database that contains their mailbox. By analyzing disk I/O ratings, it is possible to estimate the required spindle counts from an I/O perspective.
To help explain this concept, the following table lists sample disk I/O per second ratings.
Sample disk I/O per second ratings
|
Disk speed
|
Rated I/O per second
|
MMB3 users per disk
|
|---|
|
7,200 RPM
|
100
|
200
|
|
10,000 RPM
|
125
|
250
|
|
15,000 RPM
|
166
|
332
|
The disk I/O ratings for a 7,200 RPM disk (listed in Table 4.3) show that one 7,200 RPM spindle provides enough disk I/O for 200 concurrent MMB3 users. A stripe set for a single storage group containing 2,000 users would require ten 7,200 RPM disks. In a RAID 0+1 set (which offers vastly better recoverability than a plain striped array), 20 disks are required for the 2,000-user storage group's databases.
As per the data in Table 4.3, supporting 2,000 MMB3 users (each with a 50-MB mailbox quota) in a storage group using 36-GB 10,000 RPM disks requires eight disks in a stripe set (or 16 for a RAID 0+1 set). Eight 36-GB disks translate into a 288-GB LUN, which far exceeds the storage size requirement of a 110-GB LUN. In this case, with 360-GB 10,000 RPM disks available, the I/O requirements, and not the storage size, drive the overall storage requirements.
Optimizing disk I/O on the SAN is one of the largest performance-enhancing steps you can take in your Exchange organization. Each SAN vendor has different options and requirements for doing so. Therefore, you should understand and design SAN implementations with specific I/O requirements in mind. For Exchange, these requirements include:
-
Exchange uses 4-KB pages as its native I/O size, even though many transactions may result in read or write requests for multiple pages.
-
Transaction log LUNs should be optimized for sequential writes because logs are always written to, and read from, sequentially.
-
Database LUNs should be optimized for an appropriate weight of random reads and writes. This weight can be experimentally determined by using the Exchange Stress and Performance (ESP) and Jetstress tools.
-
Recoverability and SLA requirements should be considered.
For more information about how to plan your storage system to maximize performance and availability, see the Solution Accelerator for MSA Enterprise Messaging.
For information about planning your storage architecture, see "MSA Storage Architecture" in the MSA Reference Architecture Kit.