15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
08.10.2024

smartctl und smartmontools: Der vollständige Linux-Leitfaden zur Überwachung der Laufwerksgesundheit

smartctl ist die primäre Befehlszeilenschnittstelle des smartmontools-Pakets, das entwickelt wurde, um S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology)-Daten abzufragen, zu testen und zu interpretieren, die in der Firmware von HDDs, SSDs und NVMe-Laufwerken eingebettet sind. Es kommuniziert direkt mit der Laufwerk-Firmware über ATA-, SCSI- oder NVMe-Schnittstellen, um rohe Diagnose-Telemetrie bereitzustellen, die das Betriebssystem selbst nicht über Standard-I/O-Pfade zugänglich macht.

Für jeden Linux-Administrator, der physischen oder virtuellen Speicher verwaltet – ob auf einem Bare-Metal-Server, einem Dedicated Server oder einem lokal angeschlossenen Disk-Array – ist smartctl das zuverlässigste Werkzeug zur Erkennung eines bevorstehenden Laufwerkausfalls, bevor er zu unwiederbringlichem Datenverlust führt.

Was ist S.M.A.R.T. und warum ist es wichtig

S.M.A.R.T. ist ein Überwachungssystem, das in nahezu jedem Consumer- und Enterprise-Speichergerät eingebaut ist, das nach 1996 hergestellt wurde. Es arbeitet auf Firmware-Ebene und überwacht kontinuierlich Dutzende interner Parameter: Lese-/Schreibfehlerraten, mechanische Stressindikatoren, NAND-Verschleißstufen, Zählungen umgealloziierter Sektoren und Temperaturmessungen.

Der entscheidende Unterschied, den die meisten Anleitungen übersehen: S.M.A.R.T.-Daten sind prädiktiv, nicht reaktiv. Ein Laufwerk kann eine Dateisystemprüfung bestehen und I/O normal bedienen, während es gleichzeitig umgealloziierte Sektoren in einer Rate ansammelt, die statistisch einen Ausfall innerhalb von Wochen vorhersagt. smartctl macht diesen verborgenen Degradationszustand sichtbar.

S.M.A.R.T. arbeitet über drei Speicherschnittstellenfamilien:

  • ATA/SATA — die ursprüngliche S.M.A.R.T.-Spezifikation, mit den meisten Attributen
  • SCSI/SAS — verwendet ein anderes Attributmodell (Informational Exceptions Log Pages)
  • NVMe — stellt Gesundheitsdaten über das NVMe Health Information Log (Log Page 0x02) bereit, mit Metriken wie verfügbarer Ersatzkapazität, prozentualem Verbrauch und unsicheren Abschaltungen

Installation von smartmontools unter Linux

Das smartmontools-Paket ist in den offiziellen Repositories jeder wichtigen Linux-Distribution verfügbar. Installieren Sie die für Ihre Umgebung geeignete Version:

Debian / Ubuntu:

“`bash

sudo apt-get update && sudo apt-get install smartmontools

“`

CentOS / RHEL 7:

“`bash

sudo yum install smartmontools

“`

CentOS Stream / RHEL 8+ / AlmaLinux / Rocky Linux:

“`bash

sudo dnf install smartmontools

“`

Fedora:

“`bash

sudo dnf install smartmontools

“`

Arch Linux:

“`bash

sudo pacman -S smartmontools

“`

openSUSE:

“`bash

sudo zypper install smartmontools

“`

Überprüfen Sie nach der Installation die Version und bestätigen Sie, dass NVMe-Unterstützung einkompiliert ist:

“`bash

smartctl –version

“`

Suchen Sie nach `NVMe` in der Liste der unterstützten Gerätetypen. Versionen vor 6.6 haben unvollständige NVMe-Unterstützung — auf modernen Servern mit NVMe SSDs stellen Sie sicher, dass Sie smartmontools 7.x oder höher verwenden.

Identifizierung Ihrer Speichergeräte

Bevor Sie einen smartctl-Befehl ausführen, identifizieren Sie den korrekten Geräteknoten. Das Verwechseln von Gerätekennungen auf einem System mit mehreren Festplatten ist ein häufiger und kostspieliger Fehler.

“`bash

lsblk -d -o NAME,SIZE,MODEL,TRAN

“`

Dies gibt Gerätenamen zusammen mit dem Transporttyp (sata, nvme, usb) aus, was direkt darüber informiert, welche smartctl-Flags Sie benötigen werden. Bei NVMe-Geräten erscheint der Knoten als `/dev/nvme0`, `/dev/nvme1`, usw. — nicht als `/dev/sdX`.

