Workshop: Ausfall-Vorhersage bei Datenträgern

SMARTe Krankmeldung

Der TÜV für Daten heißt SMART oder ausführlicher: Self-Monitoring, Analysis and Reporting Technology. SMART überwacht diverse Betriebsparameter von Datenträgern und schlägt bei bestimmten Veränderungen frühzeitig Alarm – theoretisch also schon vor dem eigentlichen Ausfall. Wie SMART funktioniert, wie man es einsetzt und inwiefern SMART in der Praxis hilft, zeigt der folgende Artikel.
Der Verlust wichtiger Daten ist für jedes Unternehmen eine Katastrophe. Daher dreht sich in der Juli-Ausgabe des IT-Administrator alles um das Thema ... (mehr)

Dringen plötzlich schleifende oder schabende Geräusche aus einer Festplatte und klackert es verdächtig laut bei Schreib- oder Lesezugriffen, ist es schon zu spät: Das Laufwerk ist mechanisch beschädigt, kann Daten nicht mehr korrekt lesen und fällt in meist kurzer Zeit komplett aus. Läuft die Platte nicht redundant im RAID-Verbund und liegt kein aktuelles Backup vor, kann sich der Administrator mental schon auf einen sehr teuren Daten-GAU vorbereiten. Chronologisch betrachtet hilft ein Backup nach dem Plattenausfall und ein RAID während des Ausfalls – da stellt sich die Frage, ob es auch eine Lösung gibt, die vor einem Ausfall Hinweise geben kann.

Und tatsächlich will SMART, die Self-Monitoring, Analysis and Reporting Technology, durch die Auswertung ausgesuchter Betriebsparameter von Datenträgern erkennen, wann ein Ausfall bevorsteht. Vorgewarnt kann der Administrator so beispielsweise die Festplatte unter kontrollierten Bedingungen austauschen, bevor der Katastrophenfall eintritt. Konkret kommt man mit SMART auf auch nur halbwegs moderner Hardware beim Einschalten des Rechners in Kontakt und erhält vom BIOS normalerweise nur eine unscheinbare OK-Meldung. Konkrete Gefahr droht, wenn dort beispielsweise Folgendes zu lesen ist:

SMART Failure Predicted on Hard Disk 3: Seagate
Warning: Immediately back-up your data and replace your hard disk drive. A Failure may be imminent.

Allerdings: Wer verfolgt schon immer die BIOS-Meldungen beim Starten eines Rechners, insbesondere, wenn es ein Rack-Server ohne Bildschirm ist, der monatelang durchläuft. Die SMART-Werte sind also durchaus wertvoll, müssen allerdings innerhalb des laufenden Betriebssystems und dort auch regelmäßig ausgewertet werden.

SMARTe Laufwerke...

Um zu verstehen, was SMART leisten soll, hilft ein Blick in dessen Entstehungsgeschichte. Bereits 1992 erkannte IBM, dass im Zuge der Verbreitung des Personal Computers (PC) die ausfallenden Festplatten in Unternehmen zu einem großen finanziellen Risiko wurden. Die Laufwerke überwachten bereits damals ihre eigenen Betriebsparameter, und so entwickelte man eine Schnittstelle zum Anwender. Die Idee war, ihm plötzlich abweichende Werte mitzuteilen und so eine Vorwarnung auf einen eventuell bevorstehenden Ausfall geben zu können. Diese “Predictive Failure Analysis” (PFA) stellte eine Vorstufe von SMART dar. Compaq entwickelte es zusammen mit Seagate, Quantum und Conner zu IntelliSafe weiter – hierbei wurden unwichtige Veränderungen herausgefiltert und nur wirklich bedrohliche Informationen an den Benutzer weitergegeben. Etwas später traten IBM und Western Digital dem Konsortium bei und entwickelten auf Basis von Compaqs und IBMs Technologien einen neuen gemeinsamen Standard namens S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology, meistens und besser lesbar nur “SMART” abgekürzt).

