redundant array of independent disks (RAID) A group of technologies that enhance the performance or fault tolerance, or both, of disk storage systems. Overview Redundant array of independent disks (RAID) technologies were conceived in the late 1980s as a way of preventing input/output (I/O) and disk storage from becoming the bottleneck in the emerging PC architecture. This was because at the time, processor and memory technologies were growing exponentially while capabilities and costs of disk storage were changing only incrementally. The original meaning of RAID was .redundant array of inexpensive disks,. which highlighted the original purpose of RAID technologies as a means of utilizing the relatively low cost of commodity PC disk drives to provide storage solutions comparable to much more expensive mainframe disk storage platforms. By utilizing such technologies as mirroring, striping, and parity, RAID solutions soon emerged as the storage platform of choice for the PC server platform, a place which it still holds today, since RAID technologies have become integrated into network attached storage (NAS) and storage area network (SAN) technologies as well. Types The various levels of RAID that are currently defined include the following: ? RAID 0: Also called disk striping, this approach sees data written across the group of drives in stripes. Such .stripe sets. do not support any fault tolerance, but they do provide fast read/write performance. RAID 0 is most frequently employed in an environment where very large files (such as video or medical imaging files) need to be saved and read. ? RAID 1: Also called disk mirroring, this method has data written simultaneously to two (or more) disks, making one disk drive a mirror image of the other. Using mirror sets improves read performance slightly but has no effect on a single disk system for write performance. RAID 1 is frequently used for mission-critical servers such as authentication servers and e-commerce servers. ? RAID 2: Sometimes referred to as disk striping with error checking and correcting (ECC) or Hamming Code ECC, in this method information is striped (written across) bitwise across several disks and error checking information is calculated and written to a specially designated disk. RAID 2 has slow I/O and is rarely used. ? RAID 3: Sometimes known as disk striping with parity or parallel transfer with parity, in this approach data is striped to a disk set and parity information is written to a single disk for error recovery. I/O performance is not good and this method is rarely used nowadays. ? RAID 4: Sometimes referred to as disk striping with large stripes, here entire records are written to single drives, and parity information is stored on a single disk for error recovery. Write contention makes this method undesirable in most situations, and it is rarely used. ? RAID 5: Also known as disk striping with parity, here both the data and parity information are striped across all disks in stripes to provide full data recoverability in case any single drive fails. Disk striping with parity is an excellent way to protect data from the downtime caused by disk failures and is widely used in enterprises of all sizes. RAID 5 requires a minimum of three disks in order to work. ? RAID 6: Sometimes called disk striping with two parity schemes, this is an extension of RAID 5 that has additional fault tolerance built in and is designed to protect data against multiple simultaneous failed disk drives. Interest in this technology is growing in the enterprise networking arena, especially for high-availability e-commerce sites. ? RAID 10: Sometimes known as disk striping with disk mirroring, this is an expensive solution that has the same level of fault tolerance as RAID 1 together with the rapid I/O support of RAID 0. It is not commonly used due to the high cost of implementing it (every disk in the stripe set must be mirrored with a second disk). The .10. in RAID 10 is really 1+0 and the technology is sometimes called RAID 1+0 or RAID 0+1 to indicate more clearly what it is about. ? RAID 53: Sometimes called disk striping of stripe sets, this approach uses a stripe set (RAID 0) of individual RAID 3 disk arrays. RAID 53 has the same level of fault tolerance as RAID 3 and is very expensive and therefore not commonly used. The name RAID 53 is something of a misnomer, since one might more likely guess the designation to be RAID 30 = RAID 3+0. Implementation The two basic approaches to implementing RAID are ? Software RAID: This involves adding multiple Small Computer System Interface (SCSI) drives to the motherboard of a PC server and managing these drives as a RAID system using specialized software such as the built-in RAID support of Disk Management in Microsoft Windows 2000 Server, Windows XP, and Windows .NET Server. ? Hardware RAID: This utilizes separate storage units with dedicated I/O and integrated processing to provide better performance than software RAID but at a higher price. Popular hardware RAID 5 units often have hot-rebuild, hot-swap, and hotspare capabilities to protect business-critical data and ensure high availability. Prospects Different vendors have proposed a number of other RAID levels, including RAID 6, which employs highspeed caching and a real-time embedded operating system to support asynchronous transfers, and RAID 1+5, which combines the features of both mirroring and striping with parity. Land-5.s RAIDn technology is one example of RAID 1+5, and this technology is expected to make inroads in the enterprise over the next few years. The most popular RAID levels, however, are still RAID 0, 1, and 5, and Windows 2000 Server supports all three of these storage technologies. Another emerging approach is to integrate hardware RAID directly onto the motherboards of servers. This approach is expected to yield commodity PC servers costing less than $1,000 with built-in hardware RAID levels 0, 1, and 5 support.