一种内存分配方法及相关产品组成比例

技术编号:39007771 阅读:9 留言:0更新日期:2023-10-07 10:39
本申请公开了一种内存分配方法及相关产品,其中,该方法包括:在第一计算节点不能够满足第一VM所需要的内存时,迁移第一计算节点上的一个或多个第二VM到第二计算节点,以及在第一计算节点为第一VM分配内存。利用上述方法能够避免第一VM因无法获得内存资源而无法正常运行的情况。进一步地,当第一计算节点使用内存超分的方式处理第一计算节点上的内存资源时,利用上述方法可以保证第一计算节点上的VM不会因无法获得内存资源而无法正常运行,从而提高第一计算节点上资源的利用率。提高第一计算节点上资源的利用率。提高第一计算节点上资源的利用率。

【技术实现步骤摘要】
一种内存分配方法及相关产品


[0001]本申请涉及虚拟化
,尤其涉及一种内存分配方法及相关产品。

技术介绍

[0002]在虚拟化场景下,一台物理主机可以虚拟成多台虚拟机(virtual machine,VM)。而且,为了保证VM能够正常运行,物理主机需要给VM分配相应的内存资源。但是,不同VM对内存资源的需求可能不同,这就可能出现内存超分的问题,从而导致部分VM因无法获得内存资源而无法正常运行。
[0003]因此,如何给VM分配内存资源仍然是当前急需解决的问题。

技术实现思路

