Nach dem Booten geht mein RAID1-Gerät ( /dev/md_d0
*) manchmal in einen komischen Zustand über und ich kann es nicht mounten.
* Ursprünglich habe ich erstellt, /dev/md0
aber es hat sich irgendwie in geä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 man das Gerät wiedermdmadm
aktiviert (mit , nehme ich an)?
(Andere Male ist es in Ordnung (aktiv) nach dem Booten und ich kann es ohne Probleme manuell einhängen. Aber es wird immer noch nicht automatisch eingehängt, obwohl ich es in habe /etc/fstab
:
/dev/md_d0 /opt ext4 defaults 0 0
Also eine Bonusfrage: Was soll ich tun, damit das RAID-Gerät /opt
beim Booten automatisch bereitgestellt 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 noch nie berührt, zumindest nicht 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 ist md_d0
spätestens jetzt, nach dem Neustart, wenn das Gerät zufällig wieder aktiv ist. (Ich bin nicht sicher, ob es dasselbe wäre, wenn es inaktiv ist.)
Vorsatz : 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 behoben zu haben scheint. Nach dem Wechsel /etc/fstab
zur /dev/md0
erneuten Verwendung (anstelle von /dev/md_d0
) wird das RAID-Gerät auch automatisch bereitgestellt!
mdadm --examine --scan
erzeugenARRAY /dev/md0 level=raid1 num-devices=2 UUID=...
(siehe die md0 statt md_d0!) Ich habe , dass in der mdadm.conf Datei (manuell, weil das war ein Problem mit sudo und>>
( „Zugriff verweigert“) und sudo ist erforderlich) und auch fstab aktualisiert zu verwenden md0 (nicht md_d0) nochmal. Jetzt scheint ich nicht mehr auf das "inaktive" Problem zu stoßen und das RAID-Gerät wird beim Booten automatisch bei / opt aktiviert. So danke!sudo ... >> mdadm.conf
ist, dass die Shell die umgeleiteten Dateien öffnet, bevor sudo ausgeführt wird. Der Befehlsu -c '.... >> mdadm.conf'
sollte funktionieren.Ich habe festgestellt, dass ich das Array manuell hinzufügen
/etc/mdadm/mdadm.conf
muss, damit Linux es beim Neustart mounten kann. Ansonsten bekomme ich genau das was du hier hast -md_d1
-Geräte die inaktiv sind etc.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.Fügen Sie ein Array pro MD-Gerät hinzu und fügen Sie diese nach dem oben angegebenen 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
:Wie Sie sehen, können Sie die Ausgabe des Scan-Ergebnisses so ziemlich einfach in die Datei kopieren.
Ich verwende ubuntu desktop 10.04 LTS und soweit ich mich erinnere, unterscheidet sich dieses Verhalten von der Serverversion von Ubuntu. Es ist jedoch so lange her, dass ich meine md-Geräte auf dem Server erstellt habe, dass ich möglicherweise falsch liege. Es kann auch sein, dass ich gerade eine Option verpasst habe.
Wie auch immer, das Hinzufügen des Arrays in der conf-Datei scheint den Trick zu tun. Ich habe die obigen Raids 1 und 5 jahrelang ohne Probleme ausgeführt.
quelle
Warnung: Lassen Sie mich zunächst sagen, dass das Folgende (aufgrund der Verwendung von "--force") für mich ein Risiko darstellt. Wenn Sie nicht wiederherstellbare Daten haben, empfehle ich Ihnen, Kopien der betroffenen Partitionen zu erstellen, bevor Sie eine von ihnen ausprobieren die Dinge unten. Dies hat jedoch bei mir funktioniert.
Ich hatte das gleiche Problem mit einem Array, das als inaktiv angezeigt wurde, und nichts, was ich getan habe, einschließlich "mdadm --examine --scan> /etc/mdadm.conf", wie von anderen hier vorgeschlagen, half überhaupt.
In meinem Fall wurde beim Versuch, das RAID-5-Array nach einem Austausch des Laufwerks zu starten, festgestellt, dass es verschmutzt war (über
dmesg
):Dies führt dazu, dass es in folgenden Fällen als inaktiv angezeigt wird
/proc/mdstat
:Ich habe festgestellt, dass auf allen Geräten die gleichen Ereignisse aufgetreten sind, mit Ausnahme des Laufwerks, das ich ausgetauscht hatte (
/dev/sdb4
):Die Array-Details zeigten jedoch, dass 4 von 5 Geräten verfügbar waren:
(Das oben Gesagte stammt aus dem Speicher in der Spalte "Status". Ich kann es nicht in meinem Scroll-Back-Puffer finden.)
Ich konnte das Problem beheben, indem ich das Array anhielt und es dann wieder zusammenbaute:
Zu diesem Zeitpunkt lief das Array mit 4 der 5 Geräte, und ich konnte das Ersatzgerät hinzufügen und es wird neu erstellt. Ich kann problemlos auf das Dateisystem zugreifen.
quelle
Ich hatte Probleme mit Ubuntu 10.04, bei denen ein Fehler in FStab das Booten des Servers verhinderte.
Ich habe diesen Befehl ausgeführt, wie in den obigen Lösungen erwähnt:
Hiermit werden die Ergebnisse von "mdadm --examine --scan" an "/etc/mdadm/mdadm.conf" angehängt.
In meinem Fall war dies:
Dies ist eine fakeraid 0. Mein Befehl in / etc / fstab zum automatischen Mounten lautet:
Wichtig ist hier, dass Sie "nobootwait" und "nofail" haben. Nobootwait überspringt alle Systemmeldungen, die Sie am Booten hindern. In meinem Fall befand sich dies auf einem Remoteserver, daher war dies unerlässlich.
Hoffe das wird einigen Leuten helfen.
quelle
Sie können Ihr md-Gerät mit aktivieren
Ich nehme an, ein Startskript startet zu früh, bevor eines der RAID-Mitglieder entdeckt wurde, oder ein ähnliches Problem. Als schnelle und fehlerhafte Umgehung sollten Sie in der Lage sein, diese Zeile zu /etc/rc.local hinzuzufügen:
Edit: anscheinend enthält deine /etc/mdadm/mdadm.conf noch den alten Konfigurationsnamen. Bearbeiten Sie diese Datei und ersetzen Sie die Vorkommen von md0 durch md_d0.
quelle
mount /dev/md_d0
in/etc/rc.local
Werken in Ordnung.mdadm -A /dev/md_d0
Auf der anderen Seite schlägt die Fehlermeldung in beiden Fällen fehl (daher konnte ich sie vor diesem&&
Operator nicht verwenden ). Jedenfalls scheint die Hälfte des Problems gelöst, also +1 dafür./proc/partitions
). Siehe die bearbeitete Frage. Ich habe mdadm.conf noch nie angerührt - welches Tool generiert es automatisch?/etc/rc.local
Problemumgehung , wie es scheint habe ich alles einwandfrei funktioniert: superuser.com/questions/117824/... :)Ich hatte ein ähnliches Problem ... mein Server konnte md2 nicht mounten, nachdem ich die zugehörigen Gerätepartitionen vergrößert hatte. Beim Lesen dieses Threads stellte ich fest, dass das md2-RAID-Gerät eine neue UUID hatte und der Computer versuchte, die alte zu verwenden.
Wie vorgeschlagen ... mit 'md2' Ausgabe von
Ich habe
/etc/mdadm/mdadm.conf
die alte UUID-Zeile bearbeitet und durch die Ausgabe des obigen Befehls ersetzt, und mein Problem ist behoben.quelle
Wenn Sie so tun, als ob Sie etwas
/dev/md[012346789}
damit machen, geht das zu/dev/md{126,127...}
./dev/md0
weiter gemountet bei/dev/md126
oder/dev/md127
du musst:umount
/dev/md127
oder umount/dev/md126
.Dies ist vorübergehend, damit Sie Befehle und einige Anwendungen ausführen können, ohne Ihr System anzuhalten.
quelle
md_d0 : inactive sda4[0](S)
sieht für ein RAID1-Array falsch aus. Es scheint darauf hinzudeuten , dass das Array keine aktiven Geräte und ein Ersatzgerät hat (angezeigt durch (S), würden Sie dort (F) für ein ausgefallenes Gerät und nichts für ein OK / aktives Gerät sehen) - für ein RAID1-Array, das nicht ist Läuft nicht beeinträchtigt, sollte es mindestens zwei einwandfreie / aktive Geräte geben (und für ein beeinträchtigtes Array mindestens ein einwandfreies / aktives Gerät), und Sie können ein RAID1-Array nicht aktivieren, wenn keine nicht ausgefallenen Ersatzgeräte vorhanden sind (als Ersatzgeräte) Enthalten Sie keine Kopie der Daten, bis sie aktiviert werden, wenn ein anderes Laufwerk ausfällt. Wenn ich diese/proc/mdstat
Ausgabe richtig lese, können Sie das Array im aktuellen Status nicht aktivieren.Haben Sie physische Laufwerke in der Maschine, die nicht hochgefahren werden konnten? Werden
ls /dev/sd*
alle Laufwerke und Partitionen aufgelistet, die Sie normalerweise auf diesem Computer erwarten würden?quelle
echo active > /sys/block/md0/md/array_state
hat es für mich funktioniert und dafür gesorgt, dass mein RAID wieder als RAID1 mit fehlender Festplatte angezeigt wird, anstatt als RAID0 mit Nur-Ersatz.Eine einfache Möglichkeit, das Array zum Laufen zu bringen, vorausgesetzt, es liegt kein Hardwareproblem vor und Sie haben genügend Laufwerke / Partitionen, um das Array zu starten:
Es könnte sein, dass das Array aus irgendeinem Grund in Ordnung ist, aber etwas daran gehindert hat, es zu starten oder zu bauen. In meinem Fall lag dies daran, dass mdadm nicht wusste, dass der ursprüngliche Array-Name md127 war und alle Laufwerke für dieses Array vom Netz getrennt wurden. Beim Repluggen musste ich manuell zusammenbauen (wahrscheinlich ein Fehler, bei dem mdadm dachte, das Array sei wegen des alten Offline-Arraynamens bereits aktiv).
quelle