Storage Controllers Buyers Guide

What is a Storage Controller?

A storage controller is a hardware device used to manage hard disk drives (HDDs) or solid-state drives (SSDs) in a desktop PC, workstation, server or storage array. While all motherboards include a basic storage controller built into the chipset, you may need to add a third party storage controller if you need lots of drives or want to configure them in RAID to protect your data.

In this guide we’ll look at the different ways of connecting to and controlling drives within a system, why you’d want to do this and which method you should choose in a given circumstance. Let’s get started.

Types of Storage Controller

Now we’ve established why you’d want to use a storage controller, let’s look at two different types.

Host Bus Adapter Cards

A Host Bus Adapter (HBA) is an expansion card that plugs into a PCIe slot on the motherboard and provides fast, reliable non-RAID communication between the host system and the storage devices. HBAs can reliably connect hundreds or even thousands of hard disk drives (HDDs), solid state drives (SSDs) and even tape devices to the host system, making them ideal for cost-sensitive backup solutions or high-performance SSD environments. While HBAs themselves, they can still be used to connect the drives in a Software Defined Storage (SDS) configuration, which can provide similar performance and redundancy to RAID.

RAID Controller Cards

A RAID controller card is similar to an HBA, but can also add redundancy (RAID) for your data, help optimise performance, reduce latency, or even make smart decisions on whether to store data on an HDD or an SSD cache, depending on user needs. Since these additional tasks consume power and processing speed, RAID controllers are typically more expensive than HBAs and handle fewer devices. They are however recommended where data is critical and needs some degree of protection and in scenarios where different drive types are being used such as a single array containing SSDs for regularly accessed data and HDDs for archive purposes.

RAID

RAID or Redundant Array of Independent Disks is a technology that takes the separate storage drives within a system and splits data across these in various ways with the result of accelerating performance and in some instances protecting the data from single or in some cases multiple drive failure. So-called ‘parity’ blocks of data instructs the RAID controller where the data should be so if a drive fails, it knows what was on that drive and so can rebuild the array. It is essential to employ some level of RAID where the OS should be protected and / or data is mission critical, such as a server. Let’s look at the options available.

RAID 0 - This method of RAID stripes the data across a minimum of two disks. Generally speaking, RAID 0 increases the read and write speeds proportionally to the number of disks you use, however although no capacity is lost with the array, there is also no fault tolerance, so RAID 0 may not be ideal for critical data storage.

RAID 1 - This method of RAID mirrors the data across a minimum of two disks. Although half the total capacity of the RAID is lost, for example two 1TB disks will result in 1TB of useable capacity, in the event of one drive failing, the system can be turned off, the failed drive replaced and then the mirror rebuilt. This is a popular data security solution but can be costly on drives bearing in mind half the capacity is lost.

RAID 5 - Here, data is striped across a minimum of three disks with a single parity block. Only a quarter of the total capacity is lost, for example three 1TB disks will result in 2TB of useable capacity. Should a drive fail the distributed parity block allows a drive to be replaced and the array rebuilt.

RAID 6 - This is an enhancement to the technology used in RAID 5 – with this method data is striped across a minimum of four disks, but with two distributed parity blocks – although a greater degree of useable capacity is lost, for example four 1TB disks will result in 2TB of useable capacity, it has the benefit that two drives can fail before you lose any data. This can be a key factor if employing large drive sizes (4TB and above), as rebuild times can be significantly lengthened.

RAID 10 - This method of RAID employs a minimum of four drives, and features two striped RAID 0 arrays mirrored in RAID 1, giving the best possible performance while providing some redundancy against drive failure. For example four 1TB disks will result in 2TB of useable capacity. Data integrity is very high, as the array will tolerate a drive failure in each of the mirrored blocks, but again it should be noted that as larger capacity drives are used, the rebuild times in the event of a failure are significantly lengthened.

Depending on how the RAID setup is controlled it is possible to have multiple arrays working independently. For example two OS drives can be mirrored in RAID 1, whilst four storage drives could be configured in RAID 5. Alternatively two RAID 6 arrays of 5 drives could be created in a 10 drive storage device. Let’s look at the ways RAID can be controlled.

