Skip to content

99dimitris/hpsahba

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHEETSHEET

  • echo "blacklist hpwdt" >> /etc/modprobe.d/blacklist-hp.conf

  • cat /etc/modprobe.d/blacklist-hp.conf

  • update-initramfs -k all -u

  • update-grub

  • curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg

  • echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/nul

  • apt install pve-headers-$(uname -r)

  • apt install make gcc git pandoc wget sudo htop iotop sdparm screen postfix open-iscsi curl dkms gh

NAME

hpsahba - tool to enable/disable HBA mode on some HP Smart Array controllers. This fork comes with various improvements and bugfixes, compared to the upstream repo:

  • removes the requirement to set hpsa_use_nvram_hba_flag=1
  • includes install script for the dkms module
  • sets kernel version dynamically with uname -r
  • increments dkms version to prevent collision with upstream hpsa driver

It does not break existing compatibility and can easily be extended by support for other distros and kernels.

SYNOPSIS

  • hpsahba -h
  • hpsahba -v
  • hpsahba -i /dev/sgN
  • hpsahba -E /dev/sgN
  • hpsahba -d /dev/sgN

DESCRIPTION

CAUTION: This tool will destroy your data and may damage your hardware!

hpsahba is able to enable or disable HBA mode on some HP Smart Array controllers on which regular tools, like 'ssacli', reports HBA mode as not supported.

When enabling or disabling HBA mode, RAID controller changes its internal configuration immediately, without requiring reboot. Any existing data may be lost after changing the HBA mode, so be extremely careful.

Some servers may not be able to boot from disks attached to controller in HBA mode. Move the /boot partition and the bootloader out of disks attached to controller onto USB flash driver or SD card to circumvent this limitation.

When HBA mode is enabled, controller usually prints some diagnostic message during boot, like "Hardware RAID support is disabled via controller NVRAM configuration settings" (example from P410i). Attempts to configure RAID arrays in this mode are expected to fail.

Options

  • hpsahba -h

    Show help message and exit.

  • hpsahba -v

    Show version and exit.

  • hpsahba -i DEVICE_PATH

    Show some information about device. This Includes HBA mode support bit (supported/not supported) and current state of HBA mode (enabled/disabled). It is recommended to run this before trying to enable or disable HBA mode.

  • hpsahba -E DEVICE_PATH

    Enable HBA mode.

  • hpsahba -d DEVICE_PATH

    Disable HBA mode.

Kernel driver support

hpsahba itself is able to work on any modern Linux system.

However, to get system actually see and use disks in HBA mode, few kernel patches required: https://github.com/im-0/hpsahba/tree/master/kernel.

This functionality is enabled by default, once the patched drivers have been installed. To disable, load module hpsa with parameter hpsa_use_nvram_hba_flag set to "0". Or set it in the kernel command line: "hpsa.hpsa_use_nvram_hba_flag=0".

Patchset changelog:

  • V1 -> V2:
    • Device visibility change properly detected if device is both updated and masked/unmasked in the same time.

This will never be upstreamed and officially supported (for P410), see the email from Don Brace: https://lkml.org/lkml/2018/12/17/618. So use at your own risk.

You can use DKMS package in https://github.com/im-0/hpsahba/tree/master/contrib/dkms to patch hpsa driver in a compiled kernel.

Supported hardware

Tested on following hardware so far:

  • HP Smart Array P410i (PCI ID: 103c:3245, board ID: 0x3245103c, firmware: 6.64)
  • HP Smart Array P812 (PCI ID: 103c:3249, board ID: 0x3249103c, firmware: 6.64)
  • Hewlett-Packard Company Smart Array G6 controllers / P410 (PCI ID: 103c:323a, board ID: 0x3243103c, firmware: 6.64)
  • Hewlett-Packard Company Smart Array G6 controllers / P212 (PCI ID: 103c:323a, board ID: 0x3241103c, firmware: 6.64)

(open an issue or a pull request if you successfully used this tool on other controllers)

Additional links

BUGS

See issues on GitHub: https://github.com/im-0/hpsahba/issues.

AUTHOR

hpsahba was written by Ivan Mironov <mironov.ivan@gmail.com>

About

Tool to enable/disable HBA mode on some HP Smart Array controllers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 84.6%
  • Shell 12.0%
  • Makefile 3.4%