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