IaaS云计算弹性扩展的实现以及算法
一、什么是弹性扩展
弹性扩展最早是亚马逊提出的概念,弹性扩展针对的是云应用本身的一种动态的扩展,在云应用运行期间实现支撑云应用的虚拟机实例个数的动态增加或者减少,通俗点就是在负载较高的时候启动较多的实例,负载较低的情况停止一些实例。弹性扩展为云应用实现了真正意义上的资源按需分配。弹性扩展并不是简简单单的凭空复制,对于应用服务来说,增加服务器个数只是增加资源计算能力,还需要传统意义上的"集群"技术将它联合成一个整体对外提供服务。对于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上占有的计算能力,从而改善应用性能,并使应用按需被分配资源。但实际资源分配还包含了很多因素,例如物理机资源群还剩余多少计算资源,资源利用是否被均分到各个物理机上(这个需要资源均衡的智能迁移进行支撑)。
(责任编辑:admin)- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。