基于共享存储进行热迁移的如下报错可供参考
报错:
[root@kvm01 ~]# virsh start vm01
错误:开始域 vm01 失败
错误:internal error: process exited while connecting to monitor: 2023-07-04T07:52:31.136061Z qemu-kvm: -drive file=/kvm/vm01.img,format=qcow2,if=none,id=drive-virtio-disk0: could not open disk image /kvm/vm01.img: Could not open ‘/kvm/vm01.img’: Permission denied
原因:
根据报错可以看出是权限问题,但通过修改实则不然。最后发现是没有关闭kvm宿主机selinux防火墙导致。。。但后面我依然会给出权限解决方式
解决:
这里给几个解决的方式,尝试能否解决你的困境、
方式一:关闭所有防火墙(nfs和kvm宿主机)
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld //禁止开机自启
查看防火墙状态
systemctl status firewalld
关闭selinux防火墙
setenforce 0
禁止开机自启需修改配置文件
vi /etc/selinux/config
--SELINUX=enforcing //二者存一,另一个注释掉,这个是允许开机自启
--SELINUX=disabled //禁止开机自启
查看防火墙状态
getenforce
--Permissive //此状态为关闭
方式二:修改nfs配置的挂载权限,然后修改文件夹内用户和组为qemu
1.在nfs服务器内修改配置文件
vi /etc/exports
(rw,sync,no_root_squash)
–no_root_squash 禁止给root做用户映射,挂载nfs的宿主机就可以执行root权限,从而修改文件权限
–all_squash 将远程访问的所有普通用户及所属组映射为匿名用户或用户组(nfsnobody,默认65534为nfsnobody的uid和gid),无修改权限
2.让配置文件生效
exportfs -r
3.稳一点重启一下nfs服务
systemctl restart rpcbind nfs
4.kvm宿主机修改用户组
chown -R qemu.qemu /kvm
// /kvm是kvm宿主机mount nfs的目录
方式三:
1.修改libvirt配置文件
vi /etc/libvirt/qemu.conf
2.在配置文件末尾添加,或者直接取消配置文件内的注释。
user = "root"
group = "root"
3.重启服务
systemctl restart libvirtd