smart array pass-through with hba mode

proliant-hbamode | proliant-hbamode-kernel | proliant-hbamode-slackware | proliant-ssacli

the easy way (ssacli)

see proliant-ssacli

but that doesn’t always work

the hard way (hpsa hba)

descr

not sure it’s necessary but I use to create a logical volume with raid-0 against a working disk in bay1, and plug the 3PAR disks in bays 2+.

it looks like it’s also possible to trigger the HBA mode against /dev/sg2 instead of that working disk, but I haven’t fully tried that either.

note it’s hard to hot-plug the 3PAR disks one after another. although not impossible while trickering around with rmmod and -d + -E against /dev/sg2, I simply got more efficient with bulk conversions by filling up all drive bays at once.

load the module

assuming HPSA patched kernel, make sure you’re enabling the actual feature either at boot-time kernel argument –or– here as module

find /lib/modules/ | grep hpsa
vi /etc/modprobe.d/hpsa.conf

options hpsa hpsa_use_nvram_hba_flag=1

finally load the module

modprobe hpsa

and check

lsmod | grep hpsa
modprobe --showconfig | grep hpsa

the 3PAR disk won’t necessarily appear yet

userland requirements

only done once

see proliant-hbamode-userland

enable hba mode

switch any visible disk to hba mode,

./hpsahba -i /dev/sde
./hpsahba -E /dev/sde

and so the hidden one will also appear

[  442.632174] sd 4:0:4:0: [sdf] Unsupported sector size 520.
[  442.646334] sd 4:0:4:0: [sdf] 0 512-byte logical blocks: (0 B/0 B)
[  442.646370] sd 4:0:4:0: [sdf] 4160-byte physical blocks
[  442.668735] sd 4:0:4:0: [sdf] Write Protect is off
[  442.668744] sd 4:0:4:0: [sdf] Mode Sense: 0b 00 00 08
[  442.669034] sd 4:0:4:0: [sdf] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  442.670377] sd 4:0:4:0: [sdf] Unsupported sector size 520.
[  442.709711] sd 4:0:4:0: [sdf] Attached SCSI disk
[  526.920676] sd 4:0:4:0: [sdf] Unsupported sector size 520.

ready to go

you can finally proceed to the low-format while re-affecting the right sector size of 512 bytes instead of 520 bytes

make disks appear as generic SCSI

modprobe sg

rescan

lsscsi -g
sg_scan -i
lsscsi -g

–or– alternatively manually as follows

dmesg | grep scsi | grep host
scsi_host=host4
echo - - - > /sys/class/scsi_host/$scsi_host/scan

lookup the disks

# doesn't show up there
fdisk -l

# shows up there!
lsblk

l00t

sg_readcap /dev/sdf
time sg_format --format --size=512 /dev/sdf

clean-up

switch back to normal and raid mode

./hpsahba -d /dev/sde

resources

https://github.com/im-0/hpsahba

https://internet-lab.ru/sector_size_520_to_512

guides

fw http://homelab.casaursus.net/hp-smart-array-410i-make-hba/

HOME | GUIDES | PLAYBOOKS | LECTURES | LAB | CONTACT | HTML | CSS
Licensed as MIT