Monitoring HP Proliant RAID Array Health on Ubuntu 12.04: cciss Replacement Solutions


2 views

Many sysadmins working with HP Proliant servers noticed a significant change when upgrading to Ubuntu 12.04 - the traditional /proc/driver/cciss and /dev/cciss directories vanished, along with the crucial cciss-vol-status utility. This broke existing monitoring scripts that relied on these interfaces to check RAID health status on Smart Array controllers.

Ubuntu 12.04 moved to the newer hpsa driver (HP Smart Array) which provides improved performance but requires different management tools. Here's how to verify your current driver:

# Check loaded storage driver
lsmod | grep hpsa
# Verify controller detection
lspci -nn | grep -i 'storage controller'

For HP Smart Array controllers under the hpsa driver, consider these approaches:

1. Using hpssacli (Recommended)

HP provides the hpssacli tool (previously hpacucli) as the official replacement:

# Install the tool
sudo apt-get install hpssacli

# Check controller status
sudo hpssacli ctrl all show status

# Detailed physical drive information
sudo hpssacli ctrl slot=0 pd all show detail

# Logical drive status
sudo hpssacli ctrl slot=0 ld all show

2. Using smartmontools with Direct Access

Configure smartmontools to work with your controller:

# Install smartmontools
sudo apt-get install smartmontools

# Edit smartd configuration
sudo nano /etc/smartd.conf

# Add line for each physical drive (example for /dev/sda)
/dev/sda -d cciss,0 -a -o on -S on -m admin@example.com

Create a cron job to regularly check RAID status:

#!/bin/bash
LOG_FILE="/var/log/raid_status.log"

# Check controller status
CTRL_STATUS=$(sudo hpssacli ctrl all show status)

# Check for degraded state
if [[ $CTRL_STATUS == *"OK"* ]]; then
    echo "$(date) - RAID OK" >> $LOG_FILE
else
    echo "$(date) - RAID DEGRADED!" >> $LOG_FILE
    # Add notification logic here
fi

# Check physical drives
PD_ERRORS=$(sudo hpssacli ctrl slot=0 pd all show | grep -i "failure")

if [ -n "$PD_ERRORS" ]; then
    echo "$(date) - Drive failures detected:" >> $LOG_FILE
    echo "$PD_ERRORS" >> $LOG_FILE
fi
  • Ensure you have the latest firmware for your Smart Array controller
  • Regularly check for hpssacli package updates
  • Consider upgrading to a newer LTS release for better driver support
  • Test your monitoring solution thoroughly before relying on it in production

Starting with Ubuntu 12.04, HP Proliant servers transitioned from the legacy cciss driver to the newer hpsa (HP Smart Array) driver. This architectural change explains why traditional tools like cciss-vol-status stopped working and why /proc/driver/cciss disappeared. The hpsa driver provides native support in the Linux kernel for newer RAID controllers.

1. hpssacli (Recommended):
HP's official tool for Smart Array controllers:


sudo apt-get install hpssacli
sudo hpssacli controller all show status
sudo hpssacli controller slot=0 logicaldrive all show detail

2. smartmontools with hpsa passthrough:


sudo apt-get install smartmontools
sudo smartctl -a -d cciss,0 /dev/sda

Create a cron job to check RAID status daily:


#!/bin/bash
LOG="/var/log/raid_status.log"
echo "=== $(date) ===" >> $LOG
sudo hpssacli controller all show status >> $LOG
sudo hpssacli controller slot=0 ld all show >> $LOG
# Check for degraded status
if grep -q "Status: Failed" $LOG; then
   mail -s "RAID Failure Alert" admin@example.com < $LOG
fi

For servers with LSI-based controllers:


wget https://raw.githubusercontent.com/trapexit/megacli/master/megacli-8.02.21.tar.gz
tar xvzf megacli-8.02.21.tar.gz
cd megacli-8.02.21
sudo ./install.sh
sudo megacli -LDInfo -Lall -aAll

Ensure your /etc/default/grub contains:


GRUB_CMDLINE_LINUX="libata.allow_tpm=1 hpsa.hpsa_allow_any=1"

Then run sudo update-grub and reboot.