Wie hängen SMART-Selbsttests mit Badblocks zusammen?

14

Mit dem Tool smartctl kann ein langer Selbsttest gestartet werden ( smartctl -t long /dev/sda). Allerdings gibt es auch, badblocksdass ich auf einem Laufwerk laufen kann. Wie hängen die beiden zusammen? Wenn badblocks fehlerhafte Blöcke erkennt, aktualisiert das Laufwerk automatisch seine SMART-Werte (z. B. durch Aktualisieren der Anzahl der verschobenen Sektoren)? Können Badblocks ersetzt smartctl -t longwerden oder umgekehrt?

Hongli Lai
quelle

Antworten:

5

Ich muss voretaq7 widersprechen - SMART ist keine Zauberei. Wenn Sie ein Laufwerk haben und einer seiner Sektoren defekt ist, können Sie keine Daten mehr von ihm lesen. Es ist also durchaus möglich, dass sich eine nicht lesbare Datei auf einem modernen Laufwerk befindet. SMART markiert diesen unlesbaren Sektor als "Aktuell ausstehend" und "Offline nicht korrigierbar", wenn nach einem Fehler zum ersten Mal darauf zugegriffen wird.

Wenn dieser Sektor jedoch erneut beschrieben wird, wird er dem nicht markierten Speicherplatz neu zugeordnet, und der Zähler "Reallocated_Sector_Ct" wird erhöht. Dann wäre ein ganzes Laufwerk wieder lesbar.

smartctl -t longtest ist nützlich - testet den gesamten Festplattenspeicher auf nicht lesbare Sektoren und markiert den ersten fehlerhaften Sektor, der beim Ausführen festgestellt wurde, als "Aktuell ausstehend" und "Offline nicht korrigierbar". Ich konfiguriere meine Server so, dass dieser lange Test einmal pro Woche auf jedem Laufwerk ausgeführt wird. Dies wirkt sich nicht zu stark auf die normalen Laufwerksfunktionen aus, da Betriebssystemanforderungen immer Vorrang vor SMART-Scans haben.

Wie auf einem Server führe ich Festplatten immer in RAID1-Spiegeln aus. Wenn also ein langer Test einen fehlerhaften Sektor feststellt, kann ich den Inhalt mithilfe von Daten von einem anderen Laufwerk in einem Spiegel neu schreiben und eine Neuzuweisung erzwingen.

badblocksist auch manchmal nützlich - zum Beispiel testet es das gesamte Laufwerk und stoppt nicht bei einem ersten Fehler. Es kann eine einzelne Partition oder einen anderen Teil eines Laufwerks testen. Sie können damit schnell überprüfen, ob ein fehlerhafter Block erfolgreich neu zugeordnet wurde.

Tometzky
quelle
11

Wie ich in meiner anderen Antwort ausgeführt habe , ist auf jeder modernen Festplatte Remapping-Speicherplatz verfügbar (da insbesondere bei den heutigen Festplattendichten keine Laufwerksplatte perfekt ist - es wird immer ein paar Defekte geben, die das Laufwerk selbst bei Marken neu zuordnen muss) -neue-noch-nie-benutzte-Laufwerke-vom-Fließband-in-meine-Hände).

Aus diesem Grund sollte theoretisch ein SMART-Fehler gemeldet werden, bevor etwa badblocks(vom Endbenutzer sichtbare) fehlerhafte Sektoren auf einem Laufwerk festgestellt werden .
Auf modernen Festplatten sind alle für den Endbenutzer sichtbaren fehlerhaften Sektoren (wie badblocksvom Betriebssystem gemeldet oder automatisch erkannt) ein letztes Aufkeuchen und Erschrecken einer sterbenden Festplatte.


Letztendlich SMART und badblocksteste zwei verschiedene, aber verwandte Dinge:

SMART ist ein selbstüberwachendes Tool:

