一种控制内存气球的方法、装置和系统与流程

文档序号:13181726阅读:248来源:国知局
技术领域本发明涉及计算机领域,尤其涉及一种控制内存气球的方法、装置和系统。

背景技术:
内存气球技术是虚拟化场景中的一种常用的内存复用技术。内存气球技术指的是物理主机(host)服务器主动回收客户虚拟机(guest)暂时不用的物理内存,分配给需要复用内存的客户虚拟机。内存的回收和分配均为物理主机服务器动态执行,客户虚拟机上的应用无感知。所有客户虚拟机使用的内存总量不能超过该服务器的物理内存总量。现有技术中,在使用内存气球时,物理主机服务器通过监控客户虚拟机的内存使用情况,向客户虚拟机中的气球(balloon)驱动发送消息,所述消息中携带指定客户虚拟机可占用的目标内存容量值。当物理主机的内存使用紧张,空余内存不足时,可以请求客户虚拟机回收利用已分配给客户虚拟机的部分内存,客户虚拟机就会释放其空闲的内存,客户虚拟机的balloon驱动执行内存气球增加操作,增加的气球内存即为被释放出来的内存,从而让物理主机服务器回收内存气球中的内存可用于其他进程或其他客户虚拟机;当客户虚拟机中的空余内存不足时,客户虚拟机的balloon驱动执行内存气球压缩操作,释放出内存气球中的部分内存,让客户虚拟机使用更多的内存,从而控制了客户虚拟机实际使用的内存量。由此可知,现有的使用内存气球技术来控制客户虚拟机的内存容量时,需要通过外部监控来设置客户虚拟机可占用的目标内存容量值,无法控制客户虚拟机内存气球的操作结束时间,使客户虚拟机内部在所运行的业务压力较大的场景下,会存在气球驱动占用或释放内存很慢的情况,造成客户虚拟机内存处理耗时过长的问题。

