云计算环境下的虚拟集群的弹性伸缩方法与流程

文档序号:22626735发布日期:2020-10-23 19:35阅读:122来源:国知局
云计算环境下的虚拟集群的弹性伸缩方法与流程

本发明涉及虚拟集群伸缩技术领域,特别涉及一种云计算环境下的虚拟集群的弹性伸缩方法。



背景技术:

云计算服务商所提供的传统云服务器是一种简单高效,处理能力有限的服务器集群,服务器集群也叫虚拟集群,可以对云端虚拟集群做初始化设置,能够快速构建稳定、安全的应用虚拟集群,虚拟集群的群组规模保持不变。将业务集群托管到云端,集群将提高其易用性和安全性,并降低它的成本,以使得用户更加专注于核心业务。

但是,企业业务规模往往是存在波动的,当业务量缩小时,其业务量不需要占用整个虚拟集群的虚拟机资源,因而虚拟集群内就会存在虚拟机资源闲置,资源没有得到充分利用,造成资源浪费;当业务量增大时,其业务量所需要的虚拟机资源可能超过整个虚拟集群现有资源数量,造成现有虚拟集群内资源无法满足需要。



技术实现要素:

为了解决上述技术问题,本发明提供了一种云计算环境下的虚拟集群的弹性伸缩方法,包括以下步骤:

s100实时采集并记录云计算网络的业务申请量,由业务申请量换算出虚拟集群需求量,检测虚拟集群的当前群组内虚拟机的群组资源数量;

s200判断需求量和群组资源数量是否匹配,若是则回到s100,若否则执行s300;

s300判断需求量是否小于群组资源数量,若是执行s500,若否则执行s400;

s400在当前虚拟集群的群组外搜寻可用的虚拟机资源并纳入到虚拟集群的群组内,群组资源数量加1然后回到s200;

s500从虚拟集群的群组内选择并剔除虚拟机,群组资源数量减1然后回到s200。

可选的,对云计算网络的业务申请进行识别分类,对同类业务进行归并压缩,再根据业务类型进行分组,对网络设备上来自不同用户和不同业务量类别的分组进行优先级排序;在网络设备上设置分层调度器,所述分层调度器包括排列指令和出列指令;排列指令用于基于调度级别的层级在网络设备的传输之前,读取分组的数据字段,以便将多个队列中的一个相应队列确定为所述分组的目的地,将分组暂时存储在一个队列中;出列指令,用于根据一个或多个策略从所述多个队列中出列分组;以及基于调度级别的层级将分组提供给发送器;分层调度器用于至少部分基于调度级别的层级对分组进行优先级排序,调度级别的层级包括端口层、子端口层、管道层、业务量类别层和队列层;所述分层调度器用于使用令牌桶为所述子端口层和所述管道层实现业务量整形,并且为所述业务量类别层实现严格优先级;

检测虚拟集群群组内的虚拟机反应速度并根据速度由快到慢进行编号,新纳入群组的虚拟机根据纳入时间编号在后,若剔除则根据编号倒序选择虚拟机,根据编号顺序分别与调度级别的层级对接,并由编号在前的虚拟机处理优先级排序在前的业务申请。

可选的,设立虚拟机备用库,把从虚拟集群的群组内剔除的虚拟机纳入虚拟机备用库,并根据入库时间对虚拟机编号排序,库内虚拟机排序实时更新,当需求量大于虚拟集群群组的虚拟机数量时,优先从虚拟机备用库以编号倒序选取虚拟机,检测选取的虚拟机能够使用后纳入到虚拟集群的群组内。

可选的,在s400步骤中,所述虚拟机资源包括cpu、内存、网络以及磁盘,优先在虚拟集群涉及的物理机上进行搜寻,以搜寻到的可用cpu、内存、网络以及磁盘创建虚拟机,然后把创建后的虚拟机纳入到虚拟集群的群组内。

可选的,所述业务申请量采集和记录过程如下:

s110从网络监控中获取起止点流,提取每条起止点流的路径信息,构建起止点流流量矩阵,将获取的起止点流进行起止点编码,并形成起止点对标识映射表;

s120根据所述起止点流流量矩阵、起止点流的路径信息和采集的资源约束计算出用于监测不同范围的采样清单;

s130将所述采样清单分别分配给各个路由器,给路由器配置分发起止点对标识映射表;

s140根据所述起止点对标识映射表和所述采样清单,对进入网络中的数据包进行分组监测分析,得到流数据并记录。

可选的,所述采样清单范围为在保证总的流量覆盖最大的前提下使每条流被采集的数量最小的问题求解,通过采用约束方程求解所述采样清单范围的优化解s*=<sij>,1≤i≤m,1≤j≤n,即maxtotgivenfrac(α)为:

