RAID Controller vs HBA: Choosing a Server Storage Controller
Hardware RAID still earns its place, but ZFS, vSAN and Storage Spaces Direct want the opposite. How to choose, and what to check before swapping a controller.

Every drive in a server talks to a storage controller, and the controller decides how the operating system sees those drives. A RAID controller combines them into protected logical drives and presents those; a host bus adapter (HBA) passes each drive straight through. Neither is better in general. The right choice depends on where you want redundancy to live: in the controller, or in software above it.
What a RAID controller does
A hardware RAID controller has its own processor and firmware to handle striping, mirroring and parity, so the operating system sees logical drives and does no RAID work itself. The common levels:
- RAID 1: two drives mirrored. Simple, and the usual choice for boot drives.
- RAID 5: data striped with one drive's worth of parity, from three drives. Survives one drive failure.
- RAID 6: two sets of parity, from four drives. Survives two failures.
- RAID 10: mirrored pairs striped together, from four drives. Fast and resilient, at the cost of half the raw capacity.
- RAID 0: striping with no protection. Losing one drive loses the array.
With multi-terabyte hard drives, rebuilds take many hours, and a second failure during a RAID 5 rebuild loses the array. That is why many administrators now use RAID 6 or RAID 10 for important data on large drives.
The cache and the battery behind it
Most performance RAID controllers carry a DRAM cache. With write-back caching, the controller confirms a write as soon as it reaches the cache and writes it to disk afterwards, which speeds up writes considerably, especially on parity RAID. The cache has to survive a power cut, so it is protected by a battery or, on newer controllers, by a supercapacitor that copies the cache to flash (HPE calls this flash-backed write cache).
When the battery or capacitor is missing, failed or still charging, the controller switches to write-through mode to keep data safe, and write performance drops sharply. A sudden slowdown on an older server is often a worn-out cache battery. Replacement RAID batteries and cache modules are specific to the controller family, so match the part number.
What an HBA does
An HBA presents every drive to the operating system individually, with no RAID logic and usually no cache. That is what software-defined storage needs:
- ZFS, used by TrueNAS and others, manages redundancy and checksums itself and wants direct access to each disk.
- VMware vSAN expects a controller from its compatibility list running in passthrough or HBA mode.
- Microsoft Storage Spaces Direct and Ceph expect raw disks as well.
Hiding drives behind hardware RAID, even as single-drive RAID 0 volumes, conceals health data from these systems and works against their design, so use an HBA or a controller in HBA mode. HBAs with external ports also connect servers to JBOD shelves and tape drives. Fibre Channel SANs use a different card altogether, the Fibre Channel HBA. Browse SAS and Fibre Channel HBAs.
Controllers that do both
Many current RAID controllers can switch to HBA or passthrough mode, and some run a mixed mode, with RAID on some drives and passthrough on others. HPE Smart Array controllers from Gen9 onwards offer an HBA mode, and many Dell PERC models offer HBA or non-RAID modes. Entry models and older generations differ, so check the exact model before relying on it.
Tri-mode controllers and NVMe
NVMe drives can connect straight to the CPU's PCIe lanes with no controller at all, which is how many servers run them. Tri-mode controllers, such as Broadcom's 9400 and 9500 series and the HPE and Dell controllers built on the same chips, add RAID for NVMe and can drive SAS, SATA and NVMe drives from the same ports when paired with U.3 bays. See our storage controllers for tri-mode models.
How vendors name their controllers
HPE Smart Array
HPE Gen10 controller names follow a pattern. In P408i-a, P marks the performance tier (E-series controllers are the essential tier, without cache), i means internal ports (e means external), and -a means the controller fits the server's dedicated modular slot, while -p marks a standard PCIe card. Gen9 used names such as P440ar for the dedicated-slot version and P440 for the card. From Gen10 Plus, HPE also offers MR controllers based on Broadcom MegaRAID alongside its SR controllers based on Microchip silicon.
Dell PERC
Dell's PowerEdge RAID Controllers (PERC) come in form factors that are not interchangeable. An Adapter is a standard PCIe card; a Mini, or Mini Monolithic, fits a dedicated slot on the motherboard and leaves the PCIe slots free; later generations add Front and other integrated formats. The PERC H730P Adapter and H730P Mini are the same controller in different shapes, so the form factor has to match the server.
Everyone else
Many OEM controllers are built on Broadcom (formerly LSI) MegaRAID chips, including Dell PERC, Lenovo ThinkSystem RAID adapters and Supermicro's add-on cards, while HPE Smart Array controllers up to Gen10 used chips from Microchip (formerly PMC-Sierra and Microsemi). Cards in one chip family often share drivers and tools, but firmware is vendor-specific. Our RAID controllers and Smart Array and SAS controllers are listed by vendor part number.
Moving an array to a new controller
RAID controllers store the array configuration on the drives themselves, in a format specific to the controller family. Moving drives to a controller of the same family, such as one PERC to a newer PERC or one Smart Array to another, usually lets the new controller import the array; Dell calls this importing a foreign configuration. Moving between families or vendors generally does not work, so plan to back up, rebuild the array and restore. Either way, take a backup first.
Cables and connectors
Internal cables from the controller to the backplane use Mini-SAS (SFF-8087) on 6Gb/s hardware and Mini-SAS HD (SFF-8643) on 12Gb/s hardware, and many newer tri-mode controllers use SlimSAS (SFF-8654). External ports use SFF-8088 and SFF-8644. Server-specific cables also vary in length and connector angle, so the cable that came with the server is the first one to match. Browse SAS cables by connector.
Frequently asked questions
Do I need a RAID controller for ZFS or vSAN?
No. Both want direct access to each drive, so use an HBA or a RAID controller running in HBA or passthrough mode.
What happens when the RAID cache battery fails?
The controller turns off write-back caching to protect your data, so the server keeps running but writes slow down. Replacing the battery or capacitor module restores normal performance.
Can I move my RAID array to a different controller?
Usually only within the same controller family, where the new card can import the configuration stored on the drives. Across families or vendors, rebuild the array and restore from backup.