Prüfung mit Bordmitteln

Workshop: Disk-Monitoring unter Linux

23.07.2008 von Juergen Donauer
Festplatten können jederzeit den Geist aufgeben. Auch wenn in Servern dieses Szenario normalerweise durch RAID-Systeme abgefedert wird, ist es sinnvoll, defekte Festplatten schnellstmöglich zu erkennen und auszutauschen. Dieser TecChannel-Artikel zeigt, wie Sie Linux-Bordmittel für das Monitoring und Benachrichtigungen benutzen können.

Festplatten sind aus der Computerwelt nicht wegzudenken. Oft wird aber vernachlässigt, dass sie nicht ewig arbeiten – im Gegenteil, manchmal sterben sie von einer Sekunde auf die andere. Zuweilen geben sie aber auch Signale, dass sie das Ende ihres Einsatzes erreichen werden. Mit den richtigen Mitteln kann man Festplatten überwachen, und Administratoren können sich automatisch über Defekte informieren lassen. Linux bringt einige kostenlose Bordmittel mit sich, die, richtig konfiguriert, gute Dienste leisten. Dieser Artikel verschafft Ihnen einen Überblick, kann aufgrund der Komplexität aber nicht auf jeden einzelnen Parameter eingehen.

S.M.A.R.T

S.M.A.R.T ist ein Akronym für Self-Monitoring, Analysis and Reporting Technology – eine Technologie, die in allen modernen Festplatten enthalten ist. Unter Linux lassen sich diese Dienste mit den smartmontools in Anspruch nehmen. Das Paket bringt zwei Programme mit sich, den Daemon smartd und das Kommandozeilenprogramm smartctl. Laut eigener Aussage unterstützt die Software ATA-, ATAPI-, SATA-3- bis SATA-8- und SCSI-Festplatten. Ebenso unterstützten die Werkzeuge Bandlaufwerke.

Fast überall dabei: Die smartmontools werden oft nicht automatisch installiert, befinden sich aber in der Regel in den Repositories der Distributionen.

Die smartmontools gibt es übrigens nicht nur für Linux. Sie sollten ebenfalls unter Mac OS X, FreeBSD, OpenBSD, NetBSD, Solaris, OS/2, Cygwin, QNX, eComStation und Windows einsetzbar sein. Bei den meisten Linux-Distributionen finden Sie das Softwarepaket in den Repositories. Mit den üblichen Verdächtigen wie zum Beispiel YaST, aptitude, apt-get und Synaptic sollten sich die Tools bequem nachinstallieren lassen.

Arbeiten mit S.M.A.R.T.

Wer sich nur hin und wieder über den Zustand seiner Festplatten erkundigen will, der muss den Daemon smartd nicht im Hintergrund laufen haben. Informationen erhält man alternativ auch über smartctl. Damit lässt sich auch herausfinden, ob die verwendete Festplatte überhaupt S.M.A.R.T-fähig ist und unterstützt wird. Unter Linux ginge dies als Benutzer root für die Festplatte /dev/sda zum Beispiel so (wollen Sie andere Massenspeicher prüfen, müssen Sie /dev/sda mit der entsprechenden Bezeichnung austauschen): smartctl -i /dev/sda

Unterstützt: In diesem Fall ist die Festplatte S.M.A.R.T.-fähig.

smartctl -c /dev/sda verrät, welche Tests ihr Gerät unterstützt. Sollte hier ein Fehler auftreten, können Sie mit dem Befehl smartctl -s on /dev/sda das Monitoring auf der Festplatte aktivieren. Mit smartctl lassen sich allerdings noch andere Informationen abrufen. smartctl -a /dev/sda ist äquivalent mit dem Befehl

smartctl -H -i -c -A -l error -l selftest -l selective /dev/sda

und für SCSI-Geräte mit dem Aufruf smartctl -H -i -A -l error -l selftest /dev/sda. Es sollte sämtliche Informationen über die Festplatte sda preisgeben.

Der Befehl findet smartctl -H /dev/sda schnell heraus, ob die Festplatte als „gut“ deklariert ist. Lesen Sie hier „PASSED“, ist alles in Ordnung. Ein „FAILED“ lässt alle Alarmglocken klingen. Spätestens jetzt sollten Sie eine sofortige Datensicherung vornehmen. Danach können Sie weitere Untersuchungen anstellen oder die Festplatte direkt ersetzen.

Noch mehr Hintergrund: smartctl -a verschafft einen Gesamteindruck über die Gesundheit der Festplatte.

