Wie kann ein inaktives RAID-Gerät wieder zum Laufen gebracht werden?

162209
Jonik

Nach dem Booten wird mein RAID1-Gerät ( /dev/md_d0*) manchmal in einen lustigen Zustand versetzt und kann nicht gemountet werden.

* Ursprünglich habe ich erstellt, /dev/md0aber es hat sich irgendwie verändert /dev/md_d0.

# mount /opt mount: wrong fs type, bad option, bad superblock on /dev/md_d0, missing codepage or helper program, or other error (could this be the IDE device where you in fact use ide-scsi so that sr0 or sda or so is needed?) In some cases useful info is found in syslog - try dmesg | tail or so 

Das RAID-Gerät scheint irgendwie inaktiv zu sein :

# cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5]  [raid4] [raid10]  md_d0 : inactive sda4[0](S) 241095104 blocks  # mdadm --detail /dev/md_d0 mdadm: md device /dev/md_d0 does not appear to be active. 

Die Frage ist, wie das Gerät wieder aktiv werden kann ( mdmadmIch nehme an, ich nehme an).

(Andere Male ist es in Ordnung (aktiv) nach dem Booten, und ich kann es ohne Probleme manuell mounten. Es wird jedoch nicht automatisch gemountet, obwohl ich es in /etc/fstab:

/dev/md_d0 /opt ext4 defaults 0 0 

Eine Bonusfrage: Was muss ich tun, damit das RAID-Gerät /optbeim Booten automatisch gemountet wird? )

Dies ist eine Ubuntu 9.10-Workstation. Hintergrundinformationen zu meinem RAID-Setup in dieser Frage .

Edit : Mein /etc/mdadm/mdadm.confsieht so aus. Ich habe diese Datei nie berührt, zumindest von Hand.

# by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions  # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes  # automatically tag new arrays as belonging to the local system HOMEHOST <system>  # instruct the monitoring daemon where to send mail alerts MAILADDR <my mail address>  # definitions of existing MD arrays  # This file was auto-generated on Wed, 27 Jan 2010 17:14:36 +0200 

Im /proc/partitionsletzten Eintrag steht md_d0mindestens jetzt, nach dem Neustart, wann das Gerät wieder aktiv ist. (Ich bin mir nicht sicher, ob es dasselbe wäre, wenn es nicht aktiv ist.)

Lösung : Wie Jimmy Hedman vorschlug, nahm ich die Ausgabe von mdadm --examine --scan:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=de8fbd92[...] 

und fügte es hinzu /etc/mdadm/mdadm.conf, was das Hauptproblem gelöst zu haben scheint. Nach der Änderung /etc/fstabzur /dev/md0erneuten Verwendung (anstelle von /dev/md_d0) wird das RAID-Gerät auch automatisch angehängt!

29

9 Antworten auf die Frage

24
Jimmy Hedman

Für Ihre Bonusfrage:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf 
Ok, `mdadm --examine --scan` erzeugte` ARRAY / dev / md0 level = raid1 num-devices = 2 UUID = ... `(Beachten Sie das md0 anstelle von md_d0!). Ich habe das in die Datei mdadm.conf gestellt (manuell, da dies ein Problem mit sudo und `>>` war ("Berechtigung verweigert") und sudo * ist * erforderlich) und fstab auch aktualisiert, um wieder md0 (nicht md_d0) zu verwenden. Jetzt bin ich scheinbar nicht mehr auf das "inaktive" Problem gestoßen * und * das RAID-Gerät wird beim Booten automatisch mit / opt gemountet. So danke! Jonik vor 14 Jahren 2
Sie hatten Probleme mit sudo ... >> mdadm.conf, weil die Shell die umgeleiteten Dateien öffnet, bevor sudo ausgeführt wird. Der Befehl "su -c" .... >> mdadm.conf 'sollte funktionieren. Mei vor 11 Jahren 3
10
Erik

