Jede Festplatte segnet irgendwann das Zeitliche. Mit smartmontools gibt es für Linux eine Software zur Zustandsanalyse von Festplatten, die einen bevorstehenden Crash einer Festplatte erkennen kann.
Lizenz: GNU Free Documentation License
EINSTIEG: Oft kündigt sich so ein Absturz z.B. durch ungewöhnliche Geräusche an. Mit smartmontools kann man überprüfen, ob sich die Festplatte in einem kritischen Zustand befindet und ob die Platte bald das Ende ihrer Lebensdauer erreicht haben könnte. Der Software zu Grunde liegt SMART (Self Monitoring, Analysis and Reporting Technology). SMART ist eine systemübergreifende Analysesoftware, die fest in der Firmware fast aller moderner Festplatten integriert ist. Hier belegt SMART einen kleinen Bereich, der nicht überschrieben werden kann.
INSTALLATION: Auf den meisten Linuxsystemen sind smartmontools nicht standardmäßig installiert. Unter Ubuntu installiert man das Paket per Synaptic oder mit:
sudo apt-get install smartmontools
Das Paket smartmontools besteht aus dem Befehl smartctl und dem Daemon smartd. Im Folgenden soll ein typisches Nutzerszenario für den manuellen Check mit smartctl (auf Ubuntu) dargestellt werden (für die Platte: /dev/sda). Nicht näher eingegangen wird auf smartd, ein Daemon, der die Festplatte regelmäßig checkt, die Ergebnisse loggt und bei kritischem Zustand per email den Admin alarmieren kann.
AKTIVIERUNG: Obwohl SMART auf den meisten modernen Platten integriert sein sollte, muss es nicht zwangsläufig aktiviert sein – so könnte z.B. eine entsprechende Einstellung im BIOS dies verhindern. Nach der Installation von smartmontools wollen wir also zunächst herausfinden, ob SMART überhaupt aktiviert ist (benötigt root-Rechte):
harry@FRED:$ sudo smartctl -i /dev/sda
(…)
=== START OF INFORMATION SECTION ===
Model Family: Hitachi Travelstar 80GN family
Device Model: IC25N060ATMR04-0
Serial Number: xxxxxxxxxxxxxxxxx
Firmware Version: MO3OAD4A
User Capacity: 60.011.642.880 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 6
ATA Standard is: ATA/ATAPI-6 T13 1410D revision 3a
Local Time is: Thu Apr 23 10:55:56 2009 CEST
SMART support is: Available – device has SMART capability.
SMART support is: Enabled
Sollte SMART auf /dev/sda zwar verfügbar („available“), aber nicht aktiviert („disabled“) sein, können wir dies manuell nachholen:
smartctl -s on /dev/sda
BASISCHECK:
Hier gibt es mehrere Variationen. Um einen schnellen Check der Platte durchzuführen, verwendet man:
harry@fred:$ sudo smartctl -H /dev/sda
(…)
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
ERWEITERTER CHECK: Nun wollen wir aber doch eine detaillierte Auflistung der Fähigkeiten dieses Festplattenanalysetools. Welche Attribute kann smartmontools erfassen? Welche aktuellen Werte hat unsere Festplatte? Ab welchem Wert wird es kritisch? Die Antwort auf diese Fragen liefert:
smartctl -A /dev/sda
ATTRIBUTE_NAME beschreibt die untersuchte Eigenschaft
VALUE beschreibt den gemessenen Wert
WORST beschreibt den schlechtesten jemals gemessenen Wert
THRESH beschreibt den Wert, ab dem Besorgnis gelten sollte
Beispiel:
harry@fred$ sudo smartctl -A /dev/sda
(…)
=== START OF READ SMART DATA SECTION ===
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_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 062 Pre-fail Always - 0
2 Throughput_Performance 0×0005 100 100 040 Pre-fail Offline - 0
3 Spin_Up_Time 0×0007 147 147 033 Pre-fail Always - 1
4 Start_Stop_Count 0×0012 099 099 000 Old_age Always - 1868
5 Reallocated_Sector_Ct 0×0033 100 100 005 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 091 072 067 Pre-fail Always - 0
8 Seek_Time_Performance 0×0005 100 100 040 Pre-fail Offline - 0
9 Power_On_Hours 0×0012 098 098 000 Old_age Always - 970
10 Spin_Retry_Count 0×0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0×0032 099 099 000 Old_age Always - 1865
191 G-Sense_Error_Rate 0x000a 093 093 000 Old_age Always - 1441802
192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always - 59
193 Load_Cycle_Count 0×0012 096 096 000 Old_age Always - 48006
194 Temperature_Celsius 0×0002 196 196 000 Old_age Always - 28 (Lifetime Min/Max 7/48)
196 Reallocated_Event_Count 0×0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0×0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0×0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0
Bedenklich in diesem Beispiel ist das Attribut Seek_Error_Rate. Gemessen wurde ein Wert unter 100, in der Vergangenheit wurden sogar einmal nur 72 gemessen. Ab 67 kann ein Ausfall der Festplatte drohen.
GRÜNDLICHER CHECK:
Nun wollen wir unsere Platte einem ausführlicheren Test unterziehen, wobei auch die Mechanik und der Datendurchsatz getestet werden. Zur Verfügung stehen uns ein Selbsttest in der Kurzform oder in der ausführlichen Form. Um mehr (auch über die die erwartete Dauer der Tests) herauszufinden geben wir ein:
sudo smartctl -c /dev/sda
harry@FRED:$ sudo smartctl -c /dev/sda
( … Ausgabe verkürzt … )
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 53) minutes.
Der Kurztest würde also 2 Minuten dauern, der lange self-test ca 53 Minuten. Um den Kurztest zu starten, verwenden wir:
sudo smartctl -t short /dev/sda
harry@FRED:$ sudo smartctl -t short /dev/sda
(…)
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: „Execute SMART Short self-test routine immediately in off-line mode“.
Drive 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 Apr 23 11:49:02 2009
Use smartctl -X to abort test.
Analog dazu würden wir den ausführlichen Check durchführen mit:
harry@FRED:$ sudo smartctl -t long /dev/sda
TESTERGEBNISSE ABRUFEN: Während des Test schreibt die Software die Ergebnisse in eine Logdatei. Um das Testergebnis aufzurufen, verwendet man:
smartctl -l selftest /dev/sda
Beispiel:
harry@FRED:$ sudo smartctl -l selftest /dev/sda
(…)
=== START OF READ SMART DATA SECTION ===
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% 970 -
# 2 Short offline Completed without error 00% 970 -
smartmontools funktioniert nicht auf externen USB-Platten. Es wird auch nicht jeden Festplattenabsturz zuverlässig voraussagen können. Um eine gewiefte Backupstrategie wird man also trotz smartmontools nicht herumkommen.
LINKS:
http://smartmontools.sourceforge.net/
http://wiki.ubuntuusers.de/Festplattenstatus
http://de.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology