DebianStretchで実行されているXen4.8ハイパーバイザーで、使用されなくなったdomUの論理ボリュームを削除しようとしています。
DomUを停止し、スワップファイルの論理ボリュームを正常に削除しました。
ただし、メインディスクの論理ボリュームを削除しようとすると、次のエラーが発生します。
Logical volume xen3-vg/vmXX-disk in use.
他のdomU用にハイパーバイザーのディスク領域が必要なため、論理ボリュームのサイズを4MBに変更することに成功しました。
どの論理ボリュームを削除する必要があるかを明確にするために、論理ボリュームの名前を「xen3-vg/deleteme」に変更しました。
それにもかかわらず:
> lvremove -vf /dev/xen3-vg/deleteme
戻り値:
Logical volume xen3-vg/deleteme in use.
検索に関して、私は以下のすべてを試しましたが、役に立ちませんでした。
> lvdisplay
--- Logical volume ---
LV Path /dev/xen3-vg/deleteme
LV Name deleteme
VG Name xen3-vg
LV UUID iL2tB4-4tjc-0dlj-ibBX-nQup-oZsX-g81XXO
LV Write Access read/write
LV Creation Host, time xen3, 2017-01-04 07:16:26 +0100
LV Status available
# open 1
LV Size 4.00 MiB
Current LE 1
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:7
> dmsetup info -c | grep deleteme
xen3--vg-deleteme 254 7 L--w 1 1 3 LVM-aAW4aSeLjqJPPWlF1s1WxAgzeXAjWmXiiL2tB44tjc0dljibBXnQupoZsXg81XXO
> lvchange -an -v /dev/xen3-vg/deleteme
Logical volume xen3-vg/deleteme in use.
> lvremove -vf /dev/xen3-vg/deleteme
Logical volume xen3-vg/deleteme in use.
> umount /dev/xen3-vg/deleteme
umount: /dev/xen3-vg/deleteme: not mounted
> lsof | grep "254,7"
[no output]
> lsof | grep deleteme
[no output]
> fuser /dev/xen3-vg/deleteme
[no output]
誰かがxen3-vg/deletemeを削除する方法についてアドバイスを提供できれば、私はとても幸せです。
ハイパーバイザーの再起動は(営業時間外に実行される)最後のオプションですが、再起動したくないです。
前もって感謝します。
ブランドン、あなたの提案に感謝します。
http://naveen161089.blogspot.com/2014/03/forcefully-remove-lvm.html の指示に従って、次のことを試しました。
> dmsetup ls
[..]
xen3--vg-deleteme (254:7)
[..]
> dmsetup info -c xen3--vg-deleteme
Name Maj Min Stat Open Targ Event UUID
xen3--vg-deleteme 254 7 L--w 1 1 3 LVM-aAW4aSeLjqJPPWlF1s1WxAgzeXAjWmXiiL2tB44tjc0dljibBXnQupoZsXg81XXO
> dmsetup remove xen3--vg-deleteme
device-mapper: remove ioctl on xen3--vg-deleteme failed: Device or resource busy
Command failed
> lvremove -f /dev/xen3-vg/deleteme
Logical volume xen3-vg/deleteme in use.
私はすでに次の手順に従いました: 開いている論理ボリュームを削除できません 元の投稿に記載されています。
どちらのアプローチも問題を解決しませんでした。
誰かが他に何か提案がありますか?
主な間違いは、マウントポイントではなくデバイスファイル "/ dev/xen3-vg/deleteme"でlsof
/fuser
を実行することだったと思います(例: "/ mnt/myDataMount ")。
(これは誤解を招く可能性があり、私もそれにつまずきました。しかし、「/ dev/sda3」でlsof
を実行したい場合と同じです。これは機能しません。ただし、lsof
を実行できます。/mount/somedrive)
簡単に行う手順:
mount |grep deleteme
#で検索します。ここで、「deleteme」はlv-nameを表します。この例示的な出力は、「/ my/mountpoint」のようなものです。lsof /my/mountpoint
どのプロセスがそれを使用しているかを調べるkill -9 naggingprocess
)か、サービスを停止します(service something stop
)umount /dev/xen3-vg/deleteme
lvremove /dev/xen3-vg/deleteme
(またはlvremove -f
)同じ問題が発生し、このコマンドを使用して修正しました。試してみる。
kpartx -dv /dev/mapper/VG-XXX_rootimg
Then lvremove -f /dev/mapper/VG-XXX_rootimg
最近のクリスマス休暇中に、Xen4.8ハイパーバイザーを再起動する機会がありました。
再起動が成功した後、問題のある論理ボリュームを問題なく削除することができました。
問題が何であるかを推測することしかできませんが、ハイパーバイザーは、明らかにdomUを削除したにもかかわらず、メモリ内の論理ボリュームへの参照を保持していたため、削除できなかったと思います。