问题:

Centos7上安装的KVM,某天重启服务器后查看虚拟机报错如下:

virsh list --all

error: failed to connect to the hypervisor error: unable to connect to server at '192.168.x.x:16514': Connection refused

以下是查找的网上方案,大家可以尝试下(对我并没有什么用):

方法一:

查看libvirtd服务是否启动,如未启动,则启动:

systemctl start libvirtd

还是不行的话尝试修改如下配置再重启:

sed -i 's/#listen_tls = 0/listen_tls = 0/g' /etc/libvirt/libvirtd.conf

sed -i 's/#listen_tcp = 1/listen_tcp = 1/g' /etc/libvirt/libvirtd.conf

sed -i 's/#auth_tcp = "sasl"/auth_tcp = "none"/g' /etc/libvirt/libvirtd.conf

sed -i 's/#LIBVIRTD_ARGS="--listen"/LIBVIRTD_ARGS="--listen"/g' /etc/sysconfig/libvirtd

systemctl restart libvirtd

方法二:

检查本地防火墙,看是否开启16514端口:

firewall-cmd --list-all

firewall-cmd --add-port=16514/tcp --permanent

firewall-cmd --reload

最后解决方案:

背景:由于我在安装了KVM的服务器上安装过VDSM,然后就有了sasl加密,加密后服务器使用virsh list命令不方便,每次都要输入密码,所以我将环境变量写入到全局环境变量中,如下:

1、vim /etc/libvirt/qemu.conf  将以下内容注释,该内容是安装VDSM自动增加的

#vnc_sasl = no
#spice_sasl = no

2、vim /etc/libvirt/libvirtd.conf  将以下内容注释取消

listen_tls = 0

listen_tcp = 1

3、修改环境变量

cat /etc/profile  (原)

export LIBVIRT_DEFAULT_URI=qemu+tls://root:xxpasswordxx@192.168.x.x/system

export LIBGUESTFS_BACKEND=direct

然后我又卸载了VDSM,但是执行virsh list命令密码还是一直存在,就各种修改配置文件,将sasl密码取消,还原到最开始只是安装了kvm的状态,但是这个事重启才会生效,所以今天重启后突然出现这个报错。最后解决是将之前增加的环境环境修改到之前的:

cat /etc/profile  (修改后)

#export LIBVIRT_DEFAULT_URI=qemu+tls://root:xxpasswordxx@192.168.x.x/system

#export LIBGUESTFS_BACKEND=direct

export LIBVIRT_DEFAULT_URI=qemu:///system

然后source /etc/profile执行后,环境变量生效,最后再次执行virsh list --all即恢复正常!!!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