[0004]本申请提供了一种内存分配方法及相关产品,能够避免物理主机上的VM因无法获得内存资源而无法正常运行的情况。
[0005]第一方面,本申请提供了一种内存分配方法,该方法包括:在第一计算节点不能够满足第一VM所需要的内存时,迁移第一计算节点上的一个或多个第二VM到第二计算节点,并在第一计算节点为第一VM分配内存。如此,可以避免第一VM因无法获得内存资源而无法正常运行的情况。进一步地,基于上述方法,第一计算节点可用使用内存超分的方式处理第一计算节点上的内存资源,而且通过实施上述方法,即使第一计算节点处于内存超分模式,第一计算节点上的VM依然能够正常运行,从而提高了第一计算节点上资源的利用率。
[0006]在第一方面的一种可能的实现方式中,上述第一计算节点为第一VM分配内存,包括:在第一计算节点为第一VM增加分配内存。应理解,在实际应用中,第一VM运行过程中可能被配置为需要使用内存时才会申请内存,而且需要使用多少内存才会申请多少内存,基于上述实现方式可以给被配置为上述类型的第一VM分配内存。
[0007]在第一方面的一种可能的实现方式中,上述第一计算节点为第一VM分配内存,包括:在迁移一个或多个第二VM时,延迟在第一计算节点为第一VM增加分配内存。应理解,迁移VM需要时间,相较于上述一个或多个第二VM迁移完成之后再为第一VM增加分配内存,通过上述实现方式,可以减少因迁移上述一个或多个第二VM而给第一VM的运行带来的影响,从而保障了部署在第一VM上的业务。
[0008]在第一方面的一种可能的实现方式中,上述第一计算节点为第一VM分配内存,包括:在第一计算节点为第一VM增加分配第一VM请求的内存容量。
[0009]在第一方面的一种可能的实现方式中,如果第一计算节点上的可用内存容量与第一VM请求的内存容量的差值小于阈值,则第一计算节点不能够满足第一VM所需要的内存。
[0010]在第一方面的一种可能的实现方式中,在迁移第一计算节点上的一个或多个第二VM到第二计算节点之前,上述方法还包括:暂停上述一个或多个第二VM。如此,可以控制上述一个或多个第二VM的迁移时间。
[0011]在第一方面的一种可能的实现方式中,上述一个或多个第二VM满足以下一个或多
个条件:一个或多个第二VM占用的总内存容量大于上述阈值,迁移一个或多个第二VM所用的时间小于耗尽第一计算节点上的可用内存容量所用的时间。如此,可以保证第一计算节点上可用的内存资源不被耗尽,从而保证第一计算节点上的VM可以正常运行。
[0012]在第一方面的一种可能的实现方式中,上述第二计算节点能够满足上述一个或多个第二VM所需的总内存容量的要求,其中,上述一个或多个第二VM所需的总内存容量包括上述一个或多个第二VM占用的总内存容量。在上述一个或多个第二VM中的所有VM在迁移到第二计算节点之前,均未向第一计算节点申请了内存的情况下,上述一个或多个第二VM所需的总内存容量即为上述一个或多个第二VM占用的总内存容量。在上述一个或多个第二VM中的任意一个或多个VM(如目标第二VM)在迁移到第二计算节点之前,还向第一计算节点申请了内存的情况下,上述一个或多个第二VM所需的总内存容量除了包括上述一个或多个第二VM占用的总内存容量,还包括上述任意一个或多个VM在迁移到第二计算节点前向第一计算节点申请的总内存容量。如此,可以保证上述一个或多个第二VM在第二计算节点上正常运行。
[0013]在第一方面的一种可能的实现方式中,上述迁移第一计算节点上的一个或多个第二VM到第二计算节点,包括:将一个或多个第二VM中的目标第二VM的迁移状态信息发送到第二计算节点,其中,目标第二VM的迁移状态信息包括目标第二VM的物理地址偏移、以及目标第二VM在迁移到第二计算节点之前向第一计算节点请求的内存容量。
[0014]在第一方面的一种可能的实现方式中,上述方法还包括:在第二计算节点基于目标第二VM的物理地址偏移、以及目标第二VM在迁移到第二计算节点之前向第一计算节点请求的内存容量,为目标第二VM分配内存。如此,第二VM便可以通过上述分配的内存在第二计算节点上继续运行。
[0015]第二方面,本申请提供了一种内存分配方法,该方法包括:在第一计算节点不能够满足第一VM所需要的内存时,暂停第一VM,然后将第一VM从第一计算节点迁移到第二计算节点,并在第一计算节点为第一计算节点上的第二VM分配内存。如此,不仅可以避免第一VM因无法获得内存资源而无法正常运行,还可以增加第一计算节点上可用的内存资源,从而为第一计算节点上的第二VM分配内存。
[0016]在第二方面的一种可能的实现方式中,如果第一计算节点上的可用内存容量与第一VM请求的内存容量的差值小于阈值,则第一计算节点不能够满足第一VM所需要的内存。
[0017]在第二方面的一种可能的实现方式中,上述第二计算节点能够满足第一VM占用的内存容量和第一VM请求的内存容量的要求。如此,可以保证第一VM在第二计算节点上能够正常运行,从而不会影响到部署在第一VM上的业务。
[0018]在第二方面的一种可能的实现方式中,上述方法还包括:在第二计算节点为第一VM分配内存,以使得第一VM在第二计算节点上恢复运行。
[0019]在第二方面的一种可能的实现方式中,上述将第一VM从第一计算节点迁移到第二计算节点,包括:将第一VM的迁移状态信息发送到第二计算节点,其中,第一VM的迁移状态信息包括第一VM请求的内存容量和第一VM的物理地址偏移。
[0020]在第二方面的一种可能的实现方式中,上述在第二计算节点为第一VM分配内存,包括:在第二计算节点基于第一VM请求的内存容量和第一VM的物理地址偏移为第一VM分配内存。
[0021]第三方面,本申请提供了一种内存分配装置,该装置包括调度模块和内存管理模块。其中,调度模块用于在第一计算节点不能够满足第一VM所需要的内存时,迁移第一计算节点上的一个或多个第二VM到第二计算节点;内存管理模块用于在第一计算节点为第一VM分配内存。
[0022]在第三方面的一种可能的实现方式中,上述内存管理模块用于在第一计算节点为第一VM增加分配内存。
[0023]在第三方面的一种可能的实现方式中,上述内存管理模块用于在迁移一个或多个第二VM时,延迟在第一计算节点为第一VM增加分配内存。
[0024]在第三方面的一种可能的实现方式中,上述内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配方法,其特征在于,包括:在第一计算节点不能够满足第一虚拟机VM所需要的内存时,迁移所述第一计算节点上的一个或多个第二VM到第二计算节点;在所述第一计算节点为所述第一VM分配内存。2.根据权利要求1所述的方法,其特征在于,所述在所述第一计算节点为所述第一VM分配内存,包括:在所述第一计算节点为所述第一VM增加分配内存。3.根据权利要求1所述的方法,其特征在于,所述在所述第一计算节点为所述第一VM分配内存,包括:在迁移所述一个或多个第二VM时,延迟在所述第一计算节点为所述第一VM增加分配内存。4.根据权利要求1所述的方法,其特征在于,所述在所述第一计算节点为所述第一VM分配内存,包括:在所述第一计算节点为所述第一VM增加分配所述第一VM请求的内存容量。5.根据权利要求1

