Wenn Sie ext4 verwenden, können Sie mit dem Befehl e2fsck -c /dev/sda1
oder was auch immer nach Badblocks suchen. Dadurch werden die Blöcke auf eine "Blacklist" gesetzt, indem sie zum Inode des fehlerhaften Blocks hinzugefügt werden.
e2fsck -c
läuft badblocks
auf der zugrunde liegenden Festplatte. Sie können den badblocks
Befehl direkt auf einem physischen LVM-Volume verwenden (vorausgesetzt, der PV ist tatsächlich eine Festplatte und keine andere Art von virtuellem Gerät wie ein MD-Software-RAID-Gerät), genau wie Sie diesen Befehl auf einer Festplatte verwenden würden das enthält ein ext-Dateisystem.
Das fügt dem Dateisystem keine schlechten Blockinformationen hinzu, aber ich denke nicht, dass dies eine nützliche Funktion des Dateisystems ist. Die Festplatte soll mit fehlerhaften Blöcken umgehen können.
Noch besser, als badblocks
einen SMART-Selbsttest auf der Festplatte auszuführen (durch /dev/sdX
den Gerätenamen Ihrer Festplatte ersetzen ):
smartctl -t long /dev/sdX
smartctl -a /dev/sdX | less
Der Test selbst wird einige Stunden dauern (es wird Ihnen genau sagen, wie lange). Wenn es fertig ist, können Sie das Ergebnis mit abfragen smartctl -a
und nach dem Selbsttestprotokoll suchen. Wenn "Erfolgreich abgeschlossen" angezeigt wird, ist Ihre Festplatte in Ordnung.
Mit anderen Worten, wie kann ich überprüfen, ob fehlerhafte Blöcke in LVM nicht verwendet werden?
Wie gesagt, die Festplatte selbst stellt sicher, dass keine beschädigten Blöcke verwendet werden, und verschiebt auch Daten von diesen Blöcken. Das ist nichts, was das Dateisystem oder die LV tun müssen. Wenn Ihre Festplatte jedoch mehr als nur ein paar fehlerhafte Blöcke enthält, möchten Sie nicht, dass diese verschoben werden. Sie möchten jedoch die gesamte Festplatte ersetzen, da sie fehlerhaft ist.
-c
passiert, bevor Sie einen vollständigen Unsinn aufrufen.dd
. Häufiger als Sie denken, ist das Medium tatsächlich in Ordnung und die Daten wurden nur beschädigt. Das Überschreiben funktioniert also einwandfrei, ohne dass eine Neuzuordnung erforderlich ist.dd
" - aber das solltest du wahrscheinlich immer noch nicht. Wenn Sie einenmd
Überfall haben, kann er das Problem für Sie lösen . @derobert wird wahrscheinlich wissen, was zu tun ist, wenn die Festplatte nicht Teil einesmd
Überfalls ist :)Ich bin mir ziemlich sicher, dass LVM keine schlechten Blöcke handhabt. es erwartet den zugrunde liegenden Speicher. Und die meisten, wenn nicht alle modernen Festplatten. Möglicherweise müssen Sie einen Schreibvorgang in den Sektor ausführen, der Datenträger sollte ihn jedoch neu zuordnen. (Möglicherweise müssen Sie zuerst einen Offline-Oberflächenscan mit z
smartctl /dev/sda -t offline
. B. ausführen .)Das heißt, LVM verschiebt Daten nicht wirklich, es sei denn, Sie fragen sie zB mit
pvmove
. Sie können also die Funktion ext4 badblocks verwenden. Sie müssen nur erneut nach fehlerhaften Blöcken suchen, wenn sie ausgeführt werdenpvmove
. Keine übliche Operation (wie z. B.lvextend
) verschiebt Daten.Extend verschiebt keine Daten, da LVM eine Karte mit der Aufschrift "Logische Extents 0–99 sind physische Extents 200–299" führt. Wenn Sie diese erweitern, werden lediglich "Logische Extents 100–199 sind physische Extents 100–199" hinzugefügt. Oder sogar "Die logischen Speicherbereiche 100–149 sind physische Speicherbereiche 50–99; die logischen Speicherbereiche 150–199 sind physische Speicherbereiche 140–189". LVM ist es egal, ob die physischen Bereiche nicht in Ordnung sind oder nicht zusammenhängend.
quelle
pvck
kann LVM-Metadaten überprüfen, nachdem die Konsistenz Aufgabe des Dateisystems ist. Bei LVM geht es nur um das Volume-Management, sodass es nicht wichtig ist, ob der Speicherplatz, der ein bestimmtes Ausmaß ausmacht, schlecht ist, da höherwertige Software diese Probleme behebt. LVM-Metadaten belegen sowieso nur den ersten (optional auch den letzten) Sektor des physischen Volumes.Wenn nur der erste und der letzte Sektor einer einigermaßen großen PV (wie Sie es in der Produktion sehen würden) gleichzeitig ausfallen, haben Sie im Grunde das größte Glück der Welt, da dies astronomisch so unwahrscheinlich ist. Andernfalls, wenn der Administrator weiß, dass mehrere Sektoren des Laufwerks ausgefallen sind, sind die meisten Leute in Ordnung, wenn sie nur solche Dinge wie diese unter "Festplatte ist dauerhaft ausgefallen und muss ersetzt werden" einreichen.
Wenn
pvck
ein Fehler zurückgegeben wird, können Sie überprüfen, ob Ihre LVM-Metadaten/etc/lvm
irgendwo gesichert wurden . In diesem Fall können Siepvcreate
die Sicherungskopie angeben--restorefile
Syntax:
Beispiel:
Wenn die Wiederherstellung nicht funktioniert (z. B. wenn der erste Sektor fehlerhaft ist), können Sie die obigen Schritte erneut ausführen. Sie können jedoch festlegen
--metadatacopies 2
, dass die Metadaten in den ersten und den zweiten Sektor geschrieben werden letzte Sektoren auf dem PV. Wennpvscan
es beim Booten seine Sache macht, prüft es beide Stellen und wenn es Metadaten findet, prüft es sie anhand einer Prüfsumme. Wenn die Prüfsumme im ersten Sektor fehlschlägt und im letzten Sektor erfolgreich ist, wird eine nicht schwerwiegende Fehlermeldung angezeigt.Eine Art Handbuch und ein Schmerz, aber das ist auch ein Grund, warum die Leute begeistert sind, einen Redux für das Volume-Management mit BTRFS zu bekommen. Die meiste Zeit ist es aus den derobert genannten Gründen nicht wirklich ein Problem, und weil die Leute, die unbedingt die Kontinuität der Daten sicherstellen müssen, normalerweise RAID durchführen und eine Sicherungsstrategie haben.
quelle