Em sistemas mais recentes /usr/share/mdadm/mkconf
(o script usado para gerar /etc/mdadm/mdadm.conf
) tende a usar o nome do dispositivo em /dev/md/0
vez 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
Isso pode causar alguma irritação para os usuários que esperam por /dev/md0
lá, mas aparentemente funciona bem porque o servidor é inicializado sem problemas.
No /proc/mdstat
dispositivo ainda é chamado /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
mostra que /dev/md/0
é um link 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
Em outro sistema mais antigo, ele mkconf
ainda usa /dev/md0
e /dev/md
está vazio:
old-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md0 UUID=76472cf5:83fd8e5a:ad617046:69b2ebf1
old-system ~ # ls -l /dev/md
total 0
Gostaria de saber a diferença entre esses nomes de dispositivo e não consigo encontrar nenhuma explicação no Google. É /dev/mdN
o nome antigo e md
planeja mudar para /dev/md/N
nomes de dispositivos? Essa alteração está relacionada aos metadados 1.2 (observei que o novo servidor está usando o md 1.2, enquanto o antigo ainda está usando 0.90)?
EDIT 11-09-2017: Acho que a resposta de Krzysztof Stasiak é a correta. Eu já tinha esquecido totalmente dessa questão. Enquanto brincava com um RAID de teste na última sexta-feira, pensei "por que não nomear minha matriz em vez de memorizar o que md0, md1, md2, ... etc. faz em configurações complexas?" E tentei:
test-server ~ # mdadm --assemble /dev/mdfoobar /dev/loop[01]
mdadm: /dev/mdfoobar is an invalid name for an md device. Try /dev/md/mdfoobar
E de fato isso 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>
(Você também pode fazer mdadm --assemble foobar DEV...
).
Há uma explicação detalhada na man mdadm
seção DEVICE NAMES
.
mdadm -E
que está atualmente unassigned:0
no novo servidor é dividido no :
e a segunda parte se torna parte do /dev/md/<name>
? Então, se eu mudasse o nome da matriz para unassigned:asdf
, o link simbólico seria chamado /dev/md/asdf
? E o dispositivo real é sempre chamado /dev/mdN
, onde N é o próximo número gratuito?
unassigned:0
é apenas braindead.