Okay. Nach einem routinemäßigen Scrub meldet mein MDADM RAID5 mismatch_cnt = 16. Soweit ich weiß, gibt es 16 Blöcke, für die Daten und Parität nicht übereinstimmen, obwohl kein Gerät einen Lesefehler gemeldet hat.
Frage 1: Kann man eine Liste dieser Blöcke erhalten?
Frage 2: Unter der Annahme, dass # 1 möglich ist, gibt es eine Möglichkeit zu identifizieren, welche Dateien diesen Blöcken zugeordnet sind, da das zugrunde liegende Dateisystem EXT4 ist?
Ich habe Nearline-Backups und in einer idealen Welt könnte ich einfach das Live-Array mit den Backup-Daten vergleichen, um alle Dateien zu finden, die unbemerkt beschädigt wurden. Die Realität sieht jedoch so aus, dass das Abrufen von 6 TB Sicherungsdaten sowohl unerschwinglich teuer als auch zeitaufwendig wäre. Zu wissen, wo sie suchen und was sie wiederherstellen müssen, würde die Dinge erheblich vereinfachen.
(Ich sollte beachten, dass ich das RAID-Scrub nur mit der Option 'check' ausführe. Das Ausführen des Scrub mit der Option 'repair' scheint furchtbar gefährlich zu sein, da MDADM nur weiß, dass entweder die Daten oder die Parität falsch sind, aber nicht weiß, welche. Es scheint also eine 50-prozentige Wahrscheinlichkeit zu bestehen, dass MDADM falsche Daten errät und diese rekonstruiert. Daher möchte ich wissen, welche Dateien möglicherweise betroffen sind, damit ich sie bei Bedarf aus dem Backup wiederherstellen kann.
Anregungen sehr geschätzt!
icheck
+ ncheck
in debugfs
zum Identifizieren von Dateien basierend auf dem Sektorversatz.
smartctl -a /dev/sda
usw.) oder verwenden Sie eine andere Methode, um einen kurzen SMART-Test für jede Festplatte durchzuführen und einen vollständigen Bericht zu drucken. Es ist sehr wahrscheinlich, dass einer von ihnen im Sterben liegt, und es ist äußerst schlimm, einen allgemeinen SMART-Gesundheitsalarm auszulösen.
dmesg
oder / var / log / syslog?