IT professionals are constantly trying to prevent the data loss that results from disk failure. Data protection is typically provided through a RAID technology.
RAID gathers individual hard disks into cohesive disk sets (dubbed RAID groups or RAID arrays) that can be operated in unison through a dedicated RAID controller. Most general-purpose servers employ four to eight disks in a RAID group, although storage arrays, such as an EMC Clariion, can gather huge numbers of disks.
Grouping offers three benefits. Drive capacity can be aggregated to create larger storage volume. For example, two 100 GB drives can be aggregated to offer users a single 200 GB volume, although this benefit alone offers no redundancy. Redundancy is accomplished through mirroring where the contents of one disk are directly duplicated (or "mirrored") onto another drive. Should one disk fail, the mirrored disk can step in to supply any needed data.
Unfortunately, mirroring cuts capacity in half, so if you have two 100 GB disks, only one of the disks is usable at a time. Performance benefits are realized through disk striping, where the contents of a file are interleaved across several disks in the RAID group. One disk can be positioning or reading data into cache while another disk is passing data from cache across the drive interface, thereby increasing effective storage performance. In actual practice, RAID usually implements several of these tactics simultaneously.
RAID levels and combinations
Over the years, RAID tactics have been relegated into separate schemes (or levels) that outline the type of benefit offered. Each scheme is denoted with a number (the numbers are not intuitive). The basic RAID levels have changed little in almost 20 years:
- RAID-0 –- disk striping is used to improve storage performance, but there is no redundancy.
- RAID-1 –- disk mirroring offers disk-to-disk redundancy, but capacity is reduced and performance is only marginally enhanced.
- RAID-5 –- parity information is spread throughout the disk group, improving read performance and allowing data for a failed drive to be reconstructed once the failed drive is replaced.
RAID-6 –- multiple parity schemes are spread throughout the disk group, allowing data for up to two simultaneously failed drives to be reconstructed once the failed drive(s) are replaced.
There are additional levels, but these four are the most widely used. You can also mix RAID levels to obtain greater benefits. Combinations are typically denoted with two digits. For example, RAID-50 is a combination of RAID-5 and RAID-0 (sometimes noted as RAID 5+0), while RAID-10 is actually RAID-1 and RAID-0 implemented together (RAID 1+0).
Drives and controllers
RAID relies on a controller to organize and manage a disk group. Controllers offload much of the data I/O processing from the main system processor, and typically fit into an available expansion slot, such as PCI, PCI-X or PCI Express, within the server. Onboard memory is usually included to cache disk contents, and a small battery is used to back up cache contents, thereby guarding against disk failures while data is in flight. Controllers also provide a suite of protective features, such as hot spare support, online capacity expansion, RAID level migration and snapshot backup protection.
RAID can operate with virtually any type of hard disk interface. Traditionally, RAID groups used SCSI drives (daisy-chained together within the server using a common 68-pin ribbon cable). Newer RAID controllers support SATA and SATA II, and SAS drives. Serial drives support longer cabling, often allowing racks of drives to operate outside the server chassis. Some RAID controllers support either SAS or SATA on the same ports. Although your choice of hard disk will have no impact on RAID operation, it's important to select a drive type that is suitable for the RAID controller, while keeping an eye on a cost/performance tradeoff.