開いている論理ボリュームを削除できません


20

論理ボリュームを削除しようとすると、メッセージが表示されます

#lvremove /dev/my-volumes/volume-1 
Can't remove open logical volume "volume-1"

#lvchange -an -v /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Deactivating logical volume "volume-1"
Found volume group "my-volumes"
LV my-volumes/volume-1 in use: not deactivating

#lvremove -vf /dev/my-volumes/volume-1 
Using logical volume(s) on command line
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
Can't remove open logical volume "volume-1"

#lvs
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
LV              VG           Attr   LSize   Origin Snap%  Move Log Copy%  Convert
volume-1        my-volumes   -wi-ao  50.00g  

このボリュームを強制的に削除するにはどうすればよいですか?

ありがとう、エベレット

回答:


13

論理ボリュームには何が含まれますか?ファイルシステムですか(誤ってパーティションを作成しました)?マウントされているのでしょうか?その場合:

umount /dev/my-volumes/volume-1

アクティブなスナップショットはありますか?

編集:試してみるlvchange -an -v /dev/my-volumes/volume-1lvremove -vf /dev/my-volumes/volume-1

編集2:「lvs」を投稿してください。

編集3:他の問題のあるボリュームでこれを試してください。これは最もクリーンなオプションではありませんが、このサイトによると動作する可能性があり、とにかく再起動するよりも問題は少ないです。

dmsetup remove my--volumes-volume--number
lvremove /dev/my-volumes/volume-number

何も含まれていません。パーティションではありません。(もはや)マウントされていません。アクティブなスナップショットはありません。
エベレットトーイングス

さて、あなたは何のためにそれを使いましたか?何が間違っているのかを知る手がかりになるかもしれません。
エドゥアルドイヴァネック

質問にリクエストした情報を追加しました。OpenStack Compute(別名Nova)のボリュームとして使用されていました。私は実際に核を取り除き、マシンを再起動してからlvremoveを実行することで、それを削除しました。私が望んでいたよりもはるかに劇的な方法。他にもいくつかのボリュームが残っているので、再起動せずに削除したいので、ご協力いただければ幸いです。
エベレットトーイングス

他の問題のあるボリュームを試すために何かを追加しました。
エドゥアルドイヴァネック

それを試してみました。運がありません。また、wiki.davidjb.com /…のすべてを試しました(したがって、出力の一部で "/ dev / dm-1:read failed ...")が、それでもうまくいきませんでした。
エベレットトーイングス

9

論理ボリュームをアンマウントまたはlvremoveできない場合は、LVを保持しているプロセスがないことを確認します

eg:vol0を削除しようとしている論理ボリュームのメジャー/マイナー番号を見つけます。

# dmsetup info -c | grep vol0

ボリュームが「開いている」かどうかを示す5番目の列と、それぞれメジャーIDとマイナーIDである2番目と3番目の列に注意してください。

上記のメジャーIDとマイナーIDを検索して、このボリュームに接続されているプロセスを見つけます。

# lsof | grep "major,minor"

まだボリュームにアクセスしているプロセスをシャットダウンまたは強制終了して、アンマウントと削除を続行します。

その後、lvremoveを試してください


私の場合、助けはありません。lsof、fuserは使用方法を表示しません。dmsetupは、デバイスがビジーであることを示しています。デバイスはアンマウントされています(いつでもマウントできます)。ハードウェアの再起動のみが役立ちます:/
John

5

おそらくietまたはtgtが実行されており(これiscsi_helperは/etc/nova/nova.confの値に依存し、デフォルトはietになります)、サービスには開いているファイルハンドルがあります。あなたはこのような何かをすることでどれを確認できます(私の場合はtgtです)

# fuser /dev/nova-volumes/volume-00000001
/dev/dm-5:           19155

# lsof | grep /dev/dm-5
tgtd      19155            root   12u      BLK              252,5         0t0    2531554 /dev/dm-5

ietの場合、以下を実行してサービスを停止します。

service iscsitarget stop

