|[Home] [Credit Search] [Category Browser] [Staff Roll Call]||The LINUX.COM Article Archive|
|Originally Published: Saturday, 30 September 2000||Author: Brian Richardson|
|Published to: enhance_articles_hardware/Hardware Reviews||Page: 1/1 - [Std View]|
RAID: Hardware or Software
Before you spend your bucks on a RAID controller, make sure you understand the difference between hardware RAID & software RAID ... and which one is right for your application.
RAID is an interesting technology. RAID ("Redundant Array of Inexpensive Disks" or "Redundant Array of Independent Disks", depending on who you talk to) allows multiple disks to be chained together, appearing as one larger disk volume. This can be utilized to form one very large disk, or store parity information to create a data recovery mechanism.
Hard disk storage has become very inexpensive lately, which has increased the interest in RAID technology. RAID is usually associated with large-scale servers, due to the cost of the controller and SCSI drives. Now RAID has been implemented on IDE drives, creating an affordable vehicle for the workstation and small server markets.
RAID can be implemented using hardware or software based solutions. The big question: which one is right for you?
The most common type of RAID controller falls into the "hardware RAID" category. With a "hardware RAID" controller, the mechanism for performing RAID functions is implemented using a microprocessor on controller card. These are usually some form of embedded RISC processor, with an option ROM providing the necessary firmware. This allows the card to perform ("do its thing") behind the computer's back.
In most cases, the computer doesn't know how the RAID card processes data . . . and really, it doesn't care. As long as data goes to the drives and comes back from the drives, your PC is one happy camper. This prevents the computer from wasting extra CPU cycles on storage algorithms. If the RAID card does have some sort of driver, it usually serves as a configuration tool.
With the advent of 400 MHZ processors that are cheaper than a bad suit at JCPenney's, somebody got the bright idea that RAID could be implemented using a pure software driver and a standard IDE controller. While this does consume a few extra CPU cycles, the increase in storage speed and data reliability is an acceptable trade-off.
Since "software RAID" was developed as an low-cost implementation, it generally utilizes cheaper components, namely off-board PCI IDE controllers and IDE drives. Bundling a low-cost PCI card with a driver costs much less than a large SCSI controller, a RISC processor, firmware and several SCSI hard drives.
But the "software RAID" approach doesn't always require add-on hardware. Linux drivers exist that create a "software RAID" system using the on-board IDE controller of any motherboard. Many new motherboards also include some sort of "IDE RAID controller" .... usually a PCI IDE controller with some special BIOS options & drivers.
So What's The Difference?
"Gee, Brian, that's great. Since I can get software RAID for free with Linux drivers, I don't need that expensive hardware RAID controller!"
Of course, it can't be that easy. If the inexpensive IDE solution was the right way to go, I'd be off surfing the web for Unreal Tournament maps instead of writing this article.
Remember the wisdom of the guru: always know your application before you build your hardware. There are some places where "software RAID" is the perfect solution, and other places where you need to spend the bucks on the "hardware RAID" solution.
Before selecting a RAID solution, ask yourself several questions: (1) How much money do you have? (2) How important is the data you will store on your computer? (3) Does your application live and die by this data? (4) Will an angry mob swarm outside of your office if this data is inaccessible for a few hours? (5) Is this data worth a few extra hundred dollars of investment?
Look at the specs of a good "hardware RAID" controller versus that of a "software RAID" solution. What's the big difference? Answer: the supported RAID levels. The "software RAID" solution usually supports RAID 0 and 1 (RAID 0 gives you speed, RAID 1 gives you data protection through mirroring). A typical SCSI-based "hardware RAID" card supports dozens of RAID levels, providing many options that combining speed and data protection.
A good "hardware RAID" solution also includes a plethora of data recovery tools. These tools don't exist in the typical "software RAID" implementation (sorry, not even Linux). And the high-end "hardware RAID" cards support hot-swap; you can remove a drive on a live file system, replace it with a new one, and rebuild the lost data without powering off the system. (No, Beavis, that doesn't suck.)
RAID is designed to protect against mechanical drive failure. It does not protect against other types of data loss (fire, flood, theft, plagues, alien abduction, riots, etc.), and does not replace a good tape backup. But RAID helps improve the performance of critical storage systems, and keeps mission critical data centers running without data loss.
While the cost of a full-blown SCSI RAID controller is beyond the budget of the average computer user, simple IDE software solutions can bring the speed and security of RAID to a desktop near you.
Brian Richardson usually uses RAID to kill annoying pests that crawl across the walls of his rural Georgia home. He hasn't figured out how to get IDE RAID into an aerosol can.