Die Festplatte kennt einige Informationen über ihre Betriebsparameter und verfügt über einige Meta-Kenntnisse darüber, was für einige "normal" und für andere "akzeptabel" ist.
Wenn das Laufwerk feststellt, dass bestimmte Parameter "abnormal" oder "inakzeptabel" sind, wird ein Zustand vor dem Ausfall gemeldet. Mit anderen Worten, das Laufwerk ist weiterhin funktionsfähig, kann jedoch bald ausfallen.

Beispiel: Der Spindelmotor verbraucht normalerweise 0,10 Ampere, aber jetzt verbraucht er 0,50 Ampere - ein ungewöhnlich hoher Stromverbrauch, der möglicherweise darauf hinweist, dass die Welle verklemmt oder das permanente Schmiermittel auf den Lagern weg ist. Möglicherweise kann der Motor den Widerstand nicht überwinden und der Antrieb blockiert.

Ein weiteres Beispiel: Das Laufwerk verfügt über 1000 "Remap" -Blöcke, um mit fehlerhaften Sektoren umzugehen. Es wurden 750 davon verwendet, und die Ingenieure, die das Laufwerk gebaut haben, stellten fest, dass die Anzahl der Neuzuordnungen auf einen internen Fehler hinweist (fehlerhafte Platte, Altersversagen, beschädigter Kopf) Ihre Daten werden deaktiviert, bevor der Remap-Speicherplatz erschöpft ist und fehlerhafte Sektoren sichtbar werden.

SMART sucht nach mehr als schlechten Sektoren - es ist eine umfassendere Beurteilung des Zustands des Laufwerks. Auf einem Laufwerk ohne fehlerhafte Sektoren und ohne Lese- / Schreibfehler (z. B. das oben beschriebene Problem mit dem Spindelmotor) kann eine SMART-Vorabwarnung angezeigt werden.


badblocks ist ein Tool mit einem bestimmten (veralteten) Zweck: Finden Sie fehlerhafte Sektoren.

badblocksstammt aus einer Zeit vor SMART und Bad-Sektor-Remapping. Wir wussten damals, dass Laufwerke Mängel aufweisen, aber die einzige Möglichkeit, sie zuzuordnen, um ein versehentliches Speichern von Daten zu verhindern, bestand darin, die Festplatte einem Stresstest zu unterziehen, einen Fehler zu verursachen und dann daran zu denken, die Daten nie wieder dort abzulegen.

Der Grund, warum ich sage, dass es veraltet ist, ist, dass die Elektronik moderner Antriebe bereits badblocksintern und einige tausend Mal schneller arbeitet. badblocksGrundsätzlich können alte Laufwerke, denen eine ausgefeilte Elektronik fehlt, ausgefallene Sektoren neu zuordnen (oder überspringen). Moderne Festplatten erkennen jedoch bereits ausgefallene Sektoren und ordnen diese für Sie neu zu.

Theoretisch könnten Sie badblocksDaten verwenden, um das Betriebssystem (sichtbar) neu zuordnen zu lassen, als wäre Ihre moderne Festplatte eine alte Winchester-Festplatte, aber das ist letztendlich kontraproduktiv - Wie ich bereits sagte, sind ALLE fehlerhaften Sektoren, die badblocksauf einem modernen Laufwerk erkannt wurden, ein Grund, die zu verwerfen gesamte Festplatte als defekt (oder kurz vor dem Ausfall).

Sichtbar fehlerhafte Sektoren weisen darauf hin, dass auf dem Laufwerk nicht mehr genügend Speicherplatz zur Verfügung steht, was bei modernen Festplatten relativ selten der Fall ist, es sei denn, sie sind alt (fast am Ende der Lebensdauer) oder defekt (fehlerhafte Platten / Köpfe ab Werk).


