Storage Controller Fundamentals
Basic storage controllers can be found on every PC-type motherboard as a part of the chipset core logic. Serial ATA (SATA) has been the dominating interface for hard drives for some time, and is increasingly also used for optical drives such as CD, DVD, HD-DVD and Blu-ray devices. Other drives, based on Flash memory or other technologies, typically are attached via SATA as well.
Professional hard drives utilize the SAS interface (Serial Attached SCSI), which is a serialized version of the parallel SCSI bus (Small Computer System Interface). SAS controllers, however, are dual-ported, meaning that drives can be connected with redundant connections, or to double the interface bandwidth. SAS also supports four 300 MB/s connections per SAS cable (SFF-8087 for internal use or SFF-8088 for external applications), which can be used for SAS or SATA hard drives. Since SAS offers considerably more flexibility, it is more complex, and hence SAS controllers cannot yet be found integrated onto motherboard core logic.
Many upper class on-board controllers support RAID configurations, which means that they can utilize multiple hard drives configured as one array to provide redundancy or better performance. If you look into the SMB and enterprise space, an on-board controller doesn’t get you anywhere, as arrays consist of many hard drives and offer sophisticated redundancy options (RAID 51, RAID 6), which require a huge amount of processing power. Also, array configuration and management is an issue that has to be handled efficiently in businesses, requiring proper, web-based solutions.
Some RAID controllers, such as the Raidcore RS5200 family by Ciprico, run host-based RAID, but the majority of Unified Serial controller hardware utilizes its own storage processor. Adaptec, Areca, Atto, ICP and LSI have been using Intel IOP 80333 or 348 engines; only AMCC uses its own PowerPC-based storage processor. The new Adaptec Series 5 uses a dual core storage processor, which unfortunately isn’t specified any further.
All professional RAID controllers offer a minimum amount of cache memory, or they come with a memory slot to have the customer install the desired amount of DDR2 RAM. For the sake of data safety, ECC (error correcting code) memory has to be used. Watch out for controllers that do not offer an (optional) battery backup unit, often referred to as a BBU - they are necessary to maintain cached data in the case of a power outage. Although all mission critical servers should be protected by a UPS unit (uninterruptible power supply), a BBU provides an additional layer of security.
Most RAID controllers have traditionally utilized the 64-bit PCI-X bus, which provides a maximum bandwidth of up to 1,066 MB/s (64 bit, 133 MHz). However, PCI-X requires dedicated controllers, and the bus is shared by all client devices, making it less attractive than the PCI Express interface, which offers point-to-point connections at 2 GB/s upstream and downstream when using eight PCIe lanes (PCI Express x8). Most mainstream servers offer at least one x8 PCI Express slot, and we recommend investing in PCIe today, as the interface will still be around in years to come.
We’ve talked a lot about the various RAID options in the past. RAID 0 setups put all available hard drives into a stripe set, meaning that blocks are evenly distributed across all available hard drives. This, however, makes your storage vulnerable, as one defective drive will destroy the entire array. RAID 1 simply mirrors one drive’s data onto a second drive, which is easy to do and secure, but it doesn’t allow administrators to create high-capacity or high-performance arrays. The combination, RAID 0+1 or 1+0, represents a mirrored stripeset or a striped mirror; these combine performance with data safety, but still only offers 50% of the total hard drive capacity. RAID 5 or RAID 6 is typically the best solution for secure data arrays, as parity data is calculated using a simple XOR operation. The parity data is then distributed along with the data across all hard drives. RAID 6 works like RAID 5, but two copies of parity data are created, resulting in increased reliability in case of hardware failures: while a RAID 5 will survive a single failed drive, RAID 6 will withstand two simultaneous drive defects.