APP下载

基于异构应用的负载均衡技术探析

2010-12-31周迪卿

中国新技术新产品 2010年4期
关键词:计算资源流动升级

周迪卿

(杭州师范大学国际服务工程学院 瑞萨061班,浙江 杭州 310012)

1 引言

对于构建的虚拟机将共享能力服务器底层的硬件资源,我们对虚拟机以及计算资源提供了统一的管理策略。正常工作状态下,虚拟机本身运行特定的应用为用户提供计算服务,由于应用的本身差异以及虚拟机工作状态的不同造成对计算资源表现出不同的需求特征,比如在某些时间段内,某些虚拟机上应用可能对CPU或memory等计算资源表现敏感,作业的运行较多的消耗CPU时间片或memory,如果虚拟机当前的资源刚好有限,那么虚拟机本身的负载可能就比较高;而此时,另外某些虚拟机可能出于非活动态(比如睡眠状态)或虚拟机内部没有运行任何作业,机器本身的负载就比较低。在这样一种场景下,如果能够根据当前虚拟机对资源的需求,重新调整虚拟机之间的资源分配状况(比例),将有效地缓解当前高负载虚拟机的资源压力,同时也能进一步提升能力服务器整体的资源利用率,为此,我们研究了负载均衡的相关策略,并基于能力服务器资源管理的特点引入了能力流动机制。简单的说,能力流动就是物理资源在不同虚拟平台之间以及同一虚拟平台的不同虚拟节点之间按需、动态和透明的“流动”,以保证整个系统始终具有较高的资源利用率、应用运行效率和负载均衡性。

2 负载均衡技术的实现

当前信息系统的各个核心部分随着业务量的不断提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担,在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的极大浪费,而且如果再面临下一次业务量的提升时,这又将导致硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的增长,针对此情况而衍生出来的一种廉价、有效、透明的方法,以加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡技术。负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。负载均衡有两个方面的含义:首先,把大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高。从系统的角度来看,负载均衡技术根据其最终实现的层次可以分为以下两种:

2.1 作业拆分

这种负载均衡方法是在应用层实现,通过可以将一个高负载的大作业进行拆分为若干个小任务,将这些不同的小任务通过一定的调度策略分发到不同的机器上分别执行,当作业执行完成后将结果汇总返回给用户。类似的应用场景比如传统的网络游戏中整个游戏只有一个服务器来支持一张异常庞大的地图,这种超级制作运转起来难度自然相当大。为了使服务器运转畅通无阻,以保证服务器后台的高可用性,实现动态负载均衡和动态可扩展性,令地图可连续跨接在多个服务器上。当玩家发生跨服动作时达到一种无缝的平滑的效果,玩家甚至感觉不到己切换地图或服务器,在这里就是通过将一个大作业进行划分后部署到后台的集群服务器中,实现负载均衡同时也提高了为用户服务的效率和质量。

2.2 硬件升级

这种是通过调整或升级底层硬件资源达到负载均衡,相关的硬件资源包含了CPUmemory.disk等。具体的硬件升级或调整方法可以是添加新硬件实现资源的扩充,也可以是抛弃现有的设备更换全新的硬件资源。对于前者只需要在原有设备的基础上增加新的硬件资源即可,比如通过购买新的内存增加总的内存容量;然而随着当前硬件设备的迅速发展,可能某些硬件设备出现新旧兼容问题,就可能需要扔掉现有设备去做大量的硬件升级,这样将造成现有资源的极大浪费,而且如果再面临下一次业务量的提升时,这又将导致硬件升级的高额成本投入。就能力服务器而言,由于应用场景的差异通过将作业拆分成更小的粒度达到负载均衡显得不太合适。相反,由于引入了虚拟化,实现对底层物理服务器资源的全局映射,支持虚拟平台对全局虚拟化后的物理资源的访问和共享,我们可以试图采用新的硬件升级模式来做到负载均衡,这就是我们下面将要介绍的能力流动机制,能力流动即所谓的计算资源流动,就是指当某台虚拟机的计算资源利用达到饱和,其他虚拟机却仍然有空闲计算资源时,我们能够通过某种调度策略将空闲虚拟机的一部分计算资源动态分配给资源饱和的虚拟机,平衡当前虚拟机之间的负载。

3 能力流动机制分析

3.1 能力流动概述