Bei Hardware-RAID-Controllern (LSI MegaRAID, Adaptec, HP Smart Array) sind die Laufwerke hinter dem Controller verborgen und erfordern explizite Pass-Through-Flags, die im erweiterten Abschnitt unten behandelt werden.

Grundlegende smartctl-Befehle

Anzeigen von Geräteidentifikationsinformationen

“`bash

sudo smartctl -i /dev/sda

“`

Dies fragt die IDENTIFY DATA-Seite des Geräts ab und gibt die Modellnummer, Seriennummer, Firmware-Revision, Kapazität, Sektorgröße (512-Byte logisch vs. 4096-Byte physisch — wichtig für die Ausrichtung) und die S.M.A.R.T.-Fähigkeits-Flags zurück. Bei NVMe-Geräten:

“`bash

sudo smartctl -i /dev/nvme0

“`

Durchführung einer vollständigen Gesundheitsbewertung

“`bash

sudo smartctl -H /dev/sda

“`

Gibt ein einzeiliges Urteil zurück: `PASSED` oder `FAILED`. Ein `FAILED`-Ergebnis bedeutet, dass die eigene Firmware des Laufwerks festgestellt hat, dass ein oder mehrere kritische Schwellenwerte überschritten wurden. Ein Laufwerk, das FAILED meldet, sollte als ausgefallen behandelt werden — warten Sie nicht auf weitere Bestätigung.

Ein `PASSED`-Ergebnis bedeutet jedoch nicht, dass das Laufwerk gesund ist. Es bedeutet nur, dass kein Schwellenwert formal überschritten wurde. Deshalb ist die Analyse der Rohattribute unerlässlich.

Anzeigen aller S.M.A.R.T.-Attribute

“`bash

sudo smartctl -A /dev/sda

“`

Dies ist der informationsdichteste Befehl im Routinebetrieb. Die Ausgabetabelle enthält mehrere Spalten, die eine präzise Interpretation erfordern:

SpalteBedeutung
**ID#**Attributkennung (herstellerspezifisch, aber viele sind standardisiert)
**ATTRIBUTE_NAME**Menschenlesbarer Name
**FLAG**Bitmaske, die den Attributtyp angibt (Pre-Failure vs. Advisory)
**VALUE**Normalisierter Wert (typischerweise 0–253); niedriger ist bei den meisten Attributen schlechter
**WORST**Niedrigster VALUE, der jemals während der Lebensdauer des Laufwerks aufgezeichnet wurde
**THRESH**Schwellenwert, unterhalb dessen das Laufwerk einen Ausfall meldet
**TYPE**Pre-failure (kritisch) oder Old_age (informativ)
**RAW_VALUE**Die tatsächlich gemessene Größe in nativen Einheiten

Der RAW_VALUE ist das, was Sie primär analysieren sollten. Das normalisierte VALUE/WORST/THRESH-System ist nützlich für die automatische Schwellenwerterfassung, kann aber irreführend sein — einige Hersteller verwenden nicht standardmäßige Normalisierungskurven.

Umfassende Ausgabe: Kombinieren von Flags

Für ein vollständiges Bild in einem einzigen Befehl kombinieren Sie die Informations-, Gesundheits- und Attribut-Flags:

“`bash

sudo smartctl -a /dev/sda

“`

Das Kleinbuchstaben-Flag `-a` ist äquivalent zu `-H -i -c -A -l error -l selftest`. Dies ist der Standardbefehl, der bei der Diagnose eines unbekannten Laufwerks ausgeführt werden sollte.

Für eine noch ausführlichere Ausgabe einschließlich aller Log-Seiten:

“`bash

sudo smartctl -x /dev/sda

“`

Kritische S.M.A.R.T.-Attribute und ihre Interpretation

Nicht alle S.M.A.R.T.-Attribute haben das gleiche diagnostische Gewicht. Die folgenden Attribute werden von erfahrenen Speicheringenieuren als primäre Ausfallsindikatoren behandelt:

Hochpriorisierte Ausfallsindikatoren

Reallocated_Sector_Ct (ID 5)

Die Anzahl der Sektoren, die das Laufwerk aufgrund von Lese-/Schreib-/Verifizierungsfehlern in den Ersatzbereich umgealloziiert hat. Jeder Wert ungleich null bei einem Laufwerk unter zwei Jahren erfordert sofortige Aufmerksamkeit. Ein stetig steigender Zähler — selbst von 1 auf 5 über einen Monat — ist ein starker Prädiktor für einen bevorstehenden Ausfall. Bei Enterprise-Laufwerken kann eine kleine Anzahl je nach Herstellerspezifikation akzeptabel sein.