SMART ist fest in Festplatten, SSDs und manchen Bandlaufwerken integriert. Interne Sensoren und Chipfunktionen sammeln und speichern dabei Betriebsparameter wie die Temperatur, die Anzahl der Betriebsstunden oder messen die Zeit, die der Plattenstapel benötigt, um eine Nenndrehzahl zu erreichen. Auch Fehler werden protokolliert, beispielsweise nur schlecht lesbare Sektoren (bei denen die Fehlerkorrektur ECC eingreifen musste) oder Übertragungsfehler auf dem Datenkabel. Zusätzlich bietet SMART einige Testfunktionen, mit denen sich die Plattenoberfläche etwa nach nicht mehr lesbaren Sektoren absuchen lässt. Alle Festplatten-Hersteller bieten dazu proprietäre Software an, die in der Regel unter Windows oder gar DOS läuft und somit für den Einsatz auf dem Server ausscheidet. Stecken gar Laufwerke verschiedener Hersteller in der Workstation oder dem Server, wird diese Lösung vollkommen praxisuntauglich. SMART ist laut Definition aber schließlich ein Standard, und so existieren unabhängige Softwarelösungen für alle gängigen Betriebssysteme.

Der Begriff “Standard” ist bei SMART nämlich eher großzügig interpretiert. Manche Werte ergeben gar keinen Sinn, wie beispielsweise bei einigen betagten Sea-gate-Platten: wird hier mehrfach die Anzahl der fehlerhaften Sektoren ausgelesen, steigt der Wert im Sekundentakt dramatisch an. Was Seagate hier speichert, weiß (hoffentlich) nur der Hersteller selbst. Ähnliche Ungereimtheiten finden sich auch bei den anderen Laufwerksproduzenten.

Die Werte, die sich über SMART auslesen lassen, sind in der Regel nicht standardisiert. Vielmehr speichert jeder Hersteller die Rohwerte in einer frei wählbaren Form und Skalierung. Um es noch komplizierter zu machen, sind viele Werte auch nicht absolut, sondern auf 100, 200 oder 255 normiert. Sinkende Werte stehen dann für schlechtere Messwerte, wobei nicht zwangsläufig 0 (Null) die kritische Grenze darstellt, sondern ein wiederum frei vom Hersteller wählbarer Wert (Threshold), beispielsweise 67. Konkret: Bei einem 2-TByte-Barracuda-Laufwerk von Seagate liefert SMART für die “Seek Error Rate”, also Lesefehler bedingt durch Positionierungsprobleme der Köpfe, einen Rohwert (RAW_VALUE) von 1700443. Der aktuell skalierte Wert nach Seagate-Interpretation ist 62, der bislang schlechteste Wert lautet 60 und der Schwellenwert, ab dem ein Ausfall droht, liegt bei 30. Eine konkrete Anzahl, wie viele Sektoren denn nun nicht gelesen werden konnten, lässt sich daraus nicht ableiten – und genau das wäre ja sinnvoll.

Wie die Werte zu interpretieren sind, unterscheidet sich dabei nicht nur von Hersteller zu Hersteller, sondern auch noch in Bezug auf das Festplattenmodell selbst. Wenigstens für einige Werte wie Temperatur, Einschaltvorgänge oder Betriebsstunden gibt SMART oft absolute Werte aus.

Bild 1: Bei Linux und FreeBSD lassen sich die Smartmontools über die jeweilige Paketverwaltung installieren.

Alle diese Werte werden vom BIOS oder von der SMART-Software zusammengewürfelt, um dann als Ergebnis den

“Health-Status”, also den Gesundheitsstatus des Laufwerks, zu bekommen. Der wiederum ist entweder “ok” – oder eben nicht. Würden Dateisysteme einfach nur zurückmelden “noch Platz frei” oder “voll”, wäre das recht unbefriedigend für den Admin-Alltag. Genauso sollten die SMART-Werte im Einzelnen überwacht werden, denn lange bevor der Health-Status eine Warnung ausgibt, kann man aufkeimende Probleme erkennen. Steigt beispielsweise die Temperatur langsam, aber beständig immer weiter an und verlängert sich die Anlaufzeit der Festplatte immer mehr, kann man mit hoher Wahrscheinlichkeit einen sich entwickelnden Lager- oder Motorschaden prognostizieren und so schon lange vor der SMART-Warnung Gegenmaßnahmen treffen. Um an genau diese einzelnen SMART-Werte heranzukommen und Tests zu initiieren, gibt es die Smartmontools (SMART Monitoring Tools) [1].

