一、什么是弹性扩展

弹性扩展最早是亚马逊提出的概念,弹性扩展针对的是云应用本身的一种动态的扩展,在云应用运行期间实现支撑云应用的虚拟机实例个数的动态增加或者减少,通俗点就是在负载较高的时候启动较多的实例,负载较低的情况停止一些实例。弹性扩展为云应用实现了真正意义上的资源按需分配。弹性扩展并不是简简单单的凭空复制,对于应用服务来说,增加服务器个数只是增加资源计算能力,还需要传统意义上的"集群"技术将它联合成一个整体对外提供服务。对于IaaS来说,它不会因为特殊的业务规则对应用进行限制,导致应用做相应的更改,这违背了它产生的本意,它更多的是关注整体行为,无论什么应用都可以在其运行,并享受它一致各种服务。由此可见弹性扩展中对应用部署所需的虚拟机是预先创建的,并由应用实施者通过内网组建一个集群,这些虚拟机放入到一个pool中,按照策略进行启动所需的虚拟机实例,说白了IaaS管理服务只关注池里面有多少虚拟机,然后按策略停止或者启动这些虚拟机。

二、弹性扩展实现

首先云用户通过管理portal,可以定义一个pool,将需要实现弹性扩展的虚拟机加入到pool,原则上是一个应用对应一个pool,并设置弹性扩展策略,主要是IaaS管理服务调度算法涉及的参数有关,如下所示:

Pool max size:这与云用户加入的虚拟机个数有关;

Pool min size:该值缺省为1,表示最小运行情况下的虚拟机个数;

High load limit:表示整体运行负载超过该值时,就需要投运新虚拟机;

Lower load limit:表示整体运行负载低于该值时,就需要停运虚拟机,将虚拟机放入到闲置的pool中。

Step start count:该值缺省为1,表示每次投运的个数

Step stop count: 该值缺省为1,表示每次停运的个数

然后对于云用户来说还需要一个动态监控的界面,监控该pool动态变化。

对于IaaS平台来说要实现弹性扩展,首先要实现性能监控模块,对池中的投运的虚拟机进行性能监控,根据监控数据,实时的cpu利用率计算整体运行负载,然后按策略进行调度。下面我讲详细的讲解弹性扩展算法。

三、 弹性扩展算法

假设前提:

闲置池:freePool={V1,V2,……}

投运池:usedPool={…}

池中虚拟机:V1,V2,……

物理机:P1,P2,……,Pn

按照物理机性能设置每个物理机权值:LD1,LD2,……,LDn

平均化计算周期:T

High load limit:HLL

Lower load limit:LLL

弹性计算资源调度周期:T1

算法描述:

1、  平均法去掉瞬时尖峰值计算所有物理机,以及虚拟机某段时长的平均cpu利用率;

注:平均法要防止因为瞬时峰值引起云计算内部频繁调度,导致云计算内部的"颤动"

计算方式如下:每个资源(物理机或者虚拟机)拥有一个队列,保存T周期的m个性能数据,每次新的监控数据cpu利用率进入后,将最久的监控数据移出,将新数据加入到队列里,计算队列中剩余值,计算公式如下:资源负载=(SUMi-1+DATAnew-DATAlast)/m;

注:如果队列中没有保存一个T周期的数据不做计算,不列入本次计算范围内。

2、  计算所有投运虚拟机的实际占有负载:

计算方式:虚拟机的性能监控数据代表的相对计算能力,因此需要通过物理机性能数据折算成绝对的负载值,计算公式如下:

其中Vcpu表示虚拟创建时cpu个数;

表示虚拟机相对负载;

该计算公式表示该物理机上运行m个虚拟机

3、  选择一个需要调度的pool,综合虚拟机负载计算整个投运的所用虚拟机平均负载:

其计算公式如下:

m表示该pool中已投运的虚拟机个数。

4、  计算该pool中是否需要投运或者停运:

Pool整体负载〉HLL,表示需要投运新的虚拟机,从free pool中选择Step start count个虚拟加入到待启动队列中,如果free pool中虚拟机个数不足,则将剩余的全部取出。

Pool整体负载<LLL,表示需要停运新的虚拟机,

如果Pool中虚拟机个数-Step stop count>=Pool min size,则从used pool中选择Step stop count个负载最低的虚拟机加入到待停止队列中;

如果Pool中虚拟机个数-Step stop count<Pool min size,则从used pool中选择Pool中虚拟机个数- Pool min size个负载最低的虚拟机加入到待停止队列中;

否则:该虚拟机不做任何调度

5、  从待启动中依次启动虚拟机或则从待停止队列中依次停止虚拟机,并清除pool中所有虚拟机T1周期的数据,防止该pool在T1周期不被再次调度。

6、  依次从poollist取一个pool,按照3-5进行操作。

算法其他说明:

该算法只关注对于pool需要启动多少个虚拟机,在理论上虚拟机多少代表其应用在IaaS上占有的计算能力,从而改善应用性能,并使应用按需被分配资源。但实际资源分配还包含了很多因素,例如物理机资源群还剩余多少计算资源,资源利用是否被均分到各个物理机上(这个需要资源均衡的智能迁移进行支撑)。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排 行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2019-07-31 12:13:13
云资讯 京东云发布《私有云&混合云白皮书》 构建客户想要的云平台
伴随着人工智能、大数据、物联网等技术的不断发展,以及5G时代的来临,企业IT系统的云化成为大势所趋。客户多样化、个性化的应用需求对云厂商提出更多要求。 <详情>
2019-07-31 10:31:00
边缘计算 企业必须进入云端吗?可以进入边缘计算
如今物联网的应用越来越广泛,但需要具有企业的视角。这意味着垂直行业应用程序、开发生态系统、产品设计、硬件、部署等。 <详情>
2019-07-31 10:19:00
云资讯 谷歌牵手VMware将虚拟化工作负载引入谷歌云
彭博社报道称,谷歌与VMware正在展开合作,帮助企业更轻松地在Google Cloud Platform上运行VMware vSphere虚拟化软件和网络工具。 <详情>
2019-07-31 09:52:00
云资讯 谷歌与戴尔旗下云计算公司VMware建立新合作 试图追赶竞争对手
据国外媒体报道,当地时间周一,谷歌宣布与戴尔旗下的云计算公司VMware建立新的合作伙伴关系,帮助更多企业迁移到云端,从而试图追赶其竞争对手。 <详情>
2019-07-31 09:10:00
云技术 云计算时代,硬件为什么仍然非常重要?
加利福尼亚大学圣迭戈分校采用了“云优先”的战略,他们淘汰了三台大型机、将尽可能多的计算工作负载转移到云端、尽可能放弃内部部署软件,转而使用软件即服务。 <详情>