Festplatten mit SMART überwachen/überprüfen
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
3 Kommentare
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
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