Smartmontools
Das Paket Smartmontools nutzt die in vielen Festplatten eingebauten Funktionen zur Selbstanalyse (SMART), um bereits im voraus vor zu erwartenden Festplattenausfällen zu warnen. Es gibt eine Reihe messbaren Anzeichen, die schon früh einen Ausfall ankündigen, etwa sich häufende Lesefehler. Allerdings lassen sich so nur nur rund zwei Drittel aller Fehler im voraus erkennen.
Das Paket beinhaltet die folgenden beiden Programme:
Programm | Beschreibung |
---|---|
smartctl | Aktiviert und steuert die SMART-Funktionen der Geräte. Das Paket Gsmartcontrol bietet eine grafische Oberfläche dazu. |
smartd | Daemon zur Beobachtung die Geräte. |
Funktionsweise
Die Smartmontools dienen als Frontend für SMART, eine in der Firmware nahezu aller aktuellen ATA-, SATA- und SCSI-Festplatten eingebaute Analysesoftware. Unterstützt werden die ATA / ATAPI-Standards ab Version 3 bis aktuell 7. Dabei werden die internen Festplatten mit Gesundheitschecks und verschiedenen Selbsttests untersucht und die Ergebnisse lesbar aufbereitet. Mit Hilfe des zugehörigen Daemon-Prozesses smartd kann das auch automatisch erfolgen. Externe USB-Festplatten verstehen jedoch nur SCSI-Befehle, obwohl es sich dabei intern fast immer um ATA- oder SATA-Platten handelt - hier funktionieren die Smartmontools leider nicht. ESATA-Laufwerke können hingegen problemlos untersucht werden.
Frühere ATA-Standards definierten noch mehrere Attribute, die Eigenschaften des Geräts beschrieben. Zum Einschätzen des Gesamtstatus der Festplatte mussten alle Attribute analysiert werden. ATA/ATAPI 5 führte einen eigenen Health-Status ein, der mit "smartctl -H" abgefragt werden kann. Viele PCs erlauben per BIOS-Setup, SMART bereits beim Booten zu prüfen. Die Bedeutung und Belegung der Attribute bleibt in modernen Standards den Herstellern überlassen - sie wissen am besten, wann ein Wert als kritisch einzustufen ist. Die Smartmontools führen eine Datenbank mit diesen Informationen. Die SMART-Firmware kennt für jedes Attribut Norm- und Schwellenwerte - fällt der normierte Wert auf oder unter die Schwelle, so gilt das Attribut als schadhaft. Bei der Beurteilung des gemeldeten Problems hilft die unter "TYPE" angegebene Bezeichnung: während "Old_age"-Attribute normale Alterungsprozesse charakterisieren gelten Fehler bei den "Pre-fail"_Atrributen (in Kombination mit "FAILING_NOW" in der Spalte "WHEN_FAILED") als kritisch, da hier ein Versagen innerhalb der nächsten Stunden droht. Hier ist ein sofortiger Geräteaustausch zu empfehlen.
Durch Integration des Aufrufs "smartctl -s on <Gerät>" in die Startskripte werden die SMART-Onlinetests auf dem Gerät aktiviert. Die Option "-o on" bewirkt ein periodisches Ausführen der Auto-Offlinetests (üblicherweise alle vier Stunden), sofern der Hersteller sie eingebaut hat (sie "smartctl -c <Gerät>"). Aktivierte Online- und Offlinetests stellen sicher, dass alle Attribute den aktuellen Stand wiedergeben. Zwar könnte der Health-Status per Cronjob überwacht werden, besser ist allerdings der mit den Smartmontools gelieferte "smartd". Viele Distributionen bringen für diesen Daemon passende Startskripte mit. Findet der startende "smartd" keine Konfigurationsdatei "/etc/smartd.conf" oder eine mit dem Schlüsselwort "DEVICESCAN", so sucht er selbst nach Geräten, aktiviert SMART und startet die Überwachung; "smartctl -s on" ist also nicht nötig.
Einträge in der Konfigurationsdatei "/etc/smartd.conf" regeln die Testmethoden und deren Zeitplan für jedes einzelne Speichermedium. "smartd" protokolliert seine Status- und Fehlermeldungen im Syslog und verschickt auf Wunsch E-Mails, wenn Schäden entdeckt werden, Fehler neu geloggt werden oder ein Befehl scheitert. Dazu wird der "smartd"-Konfiguration die Option "-m <E-Mail-Adresse 1>,<E-Mail-Adresse 2>" mitgegeben.
Bei Bedarf kann ein gängiger Logfile-Agent damit beauftragt werden, das Syslog auch hinsichtlich Smartmontools auszuwerten. Als weitere Möglichkeite können mit dem Werkzeug Munin Fehler- oder Warnstufen definiert werden, bei deren Erreichen ein sogenannter Passive Alert an Nagios versandt wird. Voraussetzungen dafür sind ein entsprechender NSCA-Server (Nagios Service Check Acceptor) sowie das Smartmontools-Plugin für Nagios. Mit einem solchen Setup können auch Grafiken mit dem zeitlichen Ablauf der Attributwerte ausgegeben werden.
Funktionen
Folgende Testfunktionen sind verfügbar:
- der für den Benutzer unbemerkt laufende Onlinetest erhebt Daten zur Funktionsfähigkeit des Geräts und speichert sie in einer internen Attributtabelle, echte Fehlermeldungen kommen ins interne Errorlog.
- Der Offlinetest sammelt Daten, die dem Onlinetest aus technischen Gründen versagt bleiben. Diese Attribute werden in der Spalte "UPDATE" mit "Offline" gekennzeichnet. Steht dort "Always", so erfolgt die Aktualisierung sowohl im Online- wie im Offlinetest. Auch der Offlinetest beeinträchtigt die Performance nicht, da reguläre Zugriffe auf das Medium Vorrang haben.
- Die Selbsttests prüfen die Hardware tatsächlich. Im Gegensatz zu den beiden anderen Verfahren, die bei Aktivierung automatisch in regelmässigen Abständen ablaufen, startet der Selbsttest nur auf Anforderung. Die benötigte Zeit für den Selbsttest hängt von der Anzahl der gleichzeitigen regulären Zugriffe ab. Im "Captive Mode" gestartet nimmt der Test das Gerät hingegen voll in Beschlag.
Optionen
Grundsätzlich sind alle Befehle als Benutzer "root" auszuführen, weil der Zugriff auf die Gerätedateien für weniger privilgegierte Benutzer nicht erlaubt ist.
Syntax.
smartctl [Option] [Gerät]
Option | Beschreibung | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Allgemeine Informationen | |||||||||||||||
-A | Anzeige der verfügbaren ATA-Attribute. Wichtig sind vor allem folgende Spalten.
| ||||||||||||||
-c | Anzeige der verfügbaren SMART-Methoden und wieviel Zeit die einzelnen Tests benötigen. | ||||||||||||||
-H | Anzeige des Gesundheitszustands. Ist alles in Ordnung, so lautet das Resultat "PASSED". | ||||||||||||||
-i | Anzeige von Informationen. | ||||||||||||||
-s on | Aktivierung von SMART. Ab sofort werden ohne Einbussen der Systemleistung für alle ATA-Attribute, die in der Spalte UPDATED mit "Always" gekennzeichnet sind, Messdaten über die Funktionsfähigkeit des Geräts geschrieben. Dies wird in der manpage Online-Test genannt. | ||||||||||||||
Tests | |||||||||||||||
-t offline | Durchführung des Offline-Tests. Dabei ist eine Einbusse der Systemleistung möglich. | ||||||||||||||
-t long | Langer Selbsttest (bis zu mehreren Stunden). | ||||||||||||||
-t short | Kurzer Selbsttest (einige Minuten). | ||||||||||||||
-l selftest | Anzeige der Ergebnisse des Selbsttests. | ||||||||||||||
-l error | Anzeige der letzten fünf aufgetretenen Fehler. | ||||||||||||||
-X | Abbruch des Selbsttests. |
Verwendung
Anzeige von Informationen zum Gerät "/dev/sda".
# smartctl -i /dev/sda
Anzeige von Informationen zum Gerät "/dev/sda"; bei einer SATA-Festplatte wird noch "-d ata" an den Befehl angehängt. Die Beispielausgabe zeigt, ob die Festplatte in der Smartmontools-Datenbank steht, welchen ATA-Standard sie nutzt (hier "7") und ob SMART aktiv ist.
# smartctl -i /dev/sda -d ata smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ --- START OF INFORMATION SECTION --- Device Model: SAMSUNG HD502IJ Serial Number: S13TJDWQ611306 Firmware Version: 1AA01112 User Capacity: 500'107'862'016 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: Not recognized. Minor revision code: 0x52 Local Time is: Fri Sep 19 14:30:21 2008 CEST --> WARNING: May need -F samsung or -F samsung2 enabled; see manual for details. SMART support is: Available - device has SMART capability. SMART support is: Disabled SMART Disabled. Use option -s with argument 'on' to enable it.
Ansehen der Voreinstellungen des Geräts "/dev/sda", falls sich dieses in der Smartmontools-Datenbank findet.
# smartctl -P show /dev/sda smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Drive found in smartmontools Database. Drive identity strings: MODEL: SAMSUNG HD502IJ FIRMWARE: 1AA01112 match smartmontools Drive Database entry: MODEL REGEXP: ^SAMSUNG.* FIRMWARE REGEXP: .* MODEL FAMILY: ATTRIBUTE OPTIONS: None preset; no -v options are required. WARNINGS: May need -F samsung or -F samsung2 enabled; see manual for details.
Aktivierung von SMART für das Gerät "/dev/sda".
# smartctl -s on /dev/sda
Durchführung eines kurzen Gesundheitschecks für das Gerät "/dev/sda". Im Abschnitt "General SMART Values" werden die Fähigkeiten der Festplatte angezeigt. Auf der Grundlage der zuletzt vorgenommenen Tests gibt das Werkzeug als Status ganz oben "PASSED" oder "FAILED" zurück - in letzterem Fall ist die Platte bereits sehr gefährdet und wird in allernächster Zukunft ausfallen. Diese beiden Werte lassen sich auch gut per Skript auswerten - so könnte bei jedem Systemstart ein Gesundheitscheck durchgeführt werden und im Fall einer "FAILED"-Meldung Alarm schlagen.
# smartctl -Hc /dev/sda smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Warning! SMART Attribute Data Structure error: invalid SMART checksum. Warning! SMART Attribute Thresholds Structure error: invalid SMART checksum. --- START OF READ SMART DATA SECTION --- SMART overall-health self-assessment test result: PASSED Please note the following marginal Attributes: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 4 Start_Stop_Count 0x005e 002 000 094 Old_age Always FAILING_NOW 69278536062464 81 Unknown_Attribute 0x3157 054 051 087 Pre-fail Always FAILING_NOW 35322351072817 32 Unknown_Attribute 0x0320 000 000 032 Old_age Offline FAILING_NOW 52988102050944 32 Unknown_Attribute 0x2020 032 032 032 Old_age Offline FAILING_NOW 35322350018592 32 Unknown_Attribute 0x2020 032 032 032 Old_age Offline FAILING_NOW 550026354720 255 Unknown_Attribute 0x000f 000 007 015 Pre-fail Always FAILING_NOW 131943408599808 120 Unknown_Attribute 0x7800 000 000 000 Old_age Offline FAILING_NOW 0 104 Unknown_Attribute 0x4174 188 035 116 Old_age Offline In_the_past 62673123344193 General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. Total time to complete Offline data collection: ( 0) seconds. Offline data collection capabilities: (0x00) Offline data collection not supported. SMART capabilities: (0x0000) Automatic saving of SMART data is not implemented. Error logging capability: (0x00) Error logging supported. General Purpose Logging supported.
Anzeige der identifizierbaren und ausfallrelevanten SMART-Eigenschaften des Geräts "/dev/sda".
# smartctl -A /dev/sda smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ --- START OF READ SMART DATA SECTION --- SMART Attributes Data Structure revision number: 64 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 255 Unknown_Attribute 0x373f 200 016 063 Pre-fail Always In_the_past 69278536062464 81 Unknown_Attribute 0x3157 054 051 087 Pre-fail Always FAILING_NOW 35322351072817 32 Unknown_Attribute 0x0320 000 000 032 Old_age Offline FAILING_NOW 52988102050944 49 Unknown_Attribute 0x3231 049 065 049 Pre-fail Offline FAILING_NOW 35550757999443 68 Unknown_Attribute 0x3048 053 073 072 Old_age Offline FAILING_NOW 35322352771122 32 Unknown_Attribute 0x2020 032 032 032 Old_age Offline FAILING_NOW 35322350018592 32 Unknown_Attribute 0x2020 032 032 032 Old_age Offline FAILING_NOW 550026354720 16 Unknown_Attribute 0xff00 000 016 000 Old_age Offline FAILING_NOW 280380028550140 255 Unknown_Attribute 0x000f 000 007 015 Pre-fail Always FAILING_NOW 131943408599808 120 Unknown_Attribute 0x7800 000 000 000 Old_age Offline FAILING_NOW 0 64 Unknown_Attribute 0xf800 000 082 000 Old_age Offline FAILING_NOW 56622323100416 104 Unknown_Attribute 0x4174 188 035 116 Old_age Offline In_the_past 62673123344193 93 Unknown_Attribute 0xa000 134 001 000 Old_age Offline - 250053931008
FAQ
Automatisierte Überwachung mit smartd
Der Daemon smartd fragt nach Vorgaben des Benutzers SMART-Attribute automatisiert ab und startet Selbsttests. smartd protokolliert seine Status- und Fehlermeldungen im Syslog. So kann man sich auch per E-mail über Fehler benachrichtigen lassen.
Einbinden von Start und Stop von smartd in den shutdown-Prozess des Rechners über das Skript "/etc/init.d/smartd".
# chkconfig --add smartd
Im Skript "/etc/init.d/smartd" können verschiedene Optionen angegeben werden, mit denen smartd gestartet werden soll. Mit "smartd --help" werden die verfügbaren Optionen angezeigt.
Die weitere Konfiguration von smartd erfolgt in der Datei "/etc/smartd.conf". Sollte sie nicht vorhanden sein, so versucht "smartd" beim Start auf alle möglichen ATA- und SCSI-Geräte zuzugreifen, SMART zu aktivieren und die Überwachung zu starten.
Zur Benachrichtigung im Fehlerfall kann die Anweisung "-m email@domain" angegeben werden.
Weblinks
- smartmontools (Sourceforge.net)
- smartmontools (LinuxWiki.de)