HBA stands for “Host Bus Adapter”. It basically identify a card whose role is to interface the main host bus (ie: PCI-E) to other kind of buses (eg: SAS, SATA, USB, etc). As such, an HBA fulfills two different but correlated roles:
- from the point of view of the main host adapter, it simply is a downstream adapter card that exports some resources;
- from the point of view of the connected devices, it is a controller and/or arbiter.
This means that a pure HBA has limited intelligence, mainly used to enumerate/control/export the attached device to the main host CPU.
A RAID card is a disk-specific, higher-end evolution of a disk HBA. A pure RAID card hides the single devices from the main bus/CPU, exporting a virtual device with a specific RAID personality (ie: RAID0, RAID1, ecc).
So, given the above definitions, why there are RAID-capable HBA cards and pass-through RAID cards that export single devices to the OS? Because nowadays many HBA/RAID cards are based on similar (if not identical) chipset, with the main difference residing in the firmware images they run. For example, some LSI cards can be switched in IT (pass-through) mode rather than RAID mode (and vice-versa) by simply loading the appropriate firmware.
Moreover, RAID0/1/10 personalities are sufficiently simple to be implemented even in so-called HBA-only cards. On the other hand, RAID5/6 and BBU writeback cache are features commonly reserved for higher-end RAID cards.