Subscribe to Windows IT Pro

 

Get Newsletters

  • Get the Latest News
  • Product Updates
  • Helpful Tricks
  • Productivity Tips

Subscribe Now!

January 12, 2001 12:00 AM

Exchange Server File Types Guide Storage Design

Windows IT Pro
InstantDoc ID #16564
Rating: (0)

I've received several inquiries regarding my two-part column about Exchange 2000 Server sizing (December 22 and December 29). Many of you want more specifics about how Exchange Server accesses its database files and more detailed storage design guidelines for Exchange 2000 servers, so let's look at the key Exchange 2000 files and their design guidelines.

Like previous versions of Exchange, Exchange 2000 has transaction log files that are accessed in a strictly sequential I/O pattern using small synchronous I/Os. These files are vital to the database, and you should isolate them for both performance and safety purposes. With Exchange 2000, we now have the concept of multiple storage groups (SGs), or database engine instances, which forces the question of whether to have a separate volume or array for each SG's transaction logs or combine the transaction logs from all SGs onto one array. This decision depends on how much storage you can afford and want to manage. My general rule is to separate sequential from random I/O: If you combine all transaction logs onto one array, the I/O pattern is randomized. In my opinion, the decision only matters from a management and disaster recovery viewpoint because I haven't seen many cases where transaction log volumes incur heavy disk I/O. Also, as long as you have a robust controller and cache design, don't forget to use controller write-back caching for transaction log files.

For the Exchange property store (.edb files), nothing from a storage design point of view has really changed for Exchange 2000. These key database files are organized into a B-Tree database structure using a 4KB page size. A B-Tree structure causes random I/O patterns (synchronous reads and asynchronous writes) with a read/write ratio of approximately 50/50. Following my general rule, these files need their own array or volume. The design decision then becomes how many databases and SGs to combine on a single array. As a start, I suggest you combine all the databases from an SG on one array (if you use clustering, you must combine the files from each virtual server onto discrete LUNs anyway). If you find that you have disk performance problems and can isolate database files that are "hot spots," your design may warrant a further look. As is the case with the transaction log files, write-back caching will aid immeasurably with these files as well.

The last database file type for Exchange 2000 is the streaming store (.stm files). This file type is a "new animal" when it comes to storage design. Not only do these files differ structurally (they're not B-Tree structures; they're organized into groups of 16 4KB "runs"), but Exchange accesses them differently than it accesses property store files. STM files are accessed via the Exchange Installable File System (ExIFS), which is a new high-performance kernel-mode component in Exchange 2000. Using ExIFS, Exchange 2000 typically accesses STM files in 32KB I/Os but can access them in much larger I/O sizes as well. This means that there is a potential design requirement for further separation of these files from the property store files. In truth, I haven't seen a case where this separation is justified, but performance data for Exchange 2000 is still somewhat nonexistent. In addition, because Internet protocol clients use the streaming store exclusively, many Exchange servers supporting Messaging API (MAPI) won't exercise it (because most deployments are still MAPI-based). As more Exchange 2000 servers are deployed to support Internet protocol clients, we might see this situation change. For now, I recommend you combine the STM files with the EDB files for the lowest total cost of ownership (TCO). However, don't assume there will never be a day when these files don't need their own array.

Storage design for Exchange servers is somewhat of an art because so many design questions depend on other factors. However, understanding the different files that Exchange 2000 uses and how it accesses those files is the key. By applying some simple rules and practicing good performance management, you should be able to deploy Exchange servers whose disk subsystems can keep up with users.

Related Content:

ARTICLE TOOLS

Comments
    There are no comments to display. Be the first one!
You must log on before posting a comment.

Are you a new visitor? Register Here

advertisement

advertisement

White Papers

Get your Windows 7 deployment off to the right start by implementing PC lockdown. A locked-down environment is easier and cheaper to support since users are less likely to make unnecessary changes to the core system configuration - read more here!

Essential Guides

Is your iSCSI "lossy"? The reality is that most off-the-shelf Ethernet hardware deployed for iSCSI can lose packets, resulting in slow performance or application downtime. Learn how to assess your current iSCSI infrastructure and engineer an advanced iSCSI SAN infrastructure.

Web Seminars

What's the best way to keep your network safe from malware? In this web seminar, security expert Greg Shields suggests an alternative method to the traditional blacklisting approach that is common with anti-virus and anti-malware solutions.

eLearning Series

We bring the experts direct to you to share their real-world perspective and expertise. During each event, three sessions stream in real time, so you can learn, ask questions, and get solutions.
Upcoming event: Getting the Most with Exchange 2010 with Paul Robichaux

Subscribe to Windows IT Pro!

Windows is a trademark of the Microsoft group of companies. Windows IT Pro is used by Penton Media Inc. under license from owner.