Wie kann man verhindern, dass MDADM wegen Lesefehlern ausfällt?

416
Martin

Wie kann ich ein MDADM-RAID-Array mit Laufwerken zusammenbauen, die zuvor aufgrund von Lesefehlern fehlgeschlagen sind, so dass das Array trotz Lesefehlern zusammengebaut bleibt, d. H. Wie kann man verhindern, dass MDADM aufgrund eines Lesefehlers ausfällt?

Ich habe Folgendes gesehen: https://serverfault.com/questions/475505/linux-mdadm-raid5-data-recovery-with-one-drive-failed-one-drive-failing

... aber es gibt keine Antwort, die mir helfen würde

Hintergrund: Ich hatte RAID 6 auf dem 1 Laufwerk mit Sektorlesefehler, das MDADM monatelang ausgefallen war, bevor ich es bemerkte. Dann fiel auch das zweite Laufwerk aus demselben Grund aus, und ich befand mich in einer sehr bequemen Situation, die verbleibenden Laufwerke zu beanspruchen, indem RAID 6 ohne Redundanz neu aufgebaut wurde. Deshalb habe ich RAID 6 anstelle von RAID 5. Ich habe Badblocks auf den ausgefallenen Laufwerken ausgeführt und mir SMART angesehen Diagnose, aber es stellte sich heraus, dass die Laufwerke völlig in Ordnung sind und keine fehlerhaften Blöcke oder Umsetzungsereignisse aufweisen. Ich komme zu dem Schluss, dass die Daten in einigen Sektoren im Laufe der Zeit schwächer wurden, aber sobald Daten erneut in sie geschrieben wurden, funktionieren alle einwandfrei. Ich verstehe, dass dies bei großen Laufwerken nicht so ungewöhnlich ist.

Ich habe mich von dieser schlechten Situation erholt, aber ich möchte mich besser auf das nächste Mal vorbereiten (zusätzlich zum Erstellen von Backups).

Ich denke, dass RAID 6 oder 5 in der Lage sein sollte, auch mit gelegentlichen fehlerhaften Blöcken zu arbeiten. Wenn beispielsweise auf Laufwerk Nr. 1 ein einzelner nicht lesbarer Sektor vorhanden ist, sollte RAID aufgrund redundanter Daten auf den verbleibenden Laufwerken ausgleichen können. Wenn ein anderer nicht lesbarer fehlerhafter Block auf einem anderen Laufwerk (Laufwerk Nr. 2) vorhanden ist, wirkt sich dies höchstwahrscheinlich auf andere Dateisystemblöcke oder andere Dateien aus. Daher sollte das RAID-Array dies wieder kompensieren können. Wenn dies funktioniert, sollte ich in der Lage sein, alle Daten bei Bedarf zu extrahieren. Da MDADM bei einem Lesefehler jedoch meine Festplatten ausfällt, bekomme ich diesen möglichen Vorteil der RAID-Redundanz nicht.

Idealerweise würde ich in einer Traumwelt, nachdem ich Lesefehler auf einem der Laufwerke entdeckt habe, MDADM zum Rekonstruieren von Daten für einen fehlerhaften Sektor wünschen, versuchen, korrekten Inhalt in den geschwächten Sektor zu schreiben, wodurch dem Laufwerk auch die Möglichkeit gegeben wird, seinen SMART-Sektor zu verwenden Neuzuordnen von Routinen (bei denen fehlerhafte Sektoren nur während des Schreibvorgangs verschoben werden) und nur wenn all dies fehlschlägt, würde MDADM das Laufwerk ausfallen lassen. Das Laufwerk selbst kann dies nicht, da es nicht über die redundanten RAID-Daten verfügt, die zum Rekonstruieren des Originalinhalts eines schwachen unlesbaren Sektors erforderlich sind.

0
Klänge wie die von Ihnen verwendeten Laufwerke sind nicht für die Verwendung mit RAID konzipiert (dh Laufwerke treten beim langsamen Lesen / Schreiben aus), und Sie sollten sich auf dieses Element konzentrieren. Auch RAID 5 ist tot. Es scheint auch, dass Sie das Gegenteil von der Frage stellen, wie RAID funktionieren sollte. Denken Sie darüber nach - Sie bitten darum, ein fehlerhaftes Laufwerk nicht zu versagen - wenn dies der entscheidende Punkt ist, RAID zu haben, und auf andere Weise zu tun Gefährden Sie Ihre Daten und verlangsamen Sie das System. davidgo vor 5 Jahren 0

0 Antworten auf die Frage