В более новых системах /usr/share/mdadm/mkconf
(скрипт, который используется для генерации /etc/mdadm/mdadm.conf
) имеет тенденцию использовать имя устройства /dev/md/0
вместо /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
Это может вызвать некоторое раздражение у пользователей, которые ожидают /dev/md0
этого, но, очевидно, это работает нормально, потому что сервер загружается без проблем.
В /proc/mdstat
устройстве все еще называется /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
показывает, что /dev/md/0
это символическая ссылка на /dev/md0
:
new-system ~ # ls -l /dev/md/0
lrwxrwxrwx 1 root root 6 Nov 20 14:06 /dev/md/0 -> ../md0
В другой более старой системе mkconf
все еще использует /dev/md0
вместо этого, и /dev/md
является пустым:
old-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md0 UUID=76472cf5:83fd8e5a:ad617046:69b2ebf1
old-system ~ # ls -l /dev/md
total 0
Я хотел бы знать разницу между этими именами устройств, и я не могу найти никакого объяснения в Google. Является ли /dev/mdN
старое имя и md
планирует перейти на /dev/md/N
имена устройств? Связано ли это изменение с метаданными 1.2 (я заметил, что новый сервер использует md 1.2, а старый все еще использует 0.90)?
РЕДАКТИРОВАТЬ 2017-09-11: Я думаю, что ответ Кшиштофа Стасяка является правильным. Я уже полностью забыл об этом вопросе. Играя с тестовым RAID в прошлую пятницу, я подумал: «Почему бы не назвать свой массив вместо того, чтобы запоминать, что md0, md1, md2, ... и т. Д. Делает в сложных установках?», И поэтому я попытался:
test-server ~ # mdadm --assemble /dev/mdfoobar /dev/loop[01]
mdadm: /dev/mdfoobar is an invalid name for an md device. Try /dev/md/mdfoobar
И действительно, это работает:
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>
(Вы также можете сделать mdadm --assemble foobar DEV...
).
Там есть подробное объяснение в man mdadm
разделе DEVICE NAMES
.
mdadm -E
что в данный момент находится unassigned:0
на новом сервере, разделяется на :
, а вторая часть становится частью /dev/md/<name>
? Так что, если бы я изменил имя массива на unassigned:asdf
, была бы вызвана символическая ссылка /dev/md/asdf
? А фактическое устройство всегда вызывается /dev/mdN
, где N - следующий свободный номер?
unassigned:0
д. Такое имя просто braindead.