Current_Pending_Sector (ID 197)

Sektoren, die als instabil markiert sind und auf eine Umallozierung warten. Diese Sektoren haben beim Lesen Fehler erzeugt, wurden aber noch nicht erfolgreich umgealloziiert. Ein Wert ungleich null bedeutet, dass das Laufwerk aktiv Schwierigkeiten hat, Daten zu lesen. Wenn ein ausstehender Sektor anschließend erfolgreich beschrieben wird, kann er umgealloziiert oder gelöscht werden — aber das zugrunde liegende Medium ist verdächtig.

Uncorrectable_Sector_Count (ID 198) / Offline_Uncorrectable

Sektoren, die weder durch ECC korrigiert noch umgealloziiert werden konnten. Dies ist das schwerwiegendste Attribut. Ein Wert ungleich null bedeutet, dass Daten aus diesen Sektoren bereits verloren gegangen sind. Sofortiges Backup und Laufwerksaustausch ist die einzige angemessene Reaktion.

Reported_Uncorrect (ID 187)

Bei modernen Laufwerken zählt dies Fehler, die das interne ECC des Laufwerks nicht korrigieren konnte. Hohe Werte weisen auf eine ernsthafte Mediendegradation hin.

Spin_Retry_Count (ID 10)

Bei HDDs wiederholte Fehler beim Hochdrehen der Platten auf Betriebsdrehzahl. Weist auf mechanischen Stress am Spindelmotor oder den Lagern hin. Jeder Wert ungleich null bei einem stark genutzten Laufwerk ist ein Warnsignal.

Command_Timeout (ID 188)

Die Anzahl der Befehle, die aufgrund eines Timeouts abgebrochen wurden. Erhöhte Werte weisen oft auf Schnittstellenprobleme hin (Kabel, Controller oder Stromversorgung) und nicht auf Medienfehler — können aber auch einem vollständigen Laufwerksausfall vorausgehen.

Sekundäre Überwachungsattribute

Raw_Read_Error_Rate (ID 1)

Wird häufig falsch interpretiert: Bei Seagate-Laufwerken hat dieses Attribut konstruktionsbedingt einen sehr hohen Rohwert, da es ein in einem 48-Bit-Feld kodiertes Verhältnis darstellt. Ein Rohwert von mehreren Millionen bei einem Seagate-Laufwerk ist normal. Bei Western Digital und anderen Herstellern sollte der Rohwert nahe null liegen. Vergleichen Sie immer mit der Dokumentation des Herstellers, bevor Sie bei diesem Attribut Alarm schlagen.

Power_On_Hours (ID 9)

Gesamte Betriebsstunden. Consumer-HDDs sind typischerweise für 20.000–25.000 Stunden ausgelegt (ungefähr 2–3 Jahre Dauerbetrieb). Enterprise-Laufwerke sind für 55.000+ Stunden ausgelegt. Verwenden Sie dies, um andere Attributwerte zu kontextualisieren.

Temperature_Celsius (ID 194)

Die aktuelle Laufwerkstemperatur. Der optimale Betriebsbereich für die meisten HDDs liegt bei 25–45°C. Anhaltende Temperaturen über 55°C beschleunigen den Lagerverschleiß und die Degradation des magnetischen Mediums. Bei SSDs ist die thermische Toleranz im Allgemeinen höher, aber anhaltende Temperaturen über 70°C beschleunigen den NAND-Verschleiß. Auf Servern ohne ausreichende Belüftung — ein häufiges Problem in dichten Rack-Deployments — kann thermisches Throttling sich als I/O-Latenz tarnen, bevor das Temperaturattribut einen formalen Schwellenwert überschreitet.

Wear_Leveling_Count (ID 177) / Media_Wearout_Indicator (ID 233)

SSD-spezifische Attribute, die den NAND-Ausdauerverbrauch verfolgen. Wenn sich der normalisierte VALUE dem THRESH-Wert nähert, nähert sich die SSD ihrer bewerteten Schreibausdauer. Planen Sie den Austausch proaktiv.

Power_Cycle_Count (ID 12)

Häufiges Ein- und Ausschalten verursacht mechanischen Stress bei HDDs (Kopf-Parken/Entparken, Spindelmotorstress) und in geringerem Maße elektrischen Stress bei SSDs. Ungewöhnlich hohe Zählungen im Verhältnis zu Power_On_Hours können auf eine instabile Stromversorgungsumgebung hinweisen.

Durchführung von Diagnose-Selbsttests

S.M.A.R.T.-Selbsttests werden von der eigenen Firmware des Laufwerks ausgeführt, nicht vom Betriebssystem. Das Laufwerk bedient weiterhin I/O während des Tests (mit geringfügigen Leistungsauswirkungen), was diese Tests sicher für den Einsatz auf Produktionssystemen macht.

Kurzer Selbsttest

“`bash

sudo smartctl -t short /dev/sda

“`

Dauer: typischerweise 1–5 Minuten. Testet die elektrischen und mechanischen Komponenten sowie einen kleinen Prozentsatz der Festplattenoberfläche. Nützlich für eine schnelle Plausibilitätsprüfung. Ergebnisse nach Abschluss anzeigen:

“`bash

sudo smartctl -l selftest /dev/sda

“`

Langer Selbsttest (Erweiterter Test)

“`bash

sudo smartctl -t long /dev/sda

“`

Dauer: proportional zur Laufwerkskapazität — erwarten Sie 1 Stunde pro Terabyte bei einer typischen 7200 RPM HDD und 20–60 Minuten bei den meisten SSDs. Führt einen vollständigen Oberflächenscan jedes Sektors durch. Dies ist der definitive Test zur Erkennung von Bad Sectors über die gesamte Medienoberfläche.

Fortschritt überwachen ohne auf den Abschluss zu warten:

“`bash

sudo smartctl -c /dev/sda

“`

Die Ausgabe enthält einen Prozentsatz des Fortschritts und eine geschätzte Fertigstellungszeit.

Conveyance-Selbsttest

“`bash

sudo smartctl -t conveyance /dev/sda

“`

Verfügbar auf den meisten ATA-Laufwerken. Entwickelt zur Erkennung von Schäden, die beim Versand oder bei der physischen Handhabung entstanden sind. Prüft auf Probleme, die durch mechanische Erschütterungen verursacht wurden. Die Dauer beträgt typischerweise 5 Minuten. Dieser Test wird zu wenig genutzt — er ist besonders wertvoll bei der Inbetriebnahme neuer Hardware oder nachdem ein Server physisch umgezogen wurde.

Selektiver Selbsttest

“`bash

sudo smartctl -t select,0-1000000 /dev/sda

“`

Ermöglicht das Testen eines bestimmten LBA-Bereichs anstatt des gesamten Laufwerks. Unschätzbar wertvoll, wenn Dateisystemprüfungen Fehler in einem bestimmten Bereich gemeldet haben und Sie bestätigen müssen, ob das zugrunde liegende Medium verantwortlich ist.

NVMe-spezifische Gesundheitsüberwachung

NVMe-Laufwerke verwenden ein grundlegend anderes Attributmodell. Der primäre Gesundheitsbefehl:

“`bash

sudo smartctl -a /dev/nvme0

“`

Wichtige NVMe-spezifische Felder zur Überwachung:

  • Available Spare: Prozentsatz der verbleibenden NAND-Ersatzblöcke. Unter 10% ist eine Austauschplanung angebracht.
  • Available Spare Threshold: Der vom Hersteller definierte Schwellenwert, unterhalb dessen das Laufwerk möglicherweise eine eingeschränkte Zuverlässigkeit meldet.
  • Percentage Used: Geschätzter Prozentsatz der verbrauchten bewerteten Schreibausdauer. Bei 100% hat das Laufwerk seinen bewerteten TBW (Terabytes Written) erreicht — es kann weiterhin funktionieren, aber Zuverlässigkeitsgarantien gelten nicht mehr.
  • Data Units Read / Written: Kumulativer I/O in 512.000-Byte-Einheiten. Nützlich zur Berechnung der tatsächlichen Arbeitslast im Vergleich zum bewerteten TBW.
  • Media and Data Integrity Errors: Nicht behobene Medienfehler oder vom NVMe-Controller erkannte Datenintegritätsfehler. Jeder Wert ungleich null ist ernst zu nehmen.
  • Number of Error Information Log Entries: Anzahl der Fehlerprotokolleinträge. Eine schnell wachsende Anzahl weist auf anhaltende Probleme hin.
  • Power State: Aktueller NVMe-Energiezustand — relevant für latenzempfindliche Workloads, bei denen sich das Laufwerk möglicherweise in einem tiefen Energiesparzustand befindet.

Hardware-RAID und Pass-Through-Zugriff

Wenn Laufwerke über einen Hardware-RAID-Controller angeschlossen sind, sieht das Betriebssystem die virtuelle Festplatte des Controllers, nicht die physischen Laufwerke. smartctl benötigt explizites Pass-Through, um die Laufwerk-Firmware direkt zu erreichen.

LSI MegaRAID:

“`bash

sudo smartctl -a /dev/sda -d megaraid,0

sudo smartctl -a /dev/sda -d megaraid,1

“`

HP Smart Array (hpsa-Treiber):

“`bash

sudo smartctl -a /dev/sda -d cciss,0

“`

3ware RAID:

“`bash

sudo smartctl -a /dev/twa0 -d 3ware,0

“`

Wenn Sie unsicher sind, welchen Pass-Through-Typ Sie verwenden sollen, kann smartctl versuchen, ihn automatisch zu erkennen:

“`bash

sudo smartctl –scan

“`

Dies scannt nach allen erkennbaren Speichergeräten und gibt den empfohlenen Gerätepfad und das Typ-Flag für jedes aus.

Aktivieren und Deaktivieren von S.M.A.R.T.

S.M.A.R.T. ist standardmäßig auf nahezu allen modernen Laufwerken aktiviert. In seltenen Fällen — typischerweise bei älteren Laufwerken oder bestimmten virtualisierten Umgebungen — kann es deaktiviert sein:

“`bash

sudo smartctl -s on /dev/sda

“`

Zum Deaktivieren (nicht empfohlen außer für spezifische Testszenarien):

“`bash

sudo smartctl -s off /dev/sda

“`

Hinweis: In virtualisierten Umgebungen wie KVM oder VMware hängt das S.M.A.R.T.-Pass-Through zu Gast-VMs von der Hypervisor-Konfiguration ab. In einer VPS Hosting-Umgebung abstrahiert der Hypervisor typischerweise das physische Laufwerk, und smartctl innerhalb des Gastes gibt möglicherweise begrenzte oder keine Daten zurück. Für vollständigen S.M.A.R.T.-Zugriff ist eine physische Host-Level-Überwachung oder ein Dedicated Server erforderlich.

Automatisierte Überwachung mit smartd

Der smartd-Daemon ist die produktionsreife Komponente von smartmontools. Er läuft im Hintergrund, fragt Laufwerke periodisch ab und führt geplante Tests durch, und benachrichtigt dann Administratoren, wenn Schwellenwerte überschritten werden oder Testfehler auftreten.

Konfiguration von /etc/smartd.conf

Die Standardkonfiguration überwacht alle erkannten Laufwerke mit grundlegenden Einstellungen. Eine produktionsgehärtete Konfiguration sieht folgendermaßen aus:

“`

Monitor all ATA/SCSI/NVMe drives with full attribute checking

Run short test every day at 02:00, long test every Saturday at 03:00

Email alert on any failure or attribute change

DEVICESCAN -a -o on -S on

-s (S/../.././02|L/../../6/03)

-m admin@yourdomain.com

-M exec /usr/share/smartmontools/smartd-runner

“`

Erklärung der wichtigsten Direktiven:

DirektiveFunktion
`DEVICESCAN`Alle unterstützten Laufwerke automatisch erkennen
`-a`Alle S.M.A.R.T.-Prüfungen aktivieren
`-o on`Automatische Offline-Datenerfassung aktivieren
`-S on`Automatisches Speichern von Attributen aktivieren
`-s (S/../.././HHL/../../D/HH)`Kurze (S) und lange (L) Tests planen
`-m email@domain`Alarm-E-Mails an diese Adresse senden
`-M exec script`Ein Skript bei Alarm ausführen (für benutzerdefinierte Benachrichtigungen)
`-d removable`Keinen Fehler auslösen, wenn das Gerät beim Start nicht vorhanden ist

Aktivieren und Starten von smartd

“`bash

sudo systemctl enable smartd

sudo systemctl start smartd

sudo systemctl status smartd

“`

Überprüfen, ob der Daemon aktiv überwacht:

“`bash

sudo journalctl -u smartd -f

“`

Konfiguration von E-Mail-Benachrichtigungen

Damit smartd-E-Mail-Benachrichtigungen funktionieren, benötigt das System einen funktionierenden MTA (Mail Transfer Agent). Installieren und konfigurieren Sie auf minimalen Serverinstallationen `postfix` oder `msmtp` für die Weiterleitung. Wenn Sie eine dedizierte Mail-Infrastruktur verwenden, erwägen Sie die Kombination von smartd-Benachrichtigungen mit einem ordnungsgemäß konfigurierten E-Mail-Hosting-Dienst, um sicherzustellen, dass die Zustellung von Benachrichtigungen nicht durch Spam-Filter blockiert wird.

S.M.A.R.T.-Attributvergleich: HDD vs. SSD vs. NVMe

AttributkategorieHDD (SATA)SSD (SATA)NVMe SSD
**Primärer Ausfallindikator**Reallocated_Sector_Ct (ID 5)Reallocated_Sector_Ct (ID 5)Media and Data Integrity Errors
**Ausdauerverfolgung**Power_On_Hours (ID 9)Wear_Leveling_Count (ID 177)Percentage Used
**Ausstehende Bad Sectors**Current_Pending_Sector (ID 197)Current_Pending_Sector (ID 197)N/A (controller-verwaltet)
**Thermische Überwachung**Temperature_Celsius (ID 194)Temperature_Celsius (ID 194)Temperature Sensor 1/2
**Ersatzkapazität**N/AAvailable_Reservd_Space (ID 232)Available Spare
**Schreibausdauer**N/ATotal_LBAs_Written (ID 241)Data Units Written
**Mechanische Gesundheit**Spin_Retry_Count (ID 10)N/AN/A
**Unterstützte Testtypen**Short, Long, Conveyance, SelectiveShort, Long, SelectiveShort, Long (herstellerabhängig)
**Schnittstelle für Datenzugriff**ATA SMART READ DATAATA SMART READ DATANVMe Log Page 0x02

Praktischer Workflow: Diagnose eines verdächtigen Laufwerks

Wenn ein Laufwerk Symptome zeigt — I/O-Fehler in `dmesg`, Dateisystemkorruption, ungewöhnliche Latenz — folgen Sie dieser Diagnosesequenz:

Schritt 1: S.M.A.R.T.-Verfügbarkeit bestätigen

“`bash

sudo smartctl -i /dev/sda | grep -i "SMART support"

“`

Schritt 2: Gesamtgesundheitsurteil prüfen

“`bash

sudo smartctl -H /dev/sda

“`

Schritt 3: Fehlerprotokoll inspizieren

“`bash

sudo smartctl -l error /dev/sda

“`

Das Fehlerprotokoll zeichnet die letzten 5 ATA-Fehler mit Zeitstempeln und LBA-Adressen auf. Vergleichen Sie die LBA-Adressen mit Dateisystem-Block-Maps mithilfe von `debugfs` oder `xfs_db`, um festzustellen, ob Fehler kritische Dateisystemstrukturen betreffen.

Schritt 4: Kritische Attribute analysieren

“`bash

sudo smartctl -A /dev/sda | grep -E "Reallocated|Pending|Uncorrectable|Command_Timeout"

“`

Schritt 5: Kurzen Test zur sofortigen Bestätigung durchführen

“`bash

sudo smartctl -t short /dev/sda

sleep 120

sudo smartctl -l selftest /dev/sda

“`

Schritt 6: Wenn der kurze Test bestanden wird und die Symptome anhalten, führen Sie während eines Wartungsfensters einen langen Test durch

“`bash

sudo smartctl -t long /dev/sda

“`

Schritt 7: Selbsttest-Protokoll auf LBA-Fehleradressen überprüfen

“`bash

sudo smartctl -l selftest /dev/sda

“`

Fehlgeschlagene Tests melden die LBA des ersten aufgetretenen Fehlers. Dies lokalisiert genau den Ort des Medienschadens.

Häufige Fallstricke und Sonderfälle

USB-angeschlossene Laufwerke: smartctl kann oft nicht mit Laufwerken kommunizieren, die über USB-zu-SATA-Adapter angeschlossen sind, da der USB-Bridge-Chip keine ATA-Befehle weiterleitet. Verwenden Sie das Flag `-d sat` oder `-d usb`, oder geben Sie den Bridge-Typ explizit an (z.B. `-d usb,0x0bc2,0x2312`). Das Flag `–scan` versucht, den korrekten Typ automatisch zu identifizieren.

Virtualisierte Umgebungen: Innerhalb eines KVM- oder VMware-Gastes ist `/dev/sda` eine virtuelle Festplatte. smartctl gibt möglicherweise `Device does not support SMART` oder vom Hypervisor weitergeleitete fabrizierte Daten zurück. Verlassen Sie sich nicht auf In-Guest-smartctl-Ausgaben für die physische Laufwerksgesundheitsbewertung auf gemeinsam genutzter Hosting-Infrastruktur.

Falsch-Positive bei Raw_Read_Error_Rate: Wie oben erwähnt, verursacht Seagates Kodierung dieses Attributs alarmierende Rohwerte, die völlig normal sind. Überprüfen Sie immer anhand der Attributdokumentation des Herstellers, bevor Sie auf diesen Wert reagieren.

