Implementing RAID on Windows NT Servers

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

By William R. Stanek

Archived content - No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

from Chapter 8, Windows NT Administrator's Pocket Consultant .

For server systems, Windows NT supports disk mirroring, disk striping, and disk striping with parity. Implementing these RAID techniques is discussed in the sections that follow.

Note: Some operating systems, such as MS-DOS, do not support RAID. If you dual boot your system to one of these noncompliant operating systems, your RAID-configured drives will be unusable.

Implementing RAID 0: Disk Striping

RAID level 0 is disk striping. With disk striping, two or more partitions—each on a separate drive—are configured as a stripe set. Data written to the stripe set is broken into blocks that are called stripes. These stripes are written sequentially to all drives in the stripe set. You can place partitions for a stripe set on up to 32 drives, but in most circumstances sets with 2–5 partitions offer the best performance improvements. Beyond this, the performance improvement decreases significantly.

The major advantage of disk striping is speed. Data can be accessed on multiple disks using multiple drive heads, which improves performance considerably. However, this performance boost comes with a price tag. As with volume sets, if any hard drive in the stripe set fails, the stripe set can no longer be used, which means that essentially all data in the stripe set is lost. You will need to re-create the stripe set and restore the data from backups. Data backup and recovery is discussed in Chapter 11.

Note: The boot and system partitions can't be part of a striped set. Do not use disk striping with these partitions.

When you create stripe sets, you'll want to use partitions that are approximately the same size. Disk Administrator bases the overall size of the stripe set on the smallest partition size. Specifically, the maximum size of the stripe set is a multiple of the smallest partition size. For example, if the smallest partition is 50 MB and you've selected three free space areas, the maximum size for the stripe site is 150 MB.

To maximize performance of the stripe set, there are several things you can do:

  • Use disks that are on separate disk controllers. This allows the system to simultaneously access the drives.

  • Do not use the disks containing the stripe set for other purposes. This allows the disk to dedicate its time to the stripe set.

In Disk Administrator, you can create a stripe set by doing the following:

  1. Select a free space area, and then hold down the Ctrl key and select additional free space areas to add to the stripe set. Each free space area must be on a separate disk.

  2. Select Create Stripe Set from the Partition menu.

  3. You should see the Create Stripe Set dialog box (which is essentially the same as the dialog box shown in Figure 8-1). Disk Administrator displays the minimum and maximum size for the stripe set and lets you size the stripe set within these constraints.

    Use the Create Stripe Set Of Total Size field to size the stripe set. Partitions are sized equally and assigned a single drive letter. To size the individual partitions, Disk Administrator divides the total size by the number of areas you've selected. These partitions are unformatted and labeled as such.

  4. Click OK when you're finished.

  5. Commit the change by selecting Commit Changes Now from the Partition menu.

  6. Select an area within the stripe set by clicking on it, and then choose Format from the Tools menu to format partitions in the stripe set. The stripe set can be formatted as FAT or NTFS.

Once you create a stripe set, users can use the set just like they would a normal drive. You can't expand a stripe set once it is created. Because of this, you should carefully consider the setup before you implement it.

Implementing RAID 1: Disk Mirroring

RAID level 1 is disk mirroring. With disk mirroring, you use identically sized partitions on two different drives to create a redundant data set. Here, the drives are written with identical sets of information and, if one of the drives fails, the data can still be obtained from the other drive.

Disk mirroring offers about the same fault tolerance as disk striping with parity. Because mirrored disks don't need to write parity information, they can offer better write performance in most circumstances. However, disk striping with parity usually offers better read performance because read operations are spread out over multiple drives.

The major drawback to disk mirroring is that it effectively cuts the amount of storage space in half. For example, to mirror a 1 GB drive, you need another 1 GB drive. That means you use 2 GB of space to store 1 GB of information.

Note: Unlike disk striping, with disk mirroring you can mirror any partition. This means you can mirror the boot and system partitions if you want.

As with disk striping, you'll often want the mirrored disks to be on separate controllers. This provides increased protection against failure of the disk controller. If one of the disk controllers fails, the disk on other controller is still available. Technically, when you use two separate disk controllers to duplicate data, you're using a technique known as disk duplexing. Figure 8-2 shows the difference between the two techniques. Where disk mirroring typically uses a single drive controller, disk duplexing uses two drive controllers.

If one of the mirrored drives in a set fails, disk operations can continue. Here, when users read and write data, the data is written to the remaining disk. You'll need to break the mirror before you can fix it. To learn how, see the section of this chapter titled "Managing RAIDs and Recovering from Failures."

Creating a Mirror Set in Disk Administrator

