บนระบบที่ใหม่กว่า/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เป็น symlink ไปที่/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: ฉันคิดว่า คำตอบของ Krzysztof Stasiak เป็นคำตอบที่ถูกต้อง ตอนนี้ฉันลืมคำถามนี้ไปหมดแล้ว ในขณะที่เล่นกับการทดสอบ 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 mdadmDEVICE NAMES
mdadm -Eที่อยู่unassigned:0ในเซิร์ฟเวอร์ใหม่จะถูกแยกที่:และส่วนที่สองกลายเป็นส่วนหนึ่งของ/dev/md/<name>? ดังนั้นถ้าฉันเปลี่ยนชื่ออาร์เรย์unassigned:asdfเป็น symlink จะถูกเรียก/dev/md/asdf? และอุปกรณ์จริงจะถูกเรียกเสมอ/dev/mdNโดยที่ N คือหมายเลขฟรีถัดไป
unassigned:0นั้นเป็นเพียงความคิด