SMART

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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

Das könnte Sie auch interessieren

SMART Werte von NVMe SSDs auslesen
Smartctl
Smartmontools mit MegaRAID Controller