HP Array Configuration and Diagnostic Utilities on Linux
Getting the HP Array Configuration Utility (ACU) and the Array Diagnostic Utility (ADU) for Linux to work was non-trivial. It does not seem to be supported anymore, but I managed to get it working on CentOS 5 running on an HP ProLiant DL185 G5.
First, install compatibility packages:
sudo yum install compat-libstdc++-33.i386 compat-libstdc++-33.x86_64 \
compat-libstdc++-296.i386
Then, download and install the packages HP provides:
wget -nd ftp://ftp.hp.com/pub/products/servers/supportsoftware/linux/hpacucli-7.70-12.linux.rpm wget -nd ftp://ftp.hp.com/pub/products/servers/supportsoftware/linux/hpadu-7.70-12.linux.rpm wget -nd ftp://ftp.hp.com/pub/products/servers/supportsoftware/linux/hpsmh-2.1.7-168.linux.x86_64.rpm sudo rpm -i --nodeps hpacucli-7.70-12.linux.rpm sudo rpm -i --force hpadu-7.70-12.linux.rpm hpsmh-2.1.7-168.linux.x86_64.rpm
The Array Configuration command line utility can be started with the command:
sudo -i hpacucli
The utility itself is quite user-friendly, and the help seems to be good. Just type "help" and you will find commands to show and modify your arrays. Some examples:
=> ctrl all show status
Smart Array E200
Controller Status: OK
Cache Status: OK
Battery Status: OK
=> ctrl all show config
Smart Array E200 (sn: PA6C90L9SV4152)
array A (SATA, Unused Space: 0 MB)
logicaldrive 1 (1.4 TB, RAID 5, OK)
physicaldrive 1I:1:5 (port 1I:box 1:bay 5, SATA, 500.1 GB, OK)
physicaldrive 1I:1:7 (port 1I:box 1:bay 7, SATA, 500.1 GB, OK)
physicaldrive 2I:1:1 (port 2I:box 1:bay 1, SATA, 500.1 GB, OK)
physicaldrive 2I:1:3 (port 2I:box 1:bay 3, SATA, 500.1 GB, OK)
The utility also understands commands directly from the command line:
$ sudo -i hpacucli ctrl serialnumber=PA6C90L9SV4152 array A show
Smart Array E200
Array: A
Interface Type: SATA
Unused Space: 0 MB
Status: OK
To create a diagnostic report with the Array Diagnostic Utility, type:
sudo /usr/sbin/hpaducli -f hpadu.report
That will create a detailed diagnostic report into the file "hpadu.report". You can use that report to check what has failed in case you controller or array status is not OK.
I created a little script called "array_check" that can be added as a cron job to check that the array is healthy:
#!/bin/sh /usr/sbin/hpacucli ctrl serialnumber=PA6C90L9SV4152 array A show status|grep -q "array A: OK" if test "$?" != "0" then echo Array A not ok! hpacucli ctrl serialnumber=PA6C90L9SV4152 array A show hpacucli ctrl serialnumber=PA6C90L9SV4152 show echo ------------------------------------------------------------ echo /usr/sbin/hpaducli -f /tmp/hpadu.report cat /tmp/hpadu.report fi
Just add the script as a cron job and configure your machine to e-mail you the output of cron jobs, and you will get an e-mail if the status of the array changes.