Child pages
  • Festplatten mit SMART überwachen
Skip to end of metadata
Go to start of metadata

S.M.A.R.T. ist eine Technologie, mit der man den Zustand von Festplatten überwachen kann.

Unter Linux kann die Überwachung automatisch erfolgen. Die smartmontools enthalten für diesen Zweck den smartd: Er fragt periodisch den aktuellen Zustand aller Platten ab, führt Tests durch und benachrichtigt gegebenenfalls den Administrator per Email.

Die Grundlagen stehen in diesem Artikel:

Defekte Festplatten finden
Festplatten halten nicht ewig. Jede Festplatte wird irgendwann einmal ausfallen, was im schlimmsten Fall den Totalverlust sämtlicher darauf enthaltener Daten bedeutet.

harddiskInstallation

Die smartmontools sind in dem Package "smartmontools" enthalten. Unter Debian wird es wie folgt installiert:

server05:~# apt-get install smartmontools
...
Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools

Die letzte Zeile besagt, dass der smartd noch nicht gestartet wurde. Bevor die automatische Prüfung läuft, müssen erst noch die Dateien /etc/smartd.conf sowie /etc/default/smartmontools angepasst werden. Aber man kann schon jetzt manuelle Tests durchführen, z.B. mit

server05:~# smartctl -a /dev/sda

oder, falls z.B. die Platten sich an einem LSI RAID Controller befinden:

server17:~# smartctl -a -d megaraid,7 /dev/sda

Mehr dazu in dem Artikel Defekte Festplatten finden. Er enthält auch Angaben zur Windows-Version von smartmontools und ähnlichen Programmen.

Konfiguration

/etc/smartd.conf

Die Datei /etc/smartd.conf enthält Anweisungen über die Hardware im Server, und welche devices mit welchen Optionen zu testen sind. Es sind eine ganze Reihe von Beispielkonfigurationen enthalten. Hier nun zusätzlich meine eigene Konfiguration (passt zu einem handelsüblichen PC mit zwei Festplatten):

Der Server enthält zwei SATA Platten, die als /dev/sda und /dev/sdb angesprochen werden. Bei älteren Systemen ist es gelegentlich erforderlich, dem smartd explizit mitzuteilen, dass es sich um ATA Platten handelt. Das geschieht mit der Option -d ata, ist meistens aber nicht mehr erforderlich.

OptionBeschreibung
-aEs sollen sämtliche Attribute abgefragt werden
-s (S/../.././02|L/../../6/03)Außerdem sollen täglich um 02:00 Uhr ein kurzer Test sowie jeden Samstag um 03:00 Uhr ein langer Test ausgeführt werden
-m arne@schirmacher.deBei Problemen eine email versenden
-M test

Beim Start des smartd soll eine Test-Email versendet werden. Dies ist sehr nützlich - man möchte schließlich sicherstellen, dass man im Falle eines Problems auch wirklich per Email benachrichtigt wird

-d ata

-d megaraid,[id]

Die Disk wird als ATA Disk bzw. über einen RAID-Controller angesprochen

Da die zu prüfenden Platten explizit angegeben werden, wird die DEVICESCAN Anweisung auskommentiert. Der smartd versucht sonst, alle erreichbaren Festplatten mit default Optionen zu prüfen, was nicht immer funktioniert.

Hier die entsprechenden Konfigurationszeilen:

#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

/dev/sda -a -s (S/../.././02|L/../../6/03) -m arne@schirmacher.de -M test
/dev/sdb -a -s (S/../.././02|L/../../6/03) -m arne@schirmacher.de -M test

Die Statusinformationen werden außerdem in der /var/log/syslog Datei protokolliert. Bei alten ATA-Disks werden auch wenig interessante Informationen wie minimale Temperaturschwankungen mitgeschrieben. Falls das nicht gewünscht wird, kann man die Attribute mit der Option -I [Attributnummer] ausblenden.

Sep 16 14:17:15 server05 smartd[4175]: Device: /dev/sda, SMART Usage Attribute: 190 Unknown_Attribute changed from 64 to 65
Sep 16 14:17:15 server05 smartd[4175]: Device: /dev/sda, SMART Usage Attribute: 194 Temperature_Celsius changed from 130 to 133

Sollte es zu einem Problem kommen, erhält man eine Email, hier ein Beispiel:

