Blog-like notes

RAID monitoring on Slackware

Slackware provides all that is needed to create and use RAID arrays (basically, a RAID-enabled kernel and the mdadm(8) tool), but does nothing to monitor the arrays.

Fortunately, the mdadm tool itself provides the monitoring feature, and it’s very easy to benefit from it.

Ensure that the /etc/mdadm.conf file describes the RAID array(s) to monitor:

# mdadm --examine --scan > /etc/mdadm.conf

Complete the file with the MAILADDR and MAILFROM fields:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=...
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=...
MAILADDR admin@example.com
MAILFROM raid monitoring daemon <raid@example.com>

All you have to do next is launch mdadm in monitor mode, possibly using the following control script /etc/rc.d/rc.mdadm:

#!/bin/bash

PIDFILE=/var/run/mdadm.pid

case "$1" in
start)
    /sbin/mdadm --monitor --scan --syslog --delay=900 --daemonize --pid-file=$PIDFILE --test
    ;;

stop)
    if [ -f $PIDFILE ]; then
        kill $(cat $PIDFILE)
        rm -f $PIDFILE
    fi
    ;;

restart)
    $0 stop
    sleep 1
    $0 start
    ::

status)
    if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE) ; then
        echo "mdadm is monitoring."
    else
        echo "mdadm is stopped."
    fi
    ;;

*)
    echo "usage: $0 {start|stop|restart|status}"
    exit 1
    ;;

esac

(Refer to mdadm(8) for details on mdadm command-line options.)

Make the control script executable and add the appropriate stanza in /etc/rc.d/rc.local to have it executed when the system starts.