Kategorien
Systemadministration

Dawicontrol DC-5200 Raid-Controller unter Linux überwachen

[:de]Der DC-5200 von Dawicontrol, ist ein einfacher kleiner SATA Raid-Controller der zwischen SATA Festplatte und Motherboard gesteckt wird. Über einen zweiten SATA Anschluss kann eine weitere Festplatte angeschlossen werden, mit der zusammen dann ein Raid 0 oder 1 aufgebaut werden kann. Unter Linux ist das überprüfen des Raid zustandes nicht ohne weiteres mit Bordmitteln möglich.

Grundsätzlich verhält sich der Controller für das Betriebssystem transparent, wodurch ohne Probleme Linux installiert werden kann. Möchte man jedoch den Status des Raids herausfinden, war man unter Linux bislang auf die wenig aussagekräftigen LEDs angewiesen. Dawicontrol liefert keine Software für Linux mit und bietet auch keine an.

Es gibt aber eine Lösung. Der Hersteller des Controller-Chips (Sil5723) ist die Firma SiliconImage (http://www.siliconimage.com) diese bietet für ihre Controller ein Software namens SteelVine-Manager an. Die selbe Software in ihrer Windows Variante gibt es auch über Dawicontrol.

Download

Der SteelVine-Manager findet sich im Supportbereich der Seite. Als Produkt wählen wir SiI5723 und laden dort die aktuellste Version von „SiI57xx SteelVine Manager for FC6“ herunter.

Installation

Als nächstes entpacken wir den Inhalt. Ich verwende für derart Programme gerne das opt Verzeichniss.

cd /opt
wget http://www.siliconimage.com/docs/57xxLinuxSteelVineManager_V5_1_24.tar.gz
tar zxf 57xxLinuxSteelVineManager_V5_1_24.tar.gz
rm 57xxLinuxSteelVineManager_V5_1_24.tar.gz

Der Erste Start

Nun benötigen wir einen X-Server dieser kann auf dem System laufen wenn wir direkt davor sitzen oder wir installieren uns auf unserem PC einen und biegen das Display hierauf um. Tutorials hierzu gibt es wie Sand am Meer. (Stichworte: X-Server Windows Display Putty)
Danach können wir den Manager starten.

cd /opt/57xxSteelVineManager
./SteelVine
./SteelVineManager

Das erste Programm ist eine Daemon der im Hintergrund die Verbindung zum Controller herstellt. Das Zweite ist die Oberfläche des SteelVine Managers. Hier sieht man nun Status, aktuelle Aufgaben und kann Konfigurationen vornehmen. Das Standard-Passwort für höhere Funktionen lautet: admin

E-Mails über Statusmeldungen

Über den Menüpunkt edit > specify email notifications lassen sich eine Vielzahl an Benachrichtigungen einstellen. Es muß jedoch ein entsprechender Mailserver konfiguriert sein oder auf dem Server einer laufen und als SMTP Server Name: localhost vergeben werden. Der Mailversand lässt sich über einen Button unten am Fenster testen.

Damit die E-Mails versendet werden reicht es wenn der StellVine Daemon läuft. Etwas weiter unten schreiben wir hierfür noch ein Startscript.

XML API

Es scheint kein Kommandozeilen Programm zu geben das einfach OK oder ähnliches zurückliefert und das wir für Shell-Skripte verwenden könnten. Allerdings gibt es andere Möglichkeiten den Status abzufragen.
Der SteelVine Daemon richtet einen offenen Port 51116 ein über den man per XML den Status abfragen kann. Eine Dokumentation der XML API findet sich hier:

SteelVine XML API

Einen ersten Eindruck erhält man, wenn man im Browser die Adresse aufruft:

http://ip.menes.serv.ers:51116

Danach wird als Stream der aktuelle Status als XML Block ausgegeben.
Generell ist es jedoch gedacht über eine offene Telnet Verbindung die Daten abzurufen. So kann man auch Anfragen im XML abschicken.
Damit lässt sich dann ein vollständiger Client erstellen oder aber nur der Status abfragen für eine Monitoring Software.

Beispiel Startscript

Ich verwende momentan folgendes Startscript:

#! /bin/sh

### BEGIN INIT INFO
# Provides: steelvine
# Required-Start: $network $local_fs $remote_fs
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SteelVine Raid Monitor
### END INIT INFO
##
# Source init-functions:
#source /lib/lsb/init-functions
. /lib/lsb/init-functions

# Script variables:
DAEMON_HOME="/opt/57xxSteelVineManager/"
DAEMON_LOG="/opt/57xxSteelVineManager/SteelVine.log"
DESC="SteelVine Raid Monitor"
NAME="SteelVine"

# Path to executable:
DAEMON="$DAEMON_HOME/$NAME"

# Run as user/group [UPDATE THESE TO MAKE VALID]:
DAEMONUSER=root
DAEMONGROUP=root

# update PATH:
PATH="$DAEMON_HOME:${PATH:+$PATH:}/usr/sbin:/sbin"

# export env-vars
export PATH DAEMON_HOME

# Exit if the package is not installed
if [ ! -x "$DAEMON" ]; then {
echo "Couldn't find $DAEMON or not executable"
exit 99
}
fi

#
# Function that starts the daemon/service
#
do_start() {
# Return
# 0 if daemon has been started
# 1 if daemon was already running
start-stop-daemon --start --quiet --chdir $DAEMON_HOME --chuid $DAEMOINUSER:$DAEMOINGROUP --exec $DAEMON --test > /dev/null || return 1
start-stop-daemon --start --quiet --chdir $DAEMON_HOME --chuid $DAEMONUSER:$DAEMONGROUP --exec $DAEMON > $DAEMON_LOG 2>&1 &
}
#
# Function that stops the daemon/service
#
do_stop() {
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --signal 2 --retry 5 --quiet --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
return "$RETVAL"
}

case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop}" >&2
exit 3
;;
esac

exit 0
%%

Ist dieses unter /etc/init.d/ gespeichert kann es auch für den Start hinzugefügt werden.

update-rc.d SteelVine defaults

Das war’s.

Hinweise

Wie immer ist hier alles nur schnell hingeschrieben, aber vielleicht hilfts ja dennoch dem einen oder anderen.[:]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.