Ich habe das folgende Problem mit einer RAID1-Software-RAID-Partition auf meinem Ubuntu-System (10.04 LTS, 2.6.32-24-Server, falls es darauf ankommt).
Eine meiner Festplatten (sdb5) meldete E / A-Fehler und wurde daher im Array als fehlerhaft markiert. Das Array wurde dann mit einem aktiven Gerät abgebaut. Daher habe ich die Festplatte ersetzt, die Partitionstabelle geklont und alle neuen Partitionen zu meinen RAID-Arrays hinzugefügt. Nach der Synchronisierung waren alle Partitionen in Ordnung und hatten 2 aktive Geräte - außer einem von ihnen. Die Partition, die zuvor die fehlerhafte Festplatte gemeldet hat, enthielt die neue Partition jedoch nicht als aktives Gerät, sondern als Ersatzfestplatte:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Ein detaillierter Blick zeigt:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Hier ist also die Frage: Wie kann ich meinem Raid mitteilen, dass die Ersatzfestplatte in eine aktive umgewandelt werden soll? Und warum wurde es als Ersatzgerät hinzugefügt? Das Neuerstellen oder Zusammensetzen des Arrays ist keine Option, da es sich um meine Root-Partition handelt. Und ich kann im Software Raid HOWTO keine Hinweise zu diesem Thema finden.
Jede Hilfe wäre dankbar.
Aktuelle Lösung
Ich habe eine Lösung für mein Problem gefunden, bin mir aber nicht sicher, ob dies der tatsächliche Weg ist. Bei näherer Betrachtung meines Überfalls stellte ich fest, dass sdb5 immer als Ersatzgerät aufgeführt war:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
Das Lesen des Geräts sdb5 in das Array md3 führte also immer dazu, dass das Gerät als Ersatz hinzugefügt wurde.
Schließlich habe ich gerade das Array neu erstellt
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
was funktioniert hat.
Die Frage bleibt für mich jedoch offen: Gibt es eine bessere Möglichkeit, die Zusammenfassungen im Superblock zu bearbeiten und das Array anzuweisen, sdb5 von einer Ersatzfestplatte auf eine aktive Festplatte umzustellen? Ich bin immer noch neugierig auf eine Antwort.
Antworten:
Daniel: Überprüfen Sie zunächst noch einmal, ob das Ersatzteil in das Array integriert wird, indem Sie Folgendes ausführen:
welche sollte melden, ob ein Build-Prozess läuft und wie lange dies zu erwarten ist.
Wenn kein Gebäude vorhanden ist, versuchen Sie Folgendes
Und berichten Sie zurück, wie das bei Ihnen funktioniert. Weitere Informationen finden Sie unter http://linux.die.net/man/8/mdadm .
quelle
Ziemlich spät, aber dies würde nur das Ersatzlaufwerk aktivieren:
Wie die Manpage sagt:
quelle
Soweit ich mich erinnere, musste ich, als ich dieses Problem hatte (aus einem anderen Grund), --grow verwenden, um das Ersatzlaufwerk "richtig" wieder hinzuzufügen (und auch den Fehlerzustand zu löschen).
So etwas (überprüfen Sie mit Ihrer Dokumentation!):
mdadm --grow --level = fehlerhaft --layout = flush / dev / sdb5
Dann können Sie das Gerät hinzufügen und es sollte erkannt werden.
Das Problem ist, dass der MD-Treiber den Status jeder Partition in den Startdaten des Laufwerks speichert. Selbst nach einem Neustart kennt es den Status und vermeidet Partitionen, die als fehlerhaft markiert sind.
quelle