鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

QEMU虚拟机内存热插

QEMU是一个快捷的跨平台开源计算模拟器,可以模拟许多硬件体系结构,通常用于与libvirt相结合,为用户的虚拟机提供模拟真实硬件的运行环境,方便大规模虚拟机的管理及调度。

虚拟机内存热插是一种虚拟化技术,基于QEMU实现了给处于运行状态的虚拟机动态扩展内存容量。然而,当前的ARM64架构平台上,QEMU 6.2.0的原生版本面临着一项技术局限:它不支持启动那些NUMA配置中初始内存设置为0的虚拟机,同时也无法实现这类虚拟机的内存热插功能。这一限制减少了QEMU的实际应用场景。

鲲鹏BoostKit推出的QEMU虚拟机内存热插特性基于QEMU现有的内存热插逻辑基础,通过应用Patch的方式进行了功能扩展。特性通过源码开源的方式发布在Gitee。该特性使得虚拟机的XML配置文件中可以包含一个初始内存配置为0的NUMA节点,并且允许后续通过内存热插相关命令,动态地向该NUMA节点增加内存。这一改进极大地拓展了QEMU的实际应用场景。

应用场景

在虚拟机大规模且集中管理的环境中,尤其是在云计算平台上,为了高效地管理大量虚拟机,经常需要预先在虚拟机中保留具有未分配内存的NUMA节点。这一做法旨在为后续的内存动态扩展提供便利,确保在资源需求增长时,能够迅速且有效地增加内存资源。

约束与限制

  • 操作系统约束

    支持openEuler 22.03 LTS SP4操作系统。

  • 虚拟机规格约束

    虚拟机所配置的NUMA节点中,至多可以有一个NUMA节点的初始内存配置为0。

  • 热插规格约束

    为了满足QEMU的要求,虚拟机XML配置文件中必须包含maxMemory节点。该节点的作用是指定虚拟机能够进行热插的内存插槽数量(通过slots属性)以及通过热插所能达到的最大内存总量(通过maxMemory值)。

    除虚拟机XML配置文件中的约束外,在不同的系统上,物理机的部分配置参数也同样会限制其上虚拟机能够进行的最大热插次数,以及通过热插能够达到的最大内存总量,具体约束项据操作系统类型而定。