Lvm

lvremove 聲稱 LV 是開放的

  • March 24, 2016

我經常注意到,經過

$ sudo lvcreate vg -L 10G

緊隨其後的是

$ sudo lvremove vg/<created volume>

我收到錯誤消息

無法刪除打開的邏輯卷“…”

而一個

$ sudo lvs

給我看那個卷

 lvol2         vg   -wi-a-  10,00g
  • 所以標誌中的-後面有一個os,如果卷真的打開了a,應該有一個。o

一段時間後,刪除工作。

為什麼會這樣?我怎樣才能讓它立即工作?

編輯:以下沒有導致有用的東西:

$ sudo rm /dev/mapper/vg-lvol24 
$ sudo lvremove /dev/vg/lvol24
 Can't remove open logical volume "lvol24"
$ sudo lvs vg/lvol24
 LV     VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
 lvol24 vg   -wi-a- 10,00g                                      
$ sudo lvremove /dev/vg/lvol24
 Can't remove open logical volume "lvol24"

好像lvm和udev的合作有問題。

在 alvremove上,每個可用塊設備都有udev更改事件。他們的處理似乎干擾了刪除過程,並且刪除失敗了。

解決方案是使用 停用要刪除的 LV lvchange -an <given LV>。在這種情況下,只創建了少數“刪除”事件,這是由於相關dm設備被刪除而導致的。

如果我lvremove現在停用的LV,仍然有很多udev更改事件,但它們不會影響要刪除的LV(因為它不再存在於dm中),因此它可以正常工作。

因此,除了 NFS、陳舊的 bash 程序和 udev 錯誤行為之外,還有另一種可能性,即在塊設備上打開的分區。

kpartx -d /dev/vg1/lv1

然後您可以驗證 # open 在lvdisplay的輸出中下降到 0。

引用自:https://serverfault.com/questions/349882