虚拟机vCPU热插拔

在虚拟机环境中,vCPU遵循ACPI(Advanced Configuration and Power Interface)规范,通过模拟ACPI GED来实现其功能。当在libvirt下发起vCPU热插拔请求时,QEMU(Quick EMUlator)会操作这个模拟的ACPI GED设备,向虚拟机发送中断信号。虚拟机内的ACPI固件接收到这一中断后,会作出响应,并调用相应的CPU热插拔事件处理函数,从而实现vCPU热插。

这一机制不仅支持vCPU线程的在线增加,也支持vCPU线程的在线减少。

应用场景

应用于业务负载动态波动,需要CPU动态调整资源以节省成本的场景中。

约束限制

从openEuler 24.03版本开始,AArch64架构新增了CPU热拔功能,但实现上采用了新的主线社区方案,和之前版本的CPU热插协议不兼容。Guest版本和Host版本需匹配,即openEuler 24.03及之后版本的Guest需搭配openEuler 24.03及将来版本的Host,openEuler 24.03之前版本的Guest需搭配openEuler 24.03之前版本的Host,才能正常使用CPU热插(拔)功能。