Wenn Sie also badblocksauf einer Festplatte laufen, bevor Sie sie in der Produktion bereitstellen, fühlen Sie sich besser. Wenn Ihre Festplatte jedoch in diesem Jahrhundert hergestellt wurde und einen sichtbaren fehlerhaften Sektor aufweist, sollten Sie sie in den Papierkorb werfen (oder anrufen) seine Garantie). Für mein Geld ist SMART-Status und Tiefenverteidigung eine bessere Nutzung meiner Zeit als die manuelle Überprüfung von Datenträgern.

voretaq7
quelle
1
Okay, das erklärt den Unterschied zwischen SMART und Badblocks sehr gut. Aber bedeutet dies, dass die Überwachung des SMART-Status ausreicht, oder muss ich auch gelegentlich lange SMART-Tests durchführen, wenn SMART-Warnungen korrekt ausgelöst werden sollen? Ich sollte ab und zu laufen smartctl -t long /dev/sda, oder kann ich davon ausgehen, dass dies smartdmich "automatisch" vor bevorstehenden Problemen warnt, ohne dass ich etwas anderes einrichten muss?
Hongli Lai
Dies ist eine Entscheidung, die nur Sie treffen können, SMART ist jedoch nicht für manuelle Eingriffe ausgelegt (es funktioniert einfach und Sie sollten im Allgemeinen nicht damit herumspielen). Vertrauen Sie Ihrer Hardware (zumindest in begrenztem Umfang), denn wenn Sie Ihrer Hardware nicht vertrauen können, können Sie auch packen und nach Hause gehen.
Voretaq7
1
"Moderne Laufwerke machen bereits das, was Badblocks machen, intern und einige tausend Mal schneller" badblocksliest jedes Byte vom Laufwerk, überschreibt sie mit zufälligen Mustern und stellt dann die ursprünglichen Daten wieder her. SMART-Selbsttests tun dies nicht. Dies sollte alle "ausstehenden" Sektoren löschen, wenn ich das richtig verstehe.
Endolith
4
@endolith Die Tests sind keine direkten Entsprechungen, aber der Zweck, dem sie dienen, ist gleichwertig (Auffinden und Ermöglichen der Neuzuordnung fehlerhafter Sektoren). Mein wichtigster Punkt war der letzte Absatz: Wenn Sie Badblocks als Disk-Übungsprogramm ausführen möchten (um zu sehen, ob Sie SMART-Fehler provozieren können, weil es eine Reihe von fehlerhaften Blöcken findet), gehen Sie danach, aber wenn Sie heute Badblocks mit dem ausführen Absicht, die Bad-Block-Liste dann zu laden, um zu vermeiden, dass diese Sektoren verwendet werden (wie wir es in der Steinzeit getan haben). Sie tun es falsch: Sichtbar fehlerhafte Sektoren bedeuten, dass Sie das Laufwerk in den nächsten Papierkorb werfen sollten.
Voretaq7
1
@Hashim Ja, ich glaube, es ist nützlich, Badblocks zu verwenden, da ausstehende Sektoren gelöscht werden.
Endolith
5

Gute Antworten auf diese Frage sind

/superuser//a/693065

/superuser//a/693064

Im Gegensatz zu anderen Antworten finde ich Badblocks nicht veraltet, aber ein sehr nützliches Werkzeug. Sobald ich meinen PC mit einer neuen Festplatte aufgerüstet hatte, lief er instabil. Es hat eine ganze Weile gedauert, bis ich dank Badblocks feststellen konnte, dass die Plattenoberfläche Mängel aufwies. Seitdem starte ich für jede neue Festplatte, die ich benutze, Badblocks im Vollschreibmodus (zerstörbar!) Und hatte dieses Problem nie wieder. Ich kann a nur empfehlen

Zeit sudo badblocks -swvo sdX.log / sev / sdX

für jede neue Festplatte. Es testet jedes einzelne Bit der Festplatte einige Male auf Schreiben und Lesen und kann so später viele Probleme vermeiden.

