我们在开启与关闭KVM虚拟机时,一般是通过start、shutdown、reboot等命令来进行。但是有时候我们会发现在使用shutdown、reboot命令进行关闭和重启虚拟机时,虚拟机没有任何反应,该怎么运行还是怎么运行,这个时候我们可能就会使用destroy暴力关机。
为什么会出现这种现象?经过查询相关资料发现,原来这几个命令是向KVM虚拟机发送一个ACPI指令,来实现相关对虚拟机的操作。
而默认安装KVM虚拟机时,特别是linux虚拟机,没有安装ACPI服务,因此导致虚拟机没有对这些命令做出相应的动作。
有关这些命令,我们可以在KVM虚拟机的配置文件中找到:
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
有关ACPI的相关信息,我们也可以通过KVM虚拟机的配置文件来查看,如下:
<features>
<acpi/>
<apic/>
<pae/>
</features>
如果要实现这些指令的功能,那么就需要在KVM的虚拟机中,安装ACPI服务,然后启动该服务即可。
KVM虚拟机中目前windows系统默认ACPI服务已经安装并启动,所以我们只需要对Linux进行安装ACPI服务即可。如下:
yum –y install acpid
ACPI服务安装完毕后,启动ACPI服务。我们就可以在KVM服务器上使用shutdown、reboot等命令来对虚拟机进行关机和重启。