4つのドライブで構成される/dev/md127
RAID5アレイがあります。私はなんとかアレイからホットリムーブを削除し、現在/dev/md127
にはドライブがありません。
cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdd1[0] sda1[1]
304052032 blocks super 1.2 [2/2] [UU]
md1 : active raid0 sda5[1] sdd5[0]
16770048 blocks super 1.2 512k chunks
md127 : active raid5 super 1.2 level 5, 512k chunk, algorithm 2 [4/0] [____]
unused devices: <none>
そして
mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Thu Sep 6 10:39:57 2012
Raid Level : raid5
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Used Dev Size : 2930134016 (2794.39 GiB 3000.46 GB)
Raid Devices : 4
Total Devices : 0
Persistence : Superblock is persistent
Update Time : Fri Sep 7 17:19:47 2012
State : clean, FAILED
Active Devices : 0
Working Devices : 0
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Number Major Minor RaidDevice State
0 0 0 0 removed
1 0 0 1 removed
2 0 0 2 removed
3 0 0 3 removed
mdadm --stop /dev/md127
を実行しようとしましたが、
mdadm --stop /dev/md127
mdadm: Cannot get exclusive access to /dev/md127:Perhaps a running process, mounted filesystem or active volume group?
umount -l /dev/md127
がマウント解除されていることを確認し、実際にマウント解除されていることを確認しました。
umount /dev/md127
umount: /dev/md127: not mounted
各ドライブのスーパーブロックをゼロにしようとしましたが、(各ドライブに対して)次のようになります。
mdadm --zero-superblock /dev/sde1
mdadm: Unrecognised md component device - /dev/sde1
lsof | grep md127
の出力は次のとおりです:
lsof|grep md127
md127_rai 276 root cwd DIR 9,0 4096 2 /
md127_rai 276 root rtd DIR 9,0 4096 2 /
md127_rai 276 root txt unknown /proc/276/exe
他に何ができますか? LVMもインストールされていないため、要因にはなりません。
何度も突っ込んだ後、ようやくアレイの停止を妨げている原因を見つけました。 SAMBAプロセスでした。サービスsmbdの停止後、アレイを停止することができました。奇妙なのは、ある時点でアレイがマウントされ、SAMBAを介して共有されていたにもかかわらず、停止しようとしたときにすでにマウント解除されていたためです。
これは古い質問であり、元の投稿者はSAMBAが問題であると信じていましたが、同じ正確な問題を経験し、SAMBAではなかった可能性が高いと思います(実際にはSAMBAさえ持っていません)。 lsof
の出力には表示されませんが、ユーザーはルートに切り替えたとき、またはSudoを実行したときにすでにRAIDマウントポイントディレクトリにいました。
私の場合、問題は、マウントされた/dev/md127
ドライブにあるディレクトリに通常のユーザーがいるときにルートシェルを起動したことでした。
user1@comp1:/mnt/md127_content/something$ su -
root@comp1:~# umount /dev/md127
umount: /dev/md127: target is busy
私の場合のlsof
の出力は次のとおりです。
root@comp1:root@comp1:~# 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
lsof | grep md125
には[md127_raid1]
以外のプロセスは表示されませんでしたが、/dev/md127
をアンマウントできませんでした。また、umount -l /dev/md127
はmount
の出力から/dev/md127
を隠しますが、ドライブはまだビジー状態であり、mdadm --stop /dev/md127
を試行すると同じエラーが表示されます。
mdadm: Cannot get exclusive access to /dev/md127:Perhaps a running process, mounted filesystem or active volume group?
[〜#〜] solution [〜#〜]は簡単です。そのドライブのディレクトリにまだログインしているユーザーがログインしているかどうかを確認します。特に、使用しているルートシェルが、通常のユーザーの現在のディレクトリがそのドライブにあるときに起動されたかどうかを確認してください。そのユーザーのシェルに切り替えて(たぶんexit
だけがルートになります)、別の場所に移動すると、umount
とmdadm --stop
が機能します。
root@comp1:~# exit
user1@comp1:/mnt/md127_content/something$ cd /
user1@comp1:/$ su -
root@comp1:~# umount /dev/md127
root@comp1:~# mdadm --stop /dev/md127
mdadm: stopped /dev/md127
Mdadmの上でLVMを使用している場合、ボリュームグループを非アクティブ化しても、LVMがデバイスマッパーデバイスを削除しないことがあります。手動で削除できます。
Sudo vgdisplay
の出力に何もないことを確認します。/dev/mapper/
をご覧ください。 control
ファイルとは別に、ボリュームグループにちなんで名付けられたデバイスマッパーデバイスが必要です。 VolGroupArray-name
。Sudo dmsetup remove VolGroupArray-name
を実行します(VolGroupArray-name
をデバイスマッパーデバイスの名前に置き換えます)。Sudo mdadm --stop /dev/md0
(またはmdadm
デバイスの名前が何であれ)を実行できるようになります。私は同様の問題に遭遇していましたが、どのような方法でもraidデバイスをマウントしていませんでした。 SAMBAを停止しても効果がないようです。 lsof
は何も表示しませんでした。
結果は次のとおりです。
# mdadm --stop /dev/md2
mdadm: Cannot get exclusive access to /dev/md2:Perhaps a running process, mounted filesystem or active volume group?
最後に修正したのは、これがスワップパーティションであることを思い出していたため、swapoff /dev/md2
-これによりmdadm --stop /dev/md2
が成功しました。