专利名称:虚拟机控制方法及装置的制作方法
技术领域:
本发明涉及计算机技术领域,特别是涉及一种虚拟机控制方法及装置。
背景技术:
现有的计算机技术中,单一的服务器的性能已经不能满足应用的需求,通常采用服务器集群以分布式并行处理的方式提供计算服务。而为了充分利用服务器集群的计算资源,通常通过虚拟化技术将服务器集群虚拟化成多个虚拟机并发地处理任务。当服务器集群计算资源不足时,则可通过添加服务器来补充计算资源。为了使服务器集群的计算资源能够合理地分配给各个虚拟机,通常还需要对虚拟机进行控制。传统技术中的虚拟机控制方法通常获取虚拟机在服务器集群中的内存占用大小以及CPU占用率,并根据上述参数在虚拟机负载增大时通过在服务器集群的服务器之间重新分布虚拟机来自动为其分配更多资源。
然而,传统技术仅依据内存占用和CPU占用来对虚拟机进行控制,使得控制结果并不能完全满足虚拟机的工作需求,从而造成了计算资源分配的准确度较低。
发明内容
基于此,有必要提供一种能提高计算资源分配准确度的虚拟机控制方法。一种虚拟机控制方法,包括获取虚拟机对应的网络参数和/或应用通知;获取控制指令配置;根据所述网络参数和/或应用通知在所述控制指令配置中获取对应的控制指令;根据所述控制指令控制所述虚拟机。在其中一个实施例中,所述方法还包括获取输入的控制指令定义,以及与控制指令对应的网络参数定义和/或应用通知定义;根据所述控制指令定义与所述网络参数定义和/或应用通知定义生成控制指令配置。在其中一个实施例中,所述网络参数包括流量、带宽、丢包率和连接数中的至少一种。在其中一个实施例中,所述应用通知包括死循环通知、内存泄漏通知和异常通知中的至少一种。在其中一个实施例中,所述控制指令包括启动指令、关闭指令、重启指令、服务器分布更新指令中的至少一种。此外,还有必要提供一种能提高计算资源分配的准确度的虚拟机控制装置。一种虚拟机控制装置,包括参数采集模块,用于获取虚拟机对应的网络参数和/或应用通知;
配置获取模块,用于获取控制指令配置;指令获取模块,用于根据所述网络参数和/或应用通知在所述控制指令配置中获取对应的控制指令;指令执行模块,用于根据所述控制指令控制所述虚拟机。在其中一个实施例中,所述装置还包括配置生成模块,用于获取输入的控制指令定义,以及与控制指令对应的网络参数定义和/或应用通知定义,根据所述控制指令定义与所述网络参数定义和/或应用通知定义生成控制指令配置。在其中一个实施例中,所述网络参数包括流量、带宽、丢包率和连接数中的至少一种。在其中一个实施例中,所述应用通知包括死循环通知、内存泄漏通知和异常通知中的至少一种。在其中一个实施例中,所述控制指令包括启动指令、关闭指令、重启指令、服务器分布更新指令中的至少一种。上述虚拟机控制方法及装置中,通过采集虚拟机对应的网络参数和/或应用通知,根据该网络参数和/或应用通知在控制指令配置中获取对应的控制指令,并根据获取到的控制指令控制虚拟机。使得在对虚拟机进行控制时,可针对具体的网络环境变化和/或虚拟机上的应用的运行情况更改控制指令,调整控制策略,从而提高了计算资源分配的准确度。
图1为一个实施例中虚拟机控制方法的流程图;图2为一个实施例中虚拟机控制装置的结构示意图;图3为另一个实施例中虚拟机控制装置的结构示意图。
具体实施例方式在一个实施例中,如图1所示,一种虚拟机控制方法,包括如下步骤步骤S102,获取虚拟机对应的网络参数和/或应用通知。虚拟机对应的网络参数即为虚拟机对应的服务器在网络环境中的使用参数。在一个实施例中,网络参数包括流量、带宽、丢包率和连接数中的至少一种。在本实施例中,支撑虚拟机运行的服务器可包括网络负载均衡服务器,可通过检测网络负载均衡服务器的流量、带宽、丢包率和连接数等参数来获取网络参数。应用通知即虚拟机上运行的应用程序的通知消息。在一个实施例中,应用通知可包括死循环通知、内存泄漏通知和异常通知中的至少一种。死循环通知即虚拟机上的应用在运行过程中进入死循环时发出的通知;内存泄漏通知即应用发生内存泄漏时发出的通知;异常通知即应用出现异常时发出的通知。在一个实施例中,虚拟机上的应用可实现通用接口,通过通用接口在进入死循环,发生内存泄漏或出现异常时发出相应的通知。在另一个实施例中,还可对虚拟机运行的进程或内存区域进行检测,在虚拟机对应的应用进入死循环,发生内存泄漏或出现异常时发出相应的通知。
步骤S104,获取控制指令配置。控制指令配置中记录有网络参数和/或应用通知与控制指令的对应关系。在一个实施例中,虚拟机控制方法还包括获取输入的控制指令定义,与控制指令对应的网络参数定义和/或应用通知定义,根据控制指令定义与网络参数定义和/或应用通知定义生成控制指令配置。控制指令定义即控制指令的定义信息。例如,若控制指令定义对应的字符串为“restart”,则其对应的操作可为重启操作。网络参数定义可包括网络参数的浮动范围的信息。例如,“连接数大于10”即连接数的浮动范围。应用通知定义即应用通知对应的定义信息。例如,应用发生内存泄漏时发出的通知对应的应用通知定义可以是字符串“exception: stack overflow,,。也就是说,用户可预先定义采集到何种网络参数和/或应用通知则对应执行何种控制指令,并可将此定义通过配置文件存储。例如,若用户希望在连接数大于10时执行启动操作,则可在控制指令配置中配置为“〈item max-connections=’ 10’>start〈/item>”;若用户希望在发生内存泄漏时执行重启操作,贝1J可在控制指令配置中配置为“〈item exception=‘stack overflow’>restart〈/item〉”。其中item表示控制指令配置中的一条配置记录,max-connections表示最大连接数的数值,exception表示应用通知,stack overflow表示应用通知为内存泄漏,start表示启动指令,restart表示重启指令。在本实施例中,生成的控制指令配置存储在配置文件中。获取控制指令配置的步骤可具体为通过读取配置文件获取控制指令配置。步骤S106,根据网络参数和/或应用通知在控制指令配置中获取对应的控制指令。可根据采集到的网络参数和/或应用通知在控制指令配置中通过条件比对进行查找,若采集到的网络参数和/或应用通知符合控制指令配置中的网络参数定义和/或应用通知定义,则获取其对应的控制指令。否则,不做操作。步骤S108,根据控制指令控制虚拟机。在一个实施例中,控制指令包括启动指令、关闭指令、重启指令、服务器分布更新指令中的至少一种。启动指令对应启动虚拟机的操作。例如,若当前网络流量大于阈值,需要启动虚拟机进行分流处理时,可执行启动指令启动虚拟机。关闭指令对应关闭虚拟机的操作。例如,在虚拟机的连接数在预设时长内均为O时(即无任务处理状态),为了减少虚拟机的维护开销,可执行关闭指令关闭虚拟机。重启指令对应重启虚拟机的操作。例如,若应用通知为死循环通知,即虚拟机上运行的应用陷入死循环时,可执行重启指令重启虚拟机来规避死循环。服务器分布更新指令对应更新虚拟机在服务器上的分布的指令。例如,若采集到的网络参数中显示带宽过小,则可执行服务器分布更新指令,自动为虚拟机分配服务器资源,从而增加带宽。 在一个实施例中,获取虚拟机对应的网络参数和/或应用通知的步骤之后还可展示获取到的网络参数和/或应用通知。
虚拟机控制方法还可包括获取输入的手动控制指令,并根据手动控制指令控制虚拟机。也就是说,在采集到虚拟机对应的网络参数和/或应用通知之后,可通过显示界面直观地展示给用户。用户可通过显示界面观察得到虚拟机对应的网络参数和/或应用通知,然后即可通过控制台手动输入控制指令控制虚拟机启动、关闭、重启以及更新虚拟机的服务器分布。添加手动操作方式,可使用户在临时状况下,不用修改控制指令配置而方便地控制虚拟机,从而提高了操作的便利性。在一个实施例中,如图2所示,一种虚拟机控制装置,包括参数采集模块102、配置获取模块104、指令获取模块106和指令执行模块108,其中·参数采集模块102,用于获取虚拟机对应的网络参数和/或应用通知。虚拟机对应的网络参数即与虚拟机对应的服务器在网络环境中的使用参数。在一个实施例中,网络参数包括流量、带宽、丢包率和连接数中的至少一种。在本实施例中,支撑虚拟机运行的服务器可包括网络负载均衡服务器,参数采集模块102可用于通过检测网络负载均衡服务器的流量、带宽、丢包率和连接数等参数来获取网络参数。应用通知即虚拟机上运行的应用程序的通知消息。在一个实施例中,应用通知可包括死循环通知、内存泄漏通知和异常通知中的至少一种。死循环通知即虚拟机上的应用在运行过程中进入死循环时发出的通知;内存泄漏通知即应用发生内存泄漏时发出的通知;异常通知即应用出现异常时发出的通知。在一个实施例中,虚拟机上的应用可实现通用接口,通过通用接口在进入死循环,发生内存泄漏或出现异常时发出相应的通知。在另一个实施例中,还参数采集模块102可用于对虚拟机运行的进程或内存区域进行检测,在虚拟机对应的应用进入死循环,发生内存泄漏或出现异常时发出相应的通知。配置获取模块104,用于获取控制指令配置。控制指令配置中记录有网络参数和/或应用通知与控制指令的对应关系。在一个实施例中,如图3所示,虚拟机控制装置还包括配置生成模块110,用于获取输入的控制指令定义,与控制指令对应的网络参数定义和/或应用通知定义,根据控制指令定义与网络参数定义和/或应用通知定义生成控制指令配置。控制指令定义即控制指令的定义信息。例如,若控制指令定义对应的字符串为“restart”,则其对应的操作可为重启操作。网络参数定义可包括网络参数的浮动范围的信息。例如,“连接数大于10”即连接数的浮动范围。应用通知定义即应用通知对应的定义信息。例如,应用发生内存泄漏时发出的通知对应的应用通知定义可以是字符串“exception: stack overflow,,。也就是说,用户可预先定义采集到何种网络参数和/或应用通知则对应执行何种控制指令,并可将此定义通过配置文件存储。例如,若用户希望在连接数大于10时执行启动操作,则可在控制指令配置中配置为“〈item max-connections=’ 10’>start〈/item>”;若用户希望在发生内存泄漏时执行重启操作,贝1J可在控制指令配置中配置为“〈item exception=‘stack overflow’>restart〈/item〉”。其中item表示控制指令配置中的一条配置记录,max-connections表示最大连接数的数值,exception表示应用通知,stack overflow表示应用通知为内存泄漏,start表示启动指令,restart表示重启指令。 在本实施例中,生成的控制指令配置存储在配置文件中。获取控制指令配置的步骤可具体为通过读取配置文件获取控制指令配置。 指令获取模块106,用于根据网络参数和/或应用通知在控制指令配置中获取对应的控制指令。指令获取模块106可用于根据采集到的网络参数和/或应用通知在控制指令配置中通过条件比对进行查找,若采集到的网络参数和/或应用通知符合控制指令配置中的网络参数定义和/或应用通知定义,则获取其对应的控制指令。否则,不做操作。指令执行模块108,用于根据控制指令控制虚拟机。在一个实施例中,控制指令包括启动指令、关闭指令、重启指令、服务器分布更新指令中的至少一种。启动指令对应启动虚拟机的操作。例如,若当前网络流量大于阈值,需要启动虚拟机进行分流处理时,可执行启动指令启动虚拟机。关闭指令对应关闭虚拟机的操作。例如,在虚拟机的连接数在预设时长内均为O时(即无任务处理状态),为了减少虚拟机的维护开销,可执行关闭指令关闭虚拟机。重启指令对应重启虚拟机的操作。例如,若应用通知为死循环通知,即虚拟机上运行的应用陷入死循环时,可执行重启指令重启虚拟机来规避死循环。服务器分布更新指令对应更新虚拟机在服务器上的分布的指令。例如,若采集到的网络参数中显示带宽过小,则可执行服务器分布更新指令,自动为虚拟机分配服务器资源,从而增加带宽。 在一个实施例中,虚拟机控制装置还包括信息展示模块(图中未标示),用于展示获取到的网络参数和/或应用通知。虚拟机控制装置还包括手动控制模块,用于获取输入的手动控制指令,并根据手动控制指令控制虚拟机。也就是说,在采集到虚拟机对应的网络参数和/或应用通知之后,可通过显示界面直观地展示给用户。用户可通过显示界面观察得到虚拟机对应的网络参数和/或应用通知,然后即可通过控制台手动输入控制指令控制虚拟机启动、关闭、重启以及更新虚拟机的服务器分布。添加手动操作方式,可使用户在临时状况下,不用修改控制指令配置而方便地控制虚拟机,从而提高了操作的便利性。上述虚拟机控制方法及装置中,通过采集虚拟机对应的网络参数和/或应用通知,根据该网络参数和/或应用通知在控制指令配置中获取对应的控制指令,并根据获取到的控制指令控制虚拟机,使得在对虚拟机进行控制时,可针对具体的网络环境变化和/或虚拟机上的应用的运行情况更改控制指令,调整控制策略,从而提高了计算资源分配的准确度。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应`以所附权利要求为准。
权利要求
1.一种虚拟机控制方法,包括获取虚拟机对应的网络参数和/或应用通知;获取控制指令配置;根据所述网络参数和/或应用通知在所述控制指令配置中获取对应的控制指令;根据所述控制指令控制所述虚拟机。
2.根据权利要求1所述的虚拟机控制方法,其特征在于,所述方法还包括获取输入的控制指令定义,以及与控制指令对应的网络参数定义和/或应用通知定义;根据所述控制指令定义与所述网络参数定义和/或应用通知定义生成控制指令配置。
3.根据权利要求1或2所述的虚拟机控制方法,其特征在于,所述网络参数包括流量、 带宽、丢包率和连接数中的至少一种。
4.根据权利要求1或2所述的虚拟机控制方法,其特征在于,所述应用通知包括死循环通知、内存泄漏通知和异常通知中的至少一种。
5.根据权利要求1或2所述的虚拟机控制方法,其特征在于,所述控制指令包括启动指令、关闭指令、重启指令、服务器分布更新指令中的至少一种。
6.一种虚拟机控制装置,其特征在于,包括参数采集模块,用于获取虚拟机对应的网络参数和/或应用通知;配置获取模块,用于获取控制指令配置;指令获取模块,用于根据所述网络参数和/或应用通知在所述控制指令配置中获取对应的控制指令;指令执行模块,用于根据所述控制指令控制所述虚拟机。
7.根据权利要求6所述的虚拟机控制装置,其特征在于,所述装置还包括配置生成模块,用于获取输入的控制指令定义,以及与控制指令对应的网络参数定义和/或应用通知定义,根据所述控制指令定义与所述网络参数定义和/或应用通知定义生成控制指令配置。
8.根据权利要求6或7所述的虚拟机控制装置,其特征在于,所述网络参数包括流量、 带宽、丢包率和连接数中的至少一种。
9.根据权利要求6或7所述的虚拟机控制装置,其特征在于,所述应用通知包括死循环通知、内存泄漏通知和异常通知中的至少一种。
10.根据权利要求6或7所述的虚拟机控制装置,其特征在于,所述控制指令包括启动指令、关闭指令、重启指令、服务器分布更新指令中的至少一种。
全文摘要
本发明涉及一种虚拟机控制方法及装置,包括获取虚拟机对应的网络参数和/或应用通知;获取控制指令配置;根据所述网络参数和/或应用通知在所述控制指令配置中获取对应的控制指令;根据所述控制指令控制所述虚拟机。此外,还包括一种虚拟机控制装置。上述虚拟机控制方法及装置可以更加合理地为虚拟机分配计算资源,提高了计算资源分配的准确度。
文档编号G06F9/455GK103036975SQ201210539439
公开日2013年4月10日 申请日期2012年12月13日 优先权日2012年12月13日
发明者辛智敏 申请人:深信服网络科技(深圳)有限公司