技术实现要素:
本发明实施例提供一种控制内存气球的方法、装置和系统,以解决由于无法控制客户虚拟机内存气球的操作结束时间,造成客户虚拟机内存处理耗时过长的问题。本发明实施例提供的具体技术方案如下:第一方面,提供一种控制内存气球的方法,包括:安装在客户虚拟机上的气球驱动接收到物理主机服务器发送的定时设置策略时,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述气球驱动基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;所述气球驱动获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。在第一方面的基础上,可选的,所述气球驱动基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值,包括:在所述内存气球压缩信息为内存气球压缩量时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值;在所述内存气球压缩信息为内存气球压缩比时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息与所述客户虚拟机的初始内存值的乘积,其中,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值,所述客户虚拟机的初始内存值为所述客户虚拟机初始化过程中所述物理主机服务器分配的内存值。在第一方面的基础上,可选的,所述方法还包括:所述气球驱动在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;所述气球驱动在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。第二方面,提供一种控制内存气球的方法,包括:物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述物理主机服务器将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。在第二方面的基础上,可选的,在所述内存气球压缩信息为内存气球压缩量或存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。在第二方面的基础上,可选的,物理主机服务器生成内存气球的定时设置策略,包括:所述物理主机服务器检测所述客户虚拟机的实际使用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。第三方面,提供一种应用在客户虚拟机上的控制内存气球的装置,包括:接收单元,用于接收到物理主机服务器发送的定时设置策略,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;确定单元,用于基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;处理单元,用于获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。在第三方面的基础上,可选的,所述确定单元基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值时,具体用于:在所述内存气球压缩信息为内存气球压缩量时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值;在所述内存气球压缩信息为内存气球压缩比时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息与所述客户虚拟机的初始内存值的乘积,其中,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值,所述客户虚拟机的初始内存值为所述客户虚拟机初始化过程中所述物理主机服务器分配的内存值。在第三方面的基础上,可选的,所述处理单元还用于:在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。第四方面,提供一种控制内存气球的装置,包括:生成单元,用于生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;发送单元,用于将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。在第四方面的基础上,可选的,在所述内存气球压缩信息为内存气球压缩量或存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。在第四方面的基础上,可选的,所述生成单元在生成内存气球的定时设置策略时,具体用于:检测所述客户虚拟机的实际使用内存值和允许使用的可用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。第五方面,提供一种控制内存气球的系统,包括:如第三方面所述的装置和如第四方面所述的装置。本发明实施例提供的控制内存气球的方案,能够使部署在物理主机上的客户虚拟机根据物理主机服务器发送的定时设置策略来进行相应的内存气球操作,能够解决内存气球操作过程中,由于业务压力造成的客户虚拟机上内存气球操作耗时过长的问题,能够控制客户虚拟机上内存气球操作的处理时间。附图说明图1为本发明实施例中的balloon驱动运行场景示意图;图2为本发明实施例中控制内存气球的方法流程图;图3为Linux系统中Balloon驱动获取客户虚拟机允许使用的可用内存值示意图;图4为本发明实施中应用在客户虚拟机上的控制内存气球的装置结构示意图;图5为本发明实施中一种控制内存气球的设备结构示意图;图6为本发明实施中另一种控制内存气球的装置结构示意图;图7为本发明实施中另一种控制内存气球的设备结构示意图;具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。1)、客户虚拟机(VirtualMachine,VM),通过软件模拟的具有完整硬件系统功能的,在物理服务器上划分出来的一台或者多台虚拟化的计算机系统。2)、虚拟机管理器(hypervisor),一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也可叫做VMM(virtualmachinemonitor),即虚拟机监视器。hypervisor是一种在虚拟环境中的“元”操作系统。可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个客户虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有客户虚拟机客户端的操作系统同时会分配给每一台客户虚拟机适量的内存,CPU,网络和磁盘,并加载所有虚拟机的客户操作系统。3)、Balloon驱动,为了实现balloon技术,安装在操作系统((OperatingSystem,OS)中的一种驱动。利用预装在客户虚拟机中的前端驱动程序,偷取guestOS的内存贡献给VMM以供其他虚拟机使用.反向易然。4)、Balloon操作,根据当前客户虚拟的使用内存和初始内存,进行内存收缩或者内存扩张的操作。参阅图1所示,图1为本发明实施例中的balloon驱动运行场景示意图。其中,balloon驱动安装在guest上,通过消息总线与物理主机的控制程序进行通信,物理主机服务器启动并执行Hypervisor时,加载客户虚拟机客户端的操作系统,所述balloon驱动和Hypervisor均部署在物理主机上。本发明实施例提供一种控制内存气球的方法和装置,以解决现有技术中由于无法控制客户虚拟机内存气球的操作结束时间,造成客户虚拟机内存处理耗时过长的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。参阅图2所示,本发明实施例提供一种控制内存气球的方法流程图,该方法包括如下步骤:步骤20:物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值。在本发明实施例中,客户虚拟机在初始化设置时,由物理主机服务器分配的内存值称为初始内存值,初始内存值用符号D表示,客户虚拟机中的应用程序等占用的内存值称为实际使用内存值,实际使用内存值用符号A表示,当前客户虚拟机允许使用的可用内存值用符号B表示,气球占用的内存值用C表示,且满足关系式D=B+C。客户虚拟机能够使用的目标内存值用X表示,X通过定时设置策略中的内存气球压缩信息来确定,在成功执行完毕气球操作后,客户虚拟机允许使用的可用内存值B=X,气球占用的内存值C=D-X。其中,所述定时设置策略为预设时长内的内存气球压缩信息。所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值。可选的,所述内存气球压缩信息可以采用内存气球压缩量表征,也可以采用存气球压缩比来表征。其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。例如,内存气球压缩信息采用内存气球压缩量,即guest允许使用的目标内存。对应消息结构为Struct{IntMax_memory=D;Stringstrategy=traget;StringParam=M;//M为任意设定值TimeTime=N;//N为任意设定值
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1