[发明专利]一种实现虚拟机内存热添加的方法和装置有效
| 申请号: | 201710636247.6 | 申请日: | 2017-07-26 |
| 公开(公告)号: | CN107368353B | 公开(公告)日: | 2020-12-01 |
| 发明(设计)人: | 周胜利 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 李红爽;李丹 |
| 地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 虚拟机 内存 添加 方法 装置 | ||
本发明实施例公开了一种实现虚拟机内存热添加的方法和装置,所述方法包括:根据虚拟机中各个节点的内存大小进行虚拟机内存热添加;在所述虚拟机内存热添加成功后,通过修改虚拟机管理器的源码对数据库中保存的内存信息和所述虚拟机的当前内存信息进行更新,以保持所述数据库中保存的内存信息和所述虚拟机的当前内存信息的一致。本发明实施例能够有效地增加虚拟机迁移功能的应用场景,减少了迁移限制。
技术领域
本发明涉及虚拟机技术,尤指一种实现虚拟机内存热添加的方法和装置。
背景技术
传统服务器要升级配置,往往是需要停机的;在虚拟化环境下,实现在线升级配置从技术上和操作上都要更为容易一些,从而让客户在服务器负载超出预估需要升级配置时,依然能够保证服务的可用性。Linux内核已经实现了内存热插的支持,当一个linux系统不管运行在物理环境或者虚拟环境时只要宿主能提供内存热插拔机制,linux内核就能相应的增加或者减少内存。结合开源模拟器qemu内存和CPU热插拔的技术,可以实现生产环境下不中断业务的在线系统升级。若直接调用开源模拟器qemu提供的应用程序编程接口(Application Programming Interface,API),来进行内存热插,C函数库libvirt感知不到每次添加,无法对虚拟机(Virtual Machine,VM)进行打快照以及进行迁移。
发明内容
为了解决上述技术问题,本发明实施例提供了一种实现虚拟机内存热添加的方法和装置,可以通过。
为了达到本发明目的,一方面,本发明实施例提供了一种实现虚拟机内存热添加的方法,包括:
根据虚拟机中各个节点的内存大小进行虚拟机内存热添加;在所述虚拟机内存热添加成功后,通过修改虚拟机管理器的源码对数据库中保存的内存信息和所述虚拟机的当前内存信息进行更新,以保持所述数据库中保存的内存信息和所述虚拟机的当前内存信息的一致。
与现有技术相比,本发明实施例根据虚拟机中各个节点的内存大小进行虚拟机内存热添加;在所述虚拟机内存热添加成功后,通过修改虚拟机管理器的源码对数据库中保存的内存信息和所述虚拟机的当前内存信息进行更新,以保持所述数据库中保存的内存信息和所述虚拟机的当前内存信息的一致。本发明实施例能够有效地增加虚拟机迁移功能的应用场景,减少了迁移限制。
进一步地,所述虚拟机是使用开源模拟器qemu创建的;
所述虚拟机管理器为虚拟化工具libvirt。
进一步地,所述根据虚拟机中各个节点的内存大小进行虚拟机内存热添加包括:
获取所述虚拟机的非统一内存访问numa节点拓扑信息;
如果根据所述numa节点拓扑信息获知所述虚拟机中只有一个numa节点,则直接进行内存热添加;如果根据所述numa节点拓扑信息获知所述虚拟机中有多个numa节点,则获取内存最小的numa节点,并对所述内存最小的numa节点进行内存热添加。
进一步地,所述通过修改虚拟机管理器的源码对数据库中保存的内存信息和所述虚拟机的当前内存信息进行更新包括:
通过调用基于内核的kvm虚拟化接口对所述虚拟机进行管理;
通过修改虚拟化工具libvirt源码,对可扩展标记语言XML中的memory信息进行更新。
进一步地,所述进行虚拟机内存热添加包括:
所述Libvirt通过socket将内存热添加事件发送给qemu;
所述qemu根据所述内存热添加事件执行内存热添加;
在执行所述内存热添加之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710636247.6/2.html,转载请声明来源钻瓜专利网。





