Hardware RAID Implementations
Let's look at some of the common ways RAID is implemented in hardware. Hardware RAID can use either SCSI or IDE/ATA to interface with the system and hard drives. SCSI is the preferred interface when dealing with the high-end servers. IDE/ATA RAID controllers have recently introduced RAID into the mainstream. There are obvious limitations to using IDE, and for the more complicated and high-end RAID implementations SCSI is used. However, with the increased performance and functionality of SCSI comes a higher price tag.
Hardware implementations of RAID are basically divided into internal and external RAID controllers. The internal RAID controllers are usually controller cards that are installed in the bus system of the computer. Typically it resembles any SCSI or IDE adapter that connects drives to the system. Some motherboards have these RAID controllers built in. Only recently have IDE RAID controllers become some what of a standard for high performance motherboards. Depending on the RAID controller and levels available, a certain amount of cache memory is present. Most of the time, the more memory you have, the better and the more expensive the controller is.
External RAID controllers involve moving the actual controller to a case of its own with the hard drives. In high-end servers, you'll often see a separate enclosure for the RAID controller and hard drives. The controller handles all the RAID functions and presents all the logical drives to the system. An external controller is usually more complex and has more memory than an internal one. This is because of the large number of hard drives and complex RAID levels it needs to work with. The interface used for all this is usually some form of SCSI. This makes it easier to have large numbers of hard drives hot swappable, and also avoids having to touch the actual system. The system might be some super computer that needs to be isolated somewhere, but the drives don't have to be.
Cost wise, internal controllers will be much cheaper than external controllers. You definitely get more flexibility with the external controllers but often times the cost doesn't warrant it. Even though IDE/ATA RAID controllers are becoming more popular with the masses, SCSI and the like is still the interface of choice for high-end machines. The cost of a hardware RAID implementation is still fairly high for your average Joe, so many just go with software RAID. The choice is pretty much just financial. Software RAID uses processor time, so the more complex RAID levels will slow down a system considerably. If you can pay for it, hardware RAID is superior to software RAID.