基于OPNET的集群负载均衡仿真

2010-07-17 03:17史鸿雁李海生
食品科学技术学报 2010年1期
关键词:均衡器权值集群

史鸿雁, 李海生

(北京工商大学 计算机与信息工程学院, 北京 100048)

因特网的快速发展,要求服务器提供高质量、高效率的服务. 目前提高服务器性能较流行的技术是采用负载均衡集群(load balance cluster)技术[1]. 负载均衡集群运行时一般通过一个或者多个前端负载均衡器,将工作负载分发到后端的一组服务器上,从而达到整个集群系统的高性能和高可用性.

负载均衡只有通过某种负载分配技术,才能将外部发送来的请求均匀分配到集群中某一组服务器上,并使收到外部请求的服务器能各自独立地响应客户的请求. 因此,负载分配是集群系统工作的关键部分,它保证了集群系统对外提供最大的数据处理速度和服务能力.

1 集群负载均衡算法

设计负载均衡算法的目的是为了更好地解决集群的负载分配问题,它的好坏直接影响了集群向外提供服务能力的大小. 不好的算法,会导致集群的负载失衡,从而降低集群的工作效率[2]. 负载均衡算法的主要任务是决定如何选择下一个集群结点,将一个用户的服务请求转发给它. 当前,主要的负载均衡算法有随机算法、轮转算法、加权轮转算法等.

随机分配算法(random allocation)依赖于相应的随机函数,在一个服务器负载成员队列里,队列的每个负载成员都具有相同的地位,网络用户请求通过随机函数在这组成员中随机地选择进行任务分配. 随机算法在一定程度上具有盲目性,在某一时刻选中的结点恰好是重载结点,而其余轻载结点却可能处于空闲中,但平均而言,由于所有服务器共同接受随机分配,所以它们也能共享网络用户的服务请求.

轮转算法(round-robin allocation)是在一个任务队列里,队列的每个负载成员节点都具有相同的地位,轮转法简单地在这组成员中顺序轮转选择,当一个成员被分配后它就会移到队列的最后. 在负载均衡环境中,均衡器将新的服务请求轮流发给节点队列中的下一节点,如此连续、周而复始,每个集群的节点都在相等的地位下被轮流选择.

加权轮转算法(weighted round-robin allocation)是在一组负载成员中,每个成员被指定一个权值,用以表示这个成员的数据处理能力. 权值高的服务器要比权值低的优先获得服务请求,并且服务请示量要多于权值低的服务器. 同等权值的服务器具有相同处理等级,同一个处理等级里按照前面的轮转法进行均衡.

2 OPNET的仿真方法

优化网络工程工具 (optimized network engineering tool,OPNET)是目前最常用的商用网络仿真软件之一. 它支持各类通信网络和分发系统的模拟与仿真,可通过离散事件仿真分析模型化系统的行为和性能,帮助用户进行网络结构的分析、设计、建设和管理. 它涉及到仿真研究的各阶段,如模型设计、仿真、数据搜集和数据分析[3].

OPNET采用面向对象的建模方法来反映实际的网络和网络组件结构,实际的系统可以直观地映射到模型中. 仿真模型分为网络、节点和进程3个层次. 利用OPNET进行网络建模可以分为以下3个层次.

1) 进程层次. 在进程层次中模拟单个对象的行为,使用有限状态机(FSM)来对协议进行建模. OPNET内建的400多个库函数可以对各个层次的标准网络协议进行全面的支持,并且 Modeler中源码完全开放,用户可以根据自己的需要添加或者修改.

2) 节点层次. 建立由相应协议模型构成的节点模型,把进程层次中的各个进程互连成设备,并反映设备的特性.

3) 网络层次. 网络层次负责将节点层次中建立起来的设备互连成网络,它反映了现实网络结构的拓扑.

通过OPNET的3层建模机制建立起来的3层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性[4].

OPNET仿真主要可以分为以下几个步骤.

1) 理解系统和仿真目的.

2) 确定系统模型. 通过OPNET提供的相关工具,建立场景,选择所需要的设备和连接方式,建立网络拓扑,并检查整个网络是否连通.

3) 配制运行参数. 选择在该网络上运行的服务,并配制这些服务的运行参数. 这样就完成了系统流量的建模.

4) 选择要查看的结果. 选择所需要的结果报告,可以是某个设备上运行的某服务的参数之一,也可以是某些全局性的参数.

5) 运行仿真. 通过以上步骤,仿真环境已经搭建起来. 通过运行仿真可以得到需要的数据.

这几个步骤实际上是一个循环,运行以后得到的数据很可能因为参数配置等因素还不能让我们满意,这时候就可能需要再调整拓扑或者修改参数,再次运行仿真,直到得到满意的结果. 具体的仿真流程如图1[5].

图1 仿真流程Fig.1 Process of network simulation

3 集群仿真与结果分析

