Mission-critical information, whether it’s your customer database or your Web server, needs unprecedented levels of reliability. One reliable tool that’s become more affordable in recent years is RAID—redundant array of independent disks. RAID combines several physical hard disks into a unit that the host computer identifies as a single drive.
RAID can provide several advantages; the degree to which each comes into play depends on the RAID level you implement. These advantages include:
- Speed—Writing data to and reading data from multiple physical drives decreases transfer times.
- Reliability—Many RAID levels provide data redundancy to varying degrees.
- Storage—Combining hard disks can increase overall storage space, although various data redundancy schemes can eat into that bonus.
RAID comes in a number of levels; each represents a different combination of physical drives, fault tolerance, and storage schemes. Current levels of RAID include:
- RAID 0
- RAID 1
- RAID 2
- RAID 3
- RAID 4
- RAID 5
- RAID 6
- RAID 7
- RAID 10
- RAID 53
- RAID 0+1
Figure A illustrates the key features of each level. As you can see, certain levels are more theoretical than practical. There’s also some contention as to whether RAID 0 is truly RAID, as the lack of fault tolerance tends to belie the “redundant” concept.
RAID level pros and cons
|RAID level||Characteristics||Minimum number of physical drives||Advantages||Disadvantages|
|0||Uses striping but not redundancy of data; often not considered “true” RAID||2||Provides the best performance because no parity calculation overhead is involved; relatively simple and easy to implement||No fault tolerance; failure of one drive will result in all data in an array being lost|
|1||Duplicates but does not stripe data; also known as disk mirroring||2||Faster read performance, since both disks can be read at the same time; provides the best fault tolerance, because data is 100 percent redundant||Inefficient high disk overhead compared to other levels of RAID|
|2||Disk striping with error checking and correcting information stored on one or more disks||Many||Very reliable; faults can be corrected on the fly from stored correcting information||High cost; entire disks must be devoted to correction information storage; not considered commercially viable.|
|3||Striping with one drive to store drive parity information; embedded error checking (ECC) is used to detect errors||3||High data transfer rates; disk failure has a negligible impact on throughput||Complex controller design best implemented as hardware RAID instead of software RAID|
|4||Large stripes (data blocks) with one drive to store drive parity information||3||Takes advantage of overlapped I/O for fast read operations; low ratio of parity disks to data disks||No I/O overlapping is possible in write operations, since all such operations have to update the parity drive; complex controller design|
|5||Stores parity information across all disks in the array; requires at least three and usually five disks for the array||3||Better read performance than mirrored volumes; read and write operations can be overlapped; low ratio of parity disks to data disks||Most complex controller design; more difficult to rebuild in case of disk failure; best for systems in which performance is not critical or that do few write operations|
|6||Similar to RAID 5 but with a second parity scheme distributed across the drives||3||Extremely high fault tolerance and drive-failure tolerance||Few commercial examples at present|
|7||Uses a real-time embedded operating system controller, high-speed caching, and a dedicated parity drive||3||Excellent write performance; scalable host interfaces for connectivity or increased transfer bandwidth||Very high cost; only one vendor (Storage Computer Corporation) offers this system at present|
|10||An array of stripes in which each stripe is a RAID 1 array of drives||4||Higher performance than RAID 1||Much higher cost than RAID 1|
|53||An array of stripes in which each stripe is a RAID 3 array of disks||5||Better performance than RAID 3||Much higher cost than RAID 3|
|0+1||A mirrored array of RAID 0 arrays; provides the fault tolerance of RAID 5 and the overhead for fault tolerance of RAID 1 (mirroring)||4||Multiple stripe segments enable high information-transfer rates||A single drive failure will cause the whole array to revert to a RAID 0 array; is also expensive to implement and imposes a high overhead on the system|
What drives to use?
Most new hard disks should be suitable for inclusion in a RAID array; if in doubt, check the manufacturer’s documentation. However, when implementing RAID, it’s best is to use hard disks of equal capacity (preferably the same model). If the linked hard disks aren’t identical in size, storage space will be restricted to the capacity of the smaller drive. For example, a 25-GB drive combined with a 20-GB drive in a RAID array will provide only 20 GB of space. Of course, some of this space might also be allocated to parity information.
Operating system support
RAID can be implemented via hardware or software. Originally, hardware disk controller cards were the most popular method, but software solutions have picked up in popularity since it has been built in to many operating systems, including:
- Windows NT Server 4.0.
- Windows 2000 Server and Advanced Server.
- Most UNIX operating systems.
- Red Hat, Caldera, and most current versions of Linux.
Note that not all operating systems support all types of RAID. For example, under Windows 2000 Advanced Server, you can implement only RAID levels 0 (striping), 1 (mirroring), and 5.
Although Windows 95, Windows 98, and various incarnations of the Macintosh OS don’t natively support RAID, you can add RAID capability with add-on software. However, if you implement software-based RAID, you can’t include your boot disk as part of the array, since the operating system has to load before the RAID features are enabled.