Cara mengubah nama perangkat MD (mdadm)

25

Berikut ini adalah output dari mdadm -Esv :

Tingkat ARRAY / dev / md127 = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 perangkat = / dev / sdb8, / dev / sda8

Ini adalah array v0.90. Pertanyaannya adalah sebagai berikut: bagaimana mdadm menetapkan nama untuk perangkat yang sesuai, di mana ia menyimpannya dan bagaimana seseorang mengubahnya?

Yang ingin saya capai adalah mengubah nama md127 menjadi sesuatu yang berbeda dengan keinginan saya.

XXL
sumber

Jawaban:

31

Peringatan : Harap buat cadangan sebelum mengikuti saran yang diberikan di sini :-)

Pilihan 1:

Edit /etc/mdadm.conf:

Tingkat ARRAY / dev / md1 = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 perangkat = / dev / sdb8, / dev / sda8

Saya baru saja memasukkan output Anda sendiri dan mengubah 127 menjadi 1. Reboot dan seharusnya md1 sekarang.

Pilihan 2:

Jika Anda tidak memilikinya mdadm.conf, dan ingin merakit ke md1 secara otomatis , Anda dapat melakukan ini:

mdadm memiliki konsep "minor yang disukai". Misalnya sekali nomor kecil tertentu diberikan ke array, dan disimpan di superblok, itu akan digunakan setiap kali array ini dirakit secara otomatis. Verifikasikan ini:

mdadm --detail / dev / md127

Jika tertulis "Preferred Minor: 127" ini adalah masalah Anda. Anda perlu memperbarui minor yang disukai. Bagaimana cara melakukannya:

Anda tidak bisa hanya mengubah minor yang disukai. Anda perlu boot ke recovery atau mode pengguna tunggal jika ini adalah perangkat root Anda, unmount sistem file, setelah itu:

mdadm --stop / dev / md127
mdadm --assemble --update = super-minor / dev / md1 / dev / sdb8 / dev / sda8

Maka md127 Anda akan dirakit sebagai md1. Dan itu harus tetap seperti ini di masa depan juga.

Dengan array 1.x:

Array yang lebih baru tidak menyimpan nomor 'Preferred Minor' dan tidak mendukung "--update = super-minor". Sebagai gantinya mereka menyimpan nama yang dapat diubah dengan:

mdadm --stop / dev / md127
mdadm --assemble --update = name --name = 2 / dev / md1 / dev / sdb8 / dev / sda8

Atau Anda dapat menentukan 'hostname: 2' agar semuanya konsisten dengan array lainnya (cari nama saat ini dengan --detail).

haim
sumber
sangat bagus! hanya apa yang saya cari. jadi triknya adalah juga memperbarui super-minor .. terima kasih!
XXL
Anda seorang penyelamat! Saya menggunakan ini untuk membatalkan pemasangan perangkat WD NAS yang menggunakan md.
Vlad
Solusi ini secara teori benar, tetapi sulit bagi saya untuk menerapkan bagi saya pada sistem kehidupan. Opsi # 1 juga tidak berfungsi untuk saya. Saya pergi dengan superuser.com/questions/287462/...
gorn
+1 untuk bagian terakhir dari solusi yang sangat membantu ketika memindahkan raid array dari satu mesin ke mesin lain. 'hostname: 2' dan mengubah md127 ke md1 adalah apa yang saya perlukan untuk menjaga agar nama tetap konsisten
yahol
13

Hanya untuk menambah jawaban sempurna haimg. Mungkin bahkan dengan mdadm.conf, sistem (setidaknya untuk Ubuntu) masih dapat merakit array secara otomatis sebelum membaca mdadm.conf. Jadi ketika menemukannya, ia mengabaikan array yang baru saja dirakit.

Untuk menjelaskan hal itu, jalankan sudo update-initramfs -uuntuk membuat initrd yang tepat.

Tautan yang relevan: http://ubuntuforums.org/showthread.php?t=1764861%29%3a

Wtower
sumber
2
Ini memperbaiki masalah saya (setelah reboot lagi) di Ubuntu 16.04. Dalam kasus saya itu karena saya telah menciptakan kembali array, dan itu memiliki UUID baru. Setelah memperbaruinya mdadm.conf, mem-boot ulang saja tidak cukup; memperbarui initramfs berhasil.
nh2
2

Versi 0.9 superblocks tidak memiliki nama, mereka diperkenalkan di versi 1. /dev/md127bukan nama array, itu nama file perangkat array, yang merupakan konsekuensi langsung dari sejumlah kecil perangkat raid block. Angka minor ini dipilih agak sewenang-wenang ketika array dirakit.

UUID menyediakan pengidentifikasi unik untuk array, jika Anda memerlukannya. Jika Anda lebih suka nama yang bisa dibaca manusia atau terstruktur, masukkan volume fisik LVM ke dalam array.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Saya menyadari kemungkinan --homehost dari versi yang lebih baru, itu sebabnya saya sengaja menyatakan bahwa ini adalah array metadata v0.90. Namun, itu bukan maksud saya juga tidak kompatibel. Melihat posting saya, saya juga agak tidak bisa memperhatikan di mana saya menyebutkan bahwa / dev / md127 adalah nama array . Saya pikir saya telah memberikan rincian persis tentang apa yang ingin saya lakukan. Jadi pertanyaannya masih tetap, bagaimana cara mengubahnya dan di mana "nomor minor" ini disimpan? Saya kira itu bagian dari superblok? Apakah akan merusak checksum superblok, ketika hex-diedit?
XXL
@XXL Nomor itu tidak disimpan di mana pun, itu dipilih agak sewenang-wenang ketika array dirakit.
Gilles 'SO- stop being evil'
hmm .. saya tidak mengerti. Lalu mengapa saya selalu mendapatkan / dev / md127 ketika saya mdadm -Esv ? Tidakkah saya harus mendapatkan yang lain, itu acak, selain nama statis? Itu jika itu benar-benar "sewenang-wenang" ..
XXL