Ich habe festgestellt, dass ich das Array manuell hinzufügen /etc/mdadm/mdadm.confmuss, damit Linux es beim Neustart einhängen kann. Ansonsten bekomme ich genau das, was du hier hast - md_d1Geräte, die inaktiv sind usw.

Die conf-Datei sollte wie folgt aussehen - dh eine ARRAYZeile für jedes MD-Gerät. In meinem Fall fehlten die neuen Arrays in dieser Datei, aber wenn Sie sie aufgelistet haben, ist dies wahrscheinlich keine Lösung für Ihr Problem.

# definitions of existing MD arrays ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d 

Fügen Sie ein Array pro MD-Gerät hinzu, und fügen Sie sie nach dem oben genannten Kommentar oder, falls kein solcher Kommentar vorhanden ist, am Ende der Datei hinzu. Sie erhalten die UUIDs, indem Sie Folgendes tun sudo mdadm -E --scan:

$ sudo mdadm -E --scan ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d 

Wie Sie sehen, können Sie die Ausgabe des Scan-Ergebnisses in die Datei kopieren.

Ich betreibe ubuntu desktop 10.04 LTS, und soweit ich mich erinnere, unterscheidet sich dieses Verhalten von der Server-Version von Ubuntu. Allerdings war es so lange her, dass ich meine MD-Geräte auf dem Server erstellt habe. Es kann auch sein, dass ich nur eine Option verpasst habe.

Das Hinzufügen des Arrays in die conf-Datei scheint den Trick zu erfüllen. Ich habe den obigen Raid 1 und Raid 5 seit Jahren ohne Probleme ausgeführt.

Im Wesentlichen sagen Sie also dasselbe wie die aktuell akzeptierte Antwort, nur wortwörtlicher? :) Immer noch +1, schöner erster Beitrag. Jonik vor 13 Jahren 1
7
Sean Reifschneider

Warnung: Lassen Sie mich zunächst sagen, dass das Folgende (aufgrund der Verwendung von "--force") für mich riskant erscheint, und wenn Sie nicht wiederherstellbare Daten haben, empfehle ich Ihnen, Kopien der betroffenen Partitionen anzufertigen, bevor Sie mit dem Ausprobieren beginnen die Dinge unten. Dies hat jedoch für mich funktioniert.

Ich hatte das gleiche Problem, mit einem Array, das als inaktiv angezeigt wurde, und nichts, was ich tat, einschließlich "mdadm - examine --scan> /etc/mdadm.conf", wie von anderen hier vorgeschlagen, half überhaupt.

In meinem Fall, als versucht wurde, das RAID-5-Array nach einem Laufwerkswechsel zu starten, sagte es, dass es verschmutzt war (via dmesg):

md/raid:md2: not clean -- starting background reconstruction md/raid:md2: device sda4 operational as raid disk 0 md/raid:md2: device sdd4 operational as raid disk 3 md/raid:md2: device sdc4 operational as raid disk 2 md/raid:md2: device sde4 operational as raid disk 4 md/raid:md2: allocated 5334kB md/raid:md2: cannot start dirty degraded array. 

Dadurch wird es als inaktiv angezeigt in /proc/mdstat:

md2 : inactive sda4[0] sdd4[3] sdc4[2] sde4[5] 3888504544 blocks super 1.2 

Ich fand heraus, dass alle Geräte die gleichen Ereignisse hatten, mit Ausnahme des Laufwerks, das ich ersetzt hatte ( /dev/sdb4):

[root@nfs1 sr]# mdadm -E /dev/sd*4 | grep Event mdadm: No md superblock detected on /dev/sdb4. Events : 8448 Events : 8448 Events : 8448 Events : 8448 

Die Array-Details zeigten jedoch, dass 4 von 5 verfügbaren Geräten verfügbar waren:

