本申请涉及计算机领域,尤其涉及一种对虚拟机改变的请求进行验证的方法和系统。
背景技术:
随着互联思想的无处不在,分布式计算应用而生。传统的服务器思想受到了来自网络大数据量的挑战,因此,虚拟化技术应运而生。使用虚拟化技术获得的虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。利用虚拟机,可以实现对硬件异构性的有效屏蔽,同时还具有隔离软件的作用。
但是,现有的对于虚拟机进行改变的请求的检查通常是针对与虚拟机相对应的物理机资源的调度方法的检测,而没有对改变请求本身进行验证的方法。
技术实现要素:
本申请的目标在于提供一种对虚拟机改变的请求进行验证的方法和系统,以解决现有的无法验证请求的合法性以及不能够做出对于现有的虚拟机是否是有利或无利的判断的问题。
基于此,本申请提出一种对虚拟机改变的请求进行验证的方法,包括如下步骤:
接收对虚拟机改变的请求;
对所述改变请求执行策略检查;
在所述策略检查通过时,模拟改变后的虚拟机的运行;
获取改变后的虚拟机的运行信息,并基于所述运行信息对虚拟机进行评估;
在所述改变后的虚拟机评估结果优于改变前的虚拟机评估结果时,执行虚拟机改变。
其中在接收到对虚拟机改变的请求后,获得当前虚拟机的运行信息,并基于当前虚拟机的运行信息对虚拟机进行评估,获得改变前的虚拟机评估结果。
其中对所述改变请求执行策略检查包括如下子步骤:
根据所述改变请求,生成多个具有关联步骤的改变过程工作流;
基于预先设定的规则,判断多个改变过程工作流中关联步骤的转换是否被允许;
如果被允许,则所述策略检查通过。
其中在转换中的一个不被允许时,调用异常处理方法。
其中所述模拟改变后的虚拟机的运行,包括如下子步骤:
获得运行中虚拟机的运行参数;
输入预先建模的虚拟机模型中;
根据所述改变请求改变虚拟机模型的运行。
其中所述获取改变后的虚拟机的运行信息,并基于所述运行信息对虚拟机进行评估,包括如下子步骤:
在固定时间窗内,轮询获得改变后的虚拟机模型的所有应用运行信息和虚拟机频率;
基于应用运行信息和虚拟机频率获得评估结果。
本申请还请求保护一种对虚拟机改变的请求进行验证的系统,包括如下部件:
输入/输出装置;
一个或多个处理器,执行如上所述的验证方法。
其中该系统还包括存储介质,存储介质包括如下部件:
改变请求队列,存储接收到的改变请求;
策略库,存储改变请求需要满足的规则;
改变过程实例,存储多个激活的改变请求工作流。
其中由一个处理器执行一个改变请求工作流,或者由一个处理器执行多个改变请求工作流。
本申请还请求保护一种存储介质,存储有指令,所述指令使得具有处理器的系统执行如上所述方法。
本申请通过提供对于针对虚拟机改变的请求进行验证的方法,实现了对于改变请求本身的验证,进一步的对其改变后软件、硬件性能的改善进行了评估,根据评估结果判断是否需要实现改变。
附图说明
图1为一种对虚拟机改变的请求进行验证的系统的结构图;
图2为一种对虚拟机改变的请求进行验证的方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请请求保护一种对虚拟机改变的请求进行验证的方法和系统,其中对于虚拟机改变的请求包括对虚拟机的硬件的改变的请求和对虚拟机的软件进行改变的请求。
实施例一
图1示出了对虚拟机改变的请求进行验证的系统100,包括输入/输出装置101,一个或多个处理器102以及存储介质103,其中存储介质103中包括改变请求队列1031,策略库1032以及改变过程实例1033。其中输入/输出装置101接收对虚拟机改变的请求,并将其放入改变请求队列1031中,处理器102实现对请求队列1031中改变请求的处理。其中策略库1032存储改变请求需要满足的各种规则,针对不同的虚拟机可以具有不同的规则,一些规则也可以是针对所有的虚拟机的,例如对虚拟机安装补丁程序的改变请求,对于内存和操作系统的要求规则可以是相同的,是否对虚拟机已经安装的其他应用程序产生影响的判断规则则是依据不同的虚拟机各自的情况作出的。进一步的,改变过程实例1033存储多个激活的改变请求工作流,在处理器102的控制下执行改变请求的验证,其中一个或多个处理器102可由每个处理器执行一个改变请求工作流,也可以由一个处理器102执行多个改变请求工作流,从而实现改变请求的并行执行。下面结合附图2说明由处理器102执行的改变请求验证方法的具体实现步骤。
实施例二
如图2所示,本申请的对虚拟机改变的请求进行验证的方法包括如下步骤:
步骤210、接收对虚拟机改变的请求;
在接收到对虚拟机改变的请求后,获得当前虚拟机的运行信息,并基于当前虚拟机的运行信息对虚拟机进行评估,获得改变前的虚拟机评估结果。包括如下子步骤:
步骤p1、在固定时间窗内,轮询获得当前虚拟机的所有应用运行信息和虚拟机频率;
步骤p2、基于应用运行信息和虚拟机频率获得评估结果。
使用如下公式,对当前虚拟机进行评估:
其中ai'代表时间窗t1内应用程序i所占用的资源和会话,ɑi代表ai的会话所占权值,hi代表时间窗t1内ai'所使用的当前会话数,mi代表时间窗t1内最大会话数,βi代表ai'的资源所占权值,ε代表时间窗内ai'所占资源比例;p'代表对虚拟机的评估结果,
步骤220、对所述改变请求执行策略检查;包括如下子步骤:
步骤t1、根据所述改变请求,生成多个具有关联步骤的改变过程工作流;
改变过程工作流具有多个步骤,这些步骤之间彼此关联,存储于改变过程实例中,以工作流的形式,由处理器执行。例如对虚拟机安装补丁程序的改变请求,具有初始化步骤、条件检查步骤、实施步骤等,这些步骤之间彼此关联,一个步骤的完成才能开始另一个步骤,将这些步骤以工作流的形式加以存储。
步骤t2、基于预先设定的规则,判断多个改变过程工作流中关联步骤的转换是否被允许;
在策略库中预先存储的规则中,判断多个改变过程工作流中关联步骤的转换是否是被允许的。例如对虚拟机安装补丁程序的改变请求,在初始化步骤中判断虚拟机中是否存在该补丁应用程序,不存在时,则进入条件检查阶段,判断虚拟机内存和操作系统是否满则规则,如果满足,则进入实施步骤,判断是否和虚拟机已经安装的其他应用程序将产生冲突,是否可以正确安装。
步骤t3、如果被允许,则所述策略检查通过。
如果关联步骤的转换都是被允许的,则所述策略检查通过。进一步的,如果策略检查未通过,则需要调用异常处理方法,对发生的异常进行进一步的处理。
步骤230、在所述策略检查通过时,模拟改变后的虚拟机的运行,包括如下子步骤:
步骤s1、获得运行中虚拟机的运行参数;
步骤s2、输入预先建模的虚拟机模型中;
步骤s3、根据所述改变请求改变虚拟机模型的运行。
步骤240、获取改变后的虚拟机的运行信息,并基于所述运行信息对虚拟机进行评估,包括如下子步骤:
步骤d1、在固定时间窗内,轮询获得改变后的虚拟机模型的所有应用运行信息和虚拟机频率;
步骤d2、基于应用运行信息和虚拟机频率获得评估结果。
使用如下公式,对虚拟机进行评估:
其中ai代表时间窗t2内应用程序i所占用的资源和会话数,ɑi代表ai的会话数所占权值,hi代表时间窗t2内ai所使用的当前会话数,mi代表时间窗t2内最大会话数,βi代表ai的资源所占权值,ε代表时间窗t2内ai所占资源比例;p代表对虚拟机的评估结果,
步骤250、在所述改变后的虚拟机评估结果优于改变前的虚拟机评估结果时,执行虚拟机改变。
比较获得的p'和p,在p小于或等于p'时,表示执行改变请求后的虚拟机性能优于改变前的虚拟机性能,则执行虚拟机的改变。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。