In Disk Administrator, you create a mirror set by completing the following steps:

  1. Select the partition you want to duplicate.

  2. Hold down the Ctrl key and select an equally sized or larger area of free space on another disk.

  3. Select Establish Mirror on the Fault Tolerance menu.

    Cc722480.08wnta02(en-us,TechNet.10).gif

    Figure 8-2: While disk mirroring typically uses a single drive controller to create a redundant data set, disk duplexing uses two drive controllers. Other than this, the two techniques are essentially the same.

  4. Commit the change by selecting Commit Changes Now from the Partition menu.

When you commit the changes, Disk Administrator creates the mirror and assigns the same drive letter to both partitions. You can use the Volumes window (by clicking on the Volumes button or selecting Volumes from the View menu) to see the status of the mirror. As with other RAID techniques, mirroring is transparent to users and they can access the mirrored set just as they would any other drive.

Note: The status of a normal mirror is Healthy. During the creation of a mirror, you may see a status of Initializing. This tells you that Disk Administrator is setting up the mirror.

Note: Windows NT automatically synchronizes mirrored drives. If the mirrored drives get out of sync, Disk Administrator's Disk Configuration window may show one of the mirrored partitions in red. This tells you that Windows NT is attempting to resynchronize the drives.

Implementing RAID 5: Disk Striping with Parity

RAID level 5 is disk striping with parity. With this technique, you need a minimum of three hard drives to set up fault tolerance. The partitions on these drives are sized identically by Disk Administrator. Although you can place partitions for a stripe set on up to 32 drives, in most circumstances sets with 2–5 partitions offer the best performance improvements. Beyond this, the performance improvement decreases significantly.

RAID 5 is essentially an enhanced version of RAID 1—with the key addition of fault tolerance. Fault tolerance ensures that the failure of a single drive won't bring down the entire drive set. Instead, the set continues to function with disk operations directed at the remaining partitions in the set.

To allow for fault tolerance, RAID 5 writes parity checksums with the blocks of data. If any of the drives in the stripe set fails, the parity information can be used to recover the data. (This process, called regenerating the striped set, is covered in the section of this chapter titled "Managing RAIDs and Recovering from Failures.") If two disks fail, however, the parity information is not sufficient to recover the data and you will need to rebuild the striped set from backup.

Note: The boot and system partitions can't be part of a striped set. Do not use disk striping with parity on these partitions.

Creating a Stripe Set with Parity in Disk Administrator

In Disk Administrator, you can create a stripe set with parity by doing the following:

  1. Stripe sets with parity are created in free space areas on a minimum of three separate disks. Select a free space area and then hold down the Ctrl key and select at least two additional free space areas to add to the stripe set.

  2. Select Create Stripe Set with Parity from the Fault Tolerance menu.

  3. You should see the Create Stripe Set with Parity dialog box (which is essentially the same as the dialog box shown in Figure 8-1). Disk Administrator displays the minimum and maximum size for the stripe set and lets you size the stripe set within these constraints.

    Use the Create Stripe Set Of Total Size field to size the stripe set. Partitions are sized equally and assigned a single drive letter. To size the individual partitions, Disk Administrator divides the total size by the number of areas you've selected. These partitions are unformatted and labeled as such.

  4. Click OK when you're finished.

  5. Commit the change by selecting Commit Changes Now from the Partition menu.

  6. Select an area within the stripe set by clicking on it, and then choose Format from the Tools menu to format partitions in the stripe set. The stripe set can be formatted as FAT or NTFS.

Once you create a stripe set, users can use the set just like they would a normal drive. Keep in mind that you can't expand a stripe set once it's created. Because of this, you should carefully consider the setup before you implement it.

Managing RAIDs and Recovering from Failures

Managing mirrored drives and stripe sets is somewhat different from managing other drive partitions, especially when it comes to recovering from failure. The techniques you'll need to manage RAID arrays and to recover from failure are covered in this section.

Breaking a Mirrored Set

There are two reasons you may want to break a mirror:

  • If one of the mirrored drives in a set fails, disk operations can continue. Here, when users read and write data, these operations use the remaining disk. Still, at some point you'll need to fix the mirror, and to do this, you must first break the mirror and then reestablish it.

  • If you no longer want to mirror your drives, you may also want to break a mirror. This allows you to use the disk space for other purposes.

    Note: Although breaking a mirror doesn't delete the data in the set, you should always back up the data before you perform this procedure. This ensures that if you have problems, you can recover your data.

In Disk Administrator, you can break a mirrored set by doing the following:

  1. Select one of the partitions in the mirrored set.

  2. Choose Break Mirror from the Fault Tolerance menu.

  3. Confirm that you want to break the mirror by clicking Yes. This creates two independent partitions.

  4. Commit the change by selecting Commit Changes Now from the Partition menu or by exiting the Disk Administrator and choosing Yes when prompted.

Repairing a Mirrored Set