4任一项所述的方法,其特征在于,如果所述第一计算节点上的可用内存容量与所述第一VM请求的内存容量的差值小于阈值,则所述第一计算节点不能够满足所述第一VM所需要的内存。6.根据权利要求1

5任一项所述的方法,其特征在于,在所述迁移所述第一计算节点上的一个或多个第二VM到第二计算节点之前,所述方法还包括:暂停所述一个或多个第二VM。7.根据权利要求5所述的方法,其特征在于,所述一个或多个第二VM满足以下一个或多个条件:所述一个或多个第二VM占用的总内存容量大于所述阈值,迁移所述一个或多个第二VM所用的时间小于耗尽所述第一计算节点上的可用内存容量所用的时间。8.根据权利要求7所述的方法,其特征在于,所述第二计算节点能够满足所述一个或多个第二VM所需的总内存容量的要求,其中,所述一个或多个第二VM所需的总内存容量包括所述一个或多个第二VM占用的总内存容量。9.根据权利要求8所述的方法,其特征在于,所述迁移所述第一计算节点上的一个或多个第二VM到第二计算节点,包括:将所述一个或多个第二VM中的目标第二VM的迁移状态信息发送到所述第二计算节点,其中,所述目标第二VM的迁移状态信息包括所述目标第二VM的物理地址偏移、以及所述目标第二VM在迁移到所述第二计算节点之前向所述第一计算节点请求的内存容量。10.根据权利要求9所述的方法,其特征在于,还包括:在所述第二计算节点基于所述目标第二VM的物理地址偏移、以及所述目标第二VM在迁移到所述第二计算节点之前向所述第一计算节点请求的内存容量,为所述目标第二VM分配内存。11.一种内存分配方法,其特征在于,包括:在第一计算节点不能够满足第一虚拟机VM所需要的内存时,暂停所述第一VM;将所述第一VM从所述第一计算节点迁移到第二计算节点;在所述第一计算节点为所述第一计算节点上的第二VM分配内存。12.根据权利要求11所述的方法,其特征在于,如果所述第一计算节点上的可用内存容
量与所述第一VM请求的内存容量的差值小于阈值,则所述第一计算节点不能够满足所述第一VM所需要的内存。13.根据权利要求12所述的方法,其特征在于,所述第二计算节点能够满足所述第一VM占用的内存容量和所述第一VM请求的内存容量的要求。14.根据权利要求13所述的方法,其特征在于,还包括:在所述第二计算节点为所述第一VM分配内存。15.根据权利要求12

14任一项所述的方法,其特征在于,所述将所述第一VM从所述第一计算节点迁移到第二计算节点,包括:将所述第一VM的迁移状态信息发送到所述第二计算节点,其中,所述第一VM的迁移状态信息包括所述第一VM请求的内存容量和所述第一VM的物理地址偏移。16.根据权利要求15所述的方法,其特征在于,所述在所述第二计算节点为所述第一VM分配内存,包括:在所述第二计算节点基于所述第一VM请求的内存容量和所述第一VM的物理地址偏移为所述第一VM分配内存。17.一种内存分配装置,其特征在于,包括:调度模块,用于在第一计算节点不能够满足第一虚拟机VM所需要的内存时,迁移所述第一计算节点上的一个或多个第二VM到第二计算节点;内存管理模块,用于在所述第一计算节点为所述第一VM分配内存。18.根据权利要求17所述的装置,其特征在于,所述内存管理模块,用于在所述第一计算节点为所述第一VM增加分配内存。19.根据权利要求17所述的装置,其特征在于,所述内存管理模块,用于在迁移所述一个或多个第二VM时,延迟在所述第一计算节点为所述第一VM增加分配内存。20.根据权利要求17所述的装置,其特征在于,所述内存管理模块,用于在所述第一计算节点为所述第一VM增加分配所述第一VM请求的内存容量。21.根据权利要求17

【专利技术属性】
技术研发人员:黄朝意
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1