一、什么是弹性扩展
弹性扩展最早是亚马逊提出的概念,弹性扩展针对的是云应用本身的一种动态的扩展,在云应用运行期间实现支撑云应用的虚拟机实例个数的动态增加或者减少,通俗点就是在负载较高的时候启动较多的实例,负载较低的情况停止一些实例。弹性扩展为云应用实现了真正意义上的资源按需分配。弹性扩展并不是简简单单的凭空复制,对于应用服务来说,增加服务器个数只是增加资源计算能力,还需要传统意义上的“集群”技术将它联合成一个整体对外提供服务。对于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