|
For those not familiar with RAID, let’s start out with a brief discussion.
RAID stands for
Redundant
Array of
Independent
(or Inexpensive)
Disks.
It’s intended to provide performance enhancement (speed) and fault tolerance
or redundancy (backup) to a series of hard disks. In the past, it’s been
used with SCSI hard drives, on dedicated controllers. It is now cropping
up using IDE, and is even integrated into several higher end motherboards.
The most common implementations are RAID-0, RAID-1, RAID-0+1, and RAID-5.
Each of these options provides a different set of benefits.
RAID-0 is called striping. This implementation enhances performance
by reading and writing data across multiple drives, using 2 to 32 different
drives at the same time. This allows the information to be accessed faster
by avoiding the bottleneck of sending data to and from a single drive.
The downfall of RAID-0 is its lack of fault tolerance. If one of the disks
in the array fails, all of the data across the entire array is lost.
RAID-1 is called mirroring, and provides a high level of fault tolerance.
A mirror is established by creating an exact copy of one drive onto another.
In other words, the same data is copied and stored on different disks so
that the data can be recovered from the second disk if the original drive
fails. The disadvantage of mirroring is a performance hit when writing
to disk, since each piece of data must be written twice.
RAID-0+1 is a hybrid of the previous implementations. Basically, you
create a stripe set and then mirror that set to an identical striped set.
This provides the performance boost of striping, with the redundancy of
a mirror. Users should expect a slight performance hit during the rewriting
process of the mirror.
RAID-5, called striping with parity, is the most common and frequently
used RAID level. It provides the performance boost of striping, using 3
to 32 different drives, adding a layer of redundancy using parity. Parity
spreads the information needed to restore the data on one of the hard drives
across the remaining drives in the set. The amount of disk space used to
store parity information is always equal to the size of one of the partitions
in the set. For example, if a stripe set with parity is created on five
disks, each with a 500 MB partition used for the stripe, 500 MB is used
for parity information and 2000 MB is available for data storage. Regardless
of how many disks are used in a stripe set with parity, data is recoverable
only if no more than one disk is lost. If two or more disks are lost, the
data is unrecoverable.
Now that we have the levels of RAID established, let’s talk about the
power management problems. First of all, the purpose of an UPS is to provide
temporary power to the server if the main source of power is unavailable.
An UPS should NEVER be used to continuously power a server. An UPS just
gives the administrator time to perform an orderly shutdown of the server—to
avoid corruption of open data files and to allow users to be warned that
the server is being shut down.
But what if the administrator is not available to shut the system down
after a power outage? Fortunately, most high end UPS come with software
programs which will perform the shutdown on behalf of the administrator.
These packages, based upon the server operating system, will shut down
the appropriate services — performing an orderly shutdown. These programs
may also be set to run scripts, the most common of which can be used to
alert the administrator by pager or e-mail, or to notify users of the pending
shutdown. More importantly, this software can be configured using custom
scripts, based upon which RAID device is being used, to save any cached
information to the array and to dismount (and shutdown) the RAID array.
Once these scripts are successfully completed, the server can be shutdown
without any issues arising from the RAID array. To learn what specific
commands are required for dismounting your particular RAID array, contact
the hardware vendor that produced your particular device.
|