The case for software RAID
By David Stallmo
There is a common perception that software RAID is not a viable disk-array solution, because it consumes too much bandwidth from the host CPU and it is not fault tolerant. While this may have been the case 10 years ago, changes in server, CPU, and RAID technologies address these problems. Server technology, for one, has advanced significantly, evolving from 66MHz single- to 400MHz multi-processor systems. Such high-powered servers can easily handle RAID tasks performed on the CPU.
Performance issues aside, debate continues over the definition of software RAID. What exactly constitutes software RAID? The fact is all RAID is software RAID because all RAID algorithms are implemented in software. So, the real question is: On what processor should RAID software run:
- The host CPU
- A host bus adapter (HBA) processor
- External bridge controller hardware
In a typical software RAID implementation, the software is integrated into the host operating system as a device driver, coupled with one or more simple HBAs, which provide connectivity to the disks. Because software RAID uses the host`s main CPU(s) to execute all RAID algorithms and XOR functions, no additional hardware is required.
Therefore, software RAID has several advantages over hardware alternatives: performance, migration to future interface technologies, and storage expansion. And it is easy to install and is typically less expensive than hardware RAID.
HBA RAID adapters plug directly into the host bus and include an onboard processor, local memory, and port controller chips for disk attachment. Like software-based RAID, HBAs have to be loaded onto the host operating system as a device driver. Local memory is used for the disk cache. Some HBAs also include a hardware assist for the XOR function. HBA RAID is more expensive than software RAID, but less expensive than external bridge controllers.
Bridge array controllers reside outside the host, often incorporated into the array cabinet or a separate enclosure. Bridge implementations use a standard interface, such as SCSI or Fibre Channel, between the host and the controller, and can use a different interface between the controller and the disks. Large memory caches and XOR hardware are common features of these controllers.
Because these controllers are external and have their own processors and onboard RAID functionality, they tend to be operating system independent and provide a greater level of availability. On the downside, they are expensive and therefore tend to be relegated to high-end markets.
Software RAID advantages
While software RAID has an obvious cost advantage over hardware products, it also has many of the features and functionality of hardware products. In terms of performance, software implementations match--and in some cases outperform--hardware applications. Software RAID is also easy to install, administer, and upgrade. And it supports mixed-disk interfaces and future technologies--and gets a performance boost when servers are upgraded.
Software RAID can also be tightly coupled to the operating system and file system, allowing for performance improvements. This is not possible when RAID algorithms are run on their own processors and under their own operating systems.
Generally, hardware disk-array controllers use embedded RISC engines such as Intel`s i960 family. These processors pale in performance to the CPUs in file servers and high-end workstations, which often have multiple processors. Higher host processor speeds execute disk-array algorithms with minimal effect on host CPU performance.
Even when executing the XOR function on the host processor(s), a software disk array may use only 10% to 20% of a single 300MHz Pentium II to handle an eight-disk array. The CPU usage is even lower with higher-end CPUs and multi-processor servers and workstations.
Hardware RAID controllers use an intermediate memory for caching, which means that data is copied twice--once between the disks and the controller`s memory and once between the controller`s memory and the host`s main memory.
Therefore, to support full-speed transfers, the intermediate memory bandwidth has to be doubled. HBA and bridge products require two full protocol set-ups to make the two copies. The protocol overhead becomes significant for small transfers and appears as latency in the I/O requests.
On the other hand, in software RAID implementations data is transferred directly from the port controller chip to the main memory over the host`s high-speed PCI bus (132MBps to 528MBps for a 64-bit 66MHz implementation). A bridge controller relies on disk-interface technology. At 100MBps, Fibre Channel is the fastest interface available today.
When you replace a file server or improve its performance by adding CPUs or memory, the performance of a software RAID system also improves. Increases in CPU performance, memory bandwidth, and host bus bandwidth all improve software RAID performance. Moving a hardware-based RAID subsystem to a more powerful file server does not improve the performance of that system.
Since software RAID performance improves with the performance of the server, and protocol migration is easily accomplished using a software implementation, the product life cycle for software RAID is much longer than that of hardware-based RAID controllers.
Since software RAID runs as an operating system driver, any supported disk interface can be used in the disk-array implementation. Common interfaces are IDE, Wide Ultra SCSI, Ultra2 LVD SCSI, and Fibre Channel. Soon Ultra3 SCSI (160MBps) and 2Gbit Fibre Channel will be available. Software RAID can migrate to a new interface protocol as soon as that technology is available on HBAs.
Additionally, software RAID allows users to add new interface technology to legacy storage systems simply and inexpensively. For example, a 2Gbit Fibre Channel array can be added to an existing Ultra2 SCSI system simply by attaching a Fibre Channel HBA and disk drives. With hardware controllers, users are locked to the protocols of existing systems.
Easier to use
It`s much easier to install a software disk array than a hardware implementation. There is no need to open the PC, and there is less hardware, less cabling, and no host IDs with which to contend. Most servers today are shipped with SCSI onboard, and Fibre Channel will be available in the near future. It may not even be necessary to install an HBA or to load its driver.
It used to be that enclosure monitoring to detect equipment failure, measure temperature, and insert and remove components was only possible with hardware controllers. That`s no longer the case, thanks to SAF-TE, SES, and other enclosure management services. When used with disk arrays that support these services, software RAID offers a full range of environmental reporting options.
Software disk arrays also support host clustering and storage area networks (SANs). These emerging technologies give the same level of fault tolerance to software array systems that is possible with the hosts. So, fault tolerance is no longer limited to expensive, active/active hardware RAID environments.
Software RAID has made great strides in recent years--and this trend is expected to accelerate. As such, RAID is expected to gain popularity as a high performance, low-cost alternative for fault-tolerant RAID subsystems.
Which RAID type you choose--host bus, software, or external--depends on many factors, including cost, functionality, and ease of use.
David Stallmo is director of engineering, responsible for AdaptiveRAID software, at nStor Corp.`s Boulder Development Center, in Boulder, CO. He can be reached at firstname.lastname@example.org.