Saya mengalami masalah berikut dengan partisi serangan perangkat lunak RAID1 pada sistem Ubuntu saya (10,04 LTS, 2.6.32-24-server jika itu penting).
Salah satu disk saya (sdb5) melaporkan kesalahan I / O dan karena itu ditandai salah dalam array. Array kemudian diturunkan dengan satu perangkat aktif. Oleh karena itu, saya mengganti harddisk, mengkloning tabel partisi dan menambahkan semua partisi baru ke array serangan saya. Setelah menyinkronkan semua partisi berakhir dengan baik, memiliki 2 perangkat aktif - kecuali salah satunya. Partisi yang melaporkan disk yang rusak sebelumnya, bagaimanapun, tidak termasuk partisi baru sebagai perangkat aktif tetapi sebagai disk cadangan:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Tampilan terperinci mengungkapkan:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Jadi, inilah pertanyaannya: Bagaimana saya memberi tahu serangan saya untuk mengubah disk cadangan menjadi yang aktif? Dan mengapa itu ditambahkan sebagai perangkat cadangan? Menciptakan atau memasang kembali array bukanlah pilihan, karena itu adalah partisi root saya. Dan saya tidak dapat menemukan petunjuk untuk subjek itu di HOWTO Raid Perangkat Lunak.
Bantuan apa pun akan dihargai.
Solusi Saat Ini
Saya menemukan solusi untuk masalah saya, tetapi saya tidak yakin bahwa ini adalah cara aktual untuk melakukannya. Setelah melihat lebih dekat pada serangan saya, saya menemukan bahwa sdb5 selalu terdaftar sebagai perangkat cadangan:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
jadi membaca perangkat sdb5 ke array md3 selalu berakhir dengan menambahkan perangkat sebagai cadangan.
Akhirnya saya baru saja membuat ulang array
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
yang berhasil.
Tetapi pertanyaannya tetap terbuka bagi saya: Apakah ada cara yang lebih baik untuk memanipulasi ringkasan di superblock dan untuk memberitahu array untuk mengubah sdb5 dari disk cadangan ke disk aktif? Saya masih penasaran untuk jawabannya.
Jawaban:
Daniel: Awalnya, periksa untuk melihat apakah cadangan sedang diintegrasikan ke dalam array dengan melakukan:
yang harus melaporkan jika ada proses pembangunan yang sedang berlangsung, dan berapa lama untuk mengharapkannya.
Jika tidak ada bangunan yang terjadi, cobalah yang berikut ini
Dan laporkan kembali cara kerjanya untuk Anda. Lihat http://linux.die.net/man/8/mdadm untuk lebih jelasnya.
sumber
Cukup terlambat, tetapi melakukan ini hanya akan mengaktifkan drive cadangan:
Seperti yang dikatakan halaman manual:
sumber
Dari apa yang saya ingat, ketika saya memiliki masalah itu (untuk alasan yang berbeda) saya harus menggunakan --grow untuk menambahkan kembali drive cadangan "dengan benar" (juga membersihkan kondisi kesalahan.)
Sesuatu seperti ini (verifikasi dengan dokumentasi Anda!):
mdadm --grow --level = rusak --layout = flush / dev / sdb5
Kemudian Anda dapat menambahkan perangkat dan itu harus dikenali.
Masalahnya adalah bahwa driver md menyimpan status setiap partisi dalam data boot drive. Jadi, bahkan setelah reboot, ia mengetahui status dan menghindari partisi yang ditandai sebagai salah.
sumber