在我的 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
)。执行此操作后,您应该能够将其删除。