Hardware RAID - In a hardware RAID setup, the drives connect to a RAID controller card inserted in a PCIe slot on the motherboard. This works the same for larger servers as well as workstations and desktop computers, and many external drive enclosures have the RAID controller card built into the drive enclosure.

High-end hardware RAID controllers can be upgraded with a cache protector, these comprise a small capacitor which in the event of power loss keeps powering the cache memory on the RAID controller for as long as three years. Without a cache protector data stored in the RAID controllers cache will be lost and could cause data corruption.

ADVANTAGES

• Better performance, especially in more complex RAID configurations. Processing is handled by the dedicated RAID processor rather than the main computer processor which translates to less strain on the system when writing backups, and less downtime when restoring data
• Has more RAID configuration options including hybrid configurations which may not be available with certain OS options
• Compatible across different operating systems. This is critical if you plan to access your RAID system from say, Mac and Windows. Hardware RAID would be recognisable by any system.

DISADVANTAGES

• Since there’s more hardware, there’s more cost involved in the initial setup
• Inconsistent performance for certain hardware RAID setups when using SSDs
• Older RAID controllers disable the built-in fast caching functionality of SSDs that are needed for efficient programming and erasing onto the drive

Chipset RAID – Many AMD and Intel motherboard chipsets support some of the basic types of RAID, potentially negating the need for a hardware RAID controller.

ADVANTAGES

• No additional cost - all you need to do is connect the drives and then configure them within the BIOS
• Modern CPUs are powerful so can easily handle RAID 0 & 1 processing with no noticeable performance hit

DISADVANTAGES

• You’re restricted to the RAID levels your motherboard chipset supports
• Performance hit if you’re using more complex RAID configurations
• Limited performance and resilience compared to hardware RAID controller
• If the motherboard dies you lose access to the RAID array

Software RAID – The third and final type of RAID array is called software RAID and is when you use the operating system to create a RAID. Numerous operating systems support RAID, including Windows and Linux.

ADVANTAGES

• No additional cost - all you need to do is connect the drives and then configure them within your OS
• Modern CPUs are powerful so can easily handle RAID 0 & 1 processing with no noticeable performance hit

DISADVANTAGES

• Software RAID is often specific to the OS being used, so it can’t generally be used for drive arrays that are shared between operating systems
• You’re restricted to the RAID levels your specific OS can support
• Performance hit if you’re using more complex RAID configurations
• If the OS dies you lose access to the RAID array

Storage Controller Interfaces

Both HBAs and RAID controllers are available with a variety of interfaces and specifications that need to be compatible with the motherboard to ensure maximum performance. All these types connect to a PCIe slot, but will differ in throughput depending on whether they are PCIe 3.0 or the newer PCIe 4.0. The 4.0 version offers twice as much bandwidth as the older 3.0 standard. Although the controller card or HBA will occupy a single physical slot on the motherboard it is also important to check how many PCIe lanes it needs (written as x1, x4, x8, x16) as this will have an impact of which PCIe slot is used. PCIe slots are backwards compatible with themselves, so if you don’t have any free x8 slots you can install the storage controller in a x16 without any problems. However, it’s important to note that in some systems not all slots will operate at full speed. For instance, many mid-range motherboards will have multiple x16 slots, but some of these may only operate at 8x speed. You can find out which slots provide which speeds by cross referencing the motherboard’s specification and the CPU’s capabilities.

Storage Buses

The storage controller will communicate with drives via a storage bus, in essence the electronic language that both devices share. It’s therefore important to choose a storage controller that supports the drives you’re intending to add to the system. There are three types of storage bus that you will encounter SATA, SAS and NVMe.

SATA is the most common type of bus and has been around for quite some time. There have been several generations of SATA, the latest being SATA-III, delivering throughput speeds of up to 6GB/s.

