這是一篇比較有點年紀的文章. 來自DELL的文獻, 來自:
http://www.dell.com/content/topics/global.aspx/power/en/ps3q03_dumouchelle?c=us&l=en&cs=555
André Dumouchelle and Ahmad Ali (August 2003)
RAID subsystems offer data redundancy to help prevent information loss. This article discusses the differences and price/performance trade-offs among the various hardware RAID and software RAID implementations.
A range of RAID implementations exists for today’s servers. This article compares different software and hardware approaches, and analyzes the impact on system price and performance—thereby helping administrators understand which RAID implementation method may best meet their system requirements.
Understanding hardware and software RAID
Internal, server-based RAID subsystems can be classified in two broad categories depending on the processor used for executing the RAID engine—that is, the logic that redistributes data for different algorithms. Implementations in which the RAID engine executes on the processor of the host system are classified as non-intelligent RAID, generally known as software RAID. This RAID implementation requires only simple disk interface controllers such as SCSI or ATA, and relies on the host system for memory and processing resources.
Alternatively, intelligent RAID implementation methods, generally known as hardware RAID, provide dedicated processors and memory to execute the RAID engine outside the host operating system (OS) environment. In hardware RAID subsystems, the RAID volumes appear to the OS as physical drives.
![](https://images.cnblogs.com/cnblogs_com/jjkv3/1RAID.jpg)
Figure 1 sorts out the different types of internal RAID. Hardware RAID can be further categorized into I/O processor–based and I/O controller–based, and software RAID can be further categorized into driver-based and OS-based, as follows:
|
Figure 2 provides a side-by-side comparison of the advantages and disadvantages of each RAID method.
![](https://images.cnblogs.com/cnblogs_com/jjkv3/2raid.jpg)
![](https://images.cnblogs.com/cnblogs_com/jjkv3/3raid.jpg)
CPU-intensive applications gain performance from off-loading the RAID engine to the dedicated RAID processor. IOP-based and IOC-based RAID systems are most common in SCSI and Fibre Channel systems, but they also are seen in some high-end ATA configurations. Hardware RAID typically offers the widest array of RAID levels—particularly RAID-3 and RAID-5, which accelerate parity calculations using hardware exclusive OR (XOR) operations. Disk configuration information (metadata) is usually stored on the disk drives as well as in nonvolatile RAM. Hardware RAID typically uses large battery-backed cache memory, which improves performance and reliability.
The dedicated I/O processor handles all RAID functions and performs rebuilds, error recovery, and any additional functions that are part of a particular system’s feature set. Because it can perform operations independently of the OS, the I/O processor enables many RAID tasks to run outside the OS; host CPU performance is not affected.
![](https://images.cnblogs.com/cnblogs_com/jjkv3/4raid.jpg)
Some implementations contain metadata on the disks; others contain metadata only in nonvolatile RAM. No theoretical restrictions exist on the types of RAID level allowed using IOC-based RAID, but the most common levels used are RAID-0 and RAID-1 because of limited processor and memory resources available for the RAID engine in the IOC.
![](https://images.cnblogs.com/cnblogs_com/jjkv3/5raid.jpg)
Driver-based RAID is suitable for boot volumes because a minimal RAID engine is implemented in the BIOS (Int 13) service, allowing seamless boot from a degraded RAID-1 array. Administrators can configure the RAID drives through a BIOS utility that requires host server CPU and memory to run. The driver for these systems handles all error recovery as well as functions such as rebuilds. I/O performance gains are achieved at the cost of host CPU cycles, which can adversely affect CPU-intensive environments. Driver-based RAID systems incur higher CPU overhead than hardware RAID systems.
![](https://images.cnblogs.com/cnblogs_com/jjkv3/6raid.jpg)
Software RAID does not require special controller device drivers; its engine relies on the system processor and memory to function. Administrators can typically implement RAID-0, RAID-1, and RAID-5 across drives in a software RAID configuration. These configurations can span multiple disk controllers. Certain operating systems do not allow the user to protect the OS partition, because the RAID engine does not run until the OS is loaded. In addition, booting from a degraded RAID-1 boot drive may require manual intervention if the original boot drive is no longer working. Performance is usually on par with driver-based RAID architectures.
Balancing price/performance of RAID implementation methods
Each RAID implementation method offers particular advantages and disadvantages. IT administrators can choose among these methods to balance needs such as performance, ability to run background tasks, and ease of use against factors such as cost and required component space. Tailoring a RAID method to an organization’s particular IT requirements can help administrators achieve cost-effective data protection.