Before you can repair a mirrored set with a failed drive, you need to break the mirror. Once you do, you can follow these steps to repair the mirror:

  1. Remove or repair the broken drive.

  2. Start Disk Administrator and make sure that the working drive in the original mirror set has the drive letter that was previously assigned to the complete mirror. If it doesn't, assign the appropriate drive letter. This allows users to access the drive using the original file path.

  3. Create a new mirror set by mirroring the working drive. When you do this, data from the remaining mirrored drive will be copied to the new drive to create a mirror set.

Repairing a Mirrored System Partition to Enable Boot

The failure of a mirrored drive may prevent your system from booting. Typically, this happens when you're mirroring the system or boot partition, or both, and the primary mirror drive has failed. To correct this problem, you need to replace the failed drive and then use an emergency boot disk for the system or a similarly configured system to enable system boot. Creating an emergency boot disk is covered in Chapter 7.

Once you have an emergency boot disk, you need to edit the BOOT.INI file it contains so that the operating system loads from the secondary mirror. This file contains entries that look like this:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 
NT Server Version 4.00"
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 
NT Server Version 4.00
[VGA mode]"/basevideo /sos

Entries like this tell Windows NT where to find the operating system:

multi(0)disk(0)rdisk(0)partition(2)\WINNT

How Designators Are Used

The designators for this entry are used as follows:

  • multi(0) Designates the controller for the drive, which in this case is controller 0. If the secondary mirror is on a different controller, enter the number of the controller. Controllers are numbered from 0 to 3.

    Note: The format for the BOOT.INI entries is the ARC (Advanced RISC Computer) name format. On SCSI systems that don't use SCSI BIOS, the first field in the entry is scsi(n), where n is the controller number.

  • disk(0) Designates the SCSI bus adapter, which in this case is adapter 0. On most systems, this is always 0. The exception is for systems with multiple bus SCSI adapters. These systems use the scsi(n) syntax.

  • rdisk(0) Designates the ordinal number of the disk on the adapter, which in this case is drive 0. With SCSI drives that use SCSI BIOS, you'll see numbers from 0 to 6. With other SCSI drives, this is always 0. With IDE, you'll see either 0 or 1. In most cases, you'll need to change this field—so be sure to enter the number of the secondary mirror drive.

  • partition(2) The partition that contains the operating system, which in this case is 2. Primary partitions are numbered 1 to 4. Extended partitions and unused partitions are not numbered.

If the secondary mirror was on drive 1, you could update the BOOT.INI file shown earlier as follows:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(1)partition(2)\WINNT="Windows 
NT Server Version 4.00"
multi(0)disk(0)rdisk(1)partition(2)\WINNT="Windows 
NT Server Version 4.00
[VGA mode]"/basevideo /sos

Booting and Rebooting the System

Once you update the BOOT.INI file, you can use the emergency boot disk to boot your system. When the system boots, you will need to complete the following steps:

  1. Break the mirror set and then recreate the mirror on the drive you replaced, which is usually drive 0.

  2. Reboot again using the emergency boot disk. The system will then rebuild the mirror.

  3. When the mirror is completely rebuilt, use Disk Administrator to break the mirror again. Make sure that the primary drive in the original mirror set has the drive letter that was previously assigned to the complete mirror. If it doesn't, assign the appropriate drive letter.

  4. Commit the changes when you exit Disk Administrator.

  5. You should now be able to boot using the original system partition. Remove the emergency boot disk from the floppy drive and reboot the system.

  6. Recreate the mirror set for the original system partition.

Repairing a Stripe Set without Parity

A stripe set without parity doesn't have fault tolerance. If a drive that is part of a stripe set fails, the entire stripe set is unusable. Before you try to restore the stripe set, you should repair or replace the failed drive. Afterward, you need to recreate the stripe set and then recover the data contained on the stripe set from backup.

Regenerating a Stripe Set with Parity

With RAID 5 you can recover the stripe set if a single drive fails. You'll know that a stripe set with parity drive has failed when you see a system error message stating that a disk that is part of a fault-tolerant volume can no longer be accessed. If you see this message, you should repair or replace the failed drive. Afterward, you can attempt to regenerate the stripe set.

Note: You should always back up the data before you perform this procedure. This ensures that if you have problems, you can recover your data.

In Disk Administrator, you can regenerate a stripe set with parity as follows:

  1. Select the stripe set with parity that you're attempting to regenerate.

  2. Hold down the Ctrl key and select an equally sized or larger area of free space on the new disk or any other disk that isn't a member of the striped set.

  3. Choose Regenerate from the Fault Tolerance menu.

  4. Restart the server. Windows NT will then regenerate the data in the new area.

When this is finished, you may need to assign the original drive letter to the stripe set. This ensures that users can access the drive using the same path information.

from Windows NT Administrator's Pocket Consultant by William R. Stanek. Copyright © 1999 Microsoft Corporation.

Link
Click to order