Por alguna razón, cuando trato de cambiar el nombre de una matriz de incursiones mdadm a un nombre textual, el cambio no se realiza.
Intenté el consejo de esta pregunta predeterminada del servidor , pero fue en vano.
~$ 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>
Como puede ver, el nombre todavía se informa omicron:0
y aún se puede acceder a través del archivo de dispositivo antiguo. Intentar sudo mdadm --detail /dev/md/alpha
funcionará e informará el mismo nombre incorrecto hasta el próximo reinicio, cuando deje de funcionar.
Parece que al descifrar qué nombre poner, mdadm se confunde y simplemente crea el archivo del dispositivo.
APARTE
¿Hay alguna forma de hacer que mdadm fuerce una actualización del nombre parte del superbloque (es decir, establecer explícitamente el nombre que desea que tenga la matriz) sin tener que volver a crear explícitamente el superbloque? (es decir 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]
)
El problema es que después de reiniciar, a pesar de agregar ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=c66a267...
a mdadm.conf, el archivo del dispositivo nombrado desaparece y se reemplaza por uno de formato estándar. (/ dev / md125 o similar)
¿Cómo puedo hacer que una matriz mdadm renombrada mantenga su nombre? - Es decir, ¿cómo puedo hacer que Ubuntu mantenga los archivos del dispositivo entre las botas?
sudo mdadm --assemble /dev/md/alpha --name={newname} --update=name /dev/sd[gf]
Espero que tenga sentido o lo aclare ...mdadm --stop --scan md127
La forma de hacer que Ubuntu persista el cambio de nombre en las botas es actualizar sus initramfs. Después de actualizar su nombre de matriz y mdadm.conf, debe emitir el siguiente comando:
Todo el proceso:
El tercer comando debería devolver algo como:
Pegue el resultado en /etc/mdadm/mdadm.conf (reemplazando la línea anterior). O ejecutar:
Próxima ejecución:
Finalmente, reinicia.
Esta discusión fue útil .
fuente
La primera respuesta de pille y NN funciona.
El truco aquí es que cuando no especifica la
--name
opción, el único cambio de nombre realizadomdadm
es asignar el nombre de la matriz al número de dispositivo que ha asignado. En esta pregunta es 0, por lo que el nuevo nombre de matriz es 0.Como especifica el nombre del dispositivo ("alfa" aquí) para usar en el comando de ensamblaje, creará y usará este nombre de dispositivo. Pero en el inicio automático
mdadm
crea un dispositivo basado en el nombre que ve en el superbloque, que es 0 en este caso, por lo que se pierde el nombre del dispositivo que especificó en su comando de ensamblaje.Para que su nombre cambie de forma coherente, debe usar el mismo nombre en la última parte del nombre de su dispositivo y en su nuevo nombre de matriz. En este caso, para el dispositivo "alfa" tendría que usar esta línea de comando:
También puede cambiar el nombre de host, para hacerlo debe declararlo explícitamente utilizando la
-name=<hostname>:<array_name>
sintaxis.Esto puede ser útil, por ejemplo, después de un cambio de nombre de máquina.
fuente
Parece que la respuesta que busca está en la página de manual de mdadm
y para armar
Lo que explica por qué el atributo de nombre no es fijo después de que se establece Si conseguiste que funcionara, por favor, haz un comentario con la respuesta que te sirvió. Alternativamente, siempre puede crear enlaces simbólicos utilizando una regla udev y el UUID de la matriz como un ancla.
No veo el punto de agregar el nombre falso a /etc/mdadm.conf, ya está utilizando el UUID, que es el nombre de la matriz canónica. Agregar otra variable, que considere conveniente cambiar, es solo un mantenimiento innecesario y pedir problemas, por ejemplo, la matriz no se inicia.
Más allá de estas observaciones, el mejor lugar para entender por qué simplemente no puede actualizar el nombre en tiempo de ejecución es hacer ping a la lista de correo de linux-raid.
fuente
después de cambiar el nombre, ¿trató de actualizar su
mdadm.conf
?fuente
mdadm tiene un error cuando los volúmenes de incursión se crearon internamente con un espacio en su nombre. Estos volúmenes no se montarán correctamente debido a un error de formato en el archivo /etc/mdadm/mdadm.conf generado. Debe cambiarles el nombre allí, pero no será persistente. Por lo tanto, cambiar el nombre de los nombres internos es necesario ... pero no es compatible con todos los controladores RAID que bloquean sus metadatos y no admiten la opción de nombre. ¡No veo cómo cambiar el nombre de estos volúmenes (incluso si están referenciados internamente por su UUID, los nombres son los utilizados por Linux; Windows, por el contrario, no tiene ese error y monta perfectamente los volúmenes RAID que contienen espacios en sus nombres)!
fuente