How to deal with B120i RAID controller

I am running Rocky Linux 8 on a HP Proliant MicroServer gen8 which contains a HP Dynamic Smart Array B120i RAID controller. The system boots from an SSD, and there are 4 identical disks for storage which I would like to configure in a RAID.
This type of controller is referred to online as a FakeRAID controller, and it requires an OS driver (hpvsa) which does not appear to be available for RHEL8. Moreover, many people recommend to not use the controller and use OS based Software RAID (mdadm) instead.
However, when I disable the controller in the BIOS all disks are shown during the boot sequence, but the system no longer boots from the SSD. The only way to get the system to boot is to add the SSD as a single volume to a virtual disk in the RAID configuration, for which I obviously need to enable the controller.
In this configuration the 4 data disks still show up as /dev/sd* devices.

So my question is, is it acceptable to use these disks in this configuration and use OS based software RAID? My main concern is reliability, perfomance is not important. I want to know if in this setup I would, for example, still be able to move the disks to a different system (without any RAID controller) and access the data.

lspci -nn shows device ID (the [1234:5678] that plain lspci doesn’t).
What is the device ID on your controller? (Drivers for some device can be found from third parties.)

This is the lspci output for the only pci device that looks like a RAID controller:
# lspci -nn -k -s 00:1f.2
00:1f.2 RAID bus controller [0104]: Intel Corporation 6 Series/C200 Series Desktop SATA RAID Controller [8086:1c04] (rev 05)
Subsystem: Hewlett Packard Enterprise Device [1590:006c]
Kernel driver in use: ahci
Kernel modules: ahci

Frankly I do not know what I am looking at here. I am not even sure if this is the same device as the HP B120i controller. So there is a kernel module dealing with this device, but I don’t know what is does and the RAID still doen’t work


I’d follow Bob’s suggestion and enable ENABLE SATA AHCI SUPPORT in the bios and configure the raid with mdadm.

Regards Tom.

1 Like


The device ID is 8086:1c04 (with “8086” meaning Intel) – an Intel SATA Controller. Rocky has driver for it, the “ahci”.

Apparently some OEM’s (like HPE and Dell) do tag some devices and hence the “Subsystem” info. Websearch with “8086:1c04” finds “B110i”, so HPE has made more than one “setup” from the “C200 Series Desktop SATA”.

Typically, on consumer boards (and I’m pretty sure that also on HPE), the BIOS (or UEFI on recent generations) does have at least two modes on those controllers: AHCI and RAID. (Might have older IDE mode too.)

In AHCI mode the controller is plain SATA controller. In RAID mode it is fakeRAID.
Since it is the only controller, you cannot disable it. Was there only “Disable” and no “Enabled, AHCI” there?

On boot the BIOS/UEFI read disk without being aware of any RAID. All RAID, (even fake,) do write metadata onto the drives. If it is at the end, then for RAID1 (and presumbaly JBOD) the beginning of drive looks like regular non-raid volume; the partition table and filesystem in first partition do start “as usual”. Hence one can boot from (some) RAID arrays in both RAID and AHCI modes. A boot from other array types requires that the fake/hardware RAID does enough to point the BIOS/UEFI to correct spot.

The additional drivers for RAID controllers are usually for enabling some utilities to access additional data (that is not required in disk access).

1 Like