各系统配置QEMU Guest Agent解决PVE/群晖虚拟机无法关机问题
介绍在多个操作系统(包括 Linux 各发行版、Windows、OpenWrt 和群晖 DSM)上安装和配置 QEMU Guest Agent 的方法,解决 PVE 和群晖VMM 虚拟机无法关机等问题。
在 PVE 安装 Windows Step By Step 中提到,为了让 Windows 能够响应 PVE 的关机等事件,需要安装 QEMU Guest Agent,本文给出常见系统的 QEMU Guest Agent 安装方式供参考。
前言
在虚拟化平台中,都有一个客户机 Agent 用于与宿主机通信,向宿主机传递关于虚拟机的信息,包括用户、文件系统以及网络信息等。例如 VMware 平台上使用的是 VMware Tools。Proxmox VE 是基于 KVM(Kernel-based Virtual Machine)的虚拟化平台,使用的是 qemu-guest-agent,因此除了 PVE,其他一些基于 KVM 的平台,如群晖的 Virtual Machine Manager (VMM)、 Red Hat Virtualization 和 OpenStack,也可以参考本文在客户机安装 qemu-guest-agent。
根据 PVE 的文档,qemu-guest-agent 是一个安装在客户机中的辅助守护程序,用于在宿主机和客户机之间交换信息,并在客户机中执行命令。
在 Proxmox VE 中,qemu-guest-agent 主要用于三个方面:
- 用于正确地关闭客户机,而不是依赖于 ACPI 命令或 Windows 策略。
- 在进行备份/快照时冻结客户机的文件系统(在 Windows 上,使用卷影复制服务 VSS)。如果启用了客户机代理并且它正在运行,它会调用 guest-fsfreeze-freeze 和 guest-fsfreeze-thaw 来提高一致性。
- 在客户机(虚拟机)暂停后恢复(例如在快照之后)的阶段,它会立即使用 qemu-guest-agent 与超级管理程序同步时间(作为第一步)。
Linux
Linux 的安装方式都差不多,使用各自的包管理器安装,然后启动服务就可以了。
For Arch Linux
|
|
For Debian/Ubuntu
|
|
For Redhat
|
|
Windows
访问网站 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/ 下载 Virtio 驱动,例如 virtio-win-0.1.240.iso
,上传到 Windows 虚拟机。打开镜像文件,在 guest-agent 文件夹中,安装「qemu-ga-x86_64.exe」,然后重启系统。
OpenWrt
登录 SSH 或者 WebShell,使用以下命令更新并安装 QEMU guest-agent,并重启系统。
|
|
如果提示找不到 qemu-ga,需要更换软件源为官方源,可以按以下步骤操作:
在 WEB 后台,「系统」-「软件包」-「发行版软件源」里,替换域名为官方域名或者镜像,然后再安装。
官方软件源类似如下,注意版本和架构不同,不要直接复制,只替换域名即可。PS:此文撰写时腾讯云镜像也是可以的。
|
|
群晖 Synology DSM
群晖部分参考:https://imnks.com/9522.html
在套件中心 - 设置 - 套件来源中,添加「矿神 SPK」源,地址分别是:
- DSM6:https://spk.imnks.com/,还需要在「常规」-「信任层级」中选中「任何发行者」
- DSM7:https://spk7.imnks.com/
如果提示无效的源,需要在 SSH 中,使用如下命令更新 CA 根证书,更新后还是无效就重启系统再添加。
1
sudo mv /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.bak && sudo curl -Lko /etc/ssl/certs/ca-certificates.crt https://curl.se/ca/cacert.pem
在套件中心中搜索「QEMU Guest Agent」,并安装,安装后不要启动。 ![CleanShot 2023-12-11 at 00.31.51@2x](./各系统配置 QEMU Guest Agent.assets/CleanShot 2023-12-11 at 00.31.51@2x.webp)
安装后 SSH 按照说明运行以下命令,然后启动套件。
1
sudo sed -i 's/package/root/g' /var/packages/qemu-ga/conf/privilege
在 PVE 的虚拟机设置中,为 DMS 新增一个串口编号为 0 的串口设备,否则可能检测不到 QEMU Guest Agent。