GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memaksa mdadm untuk menghentikan array RAID5?

Saya menyadari bahwa ini adalah pertanyaan lama dan pembuat aslinya percaya bahwa SAMBA adalah masalahnya, tetapi saya mengalami masalah yang persis sama dan berpikir bahwa kemungkinan besar masalahnya bukan SAMBA (saya sebenarnya bahkan tidak memiliki SAMBA), karena memang demikian tidak muncul di lsof output, melainkan pengguna sudah berada di direktori mount-point RAID ketika mereka beralih ke root atau melakukan sudo.

Dalam kasus saya, masalahnya adalah saya memulai shell root ketika pengguna reguler saya berada di direktori yang terletak di /dev/md127 yang terpasang itu berkendara.

[email protected]:/mnt/md127_content/something$ su -
[email protected]:~# umount /dev/md127
umount: /dev/md127: target is busy

Ini adalah output dari lsof dalam kasus saya:

[email protected]:[email protected]:~# lsof | grep /dev/md127
md127_rai  145            root  cwd       DIR      253,0     4096          2 /
md127_rai  145            root  rtd       DIR      253,0     4096          2 /
md127_rai  145            root  txt   unknown                                /proc/145/exe

Meskipun lsof | grep md125 tidak menampilkan proses apa pun kecuali [md127_raid1] , saya tidak dapat melepas /dev/md127 . Dan sementara umount -l /dev/md127 menyembunyikan /dev/md127 dari keluaran mount , drive ternyata masih sibuk, dan saat mdadm --stop /dev/md127 dicoba, kesalahan yang sama ditampilkan:

mdadm: Cannot get exclusive access to /dev/md127:Perhaps a running process, mounted filesystem or active volume group?

SOLUSI sederhana:periksa apakah ada pengguna yang masuk yang masih berada di direktori di drive itu. Terutama, periksa apakah shell root yang Anda gunakan dimulai saat direktori pengguna biasa Anda saat ini ada di drive itu. Beralih ke shell pengguna tersebut (mungkin hanya exit root Anda akan), pindah ke tempat lain, dan umount dan mdadm --stop akan bekerja:

[email protected]:~# exit
[email protected]:/mnt/md127_content/something$ cd /
[email protected]:/$ su -
[email protected]:~# umount /dev/md127
[email protected]:~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127

Jika Anda menggunakan LVM di atas mdadm, terkadang LVM tidak akan menghapus perangkat Device Mapper saat menonaktifkan grup volume. Anda dapat menghapusnya secara manual.

  1. Pastikan tidak ada apa pun di keluaran sudo vgdisplay .
  2. Lihat /dev/mapper/ . Selain control file, harus ada perangkat Pemeta Perangkat yang dinamai menurut grup volume Anda, mis. VolGroupArray-name .
  3. Jalankan sudo dmsetup remove VolGroupArray-name (ganti VolGroupArray-name dengan nama Device Mapper device).
  4. Anda seharusnya sekarang dapat menjalankan sudo mdadm --stop /dev/md0 (atau apa pun nama mdadm perangkat).

Saya mengalami masalah serupa tetapi saya tidak memasang perangkat penyerbuan dengan cara apa pun. Menghentikan SAMBA sepertinya juga tidak membantu. lsof tidak menunjukkan apa-apa.

Semuanya hanya menghasilkan:

# mdadm --stop /dev/md2
mdadm: Cannot get exclusive access to /dev/md2:Perhaps a running process, mounted filesystem or active volume group?

Apa yang akhirnya memperbaikinya bagi saya adalah mengingat bahwa ini adalah partisi swap - jadi saya hanya perlu swapoff /dev/md2 - ini memungkinkan saya untuk mdadm --stop /dev/md2 berhasil.


Linux
  1. Cara membuat kata sandi acak di linux menggunakan /dev/random

  2. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  3. Cara memetakan perangkat /dev/sdX dan /dev/mapper/mpathY dari perangkat /dev/dm-Z

  1. Bagaimana cara menyandikan base64 /dev/random atau /dev/urandom?

  2. gema atau cetak /dev/stdin /dev/stdout /dev/stderr

  3. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp

  1. Bagaimana cara mengganti harddisk yang gagal di RAID perangkat lunak Linux

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. mdadm mdadm:tidak dapat membuka /dev/sda1:Perangkat atau sumber daya sibuk