首页 > 代码库 > 烂泥:KVM虚拟机的关机与开启

烂泥:KVM虚拟机的关机与开启

本文由秀依林枫提供友情赞助,首发于烂泥行天下

我们在开启与关闭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>

clip_image001

有关ACPI的相关信息,我们也可以通过KVM虚拟机的配置文件来查看,如下:

<features>

<acpi/>

<apic/>

<pae/>

</features>

clip_image002

如果要实现这些指令的功能,那么就需要在KVM的虚拟机中,安装ACPI服务,然后启动该服务即可。

KVM虚拟机中目前windows系统默认ACPI服务已经安装并启动,所以我们只需要对Linux进行安装ACPI服务即可。如下:

yum –y install acpid

clip_image003

clip_image004

ACPI服务安装完毕后,启动ACPI服务。我们就可以在KVM服务器上使用shutdown、reboot等命令来对虚拟机进行关机和重启。

clip_image005

clip_image006