约束条件为

其中,hi代表起止点流的流量矩阵h的第i列,kj代表路由器j对应的采集器的资源约束;ri代表实测起止点流i被所有路由器对应的采集器采集的百分数;sij表示路由器j对应的采集器采集的起止点流i的百分数;α代表每条流被采集的最小百分数;

将所述采样清单范围的优化解映射到所述路由器的采样清单中。

可选的,所述虚拟集群设有虚拟交换机,所述虚拟集群的群组中各虚拟机都与虚拟交换机连接实现数据交互。

可选的,在s400步骤中,所述虚拟机纳入到虚拟集群的群组中的操作如下:

s410当虚拟集群的虚拟机节点网络代理接收到由主服务器发出的网络变更请求时,根据在主服务器中保存的静态路由表来更新计算节点的虚拟交换机的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到所述虚拟交换机;所述网络变更请求为将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求或者将虚拟机的网卡切换至为虚拟机添加的网卡的请求;

s420由计算节点中的虚拟机的云主机网络代理根据从所述主服务器获取的路由信息来更新所述虚拟机内部的路由表,以使得虚拟机内部的路由信息与虚拟交换机的流表信息匹配,使所述虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。

可选的,在s400步骤中,在当前虚拟集群的群组外搜寻可用的虚拟机资源的方法如下:

第一,向与虚拟集群的虚拟机相邻的群组外部邻居节点发出搜索信息;

第二,所述邻居节点收到节点的搜索消息后,查询自身资源信息索引表;当资源信息索引表存在目标资源时,将搜索结果回复给所述节点;当自身资源信息索引表不存在目标资源时,则将节点的搜索消息转发给自身的邻居节点,由自身的邻居节点查询其资源信息索引表,以这种相邻传递方式至搜索到可用的虚拟机资源为止。

可选的,在s500步骤中,从虚拟集群的群组内选择并剔除虚拟机的步骤如下:

首先,在虚拟集群处理业务申请时,记录其处理业务申请有关的时间、cpu和存储量信息;其次,采用以下公式计算虚拟集群的群组内各虚拟机节点的业务申请处理能力:

上式中,pn表示虚拟机节点的业务申请处理能力;n表示虚拟机处理的业务申请;tn表示处理第n个业务申请所需要的时间;k表示;e(t)表示t时刻可用的cpu;a(t)表示t时刻可用的存储量;x表示算法水平,是一个假定的与时间无关的常数;t表示时间;f[e(t),a(t),x,t]表示搜索引擎对cpu、存储和算法三个要素的函数关系;

然后根据各虚拟机节点的处理能力由小到大对虚拟机节点进行排序;

最后,当后续判断需求量小于群组资源数量时,根据虚拟机节点排序剔除虚拟机。

本发明,通过记录业务申请量和检测虚拟集群内的群组资源数量,并进行对比断定两者的匹配性,若不匹配,则根据两者的大小差异对虚拟集群的群组内虚拟机进行增补或者剔除调整,使得虚拟集群的群组内虚拟机可以适应企业业务规模波动;例如:当业务量缩小时,剔除虚拟集群内存在的闲置虚拟机资源,避免造成资源浪费;当业务量增大时,从外部搜索可用的虚拟机资源并添加到虚拟集群的群组内,以满足企业业务增长需求。即虚拟集群采用弹性调整方式始终保持与需求的匹配性。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中一种云计算环境下的虚拟集群的弹性伸缩方法的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明实施例提供了一种云计算环境下的虚拟集群的弹性伸缩方法,如图1所示,包括以下步骤:

s100实时采集并记录云计算网络的业务申请量,由业务申请量换算出虚拟集群需求量,检测虚拟集群的当前群组内虚拟机的群组资源数量;

s200判断需求量和群组资源数量是否匹配,若是则回到s100,若否则执行s300;

s300判断需求量是否小于群组资源数量,若是执行s500,若否则执行s400;

s400在当前虚拟集群的群组外搜寻可用的虚拟机资源并纳入到虚拟集群的群组内,群组资源数量加1然后回到s200;

s500从虚拟集群的群组内选择并剔除虚拟机,群组资源数量减1然后回到s200。

上述技术方案的工作原理和有益效果为:通过记录业务申请量和检测虚拟集群内的群组资源数量,并进行对比断定两者的匹配性,若不匹配,则根据两者的大小差异对虚拟集群的群组内虚拟机进行增补或者剔除调整,使得虚拟集群的群组内虚拟机可以适应企业业务规模波动;例如:当业务量缩小时,剔除虚拟集群内存在的闲置虚拟机资源,避免造成资源浪费;当业务量增大时,从外部搜索可用的虚拟机资源并添加到虚拟集群的群组内,以满足企业业务增长需求。即虚拟集群采用弹性调整方式始终保持与需求的匹配性。