[root@nfs1 sr]# mdadm --detail /dev/md2 /dev/md2: [...] Raid Devices : 5 Total Devices : 4 [...] Active Devices : 4 Working Devices : 4 [...] Number Major Minor RaidDevice State 0 8 4 0 inactive dirty /dev/sda4 2 8 36 2 inactive dirty /dev/sdc4 3 8 52 3 inactive dirty /dev/sdd4 5 8 68 4 inactive dirty /dev/sde4 

(Das obige ist aus dem Speicher in der "State" -Spalte, ich kann es nicht in meinem Scroll-Back-Puffer finden).

Ich konnte dieses Problem beheben, indem ich das Array stoppte und dann wieder zusammenbaute:

mdadm --stop /dev/md2 mdadm -A --force /dev/md2 /dev/sd[acde]4 

Zu diesem Zeitpunkt war das Array mit 4 der 5 Geräte in Betrieb, und ich konnte das Ersatzgerät hinzufügen und es wurde neu aufgebaut. Ich kann problemlos auf das Dateisystem zugreifen.

4
Nick Woodhams

Ich hatte Probleme mit Ubuntu 10.04, bei dem ein Fehler in FStab den Server am Starten hinderte.

Ich habe diesen Befehl ausgeführt, wie in den obigen Lösungen erwähnt:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf 

Dies fügt die Ergebnisse von "mdadm --examine --scan" an "/etc/mdadm/mdadm.conf" an.

In meinem Fall war dies:

ARRAY /dev/md/0 metadata=1.2 UUID=2660925e:6d2c43a7:4b95519e:b6d110e7 name=localhost:0 

Dies ist eine Fakeraid 0. Mein Befehl in / etc / fstab zum automatischen Mounten lautet:

/dev/md0 /home/shared/BigDrive ext3 defaults,nobootwait,nofail 0 0 

Das Wichtigste dabei ist, dass Sie "Nobootwait" und "Nofail" haben. Nobootwait überspringt alle Systemmeldungen, die das Booten verhindern. In meinem Fall befand sich dies auf einem Remote-Server, daher war es unerlässlich.

Ich hoffe, das hilft einigen Leuten.

Das hat es für mich getan. Ich habe meine RAID-Laufwerke über eine PCI-Express-SATA-Karte angeschlossen, also vermute ich beim Booten, dass das System diese Laufwerke noch nicht sehen kann. Michael Robinson vor 9 Jahren 0
2
wazoox

You can activate your md device with

mdadm -A /dev/md_d0 

I suppose some startup script starts too soon, before one of the RAID member was discovered or some similar problem. As a quick and dirty workaround, you should be able to add this line to /etc/rc.local :

mdadm -A /dev/md_d0 && mount /dev/md_d0 

Edit : apparently your /etc/mdadm/mdadm.conf still contains the old configuration name. Edit this file and replace occurences of md0 with md_d0.

Ok, wenn das Gerät * nach dem Neustart * aktiv ist, funktioniert "mount / dev / md_d0" in "/ etc / rc.local" einwandfrei. `mdadm -A / dev / md_d0` schlägt jedoch in beiden Fällen mit dieser Fehlermeldung fehl (daher konnte ich sie vor diesem` && `-Operator nicht verwenden). Auf jeden Fall scheint die Hälfte des Problems gelöst zu sein, dafür +1. Jonik vor 14 Jahren 0
Eigentlich enthält mdadm.conf zumindest direkt keinen Konfigurationsnamen (es bezieht sich jedoch auf `/ proc / partitions`); siehe die bearbeitete Frage. Ich habe noch nie mdadm.conf berührt - welches ist das Tool, das es automatisch generiert? Jonik vor 14 Jahren 0
Für die Aufzeichnung wurde die `/ etc / rc.local`-Workaround entfernt, da es so aussieht, als hätte ich alles richtig funktioniert: http://superuser.com/questions/117824/how-to-get-an-ininactive-raid-device- wieder-arbeiten / 118251 # 118251 :) Jonik vor 14 Jahren 0
2
Peter Errity