Ist Ihr Gerät unterstützt, können Sie eine Reihe von Tests durchführen. smartctl -t offline /dev/sda führt einen sofortigen Offline-Test durch. Dies bedeutet aber nicht, dass die Festplatte ausgehängt wird. Das Tool zeigt Ihnen danach eine Zeit an, wann der Test voraussichtlich fertig sein wird. Sie können nach Ablauf dieser Zeit mittels smartctl -l errordas Ergebnis begutachten. Mittels Parameter -t können Sie statt der gesamten Festplatte auch nur bestimmte Bereiche testen. Was die smartctl-Parameter im Einzelnen machen, und für welche Festplattentypen sie einsetzbar sind, finden Sie in der sogenannten manpage von smartctl, die sich auf der Kommandozeile mittels man smartctl aufrufen lässt.

426 Sekunden: Nach dieser Zeit erhalten wir weitere Informationen.

Sie finden die manpage auch auf der Projektseite. In dieser Dokumentation stecken ebenfalls weitere wertvolle Informationen zum Einsatz von smartctl und Tipps zu bestimmten Festplattentypen und RAID-Controllern. Der Parameter -l ist ebenso interessant. Mit diesem lassen sich die Logdateien der Tests ansprechen. Er akzeptiert die Typen error, selftest, selective, directory, background, scttemp, scttempts und scttemphist.

Überwachung automatisieren

Da Administratoren in der Regel gar keine Zeit haben, jeden Tag alle Festplatten auf deren Gesundheit zu prüfen, gibt es den S.M.A.R.T.-Daemon. Dieser kann die Aufgabe automatisch erledigen. Dazu müssen Sie die Konfigurationsdatei des Dienstes einrichten. Wo sich diese Datei befindet, hängt von der eingesetzten Distribution ab.

Unter Ubuntu 8.04 und wahrscheinlich allen Debian-basierten Distributionen müssen Sie zum Beispiel zwei Dateien bearbeiten. Der smartd lässt sich in der Datei /etc/default/smartmontools aktivieren. Die Konfiguration selbst erfolgt über /etc/smartd.conf. Zum Glück ist diese Datei mit erklärten Beispielen gespickt. Sie brauchen im Prinzip nur die entsprechende Zeile zu suchen. Danach entfernen Sie das Doppelkreuz und passen diese Zeile noch nach Wunsch an. Nun können Sie den Dienst auch manuell starten. Unter Ubuntu funktioniert das so: /etc/init.d/smartmontools start. Dieser Startbefehl kann von Distribution zu Distribution variieren.

Geht nicht!: Unter Ubuntu 8.04 ist etwas mehr Hintergrundwissen notwendig. Schade, dass die Installation des Pakets dies nicht übernimmt.

Ein weiterer „Hallo“-Effekt ergab sich, als der S.M.A.R.T.-Daemon unter Ubuntu „Hardy Heron“ zunächst gar nicht starten wollte. Eine Analyse der Logdatei /var/log/daemon.log brachte mehr Aufschluss. Der Dienst hat eine ATA-Disk hinter einer SAT-Schicht (SCSI to ATA Translation) entdeckt. Somit muss man diese Angaben in der Konfigurationsdatei hinterlegen und den Parameter -d sat für das entsprechende Gerät hinzufügen. Beispiel: /dev/sda -H -l error -l selftest -t -I 194 -d sat

Das eben benutzte Beispiel überwacht nun die dafür konfigurierten Festplatten, informiert den Administrator allerdings noch nicht automatisch. Komfortabel wäre natürlich eine Benachrichtigung via E-Mail. Auch hierfür haben die Entwickler gesorgt. Der Parameter -m Mailadresse sorgt dafür, dass die Berichte per E-Mail verschickt werden:

dev/sda -H -l error -l selftest -t -I 194 -d sat -m festplattenguru@tecchannel.de

Festplatten mit badblocks auf Herz und Nieren prüfen

Das Kommandozeilen-Werkzeug badblocks ist im Paket e2fsprogs enthalten. Es sollte auf fast allen Distributionen vorhanden sein und wurde mit dem Ziel entwickelt, schlechte Sektoren auf Massenspeichern zu identifizieren. Das Tool ist mit Vorsicht zu genießen. Denn je nach Parameter kann der Test zum Verlust sämtlicher Daten auf dem Gerät führen. Ebenso ist angeraten, das Programm nur mit ausgehängten Massenspeichern zu verwenden. Die Syntax ist denkbar einfach:

badblocks -<Option 1> -<Option 2> -<Option 3> … /gerät <letzter zu testender Block> <erster zu testender Block>

