|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
看到好的帖子最好up一下,以使得更多的人得到分享。办事器|收集|转换 摘要:本文切磋了散布式收集办事器利用的负载平衡手艺及负载分派的战略,并基于收集地址转换在FreeBSD上完成了负载平衡网关,使用于咱们的Internet收集办事器上,将负载分给多个办事器分管,以处理Internet办事器面对的大批并发会见酿成的CPU或I/O的高负载成绩。为了到达最好的负载平衡后果,负载掌握器需求依据各个办事器确当前CPU和I/O形态来分派负载,这就需求静态监督办事器的负载,并使用优化的负载分派战略,到达均匀分派负载的目标。
关头字: 负载平衡,收集地址转换,FreeBSD
1. 引言
Internet的疾速增加使多媒体收集办事器面临的会见数目疾速增添,办事器需求具有供应大批并发会见办事的才能,办事器的处置和I/O才能成了供应办事的瓶颈。因为单台办事器的功能老是无限的,必需采取多办事器和负载平衡手艺才干知足大批并发会见的需求。
最早的负载平衡手艺是经由过程DNS来完成的,在DNS中为多个地址设置装备摆设统一个名字,因此查询这个名字的客户机将失掉个中一个地址,从而使得分歧的客户会见分歧的办事器,到达负载平衡的目标[1]。DNS负载平衡是一种复杂而无效的办法,然而它不克不及辨别办事器的差别,也不克不及反应办事器确当前运转形态。
反向代办署理办事器可以将恳求转发给外部Web办事器,假如代办署理办事器可以将恳求平均转发给多台外部办事器,就可以到达负载平衡的目标[2]。反向代办署理体例下能使用优化的负载平衡战略,每次会见最余暇的外部办事器来供应办事。然而跟着并发毗连数目的增添,代办署理办事器自己的负载也变得十分大,最初反向代办署理办事器自己会成为办事的瓶颈。
撑持负载平衡的地址转换网关中可以将一个内部IP地址映照为多个外部IP地址,对每次TCP毗连恳求静态利用个中一个外部地址,到达负载平衡的目标[3]。良多硬件厂商将这类手艺集成在他们的互换机中,作为他们第四层互换的一种功效来完成,普通采取随机选择、依据办事器的毗连数目或呼应工夫停止选择的负载平衡战略来分派负载。但是硬件完成的负载掌握器天真性不强,不克不及撑持更优化的负载平衡战略和更庞杂的使用协定。
除这三种负载平衡体例以外,有的协定外部撑持与负载平衡相干的功效,例如HTTP协定中的重定向才能等,但它依附于特定协定,因而利用局限无限。依据现有的这些负载平衡手艺,咱们选择了利用软件体例完成收集地址转换的负载平衡的体例,以填补硬件负载平衡器的不天真,并使用优化的平衡战略来完成后端办事器负载分管的最优形态。
2. 负载平衡战略
为了将负载平均的分派给外部的多个办事器上,就需求使用必定的负载平衡战略。传统的负载平衡战略并没有思索到办事恳求的分歧类型、后台办事器的分歧才能和随机选择酿成的负载分派不平均等成绩。为了使得负载分派非常平均,就要使用可以准确反应各个办事器CPU及I/O形态的负载平衡战略[4]。
客户倡议的办事恳求类型是多种多样的,依照对处置器、收集和I/O的资本请求,可以复杂的将它们分为两个分歧种别,以便使用分歧的处置战略:
静态文档恳求:例如通俗的文本、图像等静态多媒体数据,它们对处置器负载影响不大,酿成的磁盘I/O负载与文档的巨细成反比,次要对收集I/O形成压力。
静态文档恳求:更加罕见的恳求经常需求办事器事后停止处置,例如搜索数据库、紧缩解紧缩多媒体文件等,这些恳求需求相当大的处置器和磁盘I/O资本。
关于静态文档,每一个办事历程占用大致不异的体系资本,因而就能够利用历程数来暗示体系负载。而静态文档办事需求停止额定的处置,其占用的体系资本就超越处置静态恳求,因而需求利用一个权重来暗示。如许一个最复杂的办事器负载暗示公式就为:
个中L为办事器的负载,Ns为静态文档办事历程数,Nd为静态文档办事历程数,而a为每一个静态文档办事相对静态文档办事的权重,可以在10到100之间停止选择。
在这个公式中没有思索办事器硬件的限制,当到达硬件限制的时分,因为资本严重,办事器的负载就会分明增添。例如因为办事器内存巨细的限制,一些历程就要被互换到硬盘上,使得体系负载敏捷增添。思索了体系硬件限制,则办事器的负载可以暗示为:
新增添的参数 Ll暗示这个办事器通俗负荷的限制,它要依据每一个办事器自己的硬件才能来设置。而b暗示超越正常负载时用来限制分派给办事器义务的权重,应当设置为大于Ll的数值,以暗示硬件限制造用。凡是在一个办事器集群中,硬件设置越差的办事器这个权重越要设置的大,以免在一切的办事器都超负载运转时,硬件最差的办事器反而负载最高。因而b是和本办事器硬件限制Ll成正比的,则b可以设置为:
Llmax为办事器集群中最高硬件设置装备摆设的办事器的Ll值。当肯定了每一个办事器的负载以后,中间掌握负载分派的办事器就可以将负载准确的分发给最余暇的办事器,从而不会象其他的负载分派战略那样会招致负载分派不平均的情形。
3. 完成办法及实行了局
咱们的办事器体系由利用疾速以太网毗连起来的多台FreeBSD体系构成。每台后端办事器上运转一个守护历程来静态取得本人的负载形态,而利用FreeBSD完成的中间掌握网关就经由过程这些守护历程刷新各个办事器的负载,以停止准确的负载分派。
3.1撑持负载平衡的网关
在FreeBSD体系下,供应了divert接口以撑持收集地址转换才能。IP数据包经由过程体系内核的ipfw过滤功效被发送到divert接口中,以便内部守护历程natd能吸收原始数据包,处置以后再发还体系内核停止正常的IP分发[5]。
因而依据FreeBSD的地址转换布局,可以创立本人的收集地址转换守护历程,以撑持负载平衡功效,如许就可以将FreeBSD体系作为一个撑持负载平衡的网关。因为它是软件完成的体例,很轻易撑持非尺度的协定及使用优化的负载平衡战略,具有很大的天真性。
3.2实行及剖析
为测试这类完成的可用性,咱们针对最多见的HTTP协定停止咱们的测试实行。为了辨别分歧的恳求品种,设计了三个分歧类型的测试,以测试分歧方面的功能。
CGI法式发生的静态文档:用于测试在办事器的处置才能的负载平衡形态。
小型静态文档:利用尺寸较小的静态文档,用于测试频仍毗连下负载平衡的形态;
大型静态文档:利用较大的文档,测试磁盘及收集I/O的负载平衡形态;
测试了局以单台办事器每秒钟完成恳求的功能为基准,显示利用多台办事器停止负载平衡时每秒种完成的恳求数与基准恳求次数的比率。
图1:负载平衡功能
从上图中的第一条曲线a是处置静态文档恳求的,此时跟着办事器数目的增添,其功能是成倍增添的;而第二条曲线b为处置小尺寸静态文档恳求的,在利用三台办事器时功能改良就不分明了;而处置大尺寸静态文档恳求的第三条曲线c则几近没有产生功能变更。为了找到负载平衡体系达不到幻想形态的缘由,咱们考查了办事器资本的使用率:
表1.办事器资本的使用率
处置类型
负载平衡网关
办事器1
办事器2
办事器3
a
53%
97%
95%
98%
b
76%
43%
39%
41%
c
94%
32%
31%
35%
从这个表中可以看出,当处置静态文档a时三台办事器都处于全速运转形态,负载被平均分派,这是一种幻想的形态。当处置静态文档类型b和c时,负载固然被平均分派给三台办事器,但每台办事器都没有处于全速运转形态。特别在处置大尺寸文档时,负载平衡装备中的natd历程则占有了大局部处置资本。因为一切的收集流量都要经由它停止转换,因而在收集流量和并发毗连数目相当大时,natd历程的负载就增添上去了。实行中利用分歧数目的后端办事器时,流经负载平衡网关的实践收集带宽为:
表2:供应大尺寸文档时办事器集群的带宽
办事器数目
1台
2台
3台
收集速度(Kb/s)
10042.14
11015.10
11442.67
可以看出带宽限制在10MB/s摆布,明显这是这个测试利用的负载平衡历程的带宽限制,现实上该法式利用了链表来保护收集地址转换的形态,这就大大限制了它的收集功能,经由过程进步硬件功能和改良算法,完整可以进一步进步其功能。
4.会商
从下面的实行中可以看出,基于收集地址转换的负载平衡器可以无效的处理办事器真个CPU和磁盘I/O负载,但是负载平衡器自己的功能受收集I/O的限制,在必定硬件前提下具有必定的带宽限制,但可以经由过程改良算法和进步运转负载平衡法式的硬件功能,来进步这个带宽限制。同时也能够看出,分歧的办事类型对分歧的办事器资本停止占用,咱们利用的负载权衡战略是利用统一个负载停止评价,这关于大多半前提是合适的,但是最好的举措是针对分歧的资本,如CPU、磁盘I/O或收集I/O等,分离监督办事器负载,由中间掌握器选择最适合的办事器分发客户恳求。咱们今后的任务将从这两个方面动手,完美这个负载平衡掌握器。
参考文献:
[1] E.Kata,M.Butler, and R. McGrath. A scalable HTTP server: the ncsa prototype. Computer Networks and ISDN systems. 1994. Vol 27, P155-164
[2] Ralf S.Engelschall. Load Balancing Your Web Site. Web Techniques Magazine (http://www.WebTechniques.com), May 1998. vol.3, iss.5
[3] CICSO. LocalDirector Documents. http://www.cisco.com, 1997
[4] H.Zhu. T.Yang, Q.Zheng, D.Watson, O.H.Ibarra, andT.Smith, Adaptive load sharing for clustered digital library servers. Technical Report, CS, UCSB, 1998.
[5] FreeBSD core team. natd and divert manual pages. http://www.freebsd.org. 1995
Implement a load balancing gateway by NAT
Wang, Bo
NongYe Road 70, ZhengZhou, 450002, P.R.China
wb@email.online.ha.cn
Abstract: This paper investigates load balancing techniques and strategies, and implements a load balancing gateway based NAT for our Internet servers. The Internet servers involve the high load of CPU and I/O by simultaneous access requests, the symmetrical clustered servers can distribute the server load to solve the problem. To balance the load in the best way, the gateway distributes the load according to the status of server's CPU and I/O. The gateway must monitor every server's load and apply the best scheme to delivery every request, so it can provide the high performance for Internet services.
Keywords: load balancing, NAT, FreeBSD
把例子全部敲进去试验,完成一遍以后就会有心得了,因为你会发现为啥我的程序和书上的一模一样就是结果不正确。新手学习的时候必须承认,不容易,因为我也是过来人,你会发现原来有那么多常用的语句,函数都要记。 |
|