Pada sistem yang lebih baru /usr/share/mdadm/mkconf
(skrip yang digunakan untuk menghasilkan /etc/mdadm/mdadm.conf
) cenderung menggunakan nama perangkat /dev/md/0
alih-alih /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
Ini dapat menyebabkan iritasi bagi pengguna yang mengharapkan di /dev/md0
sana, tetapi tampaknya berfungsi dengan baik karena server melakukan boot tanpa masalah.
Di /proc/mdstat
perangkat ini masih disebut /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
menunjukkan bahwa itu /dev/md/0
adalah symlink ke /dev/md0
:
new-system ~ # ls -l /dev/md/0
lrwxrwxrwx 1 root root 6 Nov 20 14:06 /dev/md/0 -> ../md0
Di sistem lain yang lebih lama mkconf
masih menggunakan /dev/md0
sebagai gantinya, dan /dev/md
kosong:
old-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md0 UUID=76472cf5:83fd8e5a:ad617046:69b2ebf1
old-system ~ # ls -l /dev/md
total 0
Saya ingin tahu perbedaan antara nama perangkat ini, dan saya tidak dapat menemukan penjelasan di Google. Apakah /dev/mdN
nama lama, dan md
berencana untuk pindah ke /dev/md/N
nama perangkat? Apakah perubahan ini terkait dengan metadata 1.2 (saya perhatikan bahwa server baru menggunakan md 1.2, sedangkan yang lama masih menggunakan 0.90)?
EDIT 2017-09-11: Saya pikir jawaban Krzysztof Stasiak adalah jawaban yang benar. Saya sudah benar-benar lupa tentang pertanyaan ini. Saat bermain dengan tes RAID Jumat lalu saya berpikir "mengapa tidak menamai array saya alih-alih mengingat apa yang md0, md1, md2, ... dll tidak dalam pengaturan yang rumit?", Dan jadi saya mencoba:
test-server ~ # mdadm --assemble /dev/mdfoobar /dev/loop[01]
mdadm: /dev/mdfoobar is an invalid name for an md device. Try /dev/md/mdfoobar
Dan memang itu berhasil:
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>
(Anda juga bisa melakukannya mdadm --assemble foobar DEV...
).
Ada penjelasan rinci di man mdadm
, bagian DEVICE NAMES
.
mdadm -E
yang saat ini adaunassigned:0
di server baru terpecah pada:
, dan bagian kedua menjadi bagian dari/dev/md/<name>
? Jadi jika saya mengubah nama arrayunassigned:asdf
, symlink akan dipanggil/dev/md/asdf
? Dan perangkat yang sebenarnya selalu disebut/dev/mdN
, di mana N adalah nomor bebas berikutnya?unassigned:0
hanya braindead.Jawaban:
Anda dapat memberi nama array sebagai nama sendiri (tidak hanya 0-127) dan karena mdadm 3.0.3 Anda hanya dapat menggunakan nama. Jika jalur think diubah untuk menggunakan subfolder
/dev/md/$name
untuk membuat lebih banyak fleksibilitas atau semacam array bersih atau grup. Jika array md dibuat dalam format/dev/mdX
ada ditambahkan symlink untuk membuat kompabilitas ke format baru.sumber
Ketika datang ke nama perangkat, lebih baik tanyakan udev . Untuk pemahaman saya,
md%d
penamaan digunakan oleh kernel, ini dihasilkan langsung oleh driver md.c # L5284 , dan digunakan dalam/proc/partitions
dansysfs
. Karenanya, muncul di/dev
/dev/md/...
dan/dev/disk/by-id/...
dihasilkan sebagai symlink oleh udevd. Dalam sistem saya aturan yang sesuai disimpan di/usr/lib/udev/rules.d/63-md-raid-arrays.rules
:Tampaknya file udev berasal dari
openSUSE 11.1-rc3
menurut komit ini di mdadm. Saya telah memeriksa file iniopenSUSE 11.0
, tetapi tidak memilikimd/%d
symlink ...sumber
Mungkin jalur asli bervariasi tergantung pada versi kernel Linux atau sistem Unix. Tautan simbolis
/dev/md/N
mungkin ada karena alasan kompatibilitas. Program atau skrip yang mungkin menggunakan jalur ini sebagai ganti/dev/mdN
.sumber