SAS is another common bus but usually only seen in higher end devices such as servers. It is physically compatible has the same physical appearance as SATA and there are also several generations - SAS-3 currently delivers 12GB/s, although SAS-4 drives will achieve 24GB/s later in the future.

NVMe is the newest type of bus and connects SSDs directly to the PCIe bus for incredible performance, with up to 32GB/s transfer rates possbile.

Connectors

Aside from how the card fits into the motherboard you need to know what connectors are on the HBA or RAID controller to ensure you get the correct cabling to attach to the HDDs or SSDs you want to use. There are a number of possible connectors.

It is also worth mentioning that the drive may be connected directly using a single cable, via a fan-out cable allowing attachment of up to four drives, or via a backplane - a connector strip usually found in servers or storage appliances that takes multiple connections from the controller card and shares these with a greater number of drives. You can also buy cables with different connectors at either end depending on what the storage controller and drives/backplane require.

Fan-out Cable

Backplane

SATA is the oldest connector type you are likely to find on a RAID card or HBA for connecting HDDs and SSDs. While commonly found in motherboards it has been mostly superseded by one of the later types listed below in add-in card storage controllers as it can only support one drive per cable and limited transfer rates.

MiniSAS (SFF-8087) is another older but very widely used connector type for SATA and SAS drives that may be still commonly seen on cards. There’s also a version (SFF-8088) for connecting to JBODs and external drives.

MiniSASHD (SFF-8643) is the most common connector found on new controller cards and HBAs today for SATA, SAS and NVMe drives. It allows four drives to connect per port using either a fan out cable or via a backplane. Different cables are required if NVMe drives are going to be used. There’s also a version (SFF-8644) for connecting to JBODs and external drives.

Slimline SAS (SFF-8654) or SlimSAS is a new small form factor alternative to MiniSASHD often seen on cards designed for more density and drive numbers. It also allows 4 drives per port to connect.

U.2 (SFF-8639) is the dedicated NVMe connector found on controller cards, most often employed in higher end server and storage appliances. Depending on the performance required each U.2 port can support one or two drives.

M.2 is found on a many motherboards and some controller cards and directly connects SSDs without the need for cables. Make sure that the M.2 slot and drives are both of the correct type (SATA or NVMe) and size (42mm, 80mm or 100mm long).

RAID Controller Addons

RAID controller cards temporarily cache data from the host system until it is successfully written to the drives. This is a cost-effective way to improve performance, but while cached, the data can be lost if system power fails, jeopardising the data’s integrity. To prevent this issue, there are a number of ways you can upgrade some RAID controllers.

Battery Backup Units (BBUs) are simple small lithium-ion batteries that attach directly to the controller card. The BBU’s job is to remember the data that hasn’t been synced to disk yet - it does this by storing the data in DRAM, usually up to 72 hours without power. When the machine powers back up, the BBU will write the cache contents on the disk.

Alternatively flash cache units (like CacheVault from Broadcom) can be added to RAID controllers to protect the integrity of data by storing cached data in non-volatile flash cache storage. What makes CacheVault superior in this aspect is the ability for that data to be moved from DRAM to NAND flash. When the data is moved from DRAM to NAND flash, it can be stored for up to 3 years. When the server turns back on, data is moved from NAND back to DRAM and then written to the disks.

While both a BBU and a NAND cache like CacheVault are both physical module add-ons, CacheCade is a RAID controller software (also from Broadcom) that enables an SSD Read/Write cache for the array. It allows you to optimise the existing HDD arrays with the SSD-based flash cache. With the latest tech advancements pushing HDD arrays to reach their input/output potential, data “hot spots” are inevitable. Hot spots are the areas most commonly accessed on HDD arrays; when you have hot spots, the life of the drives are severely shorten. To fix this problem, CacheCade will create a front-side flash cache for the “hottest” array. This flash cache reads/writes to the SSD which is much more efficient than reading/writing to the HDD array. CacheCade content remains intact upon reboot.

Time to Choose

Hopefully you’ve found this guide useful in providing a complete picture as to the considerations and decisions that should go into a storage controller and the resulting data integrity. Click below to see our range of cards available.