终止 lvm 快照内的进程

终止 lvm 快照内的进程

在我的 XEN 主机中,我有一个无法使用以下方法删除的快照lvremove

$ lvremove /dev/vg0/snap-tmp-vm06.docker-disk -fdv
DEGRADED MODE. Incomplete RAID LVs will be processed.
Using logical volume(s) on command line
Device dm-36 (253:36) appears to be mounted on /media/snapshots/tmp-vm06.docker-disk.
Logical volume vg0/snap-tmp-vm06.docker-disk contains a filesystem in use.

好像有一个进程挂了:

$ fuser -mv /dev/vg0/snap-tmp-vm06.docker-disk                                                                                                               
                     USER        PID ACCESS COMMAND
/dev/dm-36:          root     kernel mount /media/snapshots/tmp-vm06.docker-disk

更多信息:

$ lvs|grep docker
  snap-tmp-vm06.docker-disk       vg0  swi-aos---   4.00g      vm06.docker-disk       20.44                                  
  vm06.docker-disk                vg0  owi-aos---  80.00g                                                                    
  vm06.docker-swap                vg0  -wi-ao----   8.00g                                                                    
$ lvdisplay vg0/snap-tmp-vm06.docker-disk                                                                                                                    
  --- Logical volume ---
  LV Path                /dev/vg0/snap-tmp-vm06.docker-disk
  LV Name                snap-tmp-vm06.docker-disk
  VG Name                vg0
  LV UUID                xdoeHC-7PZ6-LUiZ-QKzS-QEf8-NJcU-bEpKHG
  LV Write Access        read/write
  LV Creation host, time xen-eclabs, 2018-08-15 02:21:02 +0200
  LV snapshot status     active destination for vm06.docker-disk
  LV Status              available
  # open                 1
  LV Size                80.00 GiB
  Current LE             20480
  COW-table size         4.00 GiB
  COW-table LE           1024
  Allocated to snapshot  20.44%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:36

我也尝试过:

$dmsetup remove /dev/vg0/snap-tmp-vm06.docker-disk
device-mapper: remove ioctl on vg0-snap--tmp--vm06.docker--disk failed: Device or resource busy
Command failed

我尝试用

$ umount -l /media/snapshots/tmp-vm06.docker-disk

-l(因为很忙所以只能用)但是这并没有改变错误消息,因为fuser没有再用 输出。我仍然无法使用lvremove

我该如何终止该进程以便可以删除快照?


解决方法:我重新启动了整个 XEN 主机(但我宁愿下次有一个解决方案)

答案1

IMHO fuser 命令仅表明该快照安装在 /media/snapshots/tmp-vm06.docker-disk 上。

首先尝试umount /media/snapshots/tmp-vm06.docker-disk一下,然后你就应该能够将其删除。

答案2

我相信你必须确保所有这些都是真实的:

  • 没有进程正在使用卷
  • 该卷已卸载(lvdisplay应该说# open 0
  • lvm LV 处于非活动状态

从你的问题来看,我认为前两个已经完成了。对于最后一个,你需要做

# lvchange -an /dev/vg0/snap-tmp-vm06.docker-disk

这应该会使卷处于非活动状态(lvdisplay vg0/snap-tmp-vm06.docker-disk应该有一行LV snapshot status inactive)。执行此操作后,您应该能够将其删除。

相关内容