====== Disable HP Proliant Hardware-RAID ====== HP Proliant servers usually contain a hardware-based RAID controller (e.g. P420i controller). The description below explains how to disable the RAID modes of this controller and use the attached disks directly (e.g. for software-based RAID). You may want to avoid using a hardware-based RAID controller for some reason: * you want software RAID instead (no dependency (lock-in) with regard to this specific RAID controller; you may plug your disks into any ordinary other server) * you require TRIM/DISCARD, but the controller lacks this feature * you need direct access to the disk internals via smartctl * you do not want or you are not allowed to install the proprietary management software (provided as RPM packages) from HP, but still require access to the disk internals Disabling the RAID controller is not trivial: * You cannot simply remove the controller, since it provides the hardware connector for attaching the front disk bays (besides the RAID controller there is only one on-board SATA connector). * It is also not possible to configure "RAID 0" for all disks separately, since these disks still contain the meta data format of the RAID controller (thus they are not usable without the controller) and there is still no access via smartctl. There are some downsides when configuring the controller for HBA mode (pass-through): * the BIOS cannot boot from the disks attached to the RAID controller (see below ''Booting without the RAID controller'') * you cannot use the RAID modes provided by the controller (this is quite obvious) * if the disks currently contain data, you will want to copy them before ===== Configure the controller for HBA mode (pass-through) ===== * Delete any existing configured array in the ''Smart RAID controller'' setup * obviously you should rescue the data before, if you need it * enter the setup via ''F8'' during bootup as soon as you see the greeting message of the ''P420i'' controller * upgrade the RAID controller firmware (3.x is not sufficient; 6.6.8 works; see the end of this page) * Acquire the ''ssacli'' package for configuring the RAID controller manually: * Option A: use the HP Service Pack * download the [[http://h17007.www1.hpe.com/us/en/enterprise/servers/products/service_pack/spp/|HP Service Pack]] for your server * astonishingly this requires a running support contract with HP * alternatively search for the MD5 checksum given in the download descriptions of HP * e.g. [[https://www.teimouri.net/category/server-hardware/|teimouri.net]] blogs about and shares the Service Packs from HP regularly * mount the ISO and copy the appriate file for your system: ''hp/swpackages/ssacli-*.rpm'' (either i386 or x86_64) * Option B: download the packages from the HP repositories * see the [[https://wiki.debian.org/HP/ProLiant#HP_Repository|Debian Wiki]] or the [[http://downloads.linux.hpe.com/SDR/project/mcp/|direct link from HP]] * boot the server with a minimal or a real system * install the ''ssacli'' package from one of the sources above: * using the Service Pack ISO package: ''rpm -i --nodeps ssacli-*.rpm'' * otherwise: use your regular package manager * enable the HBA mode (pass-through) for the controller: * For Smart-array controller starting with P, e.g. P420i: ''ssacli controller slot=0 modify hbamode=on'' * For HBAs starting with H, e.g. H240: ''ssacli controller slot=0 modify raidmode=off'' * verify the result (if required): ''ssacli controller slot=0 show'' * you may safely remove the ''ssacli'' package again The above configuration change is permanent, until you reconfigure the controller again (e.g. with ''hbamode=off''). ===== Booting without the RAID controller ===== The Proliant BIOS and/or the RAID controller have the following limitations with regard to the boot medium: * the RAID controller does not support booting from its disks, when in HBA mode * when booting from the internal SD card (there is a slot on the mainboard), the BIOS provides access only to the internal SD card (not the disks behind the RAID controller) * thus it is not sufficient to simply dump a minimal grub bootloader (stage 1) onto the SD card - it will not find the root filesystem containing the other grub modules and configuration * workaround: place the ''/boot/'' directory on a filesystem on the SD card * optionally with a software RAID (metadata version 0 - for transparency) connected to the real system hard disks attached to the RAID controller ===== Firmware Upgrades ===== HP offers firmware upgades only as rpm packages. Thus Debian users will need to download the packages manuall and convert them via ''alien'' before installation: * download single packages (see [[http://downloads.linux.hpe.com/SDR/project/mcp/|overview]]) from the repository suitable for your system (e.g. http://downloads.linux.hpe.com/repo/spp-gen8/rhel/7.3/x86_64/current/) * convert the package from rpm to deb: ''alien --scripts --target=amd64 --to-deb SOME_FILE.rpm'' * the following files were suitable for a HP Proliant DL360 G8: * hp-firmware-ilo4 * hp-firmware-powerpic-gen8 * hp-firmware-smartarray * each package contains an executable file named ''hpsetup''