Von:   root@server05
Betreff: SMART error (CurrentPendingSector) detected on host: server05
Datum: 16. September 2007 14:33:38 MESZ
An:   arne@schirmacher.de

This email was generated by the smartd daemon running on:

   host name: server05
  DNS domain: [Unknown]
  NIS domain: (none)

The following warning/error was logged by the smartd daemon:

Device: /dev/sda, 8 Currently unreadable (pending) sectors



For details see host's SYSLOG (default: /var/log/messages).

You can also use the smartctl utility for further investigation.
No additional email messages about this problem will be sent.

/etc/default/smartmontools

In der Datei /etc/default/smartmontools ist die folgende Zeile auskommentiert. Damit der smartd startet, das Kommentarzeichen entfernen:

# uncomment to start smartd on system startup
start_smartd=yes

und den smartd manuell starten (wird ab jetzt auch automatisch bei jedem Systemstart ausgeführt):

server05:~# /etc/init.d/smartmontools start
Starting S.M.A.R.T. daemon: smartd.

Falls der smartd nicht startet, stehen weitere Informationen in der Datei /var/log/syslog. Evtl. ist die DEVICESCAN Option nicht auskommentiert und die Defaults passen nicht zu den vorhandenen Platten. Manchmal muss bei alten Platten erst noch die S.M.A.R.T. Funktion auf den Disks aktiviert werden:

smartctl -d ata -s on /dev/sda
smartctl -d ata -s on /dev/sdb

Siehe auch die folgenden Artikel:

  • Page:
    Rescue disk with ddrescue — How to rescue a broken disk drive using ddrescue.
  • Page:
    Festplatten mit SMART überwachen — S.M.A.R.T. ist eine Technologie, mit der man den Zustand von Festplatten überwachen kann.

    Unter Linux kann die Überwachung automatisch erfolgen. Die smartmontools enthalten für diesen Zweck den smartd: Er fragt periodisch den aktuellen Zustand aller Platten ab, führt Tests durch und benachrichtigt gegebenenfalls den Administrator per Email.

  • Page:
    Defekte Festplatten finden — Festplatten halten nicht ewig. Jede Festplatte wird irgendwann einmal ausfallen, was im schlimmsten Fall den Totalverlust sämtlicher darauf enthaltener Daten bedeutet.

4 Comments

  1. Anonymous

    ich bin auf dieses tutorial gestossen, weil mir smart unter /var/log/messages eine ähnlich absurde temperatur angezeigt wird wie in ihrem beispiel, sie sprechen an dieser stelle von uninteressanten informationen:

    Sep 16 14:17:15 server05 smartd[4175]: Device: /dev/sda, SMART Usage Attribute: 194 Temperature_Celsius changed from 130 to 133

    ich bekomme hier auch einen wert jenseit der 125 grad angezeigt, den ich nicht ganz glauben kann.
    ist es denkbar, das der fehler darin besteht, das hier fahrenheit-temperaturen ausgegeben werden, ist ihnen zu diesem thema etwas bekannt?

    sabine funk

    1. das ist ein interner Wert. Die tatsächliche Temperatur (in Grad Celsius) kann man sich mit folgendem Befehl ausgeben lassen (Wert in letzter Spalte):

      # smartctl -d ata -a /dev/sda | grep Temperature
      194 Temperature_Celsius     0x0022   097   097   000    Old_age   Always       -       47
      #
      
  2. Anonymous

    Oder in der /etc/smartd.conf den Parameter -R definieren:

     /dev/sda -d sat -a -R 194 -W 5 -s (S/../.././02|L/../../6/03) -m smartd@example.com

     /dev/sda = erste Platte

    -d sat = hängt an einem SATA Controler

    -a = alle Tests

    -R 194 = Raw Wert für Temperatur ausgeben

    -W 5 = bei 5 Grad schwankungen alamieren

    -s (S/../.././02|L/../../6/03) = kurztest täglich um 2 Uhr, langer Test Samstags um 3 Uhr

     -m smartd@example.com = Mails an smartd@example.com schicken

    In der Logdatei sieht's dann so aus:

    Sep  5 11:28:55 server smartd[7386]: Device: /dev/sda, initial Temperature is 26 Celsius

  3. Anonymous

    Danke.. nettes kurzes HowTo...
    Und es war zur rechten Zeit da ich feststellen musste das meine 3. Festplatte im RAID verbund den Selbsttest nicht mehr geschafft hat :)