
Auf meinem Ubuntu-Server läuft ein RAID-Array mit drei Festplatten. Das läuft seit über einem Jahr einwandfrei, aber ich war vor Kurzem gezwungen, die Maschine auseinanderzunehmen, zu verschieben und neu aufzubauen.
Als ich alles wieder zusammengebaut und Ubuntu gestartet hatte, hatte ich einige Probleme mit nicht erkannten Festplatten. Ein paar Neustarts später hatte ich dieses Problem gelöst. Das Problem besteht jetzt darin, dass das 3-Festplatten-Array bei jedem Start als degradiert angezeigt wird. Aus irgendeinem Grund scheint Ubuntu ein neues Array erstellt und die fehlende Festplatte hinzugefügt zu haben.
Ich habe versucht, das neue 1-Disk-Array zu stoppen und die fehlende Festplatte hinzuzufügen, aber es klappt nicht. Beim Start erhalte ich Folgendes:
root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d1 : inactive sdf1[2](S)
1953511936 blocks
md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
Ich habe zwei RAID-Arrays und das, das normalerweise als md1 angezeigt wird, wird nicht angezeigt.
Ich habe irgendwo gelesen, dass durch den Aufruf mdadm --assemble --scan
das fehlende Array neu zusammengesetzt würde. Deshalb habe ich zuerst versucht, das vorhandene Array zu stoppen, das Ubuntu gestartet hat:
root@uberserver:~# mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1
... und habe dann versucht, Ubuntu anzuweisen, die Datenträger erneut abzurufen:
root@uberserver:~# mdadm --assemble --scan
mdadm: /dev/md/1 has been started with 2 drives (out of 3).
Dadurch wird md1 erneut gestartet, aber die Festplatte wird nicht von md_d1 abgerufen:
root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sde1[1] sdf1[2]
3907023872 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
md_d1 : inactive sdd1[0](S)
1953511936 blocks
md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
Was läuft hier schief? Warum versucht Ubuntu, sdd1
ein anderes Array zu verwenden? Wie bekomme ich die fehlende Festplatte wieder zurück?
[Bearbeiten]- Mir ist aufgefallen, dass ich md1 nicht zum automatischen Start hinzugefügt habe mdadm.conf
. Nachdem ich md1 hinzugefügt habe, mdadm.conf
versucht es jetzt, das Array beim Start zu mounten, aber es fehlt immer noch sdd1
. Wenn ich ihm sage, es soll versuchen, es automatisch zusammenzustellen, habe ich den Eindruck, es weiß, dass es es braucht, sdd1
kann es aber nicht verwenden:
root@uberserver:~# mdadm --assemble --scan
/dev/md1: File exists
mdadm: /dev/md/1 already active, cannot restart it!
mdadm: /dev/md/1 needed for /dev/sdd1...
Was vermisse ich?
Antwort1
Ich bin nicht sicher, ob dies die sauberste Art war, das Problem zu lösen, aber das Folgende scheint es wieder zum Laufen gebracht zu haben:
root@uberserver:~# mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1
root@uberserver:~# mdadm --add /dev/md1 /dev/sdd1
mdadm: re-added /dev/sdd1
root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sde1[1] sdf1[2]
3907023872 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
[>....................] recovery = 0.0% (121728/1953511936) finish=1337.0min speed=24345K/sec
md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
Verstehe immer noch nicht, warum die Festplatte nicht einfach wieder hinzugefügt werden konnte :-/
Antwort2
Ich hatte ein ähnliches Problem - möglicherweise hat ein loses Stromkabel dazu geführt, dass mein Array ein Laufwerk verloren hat - daher zeigte mdstat [U_UU] an und das Laufwerk verschwand auch für andere Tools wie SeaChest. Nachdem ich alle Anschlüsse wieder eingesetzt hatte, erschien das Laufwerk wieder, aber mdadm stellte es nicht automatisch wieder her. Es schien, als hätte es einfach verloren gegangen.
me@server:~$ sudo mdadm --details /dev/md0
zeigte das Laufwerk als entfernt an, obwohl es vorhanden und funktionsfähig war und die richtigen UUID-Tags hatte.
Um mich zu erholen, musste ich einfach Folgendes ausführen:
me@server:~$ sudo mdadm --add /dev/md0 /dev/sdb1
und das Laufwerk wurde sofort hinzugefügt und die Wiederherstellung gestartet (das Array musste nicht vorher gestoppt werden).