云计算环境中动态调整虚拟机内存的方法及系统的制作方法
【专利摘要】本发明公开了一种云计算环境中动态调整虚拟机内存的方法及系统,该方法包括:制定步骤,制定内存动态调整策略;监控步骤,实时监控虚拟机的运行状态,并获取虚拟机的内存使用量;判断步骤,判断内存使用量是否大于内存动态调整策略中的上限阈值或小于内存动态调整策略中的下限阈值;动态调整步骤,若内存使用量大于上限阈值,则对所述虚拟机的内存进行动态增加;若内存使用量小于下限阈值,则对所述虚拟机的内存进行动态减少。本发明通过云管理平台可以有效地在不关闭虚拟机的前提下对虚拟机的内存进行动态地扩展或缩减,保证了运行在虚拟机内核心业务能够不间断持续地运行,并减少了不必要的内存浪费。
【专利说明】云计算环境中动态调整虚拟机内存的方法及系统
【技术领域】
[0001]本发明涉及计算机网络【技术领域】,尤其涉及一种云计算环境中动态调整虚拟机内存的方法及系统。
【背景技术】
[0002]当今计算机和网络的快速发展,虚拟化技术不断完善。随着虚拟化技术的不断发展,云计算的不断使用,在虚拟机上运行系统和应用与在实际物理机上运行系统和应用在性能方面差距正在不断减少,使得越来越多的企业将关键业务运行在云计算虚拟化服务器的虚拟机上。因此,如何保证运行在虚拟机上的关键业务能够不间断持续的运行是如今关注的问题。
[0003]在现有的云计算环境中,管理员只能给虚拟机指定固定的内存大小,当虚拟机启动时,则会将管理员所分配的内存完全占用。此外,当用户的关键应用运行在虚拟化服务器上的虚拟机中时,某些特定时刻虚拟机将需要较多的内存才能继续运行。
[0004]因此,当管理员分配给虚拟机的内存大小无法满足应用的需求时,管理员必需要在关闭虚拟机的情况下对其内存占用大小重新进行调整,这样用户的应用就必须停止一段时间,其关键业务不能够持续的运行。而且,若管理员给虚拟机分配了过多的内存,而虚拟机的应用有时不需要使用这么多内存,这势必将造成资源的浪费。
【发明内容】
[0005]本发明所要解决的技术问题之一是需要提供一种云计算环境中动态调整虚拟机内存的方法,该方法可以在不关闭虚拟机的情况下对其内存进行调整。此外,还提供了一种云计算环境中动态调整虚拟机内存的系统。
[0006]为了解决上述技术问题,本发明提供了一种云计算环境中动态调整虚拟机内存的方法,包括:制定步骤,制定内存动态调整策略,该策略包括虚拟机内存使用量的阈值,其中,所述内存使用量的阈值包括上限阈值和下限阈值;监控步骤,实时监控所述虚拟机的运行状态,并获取所述虚拟机的内存使用量;判断步骤,判断所述内存使用量是否大于所述内存动态调整策略中的上限阈值或小于所述内存动态调整策略中的下限阈值;动态调整步骤,若所述内存使用量大于所述上限阈值,则对所述虚拟机的内存进行线上动态扩展;若所述内存使用量小于所述下限阈值,则对所述虚拟机的内存进行线上动态缩减。
[0007]在一个实施例中,所述动态调整步骤进一步包括:当所述虚拟机的内存使用量大于所述上限阈值时,进一步判断向所述虚拟机进行内存扩展后虚拟机用户的资源使用配额是否超出该用户的最大资源使用配额,其中,若所述虚拟机用户的资源使用配额超出该用户的最大资源使用配额,则取消这次操作,否则,对所述虚拟机的内存进行线上动态扩展,所述虚拟机用户的资源使用配额为用户对其可操作的各个虚拟机的当前使用额度之和。
[0008]在一个实施例中,在所述监控步骤中,若检测到所述虚拟机处于活动状态,则监控其内存使用量,若检测到所述虚拟机处于停止状态,则停止监控并结束操作。[0009]在一个实施例中,所述内存动态调整策略包括动态调整程序执行间隔时间,进一步在经过所述动态调整程序执行间隔时间后,返回所述监控步骤。
[0010]在一个实施例中,所述内存调整策略还包括动态调整的优先级以及内存调整幅值,在所述动态调整步骤中,进一步根据所述优先级对多个需要调整内存的虚拟机依次按照所述内存调整幅值进行线上动态调整内存。
[0011]在一个实施例中,通过Iibvirt虚拟化库提供的接口或通过调用virsh命令对所述虚拟机的内存进行线上动态调整。
[0012]在一个实施例中,在所述制定步骤中,制定所述内存动态调整策略的备份策略,其中,基于所述虚拟机的初始内存值的百分比设置所述备份策略中虚拟机内存使用量的上限阈值与下限阈值。
[0013]根据本发明的另一方面,还提供了一种云计算环境中动态调整虚拟机内存的系统,包括:制定模块,其用于制定内存动态调整策略,该策略包括虚拟机内存使用量的阈值,其中,所述内存使用量的阈值包括上限阈值和下限阈值;监控模块,其用于实时监控所述虚拟机的运行状态,并获取所述虚拟机的内存使用量;判断模块,其用于判断所述内存使用量是否大于所述内存动态调整策略中的上限阈值或小于所述内存动态调整策略中的下限阈值;动态调整模块,在所述内存使用量大于所述上限阈值时,其对所述虚拟机的内存进行线上动态扩展;在所述内存使用量小于所述下限阈值时,其则对所述虚拟机的内存进行线上动态缩减。
[0014]在一个实施例中,所述动态调整模块还用于当所述虚拟机的内存使用量大于所述上限阈值时,进一步判断向所述虚拟机进行内存扩展后虚拟机用户的资源使用配额是否超出该用户的最大资源使用配额,其中,若所述虚拟机用户的资源使用配额超出该用户的最大资源使用配额,则取消这次操作,否则,对所述虚拟机的内存进行线上动态扩展,所述虚拟机用户的资源使用配额为用户对其可操作的各个虚拟机的当前使用额度之和。
[0015]在一个实施例中,所述内存动态调整策略包括动态调整的优先级以及内存调整幅值,所述动态调整模块根据所述优先级对多个需要调整内存的虚拟机按照所述内存调整幅值依次进行线上动态调整内存。
[0016]与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0017]本发明可以动态地调整虚拟机的内存,通过云管理平台,根据不同应用的需求,可以有效地在不需要关闭虚拟机的情况下对虚拟机的内存进行动态地扩展或缩减,保证了运行在虚拟机内核心业务能够不间断持续地运行,并减少了不必要的内存浪费。
[0018]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【专利附图】
【附图说明】
[0019]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0020]图1是根据本发明一示例的云计算环境系统结构的示意图;
[0021]图2是根据本发明一实施例的动态调整虚拟机内存的系统的框图;[0022]图3是根据本发明另一实施例的动态调整虚拟机内存的方法的流程图。
【具体实施方式】
[0023]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0024]另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0025]图1示出了根据本发明一示例的云计算环境系统结构的示意图。该系统主要包含云管理平台A,其主要提供云计算基础架构各种资源(包括计算、内存、网络、映像、虚拟机等)的抽象聚合、计量、管理、调度、监控以及统计等功能。
[0026]如图1所示,云管理平台A管理多个计算节点,每一个计算节点都是一个虚拟化服务器。该服务器利用x86硬件虚拟化技术,提供基于KVM技术的虚拟机监控器平台,并且提供虚拟机运行状态监控和管理、负载均衡管理等基本服务等。每个虚拟化服务器上运行着多个虚拟机(也称为VM),不同虚拟机可以属于不同的用户。
[0027]在整个云计算环境系统中,示例性地将用户需要使用的虚拟机部署到计算节点2上,并且在计算节点2上运行多个虚拟机VM1、VM2、...、VMn。
[0028]下面结合图2以动态调整虚拟机VMl为例来说明根据本发明实施例的云计算环境中动态调整虚拟机内存的系统。
[0029]在本实施例中主要是利用云管理平台A进行虚拟机内存调整,而在其内部设定了一动态调整虚拟机内存的系统200。
[0030]如图2所示,这个动态调整虚拟机内存系统200主要包括制定模块20、监控模块21、判断模块22以及动态调整模块23。
[0031]其中,制定模块20用于制定内存动态调整策略,该策略包括虚拟机内存使用量的阈值,其中,内存使用量的阈值包括上限阈值和下限阈值。在内存动态调整策略中优选地包括虚拟机内存动态调整程序执行间隔时间、动态调整的优先级以及内存调整幅值。当然还可以包括其他的参数内容。
[0032]需要说明的是,由于用户创建虚拟机后,会将某些应用程序部署到虚拟机,而这些应用程序会占用虚拟机的较多内存,则会涉及到在运行这些程序时,需要对虚拟机内存进行调整。通过实现指定内存动态调整策略,能够为后面的内存调整指导相应的方向。
[0033]上述的内存动态调整策略可以是针对设置某个计算节点的所有虚拟机。
[0034]另外,还可以根据用户自身的需求以及所拥有的硬件条件为其所操作的某一个虚拟机制定内存调整策略的备份策略。
[0035]在内存动态调整策略或备份策略中,可以基于虚拟机的初始内存值的百分比设置备份策略中虚拟机内存使用量的上限阈值与下限阈值。例如,上限阈值优选设定为虚拟机的初始内存值的70%?80%,下限阈值设定为虚拟机的初始内存值的20%?30%。这里所说的内存初始值为虚拟机初始时分配给其的内存大小。[0036]对于监控模块21来说,其用于实时监控虚拟机VMl的运行状态,并获取虚拟机VMl的内存使用量。
[0037]具体地,该模块21如果监控到虚拟机VMl的状态为停止,则停止监控虚拟机VMl,进而结束动态调整内存。如果监控到虚拟机VMl的状态为活动,则监控其内存使用量。
[0038]需要说明的是,该监控模块21是通过运行虚拟机VMl的虚拟化服务器对虚拟机VMl的监控进而得到关于该虚拟机VMl的内存使用量,然后将得到的内存使用量发送至与之连接的判断模块22进行下一步的操作。
[0039]接收到内存使用量的判断模块22判断该使用量是否大于之前制定的内存动态调整策略中的上限阈值或小于内存动态调整策略中的下限阈值。在所得到的结果为是时,则说明当前虚拟机VMl的内存使用效率是较低的,而非最优的,那么则需要进一步的内存调整操作。
[0040]因此,动态调整模块23在内存使用量大于上限阈值时,对虚拟机VMl的内存进行线上动态扩展;而在内存使用量小于下限阈值时,则对虚拟机VMl的内存进行线上动态缩减。
[0041]另外,当虚拟机VMl的内存使用量大于上限阈值时,动态调整模块23还用于判断向虚拟机VMl进行内存调整后虚拟机用户的资源使用配额是否超出该用户的最大资源使用配额。若虚拟机用户的资源使用配额超出该用户的最大资源使用配额,则取消这次操作,否则,对虚拟机VMl的内存进行线上动态扩展。这里所说的资源使用配额为用户对其可操作的各个虚拟机的使用额度之和。
[0042]在对虚拟机进行内存动态调整时,该动态调整模块23通过Iibvirt虚拟化库提供的接口对虚拟机VMl进行线上内存动态调整操作,也可以通过调用virsh命令对虚拟机VMl进行线上内存动态调整操作。
[0043]另外,当服务器中运行多个虚拟机时,该动态调整模块23还会根据之前设定的内存动态调整策略中的动态调整优先级来对多个需要调整内存的虚拟机依次按照内存调整幅值进行动态调整内存。
[0044]值的注意的是,在进行内存动态调整过程中,是线上进行调整,即在不需要关闭虚拟机的情况进行内存调整,这样能够运行关键应用程序的同时进行内存调整,增强用户体验。
[0045]而且,在经过动态调整策略中的动态调整程序执行间隔时间后,将重新执行监控模块21、判断模块22和动态调整模块23进行实时虚拟机内存调整操作。
[0046]从另一观点来看,本发明还提出一种动态调整虚拟机内存的方法。以下即搭配上述的动态调整虚拟机内存系统200,说明内存动态调整的各步骤。
[0047]图3是根据本发明另一实施例的动态调整虚拟机内存的方法的流程图,请同时参照图2和图3,首先,如步骤S310所示,在创建虚拟机后,制定模块20制定内存动态调整策略,该策略包括虚拟机内存使用量的阈值,其中,该内存使用量的阈值包括上限阈值和下限阈值。详细地说,就是给后面进行虚拟机动态调整提供指导策略。
[0048]如上面所述,该内存动态调整策略包括动态调整程序执行间隔时间、内存调整幅值以及动态调整的优先级。
[0049]接着,在步骤S320中,监控模块21实时监控虚拟机的运行状态,并获取处于活动状态的虚拟机的内存使用量。若监控到虚拟机处于停止状态,则停止监控虚拟机,进而结束动态调整内存。
[0050]然后,如步骤S330所示,判断模块22判断内存使用量是否大于内存动态调整策略中的上限阈值或小于内存动态调整策略中的下限阈值。在判断出内存使用量小于下限阈值时,则在步骤S350中,动态调整模块23对虚拟机的内存进行线上动态缩减。
[0051]在所获取的内存使用量大于上限阈值时,在步骤S340中,动态调整模块23进一步判断进行内存扩展后的虚拟机VMl用户的资源使用配额是否超出该用户的最大资源使用配额。若虚拟机VMl用户的资源使用配额超出该用户的最大资源使用配额,则取消这次操作,否则,则对虚拟机VMl的内存进行线上动态扩展。这里所说的资源使用配额是指用户对其可操作的各个虚拟机的使用额度之和。
[0052]在经过动态调整程序执行间隔时间后,返回步骤S320。
[0053]综上所述,本实施例通过云管理平台,可以动态地调整虚拟机的内存,根据不同应用的需求,可以有效地在不需要关闭虚拟机的情况下对虚拟机的内存进行动态地扩展或缩减,保证了运行在虚拟机内核心业务能够不间断持续地运行,并减少了不必要的内存浪费。
[0054]虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属【技术领域】内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【权利要求】
1.一种云计算环境中动态调整虚拟机内存的方法,包括:制定步骤,制定内存动态调整策略,该策略包括虚拟机内存使用量的阈值,其中,所述内存使用量的阈值包括上限阈值和下限阈值;监控步骤,实时监控所述虚拟机的运行状态,并获取所述虚拟机的内存使用量;判断步骤,判断所述内存使用量是否大于所述内存动态调整策略中的上限阈值或小于所述内存动态调整策略中的下限阈值;动态调整步骤,若所述内存使用量大于所述上限阈值,则对所述虚拟机的内存进行线上动态扩展;若所述内存使用量小于所述下限阈值,则对所述虚拟机的内存进行线上动态缩减。
2.根据权利要求1所述的动态调整虚拟机内存的方法,其特征在于,所述动态调整步骤进一步包括: 当所述虚拟机的内存使用量大于所述上限阈值时,进一步判断向所述虚拟机进行内存扩展后虚拟机用户的资源使用配额是否超出该用户的最大资源使用配额,其中,若所述虚拟机用户的资源使用配额超出该用户的最大资源使用配额,则取消这次操作,否则,对所述虚拟机的内存进行线上动态扩展,所述虚拟机用户的资源使用配额为用户对其可操作的各个虚拟机的当前使用额度之和。
3.根据权利要求1所述的动态调整虚拟机内存的方法,其特征在于,在所述监控步骤中,若检测到所述虚拟机处于活动状态,则监控其内存使用量,若检测到所述虚拟机处于停止状态,则停止监控并结束操作。
4.根据权利要求1-3中任一项所述的动态调整虚拟机内存的方法,其特征在于,所述内存动态调整策略包括动态调整程序执行间隔时间,进一步在经过所述动态调整程序执行间隔时间后,返回所述监控步骤。
5.根据权利要求4所述的动态调整虚拟机内存的方法,其特征在于,所述内存调整策略还包括动态调整的优先级以及内存调整幅值,在所述动态调整步骤中,进一步根据所述优先级对多个需要调整内存的虚拟机依次按照所述内存调整幅值进行线上动态调整内存。
6.根据权利要求1所述的动态调整虚拟机内存的方法,其特征在于,通过Iibvirt虚拟化库提供的接口或通过调用virsh命令对所述虚拟机的内存进行线上动态调整。
7.根据权利要求1所述的动态调整虚拟机内存的方法,其特征在于,在所述制定步骤中,制定所述内存动态调整策略的备份策略,其中,基于所述虚拟机的初始内存值的百分比设置所述备份策略中虚拟机内存使用量的上限阈值与下限阈值。
8.—种云计算环境中动态调整虚拟机内存的系统,包括:制定模块,其用于制定内存动态调整策略,该策略包括虚拟机内存使用量的阈值,其中,所述内存使用量的阈值包括上限阈值和下限阈值;监控模块,其用于实时监控所述虚拟机的运行状态,并获取所述虚拟机的内存使用判断模块,其用于判断所述内存使用量是否大于所述内存动态调整策略中的上限阈值或小于所述内存动态调整策略中的下限阈值;动态调整模块,在所述内存使用量大于所述上限阈值时,其对所述虚拟机的内存进行线上动态扩展;在所述内存使用量小于所述下限阈值时,其则对所述虚拟机的内存进行线上动态缩减。
9.根据权利要求8所述的动态调整虚拟机内存的系统,其特征在于,所述动态调整模块还用于当所述虚拟机的内存使用量大于所述上限阈值时,进一步判断向所述虚拟机进行内存扩展后虚拟机用户的资源使用配额是否超出该用户的最大资源使用配额,其中,若所述虚拟机用户的资源使用配额超出该用户的最大资源使用配额,则取消这次操作,否则,对所述虚拟机的内存进行线上动态扩展,所述虚拟机用户的资源使用配额为用户对其可操作的各个虚拟机的当前使用额度之和。
10.根据权利要求8所述的动态调整虚拟机内存的系统,其特征在于,所述内存动态调整策略包括动态调整的优先级以及内存调整幅值,所述动态调整模块根据所述优先级对多个需要调整内存的虚拟机按照所述内存调整幅值依次进行线上动态调整内存。`
【文档编号】G06F9/455GK103605613SQ201310594574
【公开日】2014年2月26日 申请日期:2013年11月21日 优先权日:2013年11月21日
【发明者】蒋涛 申请人:中标软件有限公司