A.15. 虚拟机故障切换至关闭
通常,执行 virsh shutdown 命令会导致发送电源按钮 ACPI 事件,因此像在物理机上按电源按钮时复制相同的操作。在每个物理机器中,它取决于操作系统来处理此事件。在过去的操作系统中,只需静默地关闭。今天,最常见的操作是显示一个对话框,询问应该执行的操作。有些操作系统甚至完全忽略此事件,特别是在没有用户登录时。当在客户机虚拟机中安装此类操作系统时,运行 virsh shutdown just no work(它会被忽略,或者在虚拟显示中显示对话框)。但是,如果将 qemu-guest-agent 频道添加到客户机虚拟机虚拟机,且此代理在客户机虚拟机操作系统中运行,virsh shutdown 命令将要求代理关闭客户端操作系统,而不是发送 ACPI 事件。该代理将从客户机虚拟机操作系统内部调用关机,一切都可以正常工作。
过程 A.7. 在客户机虚拟机中配置客户机代理频道
- 停止 guest 虚拟机。
- 为客户机虚拟机打开 Domain XML,并添加以下内容:
图 A.2. 配置客户机代理频道
<channel type='unix'> <source mode='bind'/> <target type='virtio' name='org.qemu.guest_agent.0'/> </channel>
- 通过运行 virsh start [domain] 启动 guest 虚拟机。
- 在客户机虚拟机(yum install qemu-guest-agent )上安装 qemu-guest-agent,并使其在每次引导时自动运行(qemu-guest-agent.service)。