Festplatten mit SMART überwachen/überprüfen

2010-08-22 - kostaki 3 Kommentare »

SMART steht für Self-Monitoring, Analysis and Reporting Technology und es hilft dabei den Gesundheitszustand von Festplatte zu prüfen. SMART muss im Bios des Rechners aktiviert werden und dann können mit Hilfe von Software SMART Werte ausgelesen werden. Bei Debian/Linux machen dies die smartmontools/smartctl. Die smartmontools bringen auch einen Daemon (smartd) mit der regelmäßig den Status der Festplatten prüft und ggf. über Probleme automatisch informiert. Die Installation ist wie immer sehr einfach.

$ aptitude install smartmontools

Sollte SMART deaktiviert sein, kann man es so aktivieren.

$ smartctl -s on -d ata /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.


Um sich allgemeine Informationen über das Laufwerk ausgeben zu lassen, benutzt man -a/--all (Show all SMART information for device).

$ smartctl -a -d ata /dev/sda

Im ersten Block geht es um allgemeine Informationen des Laufwerks. Möchte man nur diesen Block Informationen haben, kann man smartctl mit -i/--info (Show identity information for device) aufrufen.

$ smartctl -i -d ata /dev/sda
=== START OF INFORMATION SECTION ===
Device Model:     SAMSUNG HD753LJ
Serial Number:    S13UJ4KS204955
Firmware Version: 1AA01117
User Capacity:    750,156,374,016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 3b
Local Time is:    Thu Aug 12 12:50:54 2010 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Jetzt folgenden die Device Capabilities die man mit -c/--capabilities (Show device SMART capabilities) einzeln abfragen kann.

$ smartctl -c -d ata /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 (9864) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        ( 165) minutes.
Conveyance self-test routine
recommended polling time:        (  18) minutes.
SCT capabilities:              (0x003f) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

Dann wird es interessant.Ab hier geht es um die aktuellen Health Werte (VALUE), um die schlechtesten bisher gemessenen Werte (WORST) und die vom Hersteller angegebene Schwellenwerte (THRESH). Sollten die Werte unter VALUE/WORST unter den Wert von THRESH fallen, dann gibt es ein Problem. Wie wichtig dieses Problem ist sieht man an der Spalte TYPE. Wenn hier Pre-fail steht, handelt es sich um einen sehr wichtigen Wert und man sollte schleunigst seine Backups prüfen und dann die Platte austauschen. Old_age sagt das es sich um einen Altersbedingen Wert handelt. Der Wert der Spalte UPDATED besagt ob der Wert dauerhaft (Always) ermittelt wird oder ob man ihn durch einen Test (Offline) ermitteln lassen muss. Sollte die Spalte WHEN_FAILED nicht leer sein, hat man große Probleme (FAILING_NOW). In diesem Beispiel sind alle Werte im grünen Bereich. Nur diese Informationen bekommt man mit dem Operator -A/--attributes.

$ smartctl -A -d ata /dev/sda
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VAL
  1 Raw_Read_Error_Rate     0x000f   100   100   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0007   084   084   011    Pre-fail  Always       -       5720
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       7
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   100   100   051    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0025   100   100   015    Pre-fail  Offline      -       10555
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       10460
 10 Spin_Retry_Count        0x0033   100   100   051    Pre-fail  Always       -       0
 11 Calibration_Retry_Count 0x0012   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       7
 13 Read_Soft_Error_Rate    0x000e   100   100   000    Old_age   Always       -       0
183 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
184 Unknown_Attribute       0x0033   100   100   000    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   071   066   000    Old_age   Always       -       29
194 Temperature_Celsius     0x0022   070   064   000    Old_age   Always       -       30
195 Hardware_ECC_Recovered  0x001a   100   100   000    Old_age   Always       -       113
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   100   100   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x000a   100   100   000    Old_age   Always       -       0
201 Soft_Read_Error_Rate    0x000a   100   100   000    Old_age   Always       -       0

Im letzten Abschnitt geht es um geloggte SMART Fehler und um SMART Self-tests.

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status               Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%       123         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Mit -H/--health (Show device SMART health status) kann man den allgemeinen Gesundheitsstatus abfragen.

$ smartctl -H /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Wenn Fehler vorhanden sind, kann man diese auch einzeln auslesen.

$ smartctl -l error -d ata /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
No Errors Logged

SMART Selbsttests

Man kann nicht nur SMART Werte auslesen und anzeigen lassen, sondern man kann auch Selbsttests ausführen. Einen Test startet man mit -t TEST. Der einfachste und schnellste ist der short test.

$ smartctl -t short -d ata /dev/sda
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Thu Aug 12 17:59:47 2010
Use smartctl -X to abort test.

Das Ergebnis des Tests kann man nach dem Ablaufdatum auslesen.

$ smartctl -l selftest -d ata /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_error
# 1  Short offline       Completed without error       00%     10465         -
# 2  Short offline       Completed without error       00%       123         -

Um die Offline Werte ermitteln zu lassen, startet man den offline Test.

$ smartctl -t offline -d ata /dev/sda
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART off-line routine immediately in off-line mode".
Drive command "Execute SMART off-line routine immediately in off-line mode" successful.
Testing has begun.
Please wait 9864 seconds for test to complete.
Test will complete after Thu Aug 12 20:54:47 2010
Use smartctl -X to abort test.

Eine ausführliche Prüfung macht man mit Hilfe des long Tests. Dieser kann abhängig von der Größe des Laufwerkes mehrere Stunden dauern.

$ smartctl -t long -d ata /dev/sda

Related Links

Ähnliche Artikel

  1. 3 Kommentare

  2. Falk
    schrieb am 23.08.2010 um 16:50 Uhr

    Hallo,

    es bietet sich darüber hinausgehend an, in produktiv laufenden Servern den Zustand der Festplatten mit einer Überwachungssoftware wie z.B. “munin” oder “cacti” zu überwachen. Mindestens “munin” sollte auf jedem Server installiert sein, denn wer liest jeden Tag den Festplatten-Status aus?

    Grüße

  3. voku
    schrieb am 22.09.2010 um 19:21 Uhr

    Ggf. kann man das auch automatisch per Nagios überwachen lassen -> http://exchange.nagios.org/directory/Uncategorized/Check-SMART-status-modified/details

  1. Trackback(s)

  2. Aug 26, 2010:RAID: Festplatte(n) vor produktivem Einsatz prüfen » Allgemein, Server » Debian Root

Kommentar schreiben

*

*