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.