Laufwerke hinter Software-RAID (mdadm): smartctl greift direkt auf die Komponentenlaufwerke zu (`/dev/sda`, `/dev/sdb`), nicht auf das RAID-Gerät (`/dev/md0`). Überwachen Sie jedes Mitgliedslaufwerk einzeln.

NVMe-Namespace vs. Controller: Verwenden Sie `/dev/nvme0` (Controller) für Gesundheitsdaten, nicht `/dev/nvme0n1` (Namespace/Block-Gerät). Einige smartctl-Versionen akzeptieren beide, aber der Controller-Knoten ist maßgeblich für den Zugriff auf das Gesundheitsprotokoll.

Laufwerke, die lügen: Einige Consumer-SSDs, insbesondere kostengünstigere QLC-NAND-Laufwerke, wurden dokumentiert, gesunde S.M.A.R.T.-Attribute zu melden bis zum vollständigen und plötzlichen Ausfall. S.M.A.R.T. ist ein starker Indikator, aber keine Garantie — es ersetzt keine regelmäßigen Backups.

Einsatz von smartmontools in Serverumgebungen

Für Administratoren, die mehrere physische Server verwalten — wie z.B. solche, die Workloads auf Dedicated Servers betreiben — ist die Zentralisierung der S.M.A.R.T.-Überwachung unerlässlich. Betrachten Sie die folgende Architektur:

  • Prometheus + node_exporter: Das `node_exporter` enthält ein `smartmon`-Textfile-Collector-Skript, das S.M.A.R.T.-Attribute als Prometheus-Metriken exportiert. Dies ermöglicht Benachrichtigungen über Alertmanager und Visualisierung in Grafana-Dashboards.
  • Nagios / Icinga2: Das `check_smart`-Plugin bietet S.M.A.R.T.-Überwachungsintegration für traditionelle Monitoring-Stacks.
  • Benutzerdefinierte smartd-Skripte: Die `-M exec`-Direktive in smartd.conf kann bei einem Alarm ein beliebiges Skript auslösen — nützlich für die Integration mit PagerDuty, Slack-Webhooks oder benutzerdefinierten Ticketing-Systemen.
  • Logfile-Aggregation: Konfigurieren Sie smartd zum Schreiben in syslog und leiten Sie dann an einen zentralisierten Log-Aggregator (ELK-Stack, Loki) für historische Trendanalysen über eine Flotte weiter.

Für Web-Hosting-Umgebungen, die Control Panels verwenden, profitieren VPS mit cPanel-Deployments von einer Host-Level-S.M.A.R.T.-Überwachung, die vom Infrastrukturanbieter konfiguriert wird, da cPanel selbst keine Laufwerksgesundheitsdaten nativ bereitstellt.

Wichtige Checkliste

Verwenden Sie dies als Referenz vor der Bereitstellung und für den laufenden Betrieb:

  • Installieren Sie smartmontools 7.x oder höher, um vollständige NVMe- und moderne SSD-Unterstützung zu gewährleisten
  • Führen Sie `smartctl –scan` aus auf neuer Hardware, um alle Laufwerke und ihre erforderlichen Schnittstellen-Flags zu identifizieren
  • Prüfen Sie zuerst das `-H`-Gesundheitsurteil — ein `FAILED`-Ergebnis erfordert sofortiges Handeln unabhängig von anderen Attributen
  • Behandeln Sie jeden Wert ungleich null bei Reallocated_Sector_Ct, Current_Pending_Sector oder Uncorrectable_Sector_Count als Ausfallsignal — warten Sie nicht, bis der Zähler wächst
  • Verlassen Sie sich nicht ausschließlich auf Raw_Read_Error_Rate — validieren Sie gegen die Herstellerdokumentation, bevor Sie Alarm schlagen
  • Planen Sie automatisierte lange Tests wöchentlich über smartd auf allen Produktionslaufwerken; kurze Tests täglich
  • Konfigurieren Sie smartd-E-Mail-Benachrichtigungen und überprüfen Sie die Zustellung, bevor Sie sich darauf verlassen
  • Für Hardware-RAID verwenden Sie immer das entsprechende Pass-Through-Flag — die Überwachung der virtuellen Festplatte ist nicht gleichwertig mit der Überwachung der physischen Laufwerke
  • In virtualisierten Umgebungen führen Sie S.M.A.R.T.-Überwachung auf Hypervisor-/Host-Ebene durch, nicht innerhalb von Gast-VMs
  • Kombinieren Sie S.M.A.R.T.-Überwachung mit einer Backup-Strategie — S.M.A.R.T. sagt Ausfälle voraus, verhindert aber keinen Datenverlust
  • Für NVMe-Laufwerke überwachen Sie Available Spare und Percentage Used zusätzlich zu Fehlerzählungen
  • Auf Servern mit mehreren Laufwerken integrieren Sie smartd mit einer zentralisierten Benachrichtigungsplattform, anstatt sich auf lokale E-Mail-Zustellung zu verlassen