集群负载均衡的建模服从OPNET的3层建模规则,在网络层、节点层、进程层都可以充分利用OPNET的库文件,并根据实际需求做以设计.

1)网络建模. 由于本文是为了测试随机算法(RND)、轮转算法(RR)、加权轮转算法(WRR)3种算法的负载分配效果,因此我们模型仿真一个100M带宽的校级局域网的服务器集群,以防止由于带宽小时链路问题引起仿真结果出现误差. 我们采用集中式的负载均衡网络拓扑结构,负载均衡技术采用网络地址转换. 在集群中有3台性能不一的服务器server1、server2、server3,性能分别设为低、中、高的硬件配置. 服务器与负载均衡器balancer之间的信息交换通过集线器实现,均衡器与7个子网(每个子网配有15个终端用户)之间以及子网内部的线路都通过100M双绞线相连接. 建立的网络拓扑结构如图2.

在模块application和profile中我们添加数据库查询业务,并网络流量设为中等,并分别在server1、server2、server3中设置不同的硬件参数.

图2 网络仿真拓扑Fig.2 Topology of network simulation

2) 节点建模. 本层中最重要的是负载均衡器(load balancer),它的设计遵循OSI的7层建模规则,由底至上分别是:MAC、ARP、IP、IPencap、TCP(UDP)、tpal、application. 各层由相应的队列模型和进程处理模型组成,并用全双工的包数据流连接,数据包的传送仍按7层机制封装. 服务器和其它设备的设计均衡器类似.

3) 进程建模是载入负载均衡算法的部分. 在节点层的IP进程处理程序是负载均衡的工作核心,在进程编辑器中分别载入随机算法(RND)、轮转算法(RR)、加权轮转算法(WRR)3种算法,并依据服务器的硬件配置在算法中指定相应的负载权值.

最后,在3台服务器上依次选择服务器负荷作为仿真统计量. 模型仿真中,利用了OPNET Modeler特有的不同场景仿真结果可以进行比较的特点,可以对场景进行备份,备份后的场景所有的配置及结果都相同,通过改变其中一个场景的参数或网络拓扑结构,查看参数改变后对仿真结果的影响.

图3 Server 1的负载Fig.3 Load states of server 1

图3至图5分别给出了3种算法在3台服务器上的负载分配仿真结果.

由图中可以看出,3种算法都基本可以实现负载的均衡分配. 同时注意到集群系统中的负载总量约为7 800 bit/s,则平均每台服务器负载为2 600 bit/s. 观察图中每种算法对应的实际工作负载变化范围对应情况为:RND为2 000~3 200 bit/s,RR为2 400~2 900 bit/s,WRR为1 700~4 200 bit/s. RR的负载分布变化范围最小,WRR最大.

图4 Server 2的负载Fig.4 Load states of server 2

图5 Server 3 的负载Fig.5 Load states of server 3

显然,就负载的平均分配的效果而言,RR为最好. 综合考虑到集群系统中各服务器的实际性能上的差异,由于服务器server3的性能最高,而服务器server1性能较差,因此以负载与权值比进行分析计算,可见WRR明显好于上述两种算法. WRR能充分发挥服务器自身的性能,对性能高的服务器,它能相对提高其相应的工作负载量,反之则减小其工作负载量. 由此,我们得出以下结论.

1)随机调度算法的优点是简单易实现,缺点是由于其分配的随机性,很可能导致分配上的倾斜,造成某些服务器的过载.

2)轮转算法是基于均可能性分配的算法,因此它的优点是使集群中各服务器能平均收到同量的连接请求,使各服务器的负载量趋于平均,这在同构体或服务器性能差异不大的集群中无疑会有好的负载均衡效果,但它的缺点是在异构的集群中由于各服务器处理能力的差异仍会造成负载的不平衡.

3)加权轮转算法的优点是考虑到了各服务器的处理能力的差异,因而充分利用了服务器自身资源,在异构的集群中或集群系统中各服务器的工作性能相差较大时,仍能使系统有较好的负载均衡效果,但不足之处是权值是人为地依据经验设置,容易造成系统负载分配上的误差.

4 结束语

本文中介绍了使用仿真工具OPNET进行集群负载均衡的层次和步骤,并按照这个步骤对一个集群环境进行了仿真,测出随机调度算法、轮转算法、加权轮转算法在负载分配上的仿真结果,并从实验验证的角度对3种算法做评析. 这为研究现实网络中的集群负载均衡系统提供了一种可行的方法和依据,仿真实验数据也为集群负载均衡的研究提供了一定的技术参考 . 因此,利用网络仿真软件 OPNET去研究通信网络、设备、协议和应用有着重要的意义.

猜你喜欢
均衡器权值集群
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
基于权值动量的RBM加速学习算法研究
勤快又呆萌的集群机器人
基于多维度特征权值动态更新的用户推荐模型研究
无线传感网OFDM系统中信道均衡器的电路实现
一种基于LC振荡电路的串联蓄电池均衡器