Für Ihre Bonusfrage:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
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/md0
aber 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 ( mdmadm
Ich 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 /opt
beim Booten automatisch gemountet wird? )
Dies ist eine Ubuntu 9.10-Workstation. Hintergrundinformationen zu meinem RAID-Setup in dieser Frage .
Edit : Mein /etc/mdadm/mdadm.conf
sieht 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/partitions
letzten Eintrag steht md_d0
mindestens 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/fstab
zur /dev/md0
erneuten Verwendung (anstelle von /dev/md_d0
) wird das RAID-Gerät auch automatisch angehängt!
Für Ihre Bonusfrage:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Ich habe festgestellt, dass ich das Array manuell hinzufügen /etc/mdadm/mdadm.conf
muss, damit Linux es beim Neustart einhängen kann. Ansonsten bekomme ich genau das, was du hier hast - md_d1
Geräte, die inaktiv sind usw.
Die conf-Datei sollte wie folgt aussehen - dh eine ARRAY
Zeile 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.
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.
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.
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.
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.conf
und ersetzte die alte UUID-Zeile durch die eine Ausgabe des obigen Befehls, und mein Problem wurde behoben.
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.
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/mdstat
Ausgabe 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.
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).