by Larry Millett
Windows NT Server provides a variety of configuration options to maximize reliability and performance. These include the following:
This chapter begins with a discussion of automatic restart options and reviews virtual memory settings. The rest of the chapter puts Disk Administrator through its paces, from basic concepts through redundant arrays of inexpensive drives (RAID). After reading this chapter, you will understand how to configure Windows NT Server for fault tolerance and high performance.
Certain system errors, known as stop errors, cause Windows NT Server to stop all processes and shut down. Windows NT Server can perform several optional actions in the event of a stop error, including alerts to system administrators, core dump, and automatic restart.
To configure recovery options for Windows NT Server, perform the following steps:
TIP: For quick access to the System Properties dialog box, right-click the My Computer icon and selectProperties from the pop-up menu.
NOTE: The administrative alert function requires the Windows NT Alerter service.
See "Setting and Responding to Alerts," (ch 7)
NOTE: TheWrite debugging information option (when enabled) requires a paging file on the system partition at least as large as the amount of physical memory. When a stop error occurs, Windows NT Server writes the contents of memory to this paging file. When the system restarts, Windows NT Server copies the core dump from the paging file to the specified debugging file before initializing the paging file.
NOTE: For dual boot systems, the Startup section specifies the default operating system (OS) and the delay during boot up when you can select a different OS. The options reflect the contents of BOOT.INI.When automatic reboot is enabled, the default OS should be Windows NT Server.
Windows NT Server provides a separate 4G logical address space for each application. This means that each program can run as if it were the only program running on a computer with 4G of physical memory. Very few servers have 4G of memory installed. Windows NT Server uses a strategy called virtual memory to swap idle portions of a program to and from a hard disk. The total physical memory plus the total size of all swap files determine the total virtual memory available on a server. For example, a server might have 256M of physical memory, and 256M of hard disk space set aside for a total 512M virtual memory. Although this is substantially less than 4G, it's enough for some very heavy duty computing.
Disk swapping can slow down Windows NT Server substantially, so it's best to have plenty of physical memory. On the other hand, reduced performance is better than an out of memory error.
Windows NT Server enables you to specify minimum and maximum sizes for memory swap files, and allows a separate swap file on each physical disk. The OS will dynamically vary the size of the swap files within the specified range. For best performance, Microsoft recommends setting up a separate paging file on each disk.
To configure virtual memory for Windows NT Server, follow these steps (this procedure requires a system restart):
NOTE: The Application Performance setting controls the relative priority of foreground tasks over background tasks in Windows NT Server. Typically, nobody uses a server as a workstation, so it makes little sense to boost foreground performance. For a dedicated server that provides a particular application service (such as SQL Server), foreground performance should be boosted.
Windows NT Server provides a range of options for configuring disk space. Determine your needs based on three factors: performance, fault tolerance, and efficient use of disk space. For best performance, use a stripe set without parity. For fault tolerance, use a stripe set with parity (better read performance) or a mirror set (better write performance). For the most efficient use of disk space, Windows NT Server 4.0 supports file compression.
CAUTION: You should create an updated emergency repair disk (ERD) after any disk configuration changes.
See "Creating an Updated Emergency Repair Disk," [Ch 5]
Windows NT Server's Disk Administrator tool makes it easy to get the most from your hard disk subsystem. This tool provides a graphical interface for a variety of functions, as follows:
NOTE: Disk Administrator offers two distinct views of your disk subsystem: the Volumes view and the Disk Configuration view. You can select either view from theView menu. The Volumes view is useful if you have many volumes; otherwise, the Disk Configuration view is kinder and gentler. Instructions in this chapter assume the Disk Configuration view.
To use Disk Administrator effectively, you must first understand a few basic concepts. A disk is a physical hard drive. Windows NT Server does not allow you to work with smaller physical units (platters, heads, cylinders, tracks, or segments). A partition is a portion of a disk that the OS treats as an independent logical device. A partition can be primary or extended. An extended partition can be further subdivided; a primary partition cannot. A primary partition can be formatted, but an extended partition must have additional structures defined before formatting. Each disk can have up to four partitions; only one can be an extended partition.
NOTE: MS-DOS and Windows 95 support only one primary partition per disk. If you create more than one primary partition on a disk, Disk Administrator warns you that the new partition will be inaccessible from MS-DOS or Windows 95.In order to dual boot Windows NT Server and MS-DOS or Windows 95, the first primary partition on the first physical disk (disk 0) must be large enough to contain all shared files. This shared partition must not be compressed.
Windows NT Server defines two important partitions: system and boot. The naming is counter-intuitive: the system partition contains platform-specific files necessary to boot Windows NT Server, and the boot partition contains Windows NT Server system files. The system partition must be a primary partition on the first physical disk (disk 0). The boot partition can be the same as the system partition (recommended) or can be separate. Neither the system partition nor the boot partition can be part of a volume set or a stripe set. Disk Administrator cannot modify the system partition.
A logical drive is a portion of disk space in an extended partition that can be formatted with a file system. An extended partition might contain several logical drives, no logical drives, or portions of many logical drives. The term logical drive never refers to a formatted primary partition.
NOTE: By default, Windows NT Server assigns a drive letter to each primary partition, CD-ROM drive, and logical drive. Disk Administrator can assign drive letters permanently and arbitrarily: Right-click the volume and select Assign Drive Letter from the pop-up menu. Use this feature to add new logical drives and primary partitions without disrupting existing configurations and scripts.
A volume is a formatted primary partition or logical drive. Free space is hard disk space not assigned to a logical drive or primary partition. It includes unpartitioned space and space in extended partitions not yet assigned to a logical drive.
The first partition on the first hard disk must be a primary partition. This partition stores the Windows NT Server startup and system files. If no such partition exists, Windows NT Server creates one automatically during installation. Each disk can contain up to four partitions, but MS-DOS and Windows 95 can access only the first primary partition on a disk.
TIP: A primary partition is designed to contain startup files for an operating system; extended partitions offer substantially more flexibility.
Follow these steps to create a primary partition with Disk Administrator:
NOTE: Disk Administrator marks free space with diagonal lines. If the lines run upward from left to right, the free space is unpartitioned. If the lines run upward from right to left, the free space is part of an extended partition.
NOTE: Disk Administrator does not update your hard disk until you commit partition changes. If you exit before committing changes, Disk Administrator will remind you (but not force you) to commit changes before exiting.Unlike the MS-DOS or Windows 95, Windows NT does not require a system restart after modifying partitions.
An extended partition provides the best flexibility for configuring Windows NT Server disk space. Windows NT can subdivide an extended partition into many logical drives, while a primary partition can contain only a single volume. Unlike a primary partition, an extended partition can span multiple disks and grow over time.
Follow these steps to create an extended partition with Disk Administrator:
The simplest way to use an extended partition is to create a logical drive. A logical drive can be formatted and used just like a primary partition, except that it cannot be the Windows NT system partition.
Follow these steps to create a logical drive on an extended partition:
Newly created primary partitions and logical drives must be formatted before they can be used. Formatting installs and initializes a file system on the selected disk space. File system choices include File Allocation Table (FAT) or Windows NT File System (NTFS). Only NTFS supports Windows NT Server's advanced security features.
NOTE: Prior versions of Windows NT Server supported the OS/2 High Performance File System (HPFS); version 4.0 drops support for HPFS.
Follow these steps to format a logical drive or primary partition using Disk Administrator:
NOTE: The Format dialog box includes several other options beyond the file system and volume label. The Cpacity setting is useful only for floppy disks. Use the defaultAllocation Unit Size except in rare instances; if you need a small drive to contain the maximum possible number of very small files (less than 2K), use 512 byte allocation units. TheQuick Format option (not available for mirror sets or stripe sets with parity) initializes the file system without scanning the volume for errors.Enable Compression initializes the root directory as a compressed directory so that all new files and folders added to the volume are compressed by default. Compression can be easily enabled or disabled at any time without reformatting.
A volume set joins two or more areas of free space into a single logical drive. You could use a volume set, for example, to create a single 4G logical drive spanning four 1G disks. A volume set can span up to 32 physical disks, and, once formatted, functions as a single volume.
You can also create a volume set by extending an existing volume. Extending appends free space to an existing volume or volume set, a useful way to bring new disk space online. Only volumes formatted with NTFS can be extended; stripe sets, mirror sets, and the system partition can never be extended.
CAUTION: If any one disk used by a volume set fails, all data on the volume set will be lost. The likelihood of such a failure increases with the number of disks spanned by a volume set. A logical drive implemented as a volume set spanning four disks is four times as likely to fail as a logical drive residing on a single disk.A stripe set with parity creates a fault tolerant volume spanning multiple disks, but with less efficient use of disk space.
Creating a Volume Set
Follow these steps to create a volume set (requires a system restart):
Extending a Volume
Windows NT Server can extend a NTFS formatted volume onto free space on any disk. This results in a larger volume, which can be a useful way to bring new disk space online. Volume sets can grow larger, but never smaller.
Follow these steps to extend an NTFS formatted volume (requires a system restart):
Windows NT Server provides software support for RAID level 0 (stripe sets), RAID level 1 (mirroring), and RAID level 5 (stripe sets with parity) using ordinary hard disks. RAID became popular in the late 1980's as an alternative to the single large expensive drive (SLED). Beyond the obvious economic disadvantage, a SLED represented a single point of failure for a computer system. RAID provides improved fault tolerance and improved performance. Combining individually unreliable components of mediocre performance into a highly reliable high performance system is a hallmark of engineering excellence.
TIP: For best performance with RAID, use identical disks.
Many vendors offer hardware RAID subsystems with carefully matched and tuned disks and controllers. These subsystems generally outperform the software implementation in Windows NT Server, but also cost substantially more. When using hardware RAID, follow the manufacturer's instructions for managing RAID volume sets. The procedures outlined in this section apply only to RAID sets implemented through NT's software support.
NOTE: Although Windows NT Server supports stripe sets and stripe sets with parity for IDE drives, SCSI is a far better choice for a high performance server. The IDE specification provides for only two controllers in a computer and only two drives per controller. Windows NT supports up to four SCSI controllers with up to seven devices on each controller. High performance SCSI controllers support parallel writes to multiple drives or direct writes from one drive to another (via DMA), as well as a much higher base bandwidth.
RAID level 0 provides maximum performance, at the expense of reliability. RAID level 1 and RAID level 5 provide fault tolerance. On most servers, it makes sense to mirror the system partition. A stripe set with parity makes sense for critical online data (such as a SQL Server database).
Disk mirroring provides protection against hard disk failure by maintaining an exact copy of a partition on a separate physical drive. If one drive in a mirror set fails, no data will be lost. Disk striping with parity offers a similar degree of fault tolerance; however, mirroring is the only fault tolerance option available for the system partition.
CAUTION: Establishing a mirror for the system partition makes it impossible to dual boot MS-DOS or Windows 95.
TIP: When one component of a mirror set fails, it can be replaced without loss of data. This process (described in the following section) imuch simpler when the disks containing the mirror contain no other partitions.For best performance and simplest maintenance, a mirror set should consist of a single partition, including all space on one disk mirrored onto an identical disk.
Establishing a Mirror Set
Follow these steps to establish a mirror set (requires a system restart):
Creating a Fault Tolerant Boot Disk
To boot the server after a failure of the disk containing the system partition, you need a fault tolerant boot disk. This disk enables you to start the server from the mirror disk rather than the primary. The boot disk contains an edited version of BOOT.INI identifying the mirror of the system partition as the boot partition. Editing BOOT.INI requires an understanding of the Advanced RISC Computer (ARC) naming convention used in BOOT.INI to identify the system partition. Read the sidebar "Understanding ARC Names" before creating the fault tolerant boot floppy.
Understanding ARC NamesARC names uniquely identify a disk partition within a computer. The ARC name includes four parts, identifying the disk controller, the bus, the disk, and the primary partition. An ARC name for the first primary partition on the first disk on the first (only) bus on the first IDE or ESDI controller would look like this:
multi(0)disk(0)rdisk(0)partition(0)
The following is a brief discussion of each component of an ARC name:
- multi or scsi(i)ñThis entry identifies a hard disk controller. The entry is scsi(i) for SCSI adapters with no BIOS, multi(i) otherwise. The i selects a specific controller when the computer contains more than one; for the first controller, i will be 0.
- disk(j)ñFor controllers identified as scsi(i), disk(j) specifies the SCSI address of the device. Devices on a SCSI bus are numbered from 0 to 7 (0 to 15 for wide SCSI); 7 is always reserved for the controller. For controllers identified as multi(i), this entry is always disk(0).
- rdisk(k)ñFor IDE or ESDI controllers identified as multi(i), this entry is rdisk(0) for the master drive or rdisk(1) for the slave drive. For SCSI adapters with BIOS, this entry specifies the SCSI address of the device. For controllers identified as scsi(i), this entry is always rdisk(0).
- partition(m)ñThis entry identifies a partition on a hard disk. Unlike other entries, numbering starts at 1 for the first partition.
The ARC name for the first partition on the master drive on the first IDE controller is as follows:
multi(0)disk(0)rdisk(0)partition(1)
Follow these steps to create a fault tolerant boot disk:
- BOOT.INI
- NTLDR
- NTDETECT.COM
- NTBOOTDD.SYS (if present)
Testing the Fault Tolerant Boot DiskThe worst time to find that a fault tolerant boot disk doesn't work is after a system partition crash. Take time to test the boot disk right after creating it.
The best way to test is to simulate failure of the disk containing the system partition (replace it, for example, with an unformatted drive) and boot from the disk. If the system boots correctly, the fault tolerant boot disk is good to go. Remount the original disk containing the system partition, label and write-protect the boot disk, and save it in a safe place.
If you simply boot from the disk, without simulating system partition failure, one of two things will happen:
- If BOOT.INI contains an incorrect ARC name, the boot process will be unable to find NTOSKRNL and will halt before displaying the familiar blue text mode startup screen. This indicates that the fault tolerant boot disk is not working.
- If the ARC name is correct, NTOSKRNL will load (you will see the blue text mode startup screen), but the boot will stop with a blue screen full of debug information. This indicates that the fault tolerant boot disk is working. Label and write-protect the disk, and save it in a safe place.
If the boot disk does not seem to be working, you may just need to modify BOOT.INI. If it still doesn't work, reformat the disk and carefully follow the procedure outlined in this section for creating a fault tolerant boot disk.
Breaking a Mirror Set
Breaking a mirror separates the mirror set into two independent partitions. This procedure is required to recover from failure of one partition in a mirror set. Also, if fault tolerance provided by the mirror set is no longer needed, breaking the mirror will free the disk space used for mirroring. Once broken, NT cannot re-establish the mirror (although you can create a new mirror set using the same components).
Follow these steps to break a mirror set (requires a system restart):
CAUTION: Do not select Delete from the pop-up menu. This will delete thentire mirror set.
Repairing a Mirror Set
When one partition in a mirror set fails, the system continues to operate. Unless you have configured an administrative alert for disk failures, you might not notice the failure until the next time you start Disk Administrator or (if the system partition fails) restart the server. Even though the system continues to run, however, the data previously protected by the mirror is now at risk. A broken mirror must be repaired as soon as possible to minimize risk of data loss.
Repairing a mirror set is straightforward when the failed partition is not the system partition. This includes the case when the failed partition is the mirror of the system partition. Recovery involves three basic steps: replace the failed disk; break the mirror set for the surviving component; and re-establish the mirror onto the replacement disk. Note that the first task (replacing the failed disk) can be quite complicated if the disk contains any other partitions besides the mirror.
Follow this procedure to repair a mirror set when the failed partition is not the system partition (requires multiple system restarts):
Follow these steps to repair a mirror set when the failed partition is the system partition:
TIP: The goal of this process is to create a new bootable system partition, which must be primary partition. This means that the mirror must be established on an unpartitioned area on the replacement disk. A mirror established on an extended partition will result in a logical drive, which cannot be a bootable system partition.
Windows NT Server provides software implementation of RAID level 0, or disk striping. Because disk access is efficiently spread across multiple physical disks, stripe sets offer the best disk performance available under Windows NT. Data is divided into 64K blocks, with consecutive blocks placed on separate disks. This strategy requires that the stripe set occupy equal space on each disk.
NOTE: To obtain enhanced performance from a stripe set, the disks must support independent read/write access. A stripe set spanning two hard drives attached to a single IDE controller will not provide enhanced performance because the controller can only access one drive at a time. Even for a system wittwo IDE controllers (the IDE specification allows only two), performance enhancement would be limited. Many SCSI controllers do support multiple independent read/write operations and are therefore a good choice for implementing RAID level 0.
RAID level 0 provides no fault tolerance; in fact, stripe sets are more failure prone than simple disk storage. Stripe sets with parity offer excellent fault tolerance, and are discussed in a following section "RAID Level 5: Stripe Sets with Parity." Sometimes, however, the performance boost from a RAID level 0 stripe set justifies the increased risk.
CAUTION: If any disk in a stripe set fails, all data in the entire stripe set will be lost. The presence of multiple disks actually increases the probability of failure. Do not use stripe sets where the cost of failure is very high. Always maintain a current backup of all data in a stripe set.
Perform the following steps to implement a stripe set. As with volume sets, creating a stripe set requires a system restart:
Stripe sets with parity (RAID level 5) have become a very popular fault tolerance strategy. The concept is similar to a regular stripe set: data is spread across multiple disks in 64K blocks. However, this method adds redundant data so that if one disk in the set should fail, data can be reconstructed from the remaining disks. The redundant data is called parity bits. Parity bits are also spread across all disks in the set, so that the parity information is always on a separate disk from the data it describes.
The disk space required for parity information varies with the number of disks in the stripe set: for three disks, one third; for four disks, one fourth; and for five disks, one fifth. This means that three 1G disks can provide 2G of fault tolerant information storage; four 1G disks can provide 3G, and five 1G disks can provide four fault tolerant gigabytes. Information theory places a lower limit on the amount of parity information required to represent a volume of data, so the 1/n relation only holds for smaller numbers of disks.
A stripe set with parity must span at least three physical disks and can span up to 32. As with regular stripe sets, IDE drives that do not support independent disk access are ill-suited for this purpose.
Creating a Stripe Set with Parity
Follow these steps to set up a stripe set with parity (requires a system restart):
Regenerating a Stripe Set with Parity
If one disk in a stripe set should fail, the stripe set with parity will continue to operate, but with reduced performance. Unless you have configured an administrative alert for disk failures, you might not notice the failure until the next time you start Disk Administrator. Event viewer will show an error, and the event description will read A stripe set or volume set member listed in the configuration information was missing, as shown in Figure 6.29.
Event Viewer shows the failure of one disk in a stripe set with parity.
Although the system continues to run, the data previously protected by the stripe set with parity is now at risk. As soon as possible, an administrator should shut down the server, replace the failed component, and regenerate the stripe set with parity.
Follow these steps to regenerate a stripe set with parity (requires a system restart):
Deleting a Stripe Set with Parity
Follow these steps to delete a stripe set with parity:
In this chapter, you learned to configure automatic recovery, virtual memory, and hard disk space. You also learned to use Windows NT Server's support for RAID level 0 (stripe sets), RAID level 1 (mirroring), and RAID level 5 (stripe sets with parity). To learn about related topics, see the following chapters:
© Copyright, Macmillan Computer Publishing. All rights reserved.