Festplattenzustandsüberwachung mit smartctl und smartd
Einführung
smartctl ist ein Konsolenprogramm aus dem smartmontools-Paket, das für die Arbeit mit der S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) Technologie entwickelt wurde, die in modernen Speichermedien implementiert ist.
Anwendungsfälle:
- Server von Hosting-Unternehmen;
- VPS/VDS-Knoten;
- dedizierte Server;
- Dateiserver;
- Backup-Systeme;
- Unternehmensinfrastrukturen.
Welche Aufgaben es löst:
- frühe Erkennung von Festplattenverschlechterung;
- Vorhersage von Laufwerksausfällen;
- Reduzierung des Datenverlust-Risikos;
- Automatisierung der Überwachung der Gesundheit von HDD, SSD, NVMe;
- Analyse physischer Probleme im Festplattensubsystem.
Proaktives SMART-Monitoring ermöglicht es, ein Problem zu identifizieren, bevor ein tatsächlicher Festplattenausfall auftritt, was für Produktionsumgebungen von entscheidender Bedeutung ist.
Anforderungen und Voraussetzungen
Unterstützte Betriebssysteme und Versionen:
Linux:
- Debian 10+
- Ubuntu 18.04+
- RHEL / AlmaLinux / Rocky Linux 8+
- CentOS 7 (unterstützt, aber veraltet)
- FreeBSD 12+
Windows (über smartmontools, eingeschränkte Nutzung)
Die untenstehenden Beispiele sind für Linux bereitgestellt.
Erforderliche Software und Pakete:
- smartmontools-Paket
- Zugriff auf /dev/sdX, /dev/nvmeX
- installiertes systemd (für smartd)
Zugriffsrechte:
- Root-Rechte erforderlich
- oder Zugriff über sudo
Vorläufige Überprüfungen
Anzeigen der Liste der Festplatten im System:
lsblk -d -o NAME,MODEL
Überblick und grundlegende Konzepte
Schlüsselbegriffe
- SMART – integriertes Festplattenselbstdiagnosesystem
- Attribute – Zustandsattribute (Reallocated_Sector_Ct, Pending_Sectors, etc.)
- Selbsttest – integrierte Laufwerkstests
- smartctl – CLI-Dienstprogramm für SMART-Verwaltung
- smartd – automatischer Überwachungsdienst
Wie es funktioniert
- Die Festplatte sammelt eigenständig Statistiken
- smartctl liest diese Daten
- smartd analysiert Schwellenwerte und Ereignisse
- Benachrichtigungen werden bei Problemen gesendet
Ablauflogik
Festplatte > SMART-Attribute > smartctl > smartd > Protokoll / E-Mail / Überwachung
Grundlegende Einrichtung und Nutzung von smartctl
Installation des smartmontools-Dienstprogramms
Die Arbeit mit SMART ist ohne das installierte smartmontools-Paket, das die smartctl-Dienstprogramme (manuelle Arbeit mit Festplatten) und smartd (Hintergrundüberwachungsdienst) enthält, nicht möglich.
Die Installation erfolgt mit den Standard-Paketmanager-Tools der Distribution.
Debian / Ubuntu
sudo apt update
sudo apt install smartmontools
RHEL / AlmaLinux / Rocky Linux
sudo dnf install smartmontools
Nach der Installation sind die Dienstprogramme im System verfügbar und ohne zusätzliche Initialisierung einsatzbereit.
Überprüfung der Version und Verfügbarkeit von smartctl
Als erster Schritt wird empfohlen zu überprüfen, ob das Dienstprogramm korrekt installiert und im System verfügbar ist:
smartctl --version
Der Befehl gibt die Paketversion und eine Liste der unterstützten Technologien aus.
Dies ermöglicht es Ihnen:
- sicherzustellen, dass eine aktuelle Version verwendet wird;
- die Unterstützung von NVMe, RAID und anderen Gerätetypen zu überprüfen.
Überprüfung der SMART-Unterstützung auf einer bestimmten Festplatte
Als nächstes muss überprüft werden, ob das Laufwerk selbst die SMART-Technologie unterstützt und ob sie auf Geräteebene aktiviert ist.
sudo smartctl -i /dev/sda
Beispiel für eine korrekte Ausgabe:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
Available – die Festplatte unterstützt SMART physisch;
Enabled – die SMART-Datenerfassung ist aktiviert und zum Lesen verfügbar.
Wenn SMART unterstützt, aber deaktiviert ist, wird dies häufig bei neuen oder zuvor unbenutzten Festplatten beobachtet. In einem solchen Fall muss es manuell aktiviert werden:
sudo smartctl -s on /dev/sda
Danach wird empfohlen, den Befehl smartctl -i erneut auszuführen, um sicherzustellen, dass SMART aktiviert ist.
Anzeigen von SMART-Attributen und erste Gesundheitsbewertung
Der Hauptnutzen von SMART liegt in seinen Attributen – numerische Werte, die den Zustand der Festplattenoberfläche, Mechanik und Elektronik widerspiegeln.
Um die Attribute anzuzeigen, verwenden Sie den Befehl:
sudo smartctl -A /dev/sda
Die Ausgabe enthält eine Tabelle von Attributen mit ihren aktuellen Werten und der Historie. Zuerst sollte auf die folgenden Indikatoren geachtet werden:
Schlüsselfelder in der Ausgabe:
- VALUE (Aktueller Wert): Der normalisierte Wert des Attributs (normalerweise von 1 bis 100, wobei 100 ideal ist). Die Festplatte wird als fehlerhaft angesehen, wenn VALUE ≤ THRESH.
- WORST (Schlechtester Wert): Der schlechteste Wert, der während des Betriebs der Festplatte erreicht wurde.
- THRESH (Schwellenwert): Der minimal zulässige Wert für VALUE. Das Überschreiten des Schwellenwerts (VALUE ≤ THRESH) ist ein Zeichen für einen kritischen Zustand.
- RAW_VALUE: Der "rohe", nicht normalisierte Wert des Attributs. Dies muss analysiert werden, um den Verschleiß zu bewerten und Ereignisse zu zählen.
Schlüsselattribute für HDD (traditionelle Festplatten):
- Reallocated_Sector_Ct: Eine Zunahme weist auf eine physische Oberflächenverschlechterung hin.
- Current_Pending_Sector (Sektoren, die zur Neuverteilung anstehen): Instabile Sektoren. Selbst ein einzelner nicht nullwertiger Wert ist ein Warnzeichen.
- Offline_Uncorrectable (Unkorrigierbare Fehler): Sektoren, die nicht gelesen werden konnten.
- Power_On_Hours: Die gesamte Betriebszeit der Festplatte.
Schlüsselattribute für SSDs:
- Retired_Block_Count: Das Äquivalent von Reallocated_Sector_Ct für HDDs. Zeigt die Anzahl der aus dem Dienst genommenen Blöcke an. Selbst ein niedriger Wert mit VALUE=100 kann normal sein.
- Reallocated_Event_Count: Die Anzahl der Neuverteilungsereignisse.
- SSD_Life_Left oder Percentage Used/Media Wearout Indicator: Der Prozentsatz der verbleibenden Lebensdauer (oder des Verschleißes). Ein niedriger Wert (z.B. <10%) ist ein Zeichen für einen bevorstehenden Ausfall.
- Wear_Range_Delta: Ein Indikator für die Gleichmäßigkeit des Verschleißes über die Speicherzellen hinweg.
- Power_On_Hours_and_Msec: Die gesamte Betriebszeit.
- Lifetime_Writes_GiB / Lifetime_Reads_GiB (Attribute 241, 242): Das gesamte Volumen der geschriebenen/gelesenen Daten.
Schlüsselattribute für NVMe (über smartctl -a /dev/nvme0):
- Percentage Used: Der Prozentsatz der verbrauchten Schreibausdauer. Der Hauptindikator für den Verschleiß.
- Media and Data Integrity Errors: Datenintegritätsfehler.
- Critical Warning: Kritische Warnflaggen.
- Temperature: Aktuelle Temperatur.
An diesem Punkt erhält der Administrator ein allgemeines Verständnis des Festplattenzustands und kann offensichtliche Anzeichen von Problemen identifizieren.
Erweiterte Konfiguration und praktische Szenarien
SMART unterstützt integrierte Selbsttests, die vom Laufwerk selbst ohne Beteiligung des Betriebssystems durchgeführt werden.
Der kurze Test ist für eine schnelle Überprüfung der wichtigsten Komponenten ausgelegt:
sudo smartctl -t short /dev/sda
Der lange Test führt einen vollständigen Oberflächenscan durch und dauert erheblich länger:
sudo smartctl -t long /dev/sda
Nach Abschluss des Tests müssen die Ergebnisse überprüft werden:
sudo smartctl -l selftest /dev/sda
Die Ausgabe zeigt an:
- die Art des Tests;
- den Abschlussstatus;
- das Vorhandensein oder Fehlen von Fehlern.
Ein erfolgloser Test ist ein direkter Grund, sich auf den Austausch der Festplatte vorzubereiten.
Arbeiten mit RAID-Controllern
Hardware-RAID-Controller verbergen oft SMART-Daten vor dem System. In solchen Fällen muss der Gerätetyp explizit angegeben werden.
Beispiel für einen LSI-Controller:
smartctl -a -d megaraid,0 /dev/sda
Wo:
- -a – Schlüssel zur Ausgabe aller verfügbaren SMART-Informationen (Attribute, Protokolle, Fehler, allgemeine Gesundheitsbewertung).
- -d – Schlüssel zur Angabe des Gerätetyps.
- megaraid – teilt dem SMART-Treiber mit, dass sich die Festplatte hinter einem LSI/Broadcom-Controller befindet (häufig in Servern verwendet).
- 0 – die physische Festplattennummer (PD, Physical Drive) im RAID-Array. Dies ist nicht sda, sondern eine eindeutige ID, die vom Controller zugewiesen wird. Sie kann mit dem Controller-Verwaltungsprogramm (z.B. storcli oder MegaCLI) gefunden werden.
- /dev/sda – in diesem Kontext ist dies nicht die echte Festplatte, sondern ein Pseudo-Gerät, das den RAID-Controller selbst im System darstellt. Typischerweise ist dies /dev/sgX (SCSI Generic) oder einfach /dev/sda, wenn der Controller ein virtuelles Laufwerk erstellt hat.
Typischer Fehler, wenn der Gerätetyp nicht angegeben ist:
SMART support is: Unavailable
Dies bedeutet nicht, dass SMART nicht verfügbar ist – nur dass smartctl den Pfad zur physischen Festplatte nicht automatisch bestimmen konnte. Die Lösung besteht darin, den -d-Parameter korrekt anzugeben.
Diagnose und Fehlerbehebung
Anzeichen möglicher Fehlfunktionen:
- Zunahme des Reallocated_Sector_Ct-Werts;
- nicht nullwertiger Current_Pending_Sector;
- Programm-/Löschfehler (Program_Fail_Count, Erase_Fail_Count);
- Selbsttestfehler;
- Zunahme der I/O-Latenz;
- Fehlermeldungen in Systemprotokollen.
Protokollanalyse:
journalctl -u smartd
dmesg | grep -i error
Erklärung:
Pending Sectors > 0 – hohes Ausfallrisiko;
Reallocated Sectors nehmen zu – fortschreitende Verschlechterung;
Selbsttest FEHLGESCHLAGEN – die Festplatte muss ersetzt werden.
Identifizierung von Problemquellen
Um Fehlalarme auszuschließen, ist es wichtig, SMART-Daten mit der tatsächlichen Last zu korrelieren.
iostat -x 1
iotop
Überprüfung, wo die Festplatte eingehängt ist:
lsblk -o NAME,SERIAL,MOUNTPOINT
Identifizierung von Controllern:
lspci | grep -i raid
Zusätzliche Metriken:
- Temperatur über 50 °C;
- Zunahme von CRC-Fehlern;
- instabile SMART-Werte.
Konfiguration von Administratorbenachrichtigungen, wenn SMART-Metriken Schwellenwerte erreichen
Das bloße Vorhandensein von SMART-Daten garantiert noch nicht die Sicherheit der Infrastruktur. Ein Schlüsselelement der Überwachung ist die rechtzeitige Benachrichtigung des Administrators in dem Moment, in dem sich der Zustand der Festplatte zu verschlechtern beginnt, aber noch kein Ausfall aufgetreten ist.
Der Benachrichtigungsmechanismus ermöglicht es Ihnen:
- Festplattenverschlechterung in einem frühen Stadium zu erkennen;
- den Austausch der Festplatte im Voraus zu planen;
- Notfallausfälle und Datenverluste zu vermeiden;
- innerhalb geplanter Wartungsfenster zu arbeiten.
In smartmontools ist der smartd-Daemon für das Senden von Benachrichtigungen verantwortlich. Er verfolgt automatisch Änderungen in SMART-Attributen und reagiert auf Abweichungen von der Norm.
Funktionsweise von smartd-Benachrichtigungen
Der smartd-Daemon fungiert als Hintergrunddienst und führt die folgenden Aufgaben aus:
- Fragt periodisch die SMART-Attribute der Festplatte ab.
- Vergleicht aktuelle Werte mit: Werksschwellenwerten, vorherigen Werten (Änderungsdynamik).
- Erkennt: Wachstum kritischer Attribute, Auftreten neuer Fehler, Selbsttestfehler.
- Erzeugt eine Benachrichtigung und sendet sie an den Administrator.
Anforderungen für das Funktionieren von Benachrichtigungen
Vor der Konfiguration muss sichergestellt werden, dass Folgendes vorhanden ist:
- ein MTA (Postfix, Exim, Sendmail, ssmtp) ist im System installiert und korrekt konfiguriert;
- der Server ist in der Lage, ausgehende E-Mails zu senden;
- die E-Mail-Adresse des Administrators für den Empfang von Benachrichtigungen ist definiert.
Beispiel für die Konfiguration von ssmtp – ein leichtgewichtiger und einfacher MTA zum Senden von E-Mails aus dem System.
Installation:
Debian/Ubuntu:
sudo apt update && sudo apt install ssmtp mailutils -y
RHEL:
sudo dnf install ssmtp mailx
Erstellen Sie die Konfigurationsdatei:
sudo nano /etc/ssmtp/ssmtp.conf
und bearbeiten Sie den Inhalt:
# Standard-Absenderadresse [email protected] # SMTP-Server und Port Ihres E-Mail-Anbieters mailhub=smtp.your-domain.com:587 # Alternatives Beispiel: # mailhub=smtp.gmail.com:587 # Für Gmail # Authentifizierungsdaten [email protected] AuthPass=your-password # Verschlüsselungseinstellungen UseSTARTTLS=YES # Verwenden Sie STARTTLS UseTLS=YES # Verwenden Sie TLS FromLineOverride=YES # Überschreiben der Absenderadresse zulassen # Hostname (geben Sie den Namen Ihres Servers an) hostname=server1.your-domain.com # Sie können hostname=localhost verwenden oder den tatsächlichen Hostnamen des Systems angeben
Speichern Sie die Datei und konfigurieren Sie die Zugriffsberechtigungen:
sudo chmod 640 /etc/ssmtp/ssmtp.conf
sudo chown root:mail /etc/ssmtp/ssmtp.conf
Konfigurieren Sie die Absender (revaliases):
sudo nano /etc/ssmtp/revaliases
root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587
Für den erfolgreichen Versand von Nachrichten müssen die folgenden Ports auf dem Server geöffnet sein: 587 (primär für den Versand mit STARTTLS-Verschlüsselung), oder 25 (Standard-SMTP), 465 (sicheres SMTP mit SSL), wenn sie von der Konfiguration bereitgestellt werden.
Grundlegender Test des E-Mail-Versands:
echo "SMART-Testnachricht" | mail -s "SMART-Benachrichtigungstest" [email protected]
Sie können den Absender explizit angeben:
echo "SMART-Testnachricht" | mail -s "SMART-Benachrichtigungstest" -a "From: [email protected]" [email protected]
Oder direkt über ssmtp:
echo "SMART-Testnachricht" | ssmtp [email protected]
[email protected] – die Empfängeradresse, an die die Nachricht gesendet wird.
Wenn die E-Mail nicht zugestellt wird, ist eine weitere Konfiguration von smartd sinnlos, bis die Probleme mit der E-Mail-Zustellung gelöst sind.
Die Konfiguration der SMART-Benachrichtigungen erfolgt in der Datei:
/etc/smartd.conf
Beispiel einer einfachen funktionierenden Konfiguration:
/dev/sda -a -o on -S on -m [email protected]
Parameter:
- /dev/sda – die überwachte Festplatte;
- -a – vollständiger Satz von Überprüfungen;
- -S on – Attributspeicherung zwischen Neustarts ist aktiviert;
- -o on – automatische Offline-Datenerfassung ist aktiviert;
- -m – Benachrichtigungen werden an die angegebene E-Mail gesendet.
Ab diesem Punkt beginnt smartd, den Zustand der Festplatte im Hintergrund zu überwachen.
Benachrichtigungen bei Annäherung an Schwellenwerte
Ein Schlüsselmerkmal von smartd ist, dass es Änderungen in Attributwerten überwacht, nicht nur deren kritische Überschreitung.
In der Praxis bedeutet dies, dass eine Benachrichtigung gesendet werden kann:
- bei erstmaligem Auftreten von Current_Pending_Sector;
- bei einer Zunahme von Reallocated_Sector_Ct, auch wenn der Schwellenwert noch nicht erreicht ist;
- bei Erkennung von Selbsttestfehlern;
- bei Verschlechterung von NVMe-Parametern.
Die bedeutendsten Attribute für einen frühen Ausfall:
- Reallocated_Sector_Ct
- Current_Pending_Sector
- Offline_Uncorrectable
- Media and Data Integrity Errors (NVMe)
- Percentage Used (SSD/NVMe)
Selbst minimale Änderungen in diesen Parametern sollten als Grund für Aufmerksamkeit betrachtet werden.
Verwendung von Selbsttests als Benachrichtigungsquelle
Um die Informationsfülle zu erhöhen, wird empfohlen, die Attributüberwachung mit regelmäßigen Selbsttests zu kombinieren.
Beispielkonfiguration mit einem Zeitplan:
/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]
Funktionslogik:
- ein kurzer Test wird täglich durchgeführt;
- ein vollständiger Test wird einmal pro Woche durchgeführt;
- bei jedem Testfehler erhält der Administrator eine Benachrichtigung.
Verwaltung der Benachrichtigungshäufigkeit und -menge
Um übermäßige Warnungen zu vermeiden, wird der Parameter -M once verwendet:
/dev/sda -a -m [email protected] -M once
In diesem Modus:
- wird eine Benachrichtigung bei der ersten Erkennung eines Problems gesendet;
- nachfolgende Nachrichten werden nicht dupliziert, bis die Ursache behoben ist.
Um das Benachrichtigungssystem zu testen, können Sie -M test verwenden. Dies ermöglicht es Ihnen zu überprüfen, ob smartd in der Lage ist, Nachrichten zu senden, ohne auf einen tatsächlichen Fehler zu warten.
Fazit
Im Rahmen dieses Handbuchs wurde der vollständige Zyklus der Implementierung und des Betriebs von smartctl und des smartd-Daemons als Werkzeug für proaktives Festplattengesundheitsmonitoring systematisch überprüft. Die grundlegenden Prinzipien der SMART-Funktion, praktische Methoden zur Attributanalyse, das Starten und Interpretieren von Selbsttests, die Besonderheiten der Arbeit mit NVMe-Laufwerken und RAID-Controllern sowie Diagnosemethoden und Techniken zur Identifizierung von Ursachen von Problemen wurden behandelt. Besonderes Augenmerk wurde auf die Konfiguration von Benachrichtigungen gelegt, die es ermöglichen, Festplattenverschlechterung in frühen Stadien zu erkennen, noch bevor ein kritischer Ausfall auftritt.
Richtig konfiguriertes SMART-Monitoring ist ein integraler Bestandteil einer zuverlässigen Serverinfrastruktur und sollte als obligatorischer Betriebsstandard betrachtet werden. Die Verwendung von smartctl und smartd ermöglicht es dem Systemadministrator, von der reaktiven Lösung von Vorfällen zu einer bewussten, verwaltbaren Wartung des Festplattensubsystems überzugehen, wodurch die Risiken von Ausfallzeiten, Datenverlusten und ungeplanten Vorfällen reduziert werden, während gleichzeitig eine solide Grundlage für weitere Automatisierung und Integration mit zentralisierten Überwachungssystemen geschaffen wird.