Aus irgendeinem Grund wird die Änderung nicht wirksam, wenn ich versuche, ein mdadm-RAID-Array in einen Textnamen umzubenennen.
Ich habe den Rat dieser Serverfehlerfrage ausprobiert , aber ohne Erfolg.
~$ mdadm --version
mdadm - v3.1.4 - 31st August 2010
~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Sep 27 08:32:32 2011
Raid Level : raid1
Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Oct 2 17:59:37 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : omicron:0 (local to host omicron)
UUID : 75c4a555:482aecd0:ade70dfc:1547926a
Events : 17
Number Major Minor RaidDevice State
0 8 80 0 active sync /dev/sdf
1 8 96 1 active sync /dev/sdg
~$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0
~$ sudo mdadm --assemble /dev/md/alpha --update=name /dev/sd[gf]
mdadm: /dev/md/alpha has been started with 2 drives.
~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Sep 27 08:32:32 2011
Raid Level : raid1
Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Oct 2 18:06:11 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : omicron:0 (local to host omicron)
UUID : 75c4a555:482aecd0:ade70dfc:1547926a
Events : 17
Number Major Minor RaidDevice State
0 8 80 0 active sync /dev/sdf
1 8 96 1 active sync /dev/sdg
~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdf[0] sdg[1]
1953513424 blocks super 1.2 [2/2] [UU]
md126 : active (auto-read-only) raid1 sdd[0] sde[1]
1953513424 blocks super 1.2 [2/2] [UU]
md127 : active (auto-read-only) raid1 sdb[0] sda[1]
976762496 blocks [2/2] [UU]
unused devices: <none>
Wie Sie sehen, wird der Name weiterhin als omicron:0
über die alte Gerätedatei erreichbar gemeldet . Der Versuch sudo mdadm --detail /dev/md/alpha
wird funktionieren und den gleichen, falschen Namen bis zum nächsten Neustart melden, wenn er nicht mehr funktioniert.
Es scheint, als würde mdadm beim Herausfinden des einzutragenden Namens verwirrt und erstellt stattdessen nur die Gerätedatei.
BEISEITE
Gibt es eine Möglichkeit, mdadm zu veranlassen, eine Aktualisierung des Namensteils des Superblocks zu erzwingen (dh den Namen, den das Array haben soll, explizit festzulegen), ohne den Superblock explizit neu erstellen zu müssen? (ie sudo mdam --zero-superblock /dev/sd[fg]; sudo mdadm --create /dev/md/alpha --raid-devices=2 --level=1 --assume-clean --name=alpha /dev/sd[fg]
)
Das Problem besteht darin, dass nach dem Neustart ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=c66a267...
die angegebene Gerätedatei trotz des Hinzufügens zu mdadm.conf verschwindet und durch ein Standardformat ersetzt wird. (/ dev / md125 oder ähnlich)
Wie kann ich dafür sorgen, dass ein umbenanntes mdadm-Array seinen Namen behält? Wie kann ich Ubuntu dazu bringen, die Gerätedateien zwischen den Startvorgängen zu speichern?
sudo mdadm --assemble /dev/md/alpha --name={newname} --update=name /dev/sd[gf]
Hoffe das macht Sinn oder macht es klarer ....mdadm --stop --scan md127
Die Möglichkeit, Ubuntu zu veranlassen, die Namensänderung über die Startvorgänge hinweg beizubehalten, besteht darin, Ihre initramfs zu aktualisieren. Nach dem Aktualisieren Ihres Array-Namens und der Datei mdadm.conf müssen Sie den folgenden Befehl eingeben:
Der ganze Prozess:
Der dritte Befehl sollte etwa Folgendes zurückgeben:
Fügen Sie das Ergebnis in /etc/mdadm/mdadm.conf ein (ersetzen Sie die alte Zeile). Oder führen Sie aus:
Nächster Lauf:
Schließlich neu starten.
Diese Diskussion war nützlich .
quelle
Die erste Antwort von Pille und NN klappt.
Der Trick dabei ist, dass, wenn Sie die
--name
Option nicht angeben, die einzige Umbenennung durchmdadm
die Zuweisung des Arraynamens anhand der zugewiesenen Gerätenummer erfolgt. In dieser Frage ist es 0, also ist der neue Arrayname 0.Da Sie den Gerätenamen ("alpha" hier) angeben, der im Befehl assemble verwendet werden soll, wird dieser Gerätename erstellt und verwendet. Beim automatischen Start
mdadm
wird jedoch ein Gerät basierend auf dem Namen erstellt, der im Superblock angezeigt wird, in diesem Fall also 0, sodass der in Ihrem Assemble-Befehl angegebene Gerätename verloren geht.Damit Ihr Name dauerhaft und kohärent geändert wird, müssen Sie im letzten Teil Ihres Gerätenamens und in Ihrem neuen Array-Namen denselben Namen verwenden. In diesem Fall müssten Sie für das Gerät "alpha" die folgende Befehlszeile verwenden:
Sie können auch den Hostnamen ändern. Dazu müssen Sie ihn explizit mithilfe der
-name=<hostname>:<array_name>
Syntax deklarieren .Dies kann beispielsweise nach einer Änderung des Maschinennamens hilfreich sein.
quelle
Es scheint, als ob die Antwort, die Sie suchen, in der Manpage von mdadm richtig ist
und zum zusammenbauen
Dies erklärt, warum das Namensattribut nach dem Festlegen nicht klebrig bleibt. Wenn Sie es zum Laufen gebracht haben, bestätigen Sie bitte mit einem Kommentar, welche Antwort den Trick für Sie getan hat. Alternativ können Sie immer Symlinks mit einer udev-Regel und der UUID des Arrays als Anker erstellen.
Ich sehe keinen Sinn darin, den falschen Namen in die Datei /etc/mdadm.conf einzufügen. Sie verwenden bereits die UUID, bei der es sich um den Namen des kanonischen Arrays handelt. Das Hinzufügen einer weiteren Variablen, die Sie für änderungsfähig halten, ist nur eine unnötige Wartung, und Sie müssen nach Problemen fragen, z. B., dass das Array nicht gestartet werden kann.
Abgesehen von diesen Beobachtungen ist der beste Weg, um zu verstehen, warum Sie den Namen zur Laufzeit nicht aktualisieren können, das Pingen der Mailingliste für Linux-Raids.
quelle
Haben Sie versucht, Ihren Namen zu aktualisieren, nachdem Sie ihn geändert haben
mdadm.conf
?quelle
mdadm hat einen Fehler, wenn Raid-Volumes intern mit einem Leerzeichen im Namen erstellt wurden. Diese Volumes werden aufgrund eines Formatfehlers in der generierten Datei /etc/mdadm/mdadm.conf nicht korrekt eingebunden. Sie müssen sie dort umbenennen, aber es wird nicht dauerhaft sein. Das Umbenennen der internen Namen ist daher erforderlich. Dies wird jedoch nicht von allen RAID-Controllern unterstützt, die ihre Metadaten blockieren und die Namensoption nicht unterstützen. Ich verstehe nicht, wie man diese Volumes umbenennt (selbst wenn sie intern durch ihre UUID referenziert werden, sind die Namen die von Linux verwendeten; Windows hat im Gegenteil keinen solchen Fehler und hängt RAID-Volumes mit Leerzeichen in ihren Namen perfekt ein)!
quelle