Proxmox VE虚拟机无法关机的解决思路

PVE上的虚拟机无法关机,确实一个蛋疼的问题。由于关机的原因有很多种,本文无法一一举例,只能提供一种解决思路。

PVE的关机流程

当我们在面板上,点击【关机】按钮时,PVE主机会向虚拟机发出一个ACPI关机信号,如果虚拟机支持ACPI,且响应了,那么虚拟机就会自动关机。

如果虚拟机无法响应ACPI,PVE会使用qemu-guest-agent和虚拟机通信,进行关机。

参考:

QEMU/KVM ACPI 来宾关机 - Proxmox VE

Qemu-guest-agent - Proxmox VE

探寻虚拟机正确关机的条件

1、需要虚拟机支持ACPI

这个方面由硬件和软件两方面组成。由于虚拟机是逻辑虚拟出来的硬件,所以在PVE的虚拟机配置中,需要启用ACPI,这个默认已经启动。

在软件方面,也就是OS侧,需要虚拟机启动ACPI支持并且已经安装了ACPI驱动程序。

在Windows上表现在设备管理器中能看到ACPI支持

在linux上,我们可以通过查看dmesg输出,看是否有ACPI记录

root@pve:~# dmesg |grep acpi
[    0.020289] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
[    0.074059] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.082175] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI HPX-Type3]
[    0.082181] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.

也可以在内核模块中看到ACPI模块

root@pve:~#  ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi
total 296
-rw-r--r-- 1 root root 16944 Nov 29 19:10 acpi_configfs.ko
-rw-r--r-- 1 root root 15424 Nov 29 19:10 acpi_extlog.ko
-rw-r--r-- 1 root root 21968 Nov 29 19:10 acpi_ipmi.ko
-rw-r--r-- 1 root root 55936 Nov 29 19:10 acpi_pad.ko
-rw-r--r-- 1 root root 21120 Nov 29 19:10 acpi_tad.ko
drwxr-xr-x 2 root root  4096 Apr 10 00:12 apei
drwxr-xr-x 2 root root  4096 Apr 10 00:12 dptf
-rw-r--r-- 1 root root  9176 Nov 29 19:10 ec_sys.ko
drwxr-xr-x 2 root root  4096 Apr 10 00:12 nfit
-rw-r--r-- 1 root root 12688 Nov 29 19:10 platform_profile.ko
-rw-r--r-- 1 root root 17096 Nov 29 19:10 sbshc.ko
-rw-r--r-- 1 root root 20464 Nov 29 19:10 sbs.ko
-rw-r--r-- 1 root root 77480 Nov 29 19:10 video.k

 

 

一般的Linux虚拟机都集成了kvm驱动,所以就Windows比较特殊,请务必安装好KVM驱动,可以前往本文下载:Proxmox VE KVM windows驱动下载virtio (buduanwang.vip)

 

2、需要安装qemu-guest-agent

这个也是需要硬件和软件相配合。

在pve的硬件配置中,需要启用qemu-guest-agent,

在OS上,需要安装好qemu-guest-agent。

对于Windows,qga程序被放置在驱动光盘的guest-agent文件夹中

安装好虚拟机之后,在pve面板上,会出现虚拟机信息,

更多的qemu-guest-agent信息,比如linux如何安装,请参考下面文章

PVE中 qemu guest agent的安装和使用 (buduanwang.vip)

不合符常理的情况

即便你部署好了符合最佳实践的环境,依然可能会出现出乎意料的情况,例如虚拟机内部hang死,这时候按关机是没用的。可以当关机任务超时而结束后,执行【停止】或者使用命令关闭qm stop <vmid>

如果出现了僵尸进程,停止也是没用的。

版权声明:
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/1647.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录