首先,我对 xen vm 技术相当陌生,如果我使用了错误的词汇,请提前抱歉。所以发生的事情是我从我的虚拟机中拍摄了一个快照,过了一会儿,一个 cronjob 尝试创建第二个快照,但由于 LVM 分区没有足够的空间而失败。我从 XCP-ng Center 中删除了手动快照。但空间并没有被释放。
我使用过lvs
,这就是我得到的(为了更好的可读性而格式化):
左室 | VG | 属性 | 尺寸 | ... |
---|---|---|---|---|
MGT | VG_XenStorage-9f728af0-0817-f908-63ae-5a06ce6914fe | -wi-a----- | 4.00米 | |
VHD-9f6e2f19-1d88-4c26-8de8-9da27c9a99c6 | VG_XenStorage-9f728af0-0817-f908-63ae-5a06ce6914fe | -ri-ao---- | 346.50克 | |
VHD-f0e775ff-5b43-497d-acbb-419874db1bb1 | VG_XenStorage-9f728af0-0817-f908-63ae-5a06ce6914fe | -wi-ao---- | 350.69克 | |
0983d936-77c9-f18a-0014-89b326963425 | XSLocalEXT-0983d936-77c9-f18a-0014-89b326963425 | -wi-ao---- | <5.46吨 |
点列都是Pool Origin Data% Meta% Move Log Cpy%Sync Convert
空的。我相当确定这VHD-9f6e2f19-1d88-4c26-8de8-9da27c9a99c6
就是需要删除的 LV。
我使用xe vdi-list
并找到了与该LV对应的vdi。此 vdi 未分配 vbd,sr-uuid 为<not in database>
,名称标签为base-copy
。我试过xe vdi-destroy uuid=$th_uuid
。但它失败并显示消息:“无法删除 vdi,因为它不受系统管理”(我不确定这是否是确切的措辞)我也尝试直接删除 LV,但由于正在使用而失败。
然后我确实xe vdi-forget uuid=$the_uuid
希望这能释放资源/解锁 LV。 VDI 现在已经消失,但 LV 仍然存在。
我试过lvremove -f /dev/VG_XenStorage-9f728af0-0817-f908-63ae-5a06ce6914fe/VHD-9f6e2f19-1d88-4c26-8de8-9da27c9a99c6 --config global{metadata_read_only=0}
但仍然无法使用。当我这样做时lsof /dev/VG_XenStorage-9f728af0-0817-f908-63ae-5a06ce6914fe/VHD-9f6e2f19-1d88-4c26-8de8-9da27c9a99c6
它返回(再次格式化)
命令 | PID | 用户 | FD | 类型 | 设备 | 尺寸/关闭 | 节点 | 姓名 |
---|---|---|---|---|---|---|---|---|
录音盘 | 28534 | 根 | 18r | 黑 | 253,3 | 0t4218880 | 39811683 | /dev/mapper/VG_XenStorage--9f728af0--0817--f908--63ae--5a06ce6914fe-VHD--9f6e2f19--1d88--4c26--8de8--9da27c9a99c6 |
当我做lsof /dev/VG_XenStorage-9f728af0-0817-f908-63ae-5a06ce6914fe/VHD-f0e775ff-5b43-497d-acbb-419874db1bb1
(我不想碰的LV)时,它显示:
命令 | PID | 用户 | FD | 类型 | 设备 | 尺寸/关闭 | 节点 | 姓名 |
---|---|---|---|---|---|---|---|---|
录音盘 | 28534 | 根 | 17u | 黑 | 253,2 | 0t4327936 | 39810421 | /dev/mapper/VG_XenStorage--9f728af0--0817--f908--63ae--5a06ce6914fe-VHD--f0e775ff--5b43--497d--acbb--419874db1bb1 |
请注意相同的 PID,这让我觉得我不应该仅仅杀死该进程。
因此,我们非常感谢任何有关如何处理这种情况的建议,如果您需要更多信息,请告诉我。
答案1
我不确定 Xen 是如何工作的(我对这种事情也是新手),我曾经删除一个逻辑卷,例如交换分区:
我会做以下事情:
# lvremove /dev/mapper/vg0-swap
但如果是其他卷,我想你应该首先执行以下操作:
首先,卸载逻辑卷:
# umount /dev/mapper/vg0-var
进而:
# lvremove /dev/mapper/vg0-var