首页 > 范文大全 > 正文

均衡算法虚拟服务器

开篇:润墨网以专业的文秘视角,为您筛选了一篇均衡算法虚拟服务器范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

1引言

随着计算机网络应用的迅速发展,传统客户机/服务器网(Client/Server,CS)模式不能适应大型分布式网络的可靠性需求[1。对等网络(Peer-to-Peer,P2P)打破了传统的CS模式各节点地位平等,能够很好满足大型分布式网络的可靠性要求,然而P2P网络节点带宽、延迟和处理能力差异性很大,存在严重负载不均衡问题,设计高效网络负载平衡算法是结构化P2P系统的一个关键问题[2。负载均衡目标是使节点负载的不均衡性最小,针对结构化P2P系统中的负载不均衡问题,前人已有做了许多工作,致力解决和克服该问题,当前主要采用虚拟服务器(virtualserver)或分布哈希表(distributedHashtable,DHT)技术对系统内节点负载进行均衡[3。Chord等人首先基于虚拟服务的系统负载平衡方法[4;Rao等人提出虚拟服务和目录相结合的负载平衡算法[5;Frank等人对Rao和Chord的方法进行改进,每个网络节点根据自身容量来确定虚拟节点的数目,使得存储容量大的节点承担更多的负载,但是没有考虑节点间差异性[6。而大量研究表明,在P2P系统中,节点的CPU、存储空间、带宽等能力差异很大,忽略节点间差异性会导致节点负载不均衡问题。张伟文等提出一种基于局部网络信息的动态负载均衡算法,该算法提高了负载均衡速度,但是针对的是同构网络[7。Zhu等提出基于k-ary树的P2P网络负载均衡算法,该算法采用负载转移就近的原则,提高了负载均衡效果与效率,但是该算法相当复杂,使P2P网络的负载均衡速度和稳定性下降[8。针对当前P2P网络的负载均衡算法存在的不足,本文提出一种新的P2P网络的负载均衡算法,并通过仿真对比实验对算法的有效性和优越性进行验证。

2P2P网络负载均衡问题描述P2P网络由许多计算机(节点)连接而成,对节点的负载进行合理分配,使节点间负载基本均衡,这种形式通常被称为负载均衡,其示意图如图1所示[9。当前P2P网络负载均衡算法,假设系节点无差异,然而实际节点间性能异性较大,且资源查找者对各节点上存储信息需求不均匀,在某一时刻,一些节点负载较重,而一些节点的负载较轻,轻载节点处理能力被闲置,而某些节点负载过大,成为“热点”(hotspot),系统健壮性和稳定差,效率极低,从而导致节点负载极不均衡[10。为改善系统性能,减轻“热点”上的负载,本文利用节点的异质性,根据节点的带宽、处理能力、资源下载热度等参数,改变传统算法中使节点地址空间大小相同的缺陷,动态调整每一个节点地址空间负载均衡算法。

3新的网络负载均衡算法

3.1相关定义1)负载。节点负载是指该节点中所有存储的数据总和,P2P网络系统负载定义为参与系统所有节点的负载之和。2)节点利用率。节点A的利用率是指节点A的负载与其能力的比值,即有:其中,n表示网络中的节点数。负载均衡算法的目标就是使dev尽量小,当dev=0时,网络达到完全负载平衡的理想状态。4)虚拟服务器。虚拟服务器相当于DHT节点,网络中的每一个物理节点都对应多个虚拟服务器,每一个节点对应的地址空间可能是不连续的,当物理节点处于过载状态时,虚拟服务器从过载节点转移到轻载节点,其通过DHT的离开和加入操作完成,通过引入虚拟服务器,使负载可以在任意两个节点之间进行,而不是仅仅限制于邻居节点之间。

3.2改进虚拟服务器在传统负载均衡算法中,负载平衡性能通过虚拟节点对外直接提供通信服务,每一个物理节点可以设置多个虚拟服务器,每个虚拟服务器需要一个ID才能在P2P网络中运行,每启用一个ID就相当于激活了一台虚拟服务器。物理节点点过,热处址均,与按一定规则将网络负载分配到虚拟节点上,当物理节点负载过重时,将就虚拟节点转移其它轻载节点上进行负载转移,从而实现整个P2P网络中的负载均衡分配。鉴于SDYA负载均衡算法的思想,本文利用引导服务器作为负载均衡策略的决策者,减少了负载均衡开销,提高网络系统的稳定性。当新节点加入时,引导服务器保存该节点的信息,当节点退出时,通过引导服务器进行检测验证,这样系统开销明显减小。

3.3改进ID地址空间分配在当前P2P网络负载均衡算法中,假设网络带宽、处理能力相同的,且网络资源是均匀分布,然而实际情况,节点间性能具有明显的差异,资源是随机稀疏分布,这样负载均衡算法采用ID空间随机获取,虚拟节点转移到其它物理节点上会引起网络的抖动,影响网络的稳定性。为此对ID地址空间分配进行改进,具体如下:1)每一个节点的ID地址空间分配不是随机的,而是一段连续的环地址,其虚拟服务器数量的范围是[0,32]。2)每一个节点占有ID空间与其最大承载能力成正比,当节点的承载能力发生明显变化时,ID空间利用率才发生相应的调整,减少了负载分配与转移算法的复杂性,降低了系统开销。

3.4网络负载分配过程为了便于定量分析,每一个节点的存储容量、带宽、延迟、I/O响应率和CPU速度等等统一视为一种资源,采用Ci表示节点i最大承载能力,由于每一个节点的最大承载能力各异,范围比较大,必须对其进行归一化处理,使每一个节点承载能力具有相同的规格,归一化公式为:通过式(4)可知,当新的节点加入到P2P网络系统后,该节点在短时间内承担与其能力相适应的负载,这样减小了算法的复杂性。每一个节点的网络负载分配过程具体如下:1)一个新的节点成功加入P2P网络系统后,其会加入到均匀分段的ID地址空中,该节点首先随机一个ID。2)节点对出整个网络的平均承载能力进行估算,然后可测出节点自身的最适合负载能力Cp。3)根据Cp计算出该节点应该占用的ID地址空间,该地址为一段连续的空间,数量应该小于64。4)根据该节点的性能与网络负载状况来启用虚拟服务器,当该节点承载能力低于最低承载能力门限(λT)时,那么该节点就不启用虚拟服务器,将其作为数据存储点,提供一些资源查询、路由转等操作;当节点承载能力高于最低承载能力门限(λT)时,将启用一定数量的虚拟服务器,并且按照一定分配规则把负载按任务序列分配给这些虚拟服务器,一般情况下λT=0.625。

3.5网络负载转移过程每个节点对其负载情况周期性检查,当节点负载超过其最大负载能力时,传统方法是直接通过删减虚拟服务器的数量来减少负载,但是在P2P网络系统中,出现热点下载资源时,该负载转移方式不利于网络资源的共享,系统的工作效率低下,因此本文采有一新网络负载转移策略。本文的网络负载转移具体思路为:1)节点对自身的负载进行评估。2)当一个虚拟服务器发现某种资源占用带宽超过预先设置的阈值(ξ),那就认为P2P网络系统中出现热点资源,立即进行负载转移。3)获取最新邻居节点列表,并对其性能进行测试,删除一些低性能邻居节点,根据邻居节点性能高低进行排序,向邻居节点转移负载。4)在邻居节点查找过程中,由于P2P网络系统规模巨大,单个节点不能了解全局负载分布情况,本文采用局部搜索算法找到邻居节点,该方式降低虚拟服务器转移的代价,大幅提供算法的性能。综合上述可知,结构P2P网络负载均衡算法工作流程如图2所示。

4仿真研究

4.1仿真平台为了对本文提出的结构P2P网络负载均衡算法性能进行检验,对其进行仿真实验,实验平台为:CPUP3602.3GHZ,内存2G,操作系统为Window2000,仿真软件为专门模拟PZP网络协议的PlanetSim3.2,采用Java编程实现。

4.2实验参数仿真环境的参数如表1所示,对比算法采用Chord算法。

4.3负载转移代价比较Chord算法和本文P2P网络负载均衡算法的负载转移代价如图3所示。从图3可知,本文的P2P网络负载均衡算法大幅度地减少负载转移代价,负载转移速度加快。

4.4负载不平衡度比较Chord算法和本文P2P网络负载均衡算法的负载不平衡度随着调节周期的变化结果如图4所示。从图4可知,本文的P2P网络负载均衡算法加快了负载不平衡度收敛速度,使网络系统更加稳定。而对比算法Chord的收敛速度明显较慢,由于本文的负载均衡算法考虑了网络节点能力之间的差异,更加能够反映P2P网络系统真实运行情况下,结果表明本文提出的P2P网络负载均衡算法比传统算法更加能够保证负载均衡和系统稳定性。