问题描述:
在Centos机器上,如果我们尝试通过virsh vol-delete命令删除用于运行vm的SCSI磁盘映像(通过virt-manager添加),获取"无法取消链接文件' XXX&#39 ;:成功"错误。
此错误间歇性地发生,仅当我们尝试在vm运行时删除磁盘映像时才会发生。
版本 - 所选组件的版本号(如果适用):
操作系统:CentOS Linux版本7.2.1511
Libvirt库: [root @ CV-HJ-CentOS7-02图片] #virsh版 针对库编译:libvirt 1.2.17 使用库:libvirt 1.2.17 使用API:QEMU 1.2.17 运行虚拟机管理程序:QEMU 1.5.3
重现步骤:
实际结果:
它给出了以下错误: 错误:无法删除vol /var/lib/libvirt/images/.img 错误:无法取消链接文件' /var/lib/libvirt/images/.img':成功
答案 0 :(得分:2)
我遇到了同样的问题,这是一个文件权限问题。从Centos 7.1升级到7.2后,我也面对它了。
要解决此问题,请确保存储图像的目录的所有者(默认池为/ var / lib / libvirt / images)是" user"中定义的所有者。 /etc/libvirt/qemu.conf中的选项(默认用户是qemu)。
如果您还没有触及默认设置:
# chown qemu:qemu /var/lib/libvirt/images
然后创建一个新图像并尝试删除它。它应该成功。
答案 1 :(得分:0)
在将磁盘映像从正在运行的VM中分离之前,您似乎正在尝试删除磁盘映像,这是不允许的。您需要首先分离磁盘,然后进行池刷新,然后您就可以删除它。
以下是使用“f23-tst_default”作为我的VM名称(域名)和名为“f23-test_default.qcow2”的磁盘的示例,我想删除它:
# virsh domblklist f23-tst_default
Target Source
------------------------------------------------
vda /var/lib/libvirt/images/f23-tst_default.img
sda /var/lib/libvirt/images/f23-tst_default.qcow2
# virsh detach-disk f23-tst_default --target sda
Disk detached successfully
# virsh domblklist f23-tst_default
Target Source
------------------------------------------------
vda /var/lib/libvirt/images/f23-tst_default.img
# virsh pool-refresh default
Pool default refreshed
# virsh vol-delete --pool default f23-tst_default.qcow2
Vol f23-tst_default.qcow2 deleted
如果您没有进行“池刷新”,那么virsh不会意识到该域名不再使用该卷,因此不允许您将其删除。