Häufig gestellte Fragen

Funktioniert smartctl innerhalb einer VPS- oder Cloud-Instanz?

In den meisten VPS-Umgebungen präsentiert der Hypervisor dem Gast ein virtuelles Block-Gerät. smartctl innerhalb des Gastes gibt entweder keine Daten zurück oder gibt vom Hypervisor synthetisierte Daten zurück, die nicht den tatsächlichen Zustand des physischen Laufwerks widerspiegeln. Sinnvolle S.M.A.R.T.-Überwachung erfordert Zugriff auf den physischen Host. Für vollständige Laufwerk-Level-Sichtbarkeit ist ein Dedicated Server die geeignete Lösung.

Was ist der Unterschied zwischen `smartctl -a` und `smartctl -x`?

Das Flag `-a` gibt den Standardsatz von S.M.A.R.T.-Daten aus: Geräteinformationen, Gesundheitsurteil, Fähigkeits-Flags, alle Attribute, Fehlerprotokoll und Selbsttest-Protokoll. Das Flag `-x` gibt alles aus, was `-a` liefert, plus zusätzliche Log-Seiten einschließlich des selektiven Selbsttest-Protokolls, des Gerätestatistik-Protokolls, des ausstehenden Defekte-Protokolls und der ATA-Gerätestatistiken — was ein vollständigeres Bild der Laufwerkshistorie liefert. Verwenden Sie `-x` für gründliche Diagnosen; `-a` für Routineprüfungen.

Wie lange dauert ein langer Selbsttest, und ist es sicher, ihn auf einem Produktionslaufwerk auszuführen?

Die Dauer hängt von der Laufwerkskapazität und -geschwindigkeit ab: ungefähr 1 Stunde pro Terabyte für eine 7200 RPM HDD und 20–60 Minuten für die meisten SSDs. Der Test läuft im Firmware-Hintergrund des Laufwerks, und das Laufwerk bedient weiterhin I/O während des Tests. Die Leistungsauswirkung ist typischerweise gering (5–15% Durchsatzreduzierung). Es ist sicher, ihn auf Produktionssystemen während Zeiten mit geringem Datenverkehr auszuführen, aber die Planung während eines Wartungsfensters wird für latenzempfindliche Workloads empfohlen.

Was bedeutet es, wenn Current_Pending_Sector ungleich null ist, aber Reallocated_Sector_Ct nicht gestiegen ist?

Das Laufwerk hat Sektoren identifiziert, die Lesefehler erzeugen, hat diese aber noch nicht erfolgreich umgealloziiert. Die Umallozierung erfolgt, wenn das Laufwerk in den Sektor schreiben kann — entweder durch einen Schreibvorgang oder einen Offline-Scan. Wenn der Zähler statisch bleibt, befinden sich die Sektoren möglicherweise in einem schreibgeschützten Bereich oder dem Laufwerk fehlen verfügbare Ersatzsektoren für die Umallozierung. Ein ungleich null und steigender Current_Pending_Sector-Zähler, bei dem Reallocated_Sector_Ct flach bleibt, weist oft darauf hin, dass das Laufwerk seinen Ersatzsektorpool erschöpft hat — ein kritischer Ausfallzustand.

Kann smartctl SSD-Verschleiß erkennen, bevor das Laufwerk ausfällt?

Ja, für SATA SSDs verfolgen die Attribute Wear_Leveling_Count (ID 177), Media_Wearout_Indicator (ID 233) und Available_Reservd_Space (ID 232) den NAND-Ausdauerverbrauch. Für NVMe SSDs dienen die Felder Percentage Used und Available Spare im NVMe Health Information Log demselben Zweck. Wenn Available Spare unter seinen Schwellenwert fällt oder Percentage Used 100% erreicht, hat das Laufwerk seine bewertete Schreibausdauer verbraucht. Im Gegensatz zu plötzlichen mechanischen Ausfällen ist die SSD-Verschleißdegradation graduell und sehr vorhersehbar — was es zu einem der stärksten Anwendungsfälle für proaktive S.M.A.R.T.-Überwachung macht.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen