Most storage administrators are very familiar with the difference between implementing RAID in software and implementing RAID with specialized hardware, and the tradeoffs in cost, performance and reliability the different methods offer. However there are different kinds of both hardware and software RAID implementations and each has its own set of trade offs.
IOP vs IOC The two common ways of implementing hardware RAID are to use a special processor or subsystem in the array (I/O Processor, or IOP) or to rely on the processor(s) in the controller (I/O Controller, or IOC) to handle the various RAID tasks. The processor is usually either part of the server or built into the HBA. IOP RAID is the most common hardware implementation. It is also the most expensive and the most flexible. The separate processor and associated software and firmware give the RAID system much greater ability to handle chores like RAID level migration, recovery and disk array rebuilding than the alternative methods. For the storage administrator the major drawback to IOP RAID is cost. Because of the dedicated processor and other components, IOP RAID is the most expensive method of implementing RAID.
The other common approach to implementing hardware RAID is IOC, which uses processors on the disk controllers to provide RAID functionality. The major advantage of controller-based RAID is that it is a much cheaper form of hardware-based RAID. The biggest drawbacks are lack of performance and lack of flexibility compared to IOP. IOC is limited by the processor power and the memory bandwidth of the controller, so it is not usually as fast as IOP RAID. It also can't do as many of the RAID management jobs as IOP RAID. However it can still run tasks in the background and is independent of the operating system used by the computer. IOC RAID isn't well suited to high performance applications like databases, but it provides a (relatively) economical method of achieving the benefits of hardware RAID.
Driver vs OS-Based Software RAID also comes in two flavors. While software RAID systems are limited in performance and are not as reliable as hardware RAID, they are also much cheaper. This makes them especially useful in non-critical applications where high performance isn't needed. Software RAID can be implemented either in the disk controller driver or by the operating system itself.
Driver-based RAID is implemented in the drivers of the hard disk controllers. It offers an inexpensive version of RAID that is independent of the operating system, but relies on the specific make of controller for RAID functionality. OS-based RAID includes a RAID engine in the operating system. It is controller-independent, but OS-dependent. Both kinds of software RAID rely on system processor and memory resources to function, which means they can significantly affect performance in a highly loaded environment.
Dell Computers discusses the strengths and weaknesses of the various forms of RAID in a paper on its web site titled "Comparing RAID Implementation Methods", available at www.dell.com.
Rick Cook has been writing about mass storage since the days when the term meant an 80K floppy disk. The computers he learned on used ferrite cores and magnetic drums. For the last twenty years he has been a freelance writer specializing in storage and other computer issues.