SMART
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology; geschrieben SMART) ist ein System zur Überwachung und frühzeitigen Erkennung von Fehlern von Speichermedien wie Festplatten oder SSDs. Alle aktuellen Festplatten und SSDs haben SMART Funktionalität. Die von SMART bereitgestellten Daten (SMART Attribute) sind jedoch von Hersteller zu Hersteller unterschiedlich. Nur wenige Hersteller dokumentieren die Bedeutung der einzelnen SMART Attribute detailliert (z.B. Intel, siehe SMART Attribute von Intel SSDs). Ohne Dokumentation ist eine Interpretation der SMART Attribute für den Anwender schwierig.
Entstehung
SMART wurde ursprünglich vom Small Form Factor (SFF) Committee Mitte der 90er Jahre entwickelt,[1] mittlerweile ist das Technical Committee T13 für SMART verantwortlich. SMART gehört seit ATA-3 zum ATA/ATAPI Standard. Kurz vor Veröffentlichung des Standards wurde die Beschreibung der SMART Attribute jedoch entfernt. Das hat zur Konsequenz, dass eine Festplatte laut Standard nur ein "OK" oder "nicht OK" als Status zurück liefern müsste. Es ist nicht festgelegt wie viele oder welche Sensoren (Attribute) eine Festplatte haben muss.
Im Laufe der Zeit ist ein quasi Standard äquivalent zum damals entfernten Vorschlag entstanden. Dadurch können dennoch SMART Attribute von Festplatten ausgelesen und zugeordnet werden, z.B. mit Hilfe des Tools smartctl. Die konkrete Bedeutung eines bestimmten SMART Attributes (z.B. Raw Read Error Rate) ist jedoch oft Hersteller-spezifisch. Da bei SSDs viele der bisherigen SMART Attribute keinen Sinn mehr ergeben wurden diese teilweise von den Herstellern mit neuen Bedeutungen versehen oder ganz entfernt.
Standardisierung
Die Standardisierung von SMART erfolgte erstmals mit ATA-3. Die Revision 7b des ATA-3 Drafts[2] enthielt noch Beschreibungen der SMART Attribute, diese wurden aber vor Verabschiedung des Standards wieder entfernt. Seit ATA-3 findet sich im Standard ein Kapitel (z.B. Kapitel 4.21 in ATA-8[3]) zu SMART, welches allerdings nicht Bezug auf die Attribute nimmt, sondern nur allgemeine SMART Funktionen behandelt. Für ATA-8 gab es ein Proposal zur Beschreibung der SMART Attribute[4] (wurde später auf drei Proposals aufgeteilt)[5][6][7] welches jedoch nicht in den Standard aufgenommen wurde.
Zu SMART Selftests gab es ebenfalls ein Proposal.[8] Dieses wurde in SPC-x[9] (SCSI Primary Commands) aufgenommen.
Die folgende Übersicht zeigt, welche SMART Funktionen standardisiert sind:
- Standardisiert sind:[3][9]
- SMART Datenformat
- SMART Datenerfassung
- Reaktion auf Überschreitung von Thresholds ("Dev OK"; "Dev fail")
- SMART Kommandos
- SMART Errorlogs
- SMART Tests
- Nicht standardisiert, aber vorhanden (quasi Standard auf Basis des ATA-3 Drafts[2]):
- SMART Attribute (es ist nicht vorgegeben welche Attribute vorhanden sein müssen und wie diese zu speichern sind)
- Interpretation der SMART Attribute (es ist nicht vorgegeben ob ein Attribut z.B. ein Bitmuster ist oder eine Zahl)
SMART Attribute
Da die SMART Attribute nicht standardisiert sind, kann jeder Hersteller für ein Festplatten- oder SSD-Modell selbst wählen welche SMART Attribute er definiert.
Ein SMART Attribut hat dabei:
- Attribut Namen (z.B. Raw Read Error Rate)
- raw Wert (RAW_VALUE in der Ausgabe von smartctl): wird vom Hersteller individuell definiert. Ohne konkreter Dokumentation der Bedeutung dieses Wertes ist eine Interpretation nicht zuverlässig möglich. Oft sind raw Werte physikalische Größen (z.B. Temperatur, Stunden, ...).
- normalized Wert (VALUE in der Ausgabe von smartctl): Wert zwischen 1 (schlechtester Zustand) und 253 (bester Zustand), die meisten Hersteller gehen aber von 100 oder 200 als Bestwert aus.
- bislang schlechtesten Messwert des normalized Werts (WORST in der Ausgabe von smartctl)
- Grenzwert für den normalized Wert (THRESH in der Ausgabe von smartctl): unterschreitet der normalized Wert diesen Grenzwert, wird der SMART-Status auf "Dev fail" gesetzt.
Verschiedene Attribute werden nur beim Neustart oder im Zuge eines Selbsttests aktualisiert, dies ist in smartctl Ausgabe in der Spalte UPDATED am Eintrag "Offline" zu erkennen. Werte, die im laufenden Betrieb aktualisiert werden, sind hier mit "Always" gekennzeichnet. Daneben gibt es verschiedene Typen von Attributen. Attribute vom Typ "Pre-fail" können bei schlechten Werten einen baldigen Ausfall der Platte anzeigen. Attribute vom Typ "Old-age" können sich durch den normalen Alterungsprozess einer Festplatte verändern.
Hier sehen Sie eine Beispielausgabe des Tools smartctl:
adminuser@ubuntu-12-04:~$ sudo smartctl -a /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-54-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Western Digital RE4
Device Model: WDC WD1003FBYX-01Y7B0
[...]
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 174 171 021 Pre-fail Always - 4291
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 126
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 9532
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 123
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 68
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 57
194 Temperature_Celsius 0x0022 115 102 000 Old_age Always - 32
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
Im Wikipedia Artikel zu SMART finden Sie eine Liste mit bekannten SMART Attributen inklusive einer kurzen Beschreibung.
Auslesen der SMART Attribute
Für das Auslesen von SMART Attributen unter Linux finden Sie eine Anleitung in unserem Artikel zu Smartctl.
Unter Windows gibt es verschiedene (GUI) Tools die die SMART Werte auslesen und anzeigen können eine Übersicht finden Sie auf folgender Wikipedia Seite: S.M.A.R.T.-Programme im Vergleich
SMART Tests
Einige Smart Attribute werden nur beim Start einer Festplatte oder beim durchführen von sogenannten SMART-Tests aktualisiert. Weitere Informationen zu SMART Tests und wie man diese durchführt finden Sie im Artikel SMART Tests mit smartctl.
Einzelnachweise
- ↑ Links: The original SMART specification (smartmontools Wiki)
- ↑ 2,0 2,1 Working Draft: Information Technology - AT Attachment-3 Interface (ATA-3) Revision 7b, 27.01.1997 (www.t13.org)
- ↑ 3,0 3,1 Working Draft: Information technology - AT Attachment 8 - ATA/ATAPI Command Set (ATA8-ACS) Revision 6a, 06.09.2008 (www.t13.org)
- ↑ Proposal: ATA/ATAPI-8 SMART Attribute Annex 30.09.2005 (www.t13.org)
- ↑ Proposal: ATA/ATAPI-8 SMART Attribute Overview 18.10.2005 (www.t13.org)
- ↑ Proposal: ATA/ATAPI-8 Assignment of SMART Attributes 18.10.2005 (www.t13.org)
- ↑ Proposal: ATA/ATAPI-8 List of Public SMART Attributes 18.10.2005 (www.t13.org)
- ↑ Proposal: Hard Drive Self-tests 26.04.1999 (www.t10.org)
- ↑ 9,0 9,1 SCSI Primary Commands - 4 (SPC-4) (www.t10.org)