Any time a major new version of an application is released, you might be tempted to deploy it immediately. With Microsoft Exchange Server 2007, though, a quick deployment isn't always an option. Exchange 2007's architecture is vastly different from Exchange Server 2003's. As such, it's critically important that you verify that your organization meets the Exchange 2007 infrastructure requirements before deploying the software. Here are the basics you'll need to have in place to ensure a smooth migration.
Picking Your Processor
Exchange 2007's hardware requirements are considerably different from those of Exchange 2003. The biggest difference is that Exchange 2007 requires a server with a 64-bit processor and a 64-bit Windows OS. Exchange 2003 is capable of running on 64-bit hardware, but only if the server is running a 32-bit version of Windows. Therefore, an in-place upgrade to Exchange 2007 is impossible. If your organization is currently running Exchange 2003, you'll have to perform a migration rather than an upgrade.
As you select server hardware, keep in mind that not all 64-bit processors will meet Exchange 2007's requirements. Exchange 2007 supports AMD64 and Intel Extended Memory 64 Technology (EM64T) processors. Intel's Itanium processors aren't supported, however. Microsoft implemented the 64-bit processor requirement as a way of removing the memory constraints associated with 32-bit OSs, which are capable of addressing a maximum of 4GB of RAM (Physical Address Extensions—PAEs—aside). Windows divides this address space in half, dedicating 2GB to kernel processes and 2GB to user processes.
Exchange servers with large numbers of mailboxes or large databases commonly experience performance problems because of insufficient memory. One way around this problem is to use the /3GB switch in the boot.ini file to allocate 3GB of memory to user processes and leave the remaining 1GB for kernel processes. However, this solution can sometimes leave the OS short of page-table entries, and even 3GB isn't a large enough address space for some Exchange servers to function optimally.
In contrast, a 64-bit processor running a 64-bit OS is capable of addressing up to 16TB of memory address space. Exchange 2007 doesn't have to work within the 4GB address space constraint. Granted, few servers today can be equipped with 16TB of memory.
Having a larger address space enhances Exchange 2007's performance, but it also lets it comfortably handle larger databases than Exchange 2003 can. Of course, there's no such thing as a truly unlimited database; hardware considerations will always limit their practical size. The time required to perform backups might also be a limiting factor, though time will soon be less of a consideration because Microsoft System Center Data Protection Manager (DPM) 2.0 will support real-time backups for Exchange. Some companies are using the ability to maintain larger databases to consolidate multiple mailbox and public folder servers onto a single Exchange 2007 server.
Not all processors will perform equally well in all Exchange 2007 deployments. As you probably know, one of Exchange 2007's major architectural changes is that it's now rolebased. An Exchange server can be classified as a Mailbox server, an Edge Transport server, a Hub Transport server, a Client Access server, or a Unified Messaging (UM) server. A server can also host multiple roles, but for optimal performance and security you should limit each server to hosting a single role when possible.
Microsoft recommends basing your processor selection on the role(s) that the server will host. Although Microsoft offers no specific recommendations about processor speed, it does provide recommendations about the number of processor cores you should use in various deployment scenarios. Table 1 shows Microsoft's recommended minimum, normal, and maximum number of processor cores for each Exchange 2007 server role. (The tables in this article are adapted from Microsoft's Exchange Server 2007 Processor and Memory Recommendations Web page at http://www.microsoft.com/exchange/hardwareplanning.) At the time this article was written, the maximum number of cores available on a single processor was four, and most processors include only two cores. As such, deployment scenarios in which Microsoft recommends higher numbers of cores would require the use of multiprocessor servers running multicore processors.
Options for Your OS
Choosing an OS for your Exchange 2007 server isn't nearly as complicated as choosing the server's processors. In fact, there are really only two choices: You can use either Windows Server 2003 x64 or Windows 2003 R2 x64; the Standard and Enterprise Editions of both OSs are acceptable. Exchange 2007 won't initially work with Longhorn Server; however Exchange 2007 SP1, which is due to be released this fall, will add Longhorn Server support as well as introducing new capabilities to the Exchange Management Console.
Although Exchange 2007 itself requires a 64-bit OS, the Exchange 2007 management tools can be deployed to 32-bit systems running Windows 2003 SP1 or later, Windows 2003 R2 or later, or Windows XP SP2 or later. Microsoft's official documentation currently doesn't list Windows Vista as being supported for any part of Exchange 2007 deployment.
Designing Your Network
It's easy to consider the hardware and OS requirements for the server that will run Exchange 2007 and forget about requirements for the network that the Exchange 2007 server is on. However, it's essential that you take the rest of the network into account. For the most part, network-related deployment concerns are beyond the scope of this article, but you won't even be able to install Exchange 2007 unless your network conforms to some minimum requirements.
First, your network must contain an Active Directory (AD) forest and a DNS server, and your Exchange server must be a member of an AD domain with a domain functional level of Windows 2000 Server native or higher. To determine your domain's functional level, open the Microsoft Management Console (MMC) Active Directory Domains and Trusts snap-in. In the console, right-click the domain in question and select Properties from the shortcut menu. The resulting screen should display the domain's functional level and let you raise the functional level if necessary.
Another network requirement is that your forest's schema master and at least one Global Catalog (GC) server must be running Windows 2003 SP1; again, the Standard or Enterprise Editions are both acceptable. One final requirement to be aware of, particularly if you're adding Exchange 2007 to an existing organization, is that Exchange 2007 can't exist in the same organization as Exchange Server 5.5.
Calculating Your Memory
Determining the appropriate amount of memory for an Exchange 2007 server takes a little bit of work. Microsoft provided guidelines for how much memory Exchange 2003 required. Over time, though, it became obvious that the general rule of thumb for an Exchange 2003 server was to install as much memory as your server would accommodate. This simply isn't the case with Exchange 2007. Although Microsoft has issued minimum and recommended memory configurations for each server role, the company has also stipulated the maximum amount of memory that should be installed in an Exchange 2007 server. Of course, exceeding the maximum recommended amounts of memory isn't usually a problem; Microsoft specifies these caps because you won't see additional benefits to performance by using more than these amounts.
As if setting maximum limits on server RAM weren't unusual enough, the memory recommendations vary depending on the roles the server is hosting and on the number of processor cores installed. For example, Microsoft recommends that you install a minimum of 2GB of memory into an Edge Transport server. However, if the server contains more than two processor cores, Microsoft recommends adding 1GB of memory for each additional core beyond two. As such, the recommended amount of memory for an Edge Transport server with four processor cores would be 4GB. A simpler way of stating this recommendation is 1GB per processor core, with a 2GB minimum. Table 2 shows Microsoft's recommended memory configurations for each Exchange 2007 role.
You might notice that Table 2 doesn't list minimum or recommended memory amounts for Mailbox servers or for servers hosting multiple roles. Microsoft's recommended memory amounts for these types of servers are based on how heavily the server will be used. If a server is hosting multiple roles, and the Mailbox server role isn't among them, you can safely use 2GB as a minimum amount of memory, and the server should function reasonably well with 4GB of memory installed. If the server is hosting the Mailbox server role, though, these recommendations don't apply.
The first thing to consider when installing memory for a Mailbox server role is the number of storage groups (SGs) that will reside on the server. The required amount of memory increases as the number of SGs hosted on the server increases. Table 3 shows Microsoft's minimum recommended memory for Mailbox servers by the number of SGs hosted on the server. The amount of memory shown in Table 3 isn't the total amount of memory you'll need but rather is a base memory amount from which to begin calculating the actual amount of memory required by the server.
The next thing to consider is the anticipated mailbox-usage pattern of your users. Microsoft defines a light email user as someone who sends 5 messages and receives about 20 messages a day. An average email user sends about 10 messages per day and receives 40 messages. A heavy email user is someone who sends as many as 20 messages a day and receives as many as 80 messages. Anyone who uses email more than that would be considered a very heavy user. For light use, Microsoft recommends adding 2MB of memory per mailbox; for average use, 3.5MB per mailbox; and for heavy use, 5MB per mailbox. Keep in mind that these values are in addition to the recommended base memory that Table 3 shows.
To see an example of calculating mailbox memory requirements, suppose your organization had an Exchange server with one SG that hosted 100 mailboxes. Just to keep the math easy, let's say that 25 of the users were light users, 25 were heavy users, and 50 were average users. Table 4 shows how you'd calculate the memory requirement in this scenario. Of course, you can't install 2,398MB of memory on a server; you'd need to round the number up to the next viable amount of memory. Depending on the server's system board, you'd need either 3GB or 4GB.
Finally, you must take one additional factor into account before deciding how much memory to install on the server: Will the server be performing local continuous replication (LCR)? LCR consumes both memory and CPU resources. If you're going to use LCR, Microsoft recommends adding an additional 1GB of memory to the server. While I'm on the subject, LCR places approximately 20 percent of additional overhead on the server's CPU because the Microsoft Exchange Replication service copies and replays in logs to the passive copy of the database. Therefore, you might want to consider adding an extra core or a faster processor if LCR is in use.
Using Your Disk Resources
The last thing I'll talk about is disk resources. Table 5 lists the minimum amounts of hard disk space that an Exchange 2007 deployment will consume. The rules for servers that are hosting the Mailbox server role are similar to the rules used in Exchange 2003. Basically, databases and transaction logs should be stored in separate locations for both performance and fault-tolerance reasons. Also, volumes containing Exchange databases or transaction logs must be formatted as NTFS; FAT and FAT32 file systems are not supported. You might also consider storing databases or transaction logs on a RAID array. RAID 10 arrays are usually a good choice because they offer the performance of RAID 0 with the mirroring of RAID 1. If you're using LCR, you'll also want to dedicate additional volumes to the replicated transaction logs and databases.
Ready for Deployment?
As you can see, Exchange 2007 has some rather stringent hardware requirements. For a quick reference, take a look at the checklist, "Exchange 2007 Infrastructure Requirements," page 60. It's important to make sure your proposed hardware is adequate for running Exchange 2007 and that it allows for a reasonable amount of future growth. When these basic requirements are met, you should be ready for your Exchange 2007 deployment.