tgtの場合、以下を実行してサービスを停止します。

service tgt stop

その後、ボリュームを削除できるはずです。


これでOpenStackの問題が解決しました
juanluisrp

5

同様の状況に陥りましたが、mount -o bindを使用していたため、LVの削除がブロックされました。

以下の記事は大いに役立ちました。LVのメジャー/マイナー番号でlsofを使用すると、プロセスがLVを開いたままにすることが示されました。私の場合はsmbdです。

単にcat / proc / mounts | grep LV_nameにより、lvremoveまたはdmsetup removeは、マウントされていないLVを削除することを拒否する理由を導き出しました。

http://kb.eclipseinc.com/kb/why-cant-i-remove-a-linux-logical-volume/


2

configを介してファイルシステムを使用するLXCコンテナーをシャットダウンします:lxc.mount.entry


1

を削除できない場合はlvm、次の手順に従ってください。

  1. パーティションをアンマウントします。

    #udev / dev / sda8

    (例:パーティションをにマウントしました/dev/sda8

  2. 次のlvmように削除してください:

    #lvremove / dev / vgname / lvname

Linuxで開いている論理ボリュームを削除できません」などのエラーが表示された場合は、以下のコマンドでLVMを非アクティブ化してから削除してください。

 # lvchange -an  /dev/vgname/lvname

 # lvremove /dev/vgname/lvname

問題が発生した場合はお知らせください。


0

iSCSIデバイス上の3つのPVからのLV(マルチパスを使用)でこの問題が発生しました。

解決策はありませんでしたが、簡単な再起動です!(fstabコメントアウトしますので、再びマウントされません)

たぶんそれは誰かを助ける。



0

同様の問題がありました。私が削除しようとしたLVは、ボリュームグループを保持しているVMブロックデバイスでした。このボリュームグループはlvm.confでフィルタリングされましたが、いくつかのdev mapperアイテムは以前に作成されました。

デバイスが保持していたことを把握するには、そのマイナー番号(253、??)を参照して ll /dev/<vg>/<lv>ください。../dm-??

その後、あなたのデバイスで中継するls -la /sys/dev/block/253:??/holdersvg(ex -> ../../dm-xx)のリンクを(pvとして)与えます

dmsetup remove /dev/dm-xx(それらのdmが使用されていないことを確認してください)でそれらを削除します。それから/ dev //を削除してください。


イム私の場合、これはですdmsetup remove /dev/dm-36が、私はエラーを取得device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: – Device or resource busy – Command failedを参照してください:serverfault.com/questions/926681/...
rubo77

0

DMデバイスからLVのリンクを解除できます。

fuser -kuc / dev / my-sample-volumes / volume-sample-1

/ dev / dm-21:2400ce(ルート)2739ce(ルート)4793ce(ルート)

ls -l / dev / my-sample-volumes / volume-sample-1

lrwxrwxrwx 1ルートルート8 Aug 15 02:53 / dev / my-sample-volumes / volume-sample-1-> ../dm-21

/ dev / my-sample-volumes / volume-sample-1のリンクを解除します

lvremove / dev / my-sample-volumes / volume-sample-1


こんにちは、ようこそ。後は機能しないと思いますlvremoveunlink、その部分を明確にできますか?答えを編集するだけです。
クバンチク

動作するはずです。私はそれをテストしました。ソフトリンクへのリンクが解除されます。LVはまだ存在しているはずなので、lvremoveで削除できます。
dayzero

0

私の場合、私はコンテナでcAdvisorを実行していました。これにより、起動時にマウントされていたブロックデバイスの削除が妨げられているようです。私の修正は:

  1. LVMボリュームをアンマウントします
  2. cAdvisorコンテナーを再起動します(docker restart $CONTAINER_ID
  3. 削除を再試行します

-1

私はあなたと同じ問題を抱えています。次のコマンドを試して解決しました:swapoff -a

lvremove ...


誰かが盲目的にあなたの命令を試みるようになる可能性があります。単に指摘する方が良い
でしょう。LV
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.