Ich hatte ein ähnliches Problem ... Mein Server konnte md2 nicht mounten, nachdem ich die zugehörigen Gerätepartitionen gewachsen war. Beim Lesen dieses Threads stellte ich fest, dass das md2 RAID-Gerät eine neue UUID aufwies und der Computer versuchte, die alte zu verwenden.

Wie vorgeschlagen ... mit 'md2' Ausgabe von

mdadm --examine --scan 

Ich bearbeitete /etc/mdadm/mdadm.confund ersetzte die alte UUID-Zeile durch die eine Ausgabe des obigen Befehls, und mein Problem wurde behoben.

2
Vanderj68

When you pretend to do something with /dev/md[012346789} it goes to /dev/md. /dev/md0 continues mounted at /dev/md126 or /dev/md127 you have to:

umount /dev/md127 or umount /dev/md126.

This is temporary to let you execute commands and some applications without stopping your system.

1
David Spillett

md_d0 : inactive sda4[0](S)sieht für ein RAID1-Array falsch aus. Es scheint, dass das Array keine aktiven Geräte und ein Ersatzgerät hat (angezeigt durch (S), Sie würden dort (F) für ein ausgefallenes Gerät und nichts für ein OK / aktives Gerät sehen) - für ein RAID1-Array, das n ist Wenn das System nicht degradiert ist, sollten mindestens zwei OK / Active-Geräte vorhanden sein (und für ein degradiertes Array mindestens ein OK / Active-Gerät). Sie können kein RAID1-Array ohne nicht ausgefallene Nicht-Ersatzgeräte (als Ersatzgeräte ) aktivieren enthalten keine Kopie der Daten, bis sie aktiv werden, wenn ein anderes Laufwerk ausfällt). Wenn ich diese /proc/mdstatAusgabe richtig lese, können Sie das Array nicht im aktuellen Zustand aktivieren.

Haben Sie physische Laufwerke in der Maschine, deren Spin-Up fehlgeschlagen ist? Listet ls /dev/sd*alle Laufwerke und Partitionen auf, die Sie normalerweise auf diesem Computer erwarten würden.

Anscheinend kann ich die inaktive Situation nicht mehr reproduzieren, nachdem ich den Ratschlag in Jimmys Antwort befolgt habe (scheint sowieso nach ein paar Neustarts) ... Was schön ist :) Danke auf jeden Fall! Jonik vor 14 Jahren 0
Ich brachte die Frage nach diesem Status auf die Linux RAID-Mailingliste und erhielt diese Antwort: https://www.spinics.net/lists/raid/msg61352.html nh2 vor 5 Jahren 0
Wie ich soeben schrieb (hier: http://fibrevillage.com/storage/676-how-to-fix-linux-mdadm-inactive-array#!/ccomment-comment=175), `echo active> / sys / block / md0 / md / array_state` funktionierte für mich, so dass mein RAID als RAID1 mit fehlender Festplatte anstelle von RAID0 mit Spare-Only angezeigt wird. nh2 vor 5 Jahren 0
1
Areeb Soo Yasir

Das Array kann auf einfache Weise ausgeführt werden, vorausgesetzt, es liegt kein Hardwareproblem vor, und Sie haben genügend Laufwerke / Partitionen, um das Array zu starten:

md20 : inactive sdf1[2](S) 732442488 blocks super 1.2  sudo mdadm --manage /dev/md20 --run 

Es könnte sein, dass das Array aus irgendeinem Grund in Ordnung ist, aber etwas hinderte es daran, zu beginnen oder zu bauen. In meinem Fall war dies darauf zurückzuführen, dass mdadm nicht wusste, dass der ursprüngliche Arrayname md127 war und alle Laufwerke für dieses Array entfernt wurden. Beim Umpluggen musste ich manuell zusammenbauen (wahrscheinlich ein Fehler, bei dem Mdadm das Array aufgrund des alten Offline-Array-Namens bereits für aktiv hielt).