Die nachfolgende Tabelle zeigt eine Übersicht aller Parameter und deren Aufgabe.

Parameter

Wirkung

-b (block-size)

Damit können Sie die Größe der Blocks in Byte angeben. Standard ist 1024.

-c (number of blocks)

Die Anzahl der gleichzeitig zu prüfenden Blocks. Standard ist 64.

-f

Dieser Parameter ist mit äußerster Vorsicht zu genießen. badblocks verweigert normalerweise Schreib-/Lese-Tests oder einen undestruktiven Test mit eingebundenen Geräten. Dieses könnte zum Absturz führen oder sogar das Dateisystem beschädigen. Der Parameter lässt solche Tests trotzdem zu. Die Entwickler raten strengstens vom Gebrauch ab.

-i (input file)

Liest eine Liste mit bereits bekannten schlechten Sektoren aus. Das Programm wird diese Blöcke nicht mehr testen.

-o (output file)

Definiert eine Datei, in die badblocks defekte Blöcke protokolliert. Eine solche Liste lässt sich mittels -i wieder benutzen.

-p (num passes)

Hiermit können Sie definieren, wie viele Durchläufe badblocks vornehmen soll, bis keine neuen Blocks mehr entdeckt werden. Standard ist 0 - die Software führt dann nur einen Durchlauf durch.

-t (test pattern)

Sie können selbst angeben, was die Software als Testmuster verwendet. Erlaubt sind numerische Zahlen zwischen 0 und ULONG_MAX-1 (inklusive) oder das Wort „random“. Letzteres veranlasst das Programm, ein zufälliges Muster zu verwenden.

-n

Benutzt einen undestruktiven Schreib-/Lese-Test. Per Standard liest die Software nur.

-s

Zeigt den Fortschritt des Scans an, indem es die gerade getesteten Blocknummern anzeigt.

-v

Verbose-Modus: Das Programm liefert Extrainformationen.

-w

Dieser Parameter veranlasst die Software auf jeden existierenden Block einige Testmuster zu schreiben, diese auszulesen und zu vergleichen.
-v und -n schließen sich aus. Der Parameter sollte niemals auf einer Festplatte mit nicht gesicherten Daten ausgeführt werden. Sie löschen damit auf jeden Fall alle Daten.

-X

Lediglich ein internes Flag, das e2fschk und mke2fs benutzen.

Fazit

Mit simplen, kostenlosen Bordmitteln, ein wenig Einlesen und etwas Handarbeit haben Sie die Gesundheitszustände Ihrer Massenspeicher im Auge. All dies vollautomatisch, ohne jeden Tag alle Server oder Rechner manuell zu überprüfen. Dank der Mail-Benachrichtigung und der Unterstützung vielerlei Plattformen beaufsichtigen Sie damit sogar alle Client-Rechner im Unternehmen. Mit etwas Kreativität finde Sie zudem sicher einen Weg, smartmontools in Monitoring-Systeme wie zum Beispiel Zabbix einzubinden.

Wegwerfen!: Dieser Festplatte sollte man keine Daten mehr anvertrauen.

Es lohnt sich durchaus, einen tieferen Blick in die Dokumentation der smartmontools zu werfen. Je nach Festplatte können Sie sich zum Beispiel auch warnen lassen, wenn die Temperatur eines Geräts über die in der Konfigurationsdatei hinterlegte Höchstgrenze steigt. Hilfe finden Sie, wie bereits im Artikel erwähnt, in den Dokumentationen oder der FAQ. Dort finden Sie zum Beispiel, warum die Tools unter Umständen die Festplattentemperatur oder die Online-Zeit falsch anzeigen und wie Sie diese Umstände bereinigen können.

S.M.A.R.T. ist allerdings kein Ersatz für regelmäßige Datensicherungen. Massenspeicher können auch ohne jegliche Vorwarnung in die ewigen Jagdgründe eingehen. Wohl dem, der in solch einem Fall ein Backup zur Hand hat.

Badblocks ist ebenfalls ein schönes Werkzeug, um Festplatten auf defekte Sektoren zu untersuchen. Manchmal ist es beim Einsatz dieses Tools jedoch schon zu spät. Außerdem dauern Tests bei den heutigen Festplattengrößen in der Regel sehr lange. Sollte eine Festplatte S.M.A.R.T. unterstützen, ist diese Methode der Festplattenüberwachung mit Sicherheit zu bevorzugen. Vielleicht kann man mit etwas Fantasie eine Kombination aus beiden Möglichkeiten erschaffen. (mja)