RAID Controller Basics
There are several RAID Controller variations with various interfaces. This article will provide an overview of the various types of RAID controllers.
When talking about RAID Controllers, most people mean hardware RAID controllers. In addition to these, however there is the option of implementing a RAID array by means of software RAID systems or firmware and driver-based RAID systems. These various implementations will be explained briefly for that reason.
Hardware RAID Controllers
Software RAID Systems
For software RAID systems, a RAID controller is not needed, because standard SATA or SAS hard disk controllers without RAID features are used (such as the SATA controller integrated into the motherboard’s chip set). The RAID functionality is implemented completely by the operating system (such as Windows or Linux Software RAID). Thus, all RAID operations are also controlled by the computer’s standard CPU (not by a dedicated processor, as with a hardware RAID controller).
Because the RAID functionality is implemented completely by the operating system, such RAID arrays normally cannot be used for booting. This is actually possible under Linux with a RAID 1 (mirrored hard disks) system. A RAID 5 array cannot be used for booting, however.
Caches like those used by hardware RAID controllers, are not possible with software RAID systems. Because this would lead to data loss when a power failure occurs, the hard disk caches should be deactivated.
Firmware/Driver-based RAID Systems
Firmware/driver-based RAID systems are often located directly on motherboards. With firmware/driver-based RAID systems, all RAID operations are performed by the computer’s CPU, exactly like Software RAID controllers (not by a dedicated processor as with a hardware RAID controller). The RAID functionality however is not implemented by the operating systems, but by the controller firmware or by the controller driver. Specifically, the RAID system is merely implemented by the firmware at the start of the boot process. As soon as a protected-mode operating system, like Linux or newer versions of Windows, have been loaded, the controller driver will take over the RAID implementation.
With these variations creating a RAID array, which can be used for booting, is possible at prices more reasonable in comparison with "true" hardware RAID controllers. However, the computer’s CPU will bear the load of intensive RAID operations, as with software RAID systems.
Note: Not for all types of controllers, which implement firmware/driver-based RAID, do exist drivers in the Linux environment.
Hard disks with SATA or SAS interfaces are available today. For that reason, modern RAID controllers also support SATA or SAS & SATA hard disks. Older interfaces with parallel (IDE or SCSI) data transmission have almost no meaning anymore.
Serial ATA (SATA) was developed by Intel based on the older ATA standard. According to this standard, data is transmitted serially in comparison with the older SATA standard.
The SATA standard defines the following bit rates:
- Serial ATA 1.5 Gbit/s
- Serial ATA 3.0 Gbit/s
- Serial ATA 6.0 Gbit/s
Only SATA hard disks can be connected with a SATA hardware RAID controller.
For additional information about SATA, see http://en.wikipedia.org/wiki/Serial_ATA
While SATA replaced the older IDE/ATA standard, SAS (Serial Attached SCSI) is the successor to the Small Computer System Interface (SCSI). With this standard, the primary difference is in the new technology is that the data is transmitted serially.
With SAS, there are different bit rates:
- 3 Gbit/s (introductory implementation, 2004)
- 6 Gbit/s (second implementation, 2009)
- 12 Gbit/s (third implementation, expected in 2013)
As a rule, both SAS and SATA hard disks can be connected to a SAS hardware RAID controller.
For additional information about SAS, see:
RAID Controller Cache
True hardware RAID controllers often integrate their own RAID caches. Certain read and write operations can be accelerated by such caches. The RAID Controller and Hard Disk Cache Settings article will provide details about these caches.
- RAID - Hardware-based RAID (en.wikipedia.org)
- RAID - Software-based RAID (en.wikipedia.org)
- Battery backed cache for Linux software raid (md/mdadm)? (Blog)
- RAID - Firmware/driver-based RAID (en.wikipedia.org)
- Ubuntu Fake RAID HowTo (help.ubuntu.com)
- What is HostRAID? (Adaptec ASK)
- What is HostRAID? (Gateway Support)