Während dieses Tests werden fehlerhafte Blöcke vom Laufwerk erkannt. Daher sollte die "Anzahl neu zugewiesener Sektoren" vor und nach dem Test notiert und mit der SMART-Schwelle verglichen werden, da sie etwas über den Zustand des Laufwerks aussagt.

Frank Breitling
quelle
2
Es ist eine gute Idee, ein neues Laufwerk im Rahmen der Garantie zu testen.
Endolith
2

badblocks ist ein Relikt aus alten Zeiten und nicht unbedingt nützlich. Es kann einen momentan unlesbaren Sektor finden, aber das Richtige bei einem fehlerhaften Sektor ist die Wiederherstellung der Daten aus dem Backup. Wenn die Daten für Sie nicht kritisch sind, können Sie die zugehörige Datei löschen und irgendetwas an diesem Speicherort schreiben. Auf diese Weise kann die Festplatte den Sektor neu zuordnen, wenn sie dies für erforderlich hält und weiterarbeitet.

Der Festplattenselbsttest prüft außerdem das gesamte Medium auf verschiedene Defekte. Er soll niedrigere Schwellenwerte verwenden als im normalen Betrieb, um festzustellen, ob die Festplatte viele Schwachstellen aufweist, und kann dies basierend auf der Herstellerlogik entscheiden Die Lebensdauer der Festplatte ist abgelaufen und der Test ist fehlgeschlagen. An diesem Punkt sollten Sie alle Ihre Daten herausnehmen oder aus dem Backup wiederherstellen und die Festplatte ersetzen.

Wenn eine Datenträgeraktion (entweder durch Badblocks oder durch normalen Betrieb) auf einen nicht behebbaren Lesefehler stößt, aktualisiert der Datenträger automatisch seinen Zähler für anstehende Neuzuweisungen. Wenn die Neuzuweisung durchgeführt wird, aktualisiert er den Zähler für anstehende Neuzuweisungen und die neu zugewiesenen Zähler. Ein einfaches dd wird das auch zustande bringen.

Wenn Sie zwischen den beiden Optionen wählen müssen, verwenden Sie smartctl -t, sofern dies eine bessere Analyse der Festplatte ermöglicht.

Ich kann auch die Verwendung meines Festplatten-Scan-Dienstprogramms https://github.com/baruch/diskscan vorschlagen . Es funktioniert eher wie Badblocks, versucht jedoch zu beurteilen, ob Sektoren, die schlecht werden, so etwas wie ein schwerhöriger Sektor, der ein Problem darstellt viel länger zu lesen. Dies ist ein Hinweis auf ein sich entwickelndes Medienproblem. In zukünftigen Versionen wird möglicherweise auch automatisch versucht, die Festplatte bei der Behebung dieses Problems zu unterstützen.

Baruch Even
quelle
"Außerdem sind Badblocks heutzutage im Wesentlichen veraltet, da die Festplatten selbst die Daten neu zuordnen und es nicht mehr notwendig ist, die fehlerhaften Blöcke auf Dateisystemebene zuzuordnen." Belasten Sie badblocksdas Laufwerk nicht auf eine Weise, die SMART-Selbsttests nicht bieten?
Endolith
Badblocks scannt die Festplatte nacheinander. Es ist nicht besser als dd und wird das Gleiche sein wie der Selbsttest.
Baruch Even
badblocksLiest jedes Byte von der Festplatte, ersetzt es durch Testmuster und schreibt die ursprünglichen Daten zurück. SMART-Selbsttests sind ähnlich Lese- und Schreibtests?
Endolith
1
Nun, Badblocks 'Umschreiben der Daten löscht alle "ausstehenden Sektoren" und veranlasst das Laufwerk, sie entweder wieder als gut zu markieren oder sie neu zuzuordnen, richtig?
Endolith
1
Ja. Es könnte sein, was Sie in einem solchen Fall wollen.
Baruch Even