2

I have a low-end server for a SOHO set-up: a Gen8 HP Microserver. It has a built-in Dynamic Smart Array B120i (RAID) Controller. When booting the server up before any OS was installed I was able to open the HP Smart Array configuration utility and create a logical drive spanning my 4 physical disks with RAID 1+0.

After some messing around I was able to install CentOS 7 and had a look at the disks with lsblk:

NAME           MAJ:MIN RM   SIZE RO TYPE   
sda              8:0    0 698.7G  0 disk   
├─sda1           8:1    0 698.7G  0 part   
└─ddf1_Storage 253:2    0 698.5G  0 dmraid 
sdd              8:48   0 698.7G  0 disk   
├─sdd1           8:49   0 698.7G  0 part   
└─ddf1_Storage 253:2    0 698.5G  0 dmraid 
sde              8:64   0 698.7G  0 disk   
├─sde1           8:65   0 698.7G  0 part   
└─ddf1_Storage 253:2    0 698.5G  0 dmraid 
sdf              8:80   0 698.7G  0 disk   
├─sdf1           8:81   0 698.7G  0 part   
└─ddf1_Storage 253:2    0 698.5G  0 dmraid 

So, this looks like a software based RAID, aka fake RAID, rather than the one disk that I had expected to see.

Can someone explain what, if anything, the built-in RAID controller is actually doing for me?

ewwhite
  • 194,921
  • 91
  • 434
  • 799
Charlie Joynt
  • 219
  • 1
  • 4
  • 11
  • 1
    Because it is fake RAID. The controller is just making electrical connections for you. – Michael Hampton May 03 '18 at 01:00
  • It seems to be able to create a logical disk without there being an OS, and I had to install drivers for it, so there must be more going on here than "just connections". – Charlie Joynt May 03 '18 at 23:06
  • 1
    Well, it's also writing DDF headers onto the disks, which the dmraid software driver reads and reconstructs into your usable block device. But the controller is very dumb; it does little else. – Michael Hampton May 03 '18 at 23:30
  • Ok, thanks. I do have a "proper" RAID controller I could install in the server, depending on what mileage I get with DDF. – Charlie Joynt May 04 '18 at 10:58
  • You should only show one block device per logical drive. I don't think you've created the RAID properly. – ewwhite May 04 '18 at 23:49

2 Answers2

5

This is a Dynamic Smart Array controller. It's not a fully-featured HP RAID controller. However, it's better than a pure "fakeraid" solution, provided you're using a compatible OS. The RAID logic is moved to the "hpvsa" driver in Linux rather than the hardware.

The drivers are kernel specific ... The B120i is a chipset AHCI SATA controller that requires a kernel specific proprietary driver for software derived RAID functionality. Many refer to these chipset SATA controllers as 'fake raid' ... the HPE recommendation is to use the 'mdadm' software RAID feature included with the OS.

-- HPE Support Forum

To install a supported OS onto this RAID controller, you have to slipstream a driver into the installation process. Here's the current driver as of this writing.

The main thing is that there's an upgrade path to a proper HP Smart Array controller, and the on-disk format allows that migration.


However, the output you're showing indicates that you haven't created a real logical drive.

Here's output from lsblk on a Dynamic Smart Array. /dev/sda is the block device that is represented by the logical drive.

[root@Tudor_Ranch ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0   10G  0 part /
├─sda3   8:3    0   10G  0 part /usr
├─sda4   8:4    0    1K  0 part
├─sda5   8:5    0    6G  0 part /var
├─sda6   8:6    0    4G  0 part [SWAP]
└─sda7   8:7    0    1G  0 part /tmp

Similarly, this is evident in the hpssacli command output:

=> ctrl all show config

Smart Array B320i RAID in Slot 0 (Embedded)

   Internal Drive Cage at Port 1I, Box 1, OK

   Internal Drive Cage at Port 2I, Box 0, OK
   array A (Solid State SATA, Unused Space: 176704  MB)


      logicaldrive 1 (40.0 GB, RAID 1, OK)
      logicaldrive 2 (60.0 GB, RAID 1, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, Solid State SATA, 200 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, Solid State SATA, 200 GB, OK)

I think you just installed your OS using Linux MD software RAID.

Also see:

HP DL380e Linux not seeing drive array for installation

Charlie Joynt
  • 219
  • 1
  • 4
  • 11
ewwhite
  • 194,921
  • 91
  • 434
  • 799
  • Thanks. Let me chew on this for a short while; I'm actually trying to recover this system after a power cut left it in a state where the RAID seems to be corrupt, but I haven't knowingly used software RAID before so I guess I was disappointed at the lack of *anything* the built-in controller seemed to be able to do to help me. I have a handful more questions for this and/or the Unix & Linux forums but wanted to get this question sorted out first. – Charlie Joynt May 07 '18 at 22:00
  • Thanks. I took the liberty to update your answer slightly to separate out the answer to my broader question about what this type of RAID controller does from the possible problems I'm seeing in my case. – Charlie Joynt May 10 '18 at 22:39
  • Also, I think the problem in my case was that the wrong driver was being loaded. Although I had a driver slip-streamed from a USB "driver disk" it looks like it was using the AHCI driver. When I added `modprobe.blacklist=ahci` to my `linux` boot command line I could see the RAID as a single device: `/dev/sdc` as it happens. I still can't see the data on this device when booting in rescue mode but I think that's another question. – Charlie Joynt May 10 '18 at 22:44
2

This is a 'host RAID' controller, meaning its RAID function resides in the BIOS and in the driver (once the OS has loaded).

To Linux, it looks just like a couple of HDD ports which is the exact problem with host RAID.

The dmraid you've got installed (in parallel?) generates a software RAID on top of this bunch of HDDs. In other words, it's a mess.

If you don't want to replace the RAID controller just define separate disks there and run dmraid for a clean software RAID.

Zac67
  • 8,639
  • 2
  • 10
  • 28