Cómo cambiar el nombre de un dispositivo MD (mdadm)

25

Aquí está la salida de mdadm -Esv :

ARRAY / dev / md127 level = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 devices = / dev / sdb8, / dev / sda8

Esta es una matriz v0.90. La pregunta es la siguiente: ¿cómo asigna mdadm el nombre de un dispositivo acorde, dónde lo almacena y cómo se cambia?

Lo que quiero lograr es cambiar el nombre de md127 a algo diferente a mi gusto.

XXL
fuente

Respuestas:

31

Advertencia : haga una copia de seguridad antes de seguir cualquier consejo aquí :-)

Opción 1:

Editar /etc/mdadm.conf:

ARRAY / dev / md1 level = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 devices = / dev / sdb8, / dev / sda8

Acabo de ingresar su propia salida y cambié 127 a 1. Reinicie y debería ser md1 ahora.

Opcion 2:

Si usted no tiene mdadm.conf, y quiere que se reúnen para md1 automágicamente , usted puede hacer esto:

mdadm tiene un concepto de "menor preferido". Por ejemplo, una vez que se asigna un cierto número menor a una matriz y se almacena en el superbloque, se usará cada vez que esta matriz se ensamble automáticamente. Verifica esto:

mdadm --detail / dev / md127

Si dice "Menor preferido: 127", este es su problema. Necesita actualizar el menor preferido. Como hacer esto:

No puede simplemente cambiar el menor preferido. Debe iniciar en modo de recuperación o de usuario único si este es su dispositivo raíz, desmontar el sistema de archivos, después de eso:

mdadm --stop / dev / md127
mdadm --assemble --update = super-minor / dev / md1 / dev / sdb8 / dev / sda8

Entonces tendrás tu md127 ensamblado como md1. Y debería seguir así en el futuro también.

Con matrices 1.x:

Las matrices más nuevas no almacenan un número 'Menor preferido' y no admiten "--update = super-minor". En su lugar, almacenan un nombre que se puede cambiar con:

mdadm --stop / dev / md127
mdadm --assemble --update = name --name = 2 / dev / md1 / dev / sdb8 / dev / sda8

O puede especificar 'hostname: 2' para mantener todo coherente con otras matrices (busque el nombre actual con --detail).

haimg
fuente
¡muy bien! justo lo que estaba buscando. así que el truco fue también actualizar el super-menor ... ¡gracias!
XXL
Eres un salvavidas! Utilicé esto para desbloquear un dispositivo WD NAS que usa md.
Vlad
Esta solución es teóricamente correcta, pero me fue difícil implementarla en un sistema vivo. También la Opción # 1 no funcionó para mí. Fui con superuser.com/questions/287462/...
gorn
+1 para la última parte de la solución, que fue muy útil al mover una matriz de incursiones de una máquina a otra. 'hostname: 2' y cambiar md127 a md1 fue exactamente lo que necesitaba para mantener los nombres consistentes
yahol
13

Solo para agregar a la excelente respuesta de haimg. Puede suceder que incluso con un mdadm.conf, el sistema (al menos para Ubuntu) aún pueda ensamblar automáticamente las matrices antes de leer mdadm.conf. Entonces, cuando lo encuentra, simplemente ignora las matrices que acaban de ensamblarse de todos modos.

Para dar cuenta de eso, corre sudo update-initramfs -upara regenerar el initrd apropiado.

Enlaces relevantes: http://ubuntuforums.org/showthread.php?t=1764861%29%3a

Wtower
fuente
2
Esto solucionó el problema para mí (después de otro reinicio) en Ubuntu 16.04. En mi caso, fue porque había recreado la matriz y tenía un nuevo UUID. Después de actualizarlo mdadm.conf, reiniciar solo no fue suficiente; actualizar el initramfs hizo el truco.
nh2
2

Los superbloques de la versión 0.9 no tienen nombre, se introdujeron en la versión 1. /dev/md127 no es el nombre de la matriz, es el nombre del archivo del dispositivo de la matriz, que es una consecuencia directa del número menor del dispositivo de bloque de banda. Este número menor se elige de manera bastante arbitraria cuando se ensambla la matriz.

El UUID proporciona un identificador único para la matriz, si lo necesita. Si prefiere un nombre estructurado o legible para humanos, coloque un volumen físico LVM en la matriz.

Gilles 'SO- deja de ser malvado'
fuente
Soy consciente de la posibilidad de --homehost de la versión posterior, por eso he declarado deliberadamente que esta es una matriz de metadatos v0.90. Sin embargo, esa no es mi intención ni es compatible. Mirando a través de mis publicaciones, también no puedo notar dónde mencioné que / dev / md127 era el nombre de la matriz . Creo que he proporcionado los detalles exactos de lo que quiero hacer. Entonces, la pregunta sigue siendo, ¿cómo lo cambio y dónde se almacena este "número menor"? ¿Supongo que es parte del superbloque? ¿Arruinará la suma de verificación de los superbloques cuando se edite en hexadecimal?
XXL
@XXL Ese número no se almacena en ningún lado, se elige de manera bastante arbitraria cuando se ensambla la matriz.
Gilles 'SO- deja de ser malvado'
hmm .. no entiendo. Entonces, ¿por qué siempre obtengo / dev / md127 cuando mdadm -Esv ? ¿No debería obtener algo más, que sea aleatorio, que no sea un nombre estático? Eso es si es realmente "arbitrario" ..
XXL