在一个实施例中,对云计算网络的业务申请进行识别分类,对同类业务进行归并压缩,再根据业务类型进行分组,对网络设备上来自不同用户和不同业务量类别的分组进行优先级排序;

在网络设备上设置分层调度器,所述分层调度器包括排列指令和出列指令;排列指令用于基于调度级别的层级在网络设备的传输之前,读取分组的数据字段,以便将多个队列中的一个相应队列确定为所述分组的目的地,将分组暂时存储在一个队列中;出列指令,用于根据一个或多个策略从所述多个队列中出列分组;以及基于调度级别的层级将分组提供给发送器;分层调度器用于至少部分基于调度级别的层级对分组进行优先级排序,调度级别的层级包括端口层、子端口层、管道层、业务量类别层和队列层;所述分层调度器用于使用令牌桶为所述子端口层和所述管道层实现业务量整形,并且为所述业务量类别层实现严格优先级;

检测虚拟集群群组内的虚拟机反应速度并根据速度由快到慢进行编号,新纳入群组的虚拟机根据纳入时间编号在后,若剔除则根据编号倒序选择虚拟机,根据编号顺序分别与调度级别的层级对接,并由编号在前的虚拟机处理优先级排序在前的业务申请。

上述技术方案的工作原理和为:根据业务类型对业务申请进行优先级分组,采用分层调度器对业务申请的优先级分组进行分层调度;另外通过检测虚拟集群群组内的虚拟机反应速度并根据速度由快到慢进行编号,让优先级在前的业务申请优先使用反应速度快的虚拟机资源,把反应速度慢的多余虚拟机资源从群组内剔除,若群组内虚拟机资源不足,则从群组外搜索纳入进行增补,增补入的虚拟机根据增补顺序来处理剩下的业务申请,避免由增补虚拟机处理优先级在前的业务申请而耽误。

上述技术方案的有益效果为:对虚拟集群群组内的虚拟机处理业务申请规则进行优化,使得优先级在前的重要业务申请能够得到更好的虚拟机服务,更快地得到处理结果;在虚拟集群的弹性调整方面,优先保障优质资源能够保存在群组内。

在一个实施例中,设立虚拟机备用库,把从虚拟集群的群组内剔除的虚拟机纳入虚拟机备用库,并根据入库时间对虚拟机编号排序,库内虚拟机排序实时更新,当需求量大于虚拟集群群组的虚拟机数量时,优先从虚拟机备用库以编号倒序选取虚拟机,检测选取的虚拟机能够使用后纳入到虚拟集群的群组内。

上述技术方案的工作原理和有益效果为:通过建立虚拟机备用库,给虚拟集群做弹性备用,在虚拟集群需要增补虚拟机时,第一时间搜索使用虚拟机备用库内的资源,避免了从外部搜索导致的效率降低。对于虚拟机备用库内的资源在没有被纳入虚拟集群时,可以根据其入库时序顺序提供给其他用途使用,以避免资源学浪费,若有多个虚拟集群可以共用一个虚拟机备用库。

在一个实施例中,在s400步骤中,所述虚拟机资源包括cpu、内存、网络以及磁盘,优先在虚拟集群涉及的物理机上进行搜寻,以搜寻到的可用cpu、内存、网络以及磁盘创建虚拟机,然后把创建后的虚拟机纳入到虚拟集群的群组内。

上述技术方案的工作原理和有益效果为:虚拟机需要物理资源的支持,在虚拟集群外部往往没有现成的虚拟机,而是需要利用外部物理资源进行虚拟机创建,因此,从群组外部搜索时,最好是先搜寻网络上的可用物理资源,然后以可用物理资源来创建虚拟机,再与虚拟集群创建内部连接纳入群组内。

在一个实施例中,所述业务申请量采集和记录过程如下:

s110从网络监控中获取起止点流,提取每条起止点流的路径信息,构建起止点流流量矩阵,将获取的起止点流进行起止点编码,并形成起止点对标识映射表;

s120根据所述起止点流量矩阵、起止点流的路径信息和采集的资源约束计算出用于监测不同范围的采样清单;

s130将所述采样清单分别分配给各个路由器,给路由器配置分发起止点对标识映射表;

s140根据所述起止点对标识映射表和所述采样清单,对进入网络中的数据包进行分组监测分析,得到流数据并记录。

上述技术方案的工作原理和有益效果为:本发明需要采集业务申请量,而起止点流量是对业务申请量的不同表述,上述方案给出了计算起止点流量的方法,可以较好地实现业务申请量统计。起止点流指起止点调查又称起止点交通量调查,是指起点到终点间的交通出行量,本文中指起点到终点间的数据流。