从第一台电子计算机ANIARC的诞生至今,计算机的构建模式就一直遵循冯·诺依曼体系结构即计算机的组成包含运算器、控制器、存储器、输入设备和输出设备五大部分。在个人PC或企业服务器中CPU等部件与操作系统实现静态绑定,当应用对硬件资源的需求增加时,如果当前机器无法满足应用需求,此时用户要想提高机器的运算能力需要通过硬件升级实现,对于这问题企业服务器表现的尤为明显。同时,企业内部普遍资源分布的不均衡,某些服务器资源利用率很高,而另外一些则较低,由于机器本身的独立性和对资源的独占性导致了资源极大浪费。然而能力服务器打破了传统机器设备独立性,实现底层资源整合以及底层物理服务器资源的全局映射,支持虚拟平台对全局虚拟化后的物理资源的访问和共享,能够根据用户的需求实时调整虚拟机资源的分配,实现计算资源的动态流动。

能力计算思想是能力服务器实现的核心基础,我们将CPU提供的运算能力,内存和硬盘提供的存储能力统称为能力资源,配合能力服务器虚拟资源管理相关策略实现了虚拟机之间的能力流动即计算资源的流动。能力流动实现了计算资源(CPU,memory)在不同虚拟平台之间以及同一虚拟平台的不同虚拟节点之间按需、动态和透明的“流动”,以保证整个系统始终具有较高的资源利用率、应用运行效率和负载均衡性。

3.2 能力流动的实现

为实现资源全局映射,能力服务器的资源管理系统呱对全局资源可见,它可以根据当前服务节点资源使用情况为某一虚拟机分配所需资源。Decision module模块是整个资源流动的核心。它需要为资源在虚拟机之间按需、动态和透明的“流动”进行关键的决策,解决上述三个“流动”决策问题,接下来分析解决上述决策问题的基本思路和策略:

3.2.1 “流动”遵循总原则

能力服务器中的虚拟机在创建初期均设置了相应的优先级参数,优先级可由用户指定,亦可采用系统的默认级别。优先级总分为以下五个级别:a.最高;b.高于标准;c.标准;d.低于标准;e.最低,默认优先级是“标准”,同时规定:能力流动只能是由优先级低虚拟机流向优先级高的虚拟机,一旦作业运行结束能力需要回流归位。

3.2.2 “流动”时机的选择

资源流动采用laze flowing的机制,基本思想是:当收到某VM要减少其某种资源的请求时,并不真正减少其对该资源的使用,而仅仅进行简单的记录;只有当收到某VM要增加该类资源的请求时,才真正实现资源在这两者间的“流动”。资源“流动”后,该资源的前拥有者不能够再使用该资源,除非它将该资源再次借入。

当收到某VM要增加其某种资源的请求时,Decision module会首先检查其记录的信息,看是否有空闲的该类资源,如果有则进行相应的资源“流动”:如果没有,Decision module模块会根据VM的动态优先级进行决策:若请求增加资源的VM的优先级不是最低的,将控制资源从最低优先级的VM流向请求资源的VM;若请求增加资源的VM的优先级是最低的,则拒绝其增加资源的请求。(为防止某一虚拟机因为优先级低而造成对资源的请求永远被拒绝,故此优先级采用动态的变化,即随时间增加,它的优先级也会变大。简单的说,只有当有VM请求增加资源时,才有可能会激发真正的资源“流动”;但并不是所有的增加资源的请求都会引发资源“流动”,这要看整个系统当前的状况和发起请求的VM当前的优先级。

3.2.3 “流动”对象及其量的确定

对于哪类资源要“流动”,“流动”多少的问题,主要取决于收到的请求,VM要改变其所拥有资源时,须明确指出要改变哪类资源,改变多少。但真正改变的量还是会根据系统当前的状况和提出请求的VM的当前优先级由Decision module模块决定。若系统能够满足该VM的请求,将会满足它:若不能,则会满足部分或拒绝。

能力流动机制的引入,可以有效地解决了同一物理服务器内部不同虚拟机之间的资源负载的均衡,实现了不同虚拟机之间资源的共享,提高了物理服务器的资源利用率。

[1]孙毓忠,常亮,未来企业信息化的基石-能力服务体系基础,信息技术,2006.

[2]李国杰,关于超级计算与能力服务的战略思考,信息技术快报,2005.

[3]李国杰,关于下一代网络体系结构与应用模式的思考,2002.

猜你喜欢

计算资源流动升级
小投入,大升级 Polk Audio Monitor XT系列
基于模糊规划理论的云计算资源调度研究
流动的光
幸福,在“家门口”升级
流动的画
改进快速稀疏算法的云计算资源负载均衡
回暖与升级
基于Wi-Fi与Web的云计算资源调度算法研究
耦合分布式系统多任务动态调度算法
为什么海水会流动