En los sistemas más nuevos /usr/share/mdadm/mkconf
(el script que se usa para generar /etc/mdadm/mdadm.conf
) tiende a usar el nombre del dispositivo en /dev/md/0
lugar de /dev/md0
:
new-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md/0 metadata=1.2 UUID=a0021927:0e4f10bf:2c47dc72:ca0b352e name=unassigned:0
Esto puede causar cierta irritación a los usuarios que esperan /dev/md0
allí, pero aparentemente funciona bien porque el servidor arranca sin problemas.
En /proc/mdstat
el dispositivo todavía se llama /dev/md0
:
new-system ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[2] sda2[0]
1953381184 blocks super 1.2 [2/2] [UU]
unused devices: <none>
ls
muestra que /dev/md/0
es un enlace simbólico para /dev/md0
:
new-system ~ # ls -l /dev/md/0
lrwxrwxrwx 1 root root 6 Nov 20 14:06 /dev/md/0 -> ../md0
En otro sistema anterior mkconf
todavía se usa en su /dev/md0
lugar y /dev/md
está vacío:
old-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md0 UUID=76472cf5:83fd8e5a:ad617046:69b2ebf1
old-system ~ # ls -l /dev/md
total 0
Me gustaría saber la diferencia entre estos nombres de dispositivos, y no puedo encontrar ninguna explicación en Google. ¿Es /dev/mdN
el nombre antiguo y md
planea pasar a /dev/md/N
los nombres de los dispositivos? ¿Está este cambio relacionado con los metadatos 1.2 (he notado que el nuevo servidor está usando md 1.2, mientras que el viejo todavía está usando 0.90)?
EDITAR 2017-09-11: Creo que la respuesta de Krzysztof Stasiak es la correcta. Ya me había olvidado por completo de esta pregunta. Mientras jugaba con un RAID de prueba el viernes pasado pensé "¿por qué no nombrar mi matriz en lugar de memorizar lo que md0, md1, md2, ... etc. hace en configuraciones complejas?", Y entonces intenté:
test-server ~ # mdadm --assemble /dev/mdfoobar /dev/loop[01]
mdadm: /dev/mdfoobar is an invalid name for an md device. Try /dev/md/mdfoobar
Y de hecho eso funciona:
test-server ~ # mdadm --assemble /dev/md/foobar /dev/loop[01]
mdadm: /dev/md/foobar has been started with 2 drives.
test-server ~ # ll /dev/md/foobar
lrwxrwxrwx 1 root root 6 Sep 11 10:45 /dev/md/foobar -> ../md0
test-server ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active (auto-read-only) raid1 loop0[0] loop1[1]
102272 blocks super 1.2 [2/2] [UU]
unused devices: <none>
(También puedes hacer mdadm --assemble foobar DEV...
).
Hay una explicación detallada en la man mdadm
sección DEVICE NAMES
.
mdadm -E
que se encuentra actualmente unassigned:0
en el nuevo servidor se divide en el :
, y la segunda parte se convierte en parte del /dev/md/<name>
? Entonces, si cambiara el nombre de la matriz a unassigned:asdf
, ¿se llamaría al enlace simbólico /dev/md/asdf
? Y siempre se llama al dispositivo real /dev/mdN
, ¿dónde N es el próximo número libre?
unassigned:0
simplemente es braindead.