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!
dmesg
oder / var / log / syslog?icheck
+ncheck
indebugfs
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.Antworten:
Entschuldigung, 'check' schreibt tatsächlich zurück in das Array, wenn ein Fehler auftritt - siehe https://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/mdadm/3.2.5-5ubuntu4/file /usr/share/doc/mdadm/README.checkarray
... es kann also schon zu spät sein, die gesuchten Daten zu sammeln, sorry.
Längerfristig sollte beachtet werden, dass RAID5 (und 6 und 1) keinen Schutz gegen Bit-Rot haben, was wahrscheinlich die Situation ist, auf die Sie gestoßen sind. Wenn Daten auf einer Disc fehlerhaft sind, können sie nicht feststellen, welche der Daten gut oder schlecht ist. Ich würde vorschlagen, auf ein Dateisystem zu migrieren, das die einzelnen Datenträger wie btrfs oder zfs prüft.
(RAID-5 sollte in neuen Bereitstellungen wirklich nicht verwendet werden - und sollte wirklich nicht verwendet werden, wenn die Kapazität von Raw-Disks jeweils mehr als 2 TB beträgt - siehe http://www.zdnet.com/article/why-raid-5- stoppt-arbeiten-in-2009 / )
quelle