Windows Server 2003 is remarkably adaptable. The same server code can run on a whitebox Pentium 600 and a multiprocessor, multigigahertz powerhouse. The trick is to pick systems that run Windows Server 2003 reliably.
There is an old story that the inventor of chess was offered any gift he desired by a delighted Chinese emperor who had just learned the game. The inventor asked for a simple gift, to have a single grain of rice placed on the first square of a chessboard, then two grains on the second, four on the third, and so on. Using this progression, the emperor would need to put 18,446,744,073,709,551,616 grains of rice on the 64th square to fulfill the request, not to mention filling all the other squares first. As the story goes, the emperor decided it was simpler and cheaper just to execute the inventor. You may make a similar decision concerning your hardware vendor, depending on your Windows Server 2003 installation experiences.
No book could begin to cover the myriad combinations of hardware and software problems that might come up when deploying Windows Server 2003. This chapter contains advice on making basic configuration decisions that can cut down on the number of potential problems, or at least reduce the number to something less than 18,446,744,073,709,551,616.
Hardware Compatibility List
The newest, hottest machines might sell lots of magazines, but I think it's fair to say that system administrators value reliability, interoperability, and high-quality technical support over performance and slick features. This means buying systems and components that are certified to run Windows Server 2003.
Hardware vendors work with Microsoft to test and certify their systems and components. The vendors submit their test results to Microsoft's Windows Hardware Quality Lab (WHQL) along with sample hardware and the source code for the drivers. Technicians and engineers check the testing and often rerun the tests to validate the results. Details of this program are available at www.microsoft.com\hwtest.
Microsoft maintains a list of certified systems and components in a Hardware Compatibility List, or HCL. The most current HCL is available at www.microsoft.com/hcl. When checking the HCL, make sure you focus on the server version you plan on running and the expected configuration. Pay particular attention to component versions. You may have a SCSI controller that is only certified when used with a particular system.
If you really want to get into the nuts and bolts of the development and testing process, take a look at www.microsoft.com\hwdev. Microsoft's recommendations to hardware vendors for server specification are in the Hardware Design Guide. For the last word on driver development, go to the Open System Resources web site at www.osr.com. Here you'll find information from the engineers who teach the engineers at Microsoft.
Support for Certified Hardware
From our perspective as system administrators, the most compelling reason to buy logo-branded hardware is the support commitment that lies behind the logo. If you have a server problem that cannot be resolved by front-line technical support at Microsoft, it will be escalated to a point where support engineers will attempt to replicate your problem using the exact hardware and drivers you are using.
That being said, millions of servers that are not on the HCL run Windows-based server products without a hitch. The key to a satisfactory configuration is getting the vendor's support. If you plan on upgrading an existing system to Windows Server 2003, or you buy a new system that comes with an earlier server version pre-installed, make sure the vendor will work with you during and after the upgrade. This is especially true for older machines that might be unstable or lack the full range of features under Windows Server 2003.
Using Unsupported Hardware
A component or system is considered "supported" if it meets the following conditions:
It is specifically listed, by make and model, on the HCL.
A Microsoft-designated driver is used to control the hardware.
The hardware is used in the configuration under which it was tested.
If you have hardware that is not on the HCL, the Microsoft support representative will put forth a good-faith effort to resolve a problem with the understanding that a satisfactory conclusion is not guaranteed. In my experience, Microsoft technicians lean way over the line to help resolve problems involving unsupported hardware. You are not likely to be denied help with a DNS query failure because you are using an unsupported network card. On the other hand, you are not likely to get the full range of support for an ongoing database corruption problem if you use an unsupported RAID adapter.
No matter where you buy a system, check the vendor's web site to make sure that you have the most current Windows Server 2003 drivers for every component. Look for configuration tips in Microsoft's KnowledgeBase and the Microsoft public newsgroups. A quick search of the Windows server newsgroups is always a good idea. Word of buggy drivers gets out fast. Why go through the same grief as hundreds of other administrators? Better to find new and unique sources of grief.
If you are upgrading your hardware in preparation for running Windows Server 2003, keep a close eye on the processor's L2 cache specifications. The newer processors have made significant improvements in onboard cache (L1) and bus-attached cache (L2) architecture. The Windows Server 2003 memory management subsystem uses L2 cache extensively, so it is a significant contributor to overall system performance.
In most circumstances, file and print servers can get by with the 256KB cache that comes on standard PIII CPUs. Application servers, however, benefit greatly from larger, bus-speed L2 cache on Xeon processors. The price tag goes up dramatically as you increase cache size, but the performance improvements scale linearly, as well. For example, Dell has released performance numbers for its PowerEdge servers in various L2 configurations. For more information, visit www.dell.com/us/en/gen/topics/power_ps4q99-L2cache.htm.
When purchasing IA64 systems, look for Itanium 2 (McKinley) processors with chipsets that support access to all the physical memory the processor can address. The L2 cache in an Itanium 2 processor is relatively puny but the L3 cache can range up to 3MB and runs at full processor speed.
Chipsets, Motherboards, and BIOS
The trade magazines often have bubble charts that show price/performance ratios between many different machines of comparable processor speed. The chipset plays a considerable role in determining a system's place on that bubble chart. Intel is the leading chipset manufacturer. Other leaders include:
By far the most prolific producer of high-end chipsets for Intel and AMD processors. www.via.com.tw.
The price leader. Mostly specializes in AMD chipsets, although the new DDR (Double Data Rate) chipset looks promising. www.sis.com.tw.
Known more as a maker of SDRAM and other memory products (including DDR RAM), Micron has made a splash with its new Copperhead DDR chipsets. www.micron.com.
The ultimate source for motherboard and chipset comparisons is Tom's Hardware at www.tomshardware.com. You can be sure of getting impartial data from Tom and his colleagues without wondering, as I often do, whether a four-page ad for a particular brand of server in a trade magazine had any bearing on its being chosen as a top-rated box. Another good source for hardware news and views is Earthweb's System Optimization Information web site at www.sysopt.com.
After you decide on a motherboard vendor, stick with its products for a while. You'll get to know its idiosyncrasies and can make diagnostic decisions should any problems come up.
Make absolutely sure you upgrade the firmware to the latest version. Otherwise, you may encounter problems when trying to implement Windows Server 2003 features.
If you are specifying hardware for a new server, you should not order less than 512MB of RAM. Adding memory to an older machine is often a hassle, so if you are upgrading an existing NT server, don't order more RAM until you upgrade and evaluate performance. You may find that the server operates just as fast or faster under Windows Server 2003 than it did under NT, thanks to the improvements in the code, thus eliminating the need for more RAM.
If you add more memory to a server to accommodate Windows Server 2003 and you cannot obtain memory that is an exact match to the existing memory, consider removing all existing DIMMs and installing new ones. This ensures that you won't have timing inconsistencies as you cross memory bank boundaries. This can cause subtle instabilities and may even lead to system crashes.
The drives and drive controllers you use can make as much or more difference in performance and reliability as processor and memory. If a budget battle forces you to pare down your wish list for a server, lean toward improving I/O before upping processor speed.
Your storage decisions are limited only by your pocketbook. In general, you need to decide on drive type, size, RAID configuration, and format.
The drive choice for servers typically boils down to SCSI versus IDE/ATA. Quite a few advances have been made in performance and storage capacity of IDE/ATA drives over the last few years. You can buy 100GB drives at your local Costco or Sam's Club for around $200, and the latest Ultra DMA specification now permits 133 MB/sec burst transfer rates.
SCSI drives deliver faster burst rates (up to 160 MB/s for the current spec, with 320 MB/s waiting in the wings) but the drives are considerably more expensive and high-performance SCSI interface cards cost several hundred dollars.
In spite of the attractive pricing, IDE/ATA drives suffer in performance because only one command can be pending at the bus controller any one time, regardless of the number of devices on the bus. This makes the bus controller a tremendous bottleneck on a busy server. Also, one of the IDE interfaces in a computer is generally given over to a CD-ROM or DVD device. These devices most often use Programmed I/O (PIO) rather than Direct Memory Allocation (DMA). Access to a fast DMA drive is slowed by waiting for PIO transactions if the CD-ROM drive is on the same bus. For desktops and small servers, fast IDE/ATA controllers and drives deliver acceptable performance, but for real performance you'll be happy you spent the money for SCSI.
If you have the budget and don't mind getting locked into a single vendor for your storage alternatives, take a look at Fibre Channel controllers and drives. The current Fibre Channel specification delivers 100MBps (that's megabytes per second) of full-duplex data transfer, which blows even ultraSCSI into a crumpled garbage pail, with 500MBps coming up real soon now. Also, high-end Fibre Channel controllers support dynamic changes to storage configurations, enabling you to add gigabytes onto a volume just by slipping in a disk and updating the settings.
Give the operating system at least 3GB, with 4GB being preferable. Pay particular attention to the size of the system volume on a system running Application-mode Terminal Services, where user profiles are stored in the system volume by default. It's possible to fill up the system volume very quickly with temporary Internet files and user files saved to their local profile.
If you make the system partition too small, or fill it up with non-system files, you take the chance of fragmenting the NTFS Master File Table (MFT). This has a severe impact on performance. Normally, the MFT is protected by a buffer zone of 25 percent of the volume, but the system does not notify you if you puncture this buffer zone, so you won't know you have a problem until you try to defragment the volume and find that your MFT has broken into many pieces.
Windows Server 2003 avoids many of the MFT fragmentation problems in earlier versions because it formats the boot partition directly as NTFS rather than converting the partition after files have been copied to it.
Continuity of service is a prime consideration when building a server. For storage, this means using fault tolerant disk subsystems wherever possible. This includes mirroring, RAID 5 striping, or RAID 0+1 stripe/mirroring.
Windows Server 2003 uses an updated version of NTFS that changed the record header layout to improve performance. This change renders older imaging and partition utilities inoperable. Make sure you have the most current version of any utility that manipulates the file system.
The NTFS version in Windows Server 2003 is version 3.1. This is the internal version number embedded in the NTFS metadata and it is also the version reported by disk utilities such as FSUTIL. You may see documentation referring to the NTFS version by the same number as the operating system version, 5.2. This is inaccurate but not altogether without precedent. Here are the previous versions of NTFS:
NT 3.51 Ч NTFS 1.1
NT 4.x Ч NTFS 1.2
Windows 2000 Ч NTFS 3.0
Windows XP Ч NTFS 3.1
Windows Server 2003 uses a Logical Disk Manager (LDM) subsystem, licensed from Veritas, to control fault tolerant drives. LDM supports RAID 1 mirroring and RAID 5 parity striping. It also supports two configurations that are not fault tolerant: RAID 0 striping and volume spanning. LDM does not support RAID 0+1.
You can mix and match SCSI and IDE drives in the same drive set, although this is not recommended because it generally slows down the array.
One of the most significant changes in Windows Server 2003 compared to Windows 2000 in this area is the total lack of support for legacy fault tolerant (FT) disk sets. Windows 2000 would convert legacy FT disk sets to dynamic disks and incorporate them into the Logical Disk Manager (LDM) database. In Windows Server 2003, you must remove all FT disk sets prior to upgrading. Chapter 2, "Performing Upgrades and Automated Installations," has more information on this requirement. There is a utility called FTONLINE that can recover an FT disk set if you forget to remove it first.
Under most circumstances, you are better off using hardware RAID than LDM. A good RAID controller gives you hot-swap capabilities, hot spares, and dynamic expansion, none of which is provided by LDM. Also, hardware RAID controllers do a much better job of detecting cascading sector failures. Finally, top-of-the-line RAID controllers support RAID 0+1, or mirrored stripe sets. This gives you the best of both worlds: the speed of RAID 0 and the fault tolerance of mirroring. You'll spend more for the drives and enclosures, though.
What's the bottom line? Use hardware RAID if you can afford it and software RAID if money is tight. If you opt for software RAID, you'll get better performance with SCSI compared to IDE because of the multitasking capabilities of the SCSI interface. You'll also get better performance by using multiple SCSI channels for your array rather than putting all devices on the same SCSI bus.
You can install Windows Server 2003 onto a partition that is preformatted with FAT, FAT32, or NTFS. You cannot install Windows Server 2003 onto an HPFS, NetWare, UNIX, or Linux partition.
You'll be happy to know that Windows Server 2003 Setup supports formatting partitions as NTFS as part of Setup without initially formatting them as FAT and then converting. This avoids many of the fragmentation problems in earlier versions. There is also a quick format option that skips the sector scan of a normal formatting to speed up installation.
I recommend using NTFS for all partitions on a server. This gives you security, stability, and scalability. FAT32 has a performance edge over NTFS in terms of raw lookup speed for small partitions, but this does not make up for its fragility and fragmentation problems. You can choose to convert a FAT or FAT32 partition to NTFS during or after Setup. If you format as FAT or FAT32 using Windows Server 2003 Setup, the conversion utility will permit you to change the cluster size.
The Recovery Console in Windows Server 2003 works similarly to the ERD Commander utility created by the legendary Mark Russinovich and Bryce Cogswell. ERD Commander 2002 sports an Explorer-like interface that adds the ability to change account passwords and perform additional system modifications. You can download an evaluation copy of ERD Commander from www.sysinternals.com. The for-cost version includes the ability to edit Registry files and to change the password on accounts in the local Security Account Manager (SAM).
Some administrators shy away from NTFS because of the difficulty in booting to a floppy to access files. Windows Server 2003 incorporates a Recovery Console that permits booting to a command prompt and accessing an NTFS drive. Armed with the Recovery Console, you can join Oprah and say goodbye to FAT forever.
Removable Media (CD-RW and DVD-RAM)
Windows Server 2003 supports writing directly to removable read/writable media such as CD-RW and DVD-RAM. The CD writing engine uses file-based technology. This contrasts with packet-based products such as EZ CD Creator from Roxio (www.roxio.com), CDRWIN from Goldenhawk Technologies (www.goldenhawk.com), and Nero from Ahead Software (www.nero.com). (Microsoft licensed portions of the CD writing engine from Roxio. Roxio is a subsidiary of Adaptec, Inc.)
Windows Server 2003 introduces a new image writing API, IMAPI, for interfacing with read/write removable media such as CD-R, CD-RW, and DVD-RAM. You can get more information about this API from www.microsoft.com/hwdev. For general information about CD-R technology, visit www.cdrfaq.org. It's a great site with well-groomed, current topics.
Windows Server 2003 supports the Joliet extensions to the ISO 9660 standards for CD-ROM, which enabled long filename support. If you have a DVD-RAM, the system can format the disk using FAT32, giving you lots of flexibility in how you use the media. DVDs can also be formatted using UDF 1.5, the industry standard for DVD formatting.
There is no support in Windows Server 2003 for booting into Setup from floppy disks, so you must have a CD-ROM drive that supports the El Torito "no emulation boot" specification.
IA64 Storage Configuration
If you are installing the IA64 version of Windows Server 2003, you must configure the boot drive to use a GUID Partition Table, or GPT. The GPT formatting method is part of the Extensible Firmware Interface (EFI) specification from Intel. GPT replaces the Master Boot Record (MBR) formatting scheme used in classic Intel computers.
Each partition on a GPT boot disk is assigned a Globally Unique Identifier (GUID) and a type designator. There are no hidden partitions or special disk structures, no strange rules for logical drives in extended partitions, no arcane machinations to support hidden OEM utilities.
A GPT disk has a small partition table at the start of the disk with a mirror copy at the end of the disk. Unlike a classic MBR-based partition table, which is limited to four entries, a GPT disk can have 128 partitions. This gives you quite a bit of flexibility in structuring large disks or disk arrays. A typical boot disk will have these partitions:
EFI System Partition (ESP).
The ESP contains the files necessary to boot an operating system. If a drive has several partitions containing different operating systems, the EFS keeps a separate folder for each operating system's boot files. The ESP size is set at 1 percent of the physical disk size, with a minimum size of 100MB and a maximum size of 1GB. The ESP is formatted as FAT. A disk can only contain one ESP. ESP partitions cannot be mirrored. The ESP is not shown in the Disk Management console and does not appear as a drive in Explorer.
Microsoft Reserved Partition (MSR).
Each boot drive must have one MSR. It stores the Logical Disk Manager (LDM) database should you decide to shift from GPT partitioning to Dynamic disks. The MSR must be the first partition after the ESP. (A non-bootable disk might not have an ESP, in which case the MSR is the first partition.) The MSR size depends on the physical disk capacity. On disks up to 16GB, the MSR is 32MB. On disks over 16GB, the MSR is 128MB. The MSR is formatted as FAT. It is not exposed by Explorer, but it can be seen in the Disk Management console.
Vendors love to ship proprietary diagnostic and setup utilities along with their systems. These utilities are often tucked away in hidden partitions that cause no end of grief for system administrators who want to change the disk partitioning. Using GPT disks, vendors can create their own OEM partition to hold their utilities. Ordinarily, an OEM partition does not appear as a drive in Explorer although it can be seen in the Disk Management console.
Microsoft data partition.
This partition type is created by Windows Server 2003 or XP to create general-purpose partitions.
Managing Files Stored in the ESP
The EFI performs its initial bootstrap directly from firmware rather than using boot files on the hard drive. The ESP does not contain copies of Ntldr, Ntdetect.com, or Boot.ini. Here's why:
The hardware checks performed by Ntdetect.com are not needed because the operating system can obtain this information from firmware.
Ordinarily, you cannot see or change the contents of the ESP from the operating system. You manage the files from the EFI Shell prior to loading the operating system.
However, Windows Server 2003 and XP provide a /s switch on the MOUNTVOL utility that redirects a designated drive letter to the EFS partition. The syntax is mountvol r: /s. Many of files in the ESP are hidden.
The boot menu is kept in Non-Volatile RAM (NVRAM), so a separate Boot.ini file is not required. The entries in the boot menu are displayed by the EFI Boot Manager. Windows entries can be changed while Windows Server 2003 is running using the System Properties window or the BOOTCFG utility.
The secondary bootstrap loader for Windows Server 2003 is called Ia64ldr.efi. It islocated in the ESP in a folder named \EFI\Microsoft\WINNT50. A second file in this folder, Fpswa.efi, is the Floating Point Software Assistance handler that lists floating-point exceptions needed by the operating system. For more information, see developer.intel.com/design/itanium/downloads/245415.htm.
If you have multiple copies of Windows Server 2003 or XP on a machine, each one gets a separate folder in the ESP. For example, the second copy would get the path \EFI\Microsoft\WINNT50.0 and the third copy would get \EFI\Microsoft\WINNT50.1, and so forth.
The EFI Boot Manager stores the path to the operating system partition and the associated secondary bootstrap loader. Here is an example of the menu displayed by the EFI Boot Manager:
EFI Boot Manager ver 1.02 [12.36A]
Please select a boot option:
Microsoft Windows Server 2003 Standard Edition
EFI Shell [Built-in]
Boot option maintenance menu
Each of these entries represents a path, either to boot file or to an operational shell. Following are explanations for these path entries:
The entry labeled Acpi(PNP0A03,0)/Pci(5|0)/Mac(0003478991556) loads the Preboot Execution Environment (PXE), which installs a setup image from a RIS server.
The EFI Shell option loads a command-line environment where you can navigate to various partitions on the drives and run EFI executable files.
The Boot Option Maintenance Menu controls a utility for managing the contents of the boot menu.
The operating system entries, such as Windows Server 2003, Standard Edition, entry in the example, represent a compact value in NVRAM that decodes to an entry like this:
LoadIdentifier = Microsoft Windows Server 2003, Standard Edition
EfiOsLoaderFilePath = HardDiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsLoaderFilePath = HardDiskVolume2\WINDOWS
The individual NVRAM entries are not visible directly from the EFI shell. Microsoft provides a utility in the EFI System Partition called Nvrboot.efi for managing Windows entries in NVRAM. The operation of this utility is covered in Chapter 3, "Adding Hardware."
There is no simple way to re-create the operating system path in a Boot Manager entry if you accidentally overwrite an entry in NVRAM or the entry becomes corrupted. For this reason, when Setup creates a Boot Manager entry, it stores a backup copy in a file called Boot0004 stored in the ESP in the same folder as the Ia64ldr.efi file, \EFI\Microsoft\WINNT50.
If you have multiple copies of Windows Server 2003 or XP on a machine, the copy of the Boot Manager entry for that instance of Windows is given the next sequential number (Boot0005, for example) and stored in the ESP folder that holds the secondary bootstrap loader for that instance.
For example, the Ia64ldr.efi file for the third Windows OS on a machine would be found in \EFI\Microsoft\WINNT50.1 and the Boot Manager entry stored in that folder would be named Boot0007.
If you lose or overwrite the original NVRAM entry for a Windows installation, you can use the Import option of the Nvrboot.efi utility to import the contents of the Boot000# file into NVRAM. This creates a new Boot Manager entry and does not overwrite any existing entries.
GPT Drive Sizes
GPT drives can contain 264 logical blocks. A logical block generally contains one sector, or 512 bytes, yielding a capacity of a phenomenal eight zettabytes. (See physics.nist.gov/cuu/Units/prefixes.shtml for a list of scientific notation prefixes.) However, Windows Server 2003 sets a maximum volume size of 16 exabytes, corresponding to the limits of NTFS. This may not seem like much of a limit, but just wait until the next version of Microsoft Office comes out.
A GPT disk cannot be read by standard MBR-based utilities. This can lead to problems for utilities that perform automated processes on unpartitioned drives.
To protect a GPT disk from corruption by these utilities, the GPT specification includes a protective MBR. This is an MBR placed at Sector 0 of the disk with a single partition table that spans the entire disk (or the maximum allowable MBR disk size, whichever is smaller). If a utility makes a change to this structure, it will not prevent an IA64 server from accessing volumes on the disk.
Partitioning GPT Disks
GPT disks are partitioned using the EFI firmware on the system or by an IA64 version of Windows Server 2003 or XP. Standard IA32 versions of Windows Server 2003 and XP cannot read or write to a GPT disk. IA64 versions can read and write to an MBR disk but they must boot from a GPT disk. Earlier versions of Windows cannot read, write, or boot from a GPT disk.
Removable media cannot be partitioned as GPT disks. An IA64 system partitions large capacity cartridge drives such as Jaz, Zip, and Orb drives along with magneto-optical disks and superfloppies. A superfloppy disk can have only one partition that can be formatted FAT, FAT32, or NTFS.
Detachable disks, such as Universal Serial Bus (USB) drives or IEEE 1394 drives or SCSI/Fibre Channel drives in a cluster, must be partitioned as MBR disks rather than GPT disks.