在一个实施例中,所述采样清单范围为在保证总的流量覆盖最大的前提下使每条流被采集的数量最小的问题求解,通过采用约束方程求解所述采样清单范围的优化解s*=<sij>,1≤i≤m,1≤j≤n,即maxtotgivenfrac(α):

约束条件为

其中,hi代表起止点流流量矩阵p的第i列,kj代表路由器j对应的采集器的资源约束;ri代表实测起止点流i被所有路由器对应的采集器采集的百分数;sij表示路由器j对应的采集器采集的起止点流i的百分数;α代表每条流被采集的最小百分数;

将所述采样清单范围的优化解映射到所述路由器的采样清单中。

上述技术方案的工作原理和有益效果为:通过上述算法,优化业务申请的流量采集策略,简化采样过程,提高采集速度和采集准确率,避免因采集滞后而耽误数据处理降低虚拟集群的弹性应变能力。

在一个实施例中,所述虚拟集群设有虚拟交换机,所述虚拟集群的群组中各虚拟机都与虚拟交换机连接实现数据交互;在s400步骤中,所述虚拟机纳入到虚拟集群的群组中的操作如下:

s410当虚拟集群的虚拟机节点网络代理接收到由主服务器发出的网络变更请求时,根据在主服务器中保存的静态路由表来更新计算节点的虚拟交换机的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到所述虚拟交换机;所述网络变更请求为将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求或者将虚拟机的网卡切换至为虚拟机添加的网卡的请求;

s420由计算节点中的虚拟机的云主机网络代理根据从所述主服务器获取的路由信息来更新所述虚拟机内部的路由表,以使得虚拟机内部的路由信息与虚拟交换机的流表信息匹配,使所述虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。

上述技术方案的工作原理和有益效果为:上述方案对当虚拟集群需要增加虚拟机时,细化了把虚拟机纳入到群组内的方法,通过该方法,可以简便且快速地实现虚拟集群的扩展,缩减了群组的增补反应时间,可快速应对业务申请量增长的变化,避免业务申请出现长时间的排队等待。

在一个实施例中,在s400步骤中,在当前虚拟集群的群组外搜寻可用的虚拟机资源的方法如下:

第一,向与虚拟集群的虚拟机相邻的群组外部邻居节点发出搜索信息;

第二,所述邻居节点收到节点的搜索消息后,查询自身资源信息索引表;当资源信息索引表存在目标资源时,将搜索结果回复给所述节点;当自身资源信息索引表不存在目标资源时,则将节点的搜索消息转发给自身的邻居节点,由自身的邻居节点查询其资源信息索引表,以这种相邻传递方式至搜索到可用的虚拟机资源为止。

上述技术方案的工作原理和有益效果为:洪泛转发和漫步转发方式进行外部资源搜索,避免了搜索的盲目和无序,提高了搜索的目的性,实现了搜索的有序性,防止了搜索的杂乱导致效率低下,在一定程度上缩小了搜索的范围,提高搜索的速度和效率,该方法更有利于加强后续虚拟集群的结构紧密度,使得外部资源能够更快更好地被纳入到群组内。

在一个实施例中,在s500步骤中,从虚拟集群的群组内选择并剔除虚拟机的步骤如下:

首先,在虚拟集群处理业务申请时,记录其处理业务申请有关的时间、cpu和存储量信息;其次,采用以下公式计算虚拟集群的群组内各虚拟机节点的业务申请处理能力:

上式中,pn表示虚拟机节点的业务申请处理能力;n表示虚拟机处理的业务申请;tn表示处理第n个业务申请所需要的时间;k表示;e(t)表示t时刻可用的cpu;a(t)表示t时刻可用的存储量;x表示算法水平,是一个假定的与时间无关的常数;t表示时间;f[e(t),a(t),x,t]表示搜索引擎对cpu、存储和算法三个要素的函数关系;

根据各虚拟机节点的处理能力由小到大对虚拟机节点进行排序;

最后,当后续判断需求量小于群组资源数量时,根据虚拟机节点排序剔除虚拟机。

上述技术方案的工作原理和有益效果为:上述方案采用虚拟集群的群组内虚拟机对前面的业务申请处理的能力进行量化计算的方式,对群组内的虚拟机的业务申请处理能力进行评估和排序,以此为基础,在后续若业务申请量出现下降,需要缩减群组内的虚拟机时,可以根据处理能力排序优先保留处理能力较好的虚拟机在群组内,而把处理能力较弱的虚拟机剔除出群组,在虚拟集群缩减时直到优化群组的作用。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1