...und SMARTer Werkzeugkasten

Die Smartmontools beschränken sich im Wesentlichen auf zwei Tools: Das interaktive smartctl und den im Hintergrund laufenden Daemon smartd. Für den Betrieb essenziell ist dazu noch eine Datenbank mit Informationen, wie die einzelnen SMART-Werte bei bestimmten Laufwerken zu interpretieren sind. Fehlen die Smartmon-Tools auf der eigenen Distribution, sind sie in Form des “smartmontools”-Pakets aus dem jeweiligen Standard-Repository schnell installiert. FreeBSD 10 hält die Smartmontools in der Port-Collection vor, von wo aus sie sich per

cd /usr/ports/sysutils/smartmontools/
make install clean

aus dem Sourcecode übersetzen oder per »pkg install smartmontools« aus der Paketverwaltung installieren lassen (Bild 1).

Weitere Konfigurationen sind zunächst nicht notwendig. Mit smartctl lässt sich sofort der SMART-Status von Laufwerken überprüfen. In den einzelnen Linux-Distributionen sind die Smartmontools leider oft nicht aktuell. Das betrifft sowohl den Programmcode selbst als auch die Datenbank für die SMART-Kennzahlen. Auf Servern können die in der Regel vorhandenen älteren 5.x-Versionen nur bedingt mit SCSI- oder SAS-Laufwerken umgehen. Erst die Version 6.1 der Smartmontools liefert beispielsweise ausführliche Informationen zu SCSI-Laufwerken.

In Debian GNU/Linux “Wheezy” 7.4 befinden sich die Smartmontools in der konservativen Version 5.42, Red Hat stattet sein aktuelles Enterprise Linux (RHEL und damit auch CentOS) 6.5 hingegen mit der 5.43-1 aus. Recht aktuell ist die Ubuntu 14.04-Beta mit Smartmontools in der Version 6.2. – das ist auch die Version, die SourceForge auf der Projektseite zum Herunterladen anbietet. Aber selbst diese Version ist nicht wirklich aktuell, sondern bereits über ein halbes Jahr alt (26.07.2013).

Die Praxis zeigt: Werden keine zusätzlichen SCSI-Informationen benötigt und sind im Server keine nagelneuen (SSD-)Laufwerke verbaut, reichen die betagten Versionen der Distributionen voll aus. Sinnvoll ist allerdings ein Update der SMART-Datenbank. Etwas unkonventionell befindet sich die Datenbank in der Datei »drivedb.h« , die üblicherweise im Verzeichnis »/usr/share/smartmontools/« liegt. Das kleine Skript »update-smart-drivedb« der Smartmontools versucht, diese per curl/lynx/wget/fetch/ftp auf den neuesten Stand zu bringen.

Bei Smartmontools in den Versionen vor 6.1+svn3812-1 läuft dieses Skript allerdings ins Leere, weil SourceForge seine Entwicklerplattform im April letzten Jahres auf “Allura” umgestellt und damit auch die SVN-Repo-Links geändert hat [2]. Wer die Smartmontools nicht in der Version 6.3 selbst compilieren will (siehe unten), kann die Datenbank der alten Versionen dennoch updaten, wenn er im Skript »/usr/sbin/update-smart-drivedb« ab Zeile 45 den Pfad anpasst:

# ViewVC repository browser
# alt: SRCEXPR=’http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/$location/smartmontools/drivedb.h?revision=HEAD’
SRCEXPR=’http://sourceforge.net/p/smartmontools/code/HEAD/tree/$location/smartmontools/drivedb.h?format=raw’
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023