负载均衡软件实现与硬件实现方案_第1页
负载均衡软件实现与硬件实现方案_第2页
负载均衡软件实现与硬件实现方案_第3页
负载均衡软件实现与硬件实现方案_第4页
负载均衡软件实现与硬件实现方案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、该文档是word2003 word2007 兼容版软件、硬件负载均衡部署方案目录 TOC o 1-5 h z HYPERLINK l bookmark0 o Current Document 1、硬件负载均衡之 F5部署方案 2网络拓扑结构3 HYPERLINK l bookmark4 o Current Document 反向代理部署方式4 HYPERLINK l bookmark11 o Current Document 2软件负载均衡方案 5 HYPERLINK l bookmark13 o Current Document 负载均衡软件实现方式之一 -URL重定向方式 5 HYPERL

2、INK l bookmark15 o Current Document 负载均衡软件实现方式之二-基于DNS7 HYPERLINK l bookmark28 o Current Document 负载均衡软件实现方式之三-LVS9 HYPERLINK l bookmark92 o Current Document 负载均衡软件实现方式之四-专业负载均衡软件20总结:2.11、硬件负载均衡之 F5部署方案对于所有的对外服务的服务器,均可以在 BIG-IP上配置Virtual Server实现 负载均衡,同时BIG-IP可持续检查服务器的健康状态,一旦发现故障服务器,则 将其从负载均衡组中摘除。B

3、IG-IP利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一 个地址)来为用户的一个或多个目标服务器(称为节点:目标服务器的IP地址和TCP/UDP应用的端口组成,它可以是internet的私网地址)提供服务。因此, 它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。根据服务类 型不同分别定义服务器群组,可以根据不同服务端口将流量导向到相应的服务 器。BIG-IP连续地对目标服务器进行L4到L7合理性检查,当用户通过VIP请求目 标服务器服务时,BIG-IP根据目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用户的请求。如果能够充分利用所有的服务器

4、资源,将所有流量 均衡的分配到各个服务器,我们就可以有效地避免“不平衡”现象的发生。利用UIE+iRules可以将TCP/UDP数据包打开,并搜索其中的特征数据,之 后根据搜索到的特征数据作相应的规则处理。因此可以根据用户访问内容的不同 将流量导向到相应的服务器,例如:根据用户访问请求的 URL将流量导向到相应 的服务器。1.1网络拓扑结构网络拓扑结构如图所示:B1G-IP 2400 =,Setva1.1网络拓扑结构网络拓扑结构如图所示:B1G-IP 2400 =,Setva-!ClientIntranetFirewallCore Switch7?BIG-IP 2400一一 irver2Scr

5、verS Server4网络拓扑结构1.2反向代理部署方式下图为集群服务器的硬件负载均衡详细架构图,由一台F5虚拟机分别对多台服务器进行负载分配。rSB:(i展EB看隹儿亳应府也后巾I心I俯阳I湎rSB:(i展EB看隹儿亳应府也后巾I心I俯阳I湎PL 1.,11 Apidic JdtuHJiRDARtMMlL.1 IlTfteJ.词向布下定曲?厂1 中由褪*由:丫,平工拄.n*nflirTfn.nffRlVLANi nkrufl)7fs加工前WLAMi MdlHd, #r I计鼻机名 ciirat L嬉九:2口hN ittin安网域址非但;科雷外不六 器色:域整制号计 1;.机霁? ?icne

6、r也有 IFWfcr I91UU1利帼叫仁加二中“.、身虬割地J:龟冏:WkB Y等H 曲色、LH第二十廿自 能隹;卜依工。皿成用般与事 i| 即 11 斡;Sricrl 也制屿t: IQE1RM4 总附111地垃.皿412讲到负载均衡,几乎所有地方都必须要讲一下基于DNS的方式,因为这实负载均衡集群网络拓扑图在是最基本、最简单的方式了。当然,也几乎所有地方都说到这种方式的种种缺点,不过,既然很基本,就还是要说明一下卜面这段讲得很清楚:最早的负载均衡技术是通过 DNS来实现的,在DNS中为多个地址配置同 一个名字,因而查询这个名字的客户机将得到其中一个地址, 从而使得不同的客 户访问不同的服务

7、器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用 DNS负载均衡的时候,必须尽量保 证不同的 客户计算机能均匀获得不同的地址。由于 DNS数据具备刷新时间标 志,一旦超过这个时间限制,其他 DNS服务器就需要和这个服务器交互,以重 新获得地址数 据,就有可能获得不同IP地址。因此为了使地址能随机分配,就 应使刷新时间尽量短,不同地方的 DNS服务器能更新对应的地址,达到随机获 得地址,然而将过 期时间设置得过短,将使 DNS流量大增,而造成额外的网 络问题。DNS负载均衡的另一个问题是,一旦某个服务器出现故障,即使

8、及时 修改了 DNS设置,还是 要等待足够的时间(刷新时间)才能发挥作用,在此 期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。尽管存在多种问题,但它还是一种非常有效的做法,包括Yahoo在内的很多大型网站都使用DNS。引自:负载均衡技术研究原文:http:/www. /loadbalance/lb_tech.htm比较一下DNS方式与专业的负载均衡软件如 PCL负载均衡软件,会发现 DNS的问题在于,一是往往不能根据系统与服务的状态来判断负载,二是往往 不能建立较复杂的负载均衡算法,而最主要的是 DNS往往有缓存,简单分配负 载问题不大,如果是应用集群这个就是无法接受的。那么,为

9、什么象Yahoo在内的大型网站都使用 DNS方式呢?因为对于门 户网站来讲,应用形态单一且简单,重要的是服务器数量与分布,而如果出现短 时间对于少量用户的服务中断问题并不大(比如有 100台服务器,有一台不行 了,即使DNS有缓存,也关系不大,用户重新刷一下,就很可能又分配到其他 机器上了)。但是,对于应用系统而言,比如两三台服务器,跑着比较复杂的应用,DNS 方式就完全不适合了,这个时候,就要用专业的负载均衡软件了。我们可以看一个实例,这样会对专业化负载均衡软件应该支持什么样的应用 有更多的理解:36000人同时应用的负载均衡实例2.3负载均衡软件实现方式之三-LVSLVS是一个开源的软件,

10、可以实现LINUX平台下的简单负载均衡.后面所附文章,讲述了 LVS实现负载均衡的方法.因为文章较长,所以在华$载前,先总结一下LVS的优缺点:优点:1、开源,免费2、在网上能找到一些相关技术资源3、具有软件负载均衡的一些优点缺点:1、具有开源产品常有的缺点,最核心的就是没有可靠的支持服务,没有人 对其结果负责2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等。3、开启隧道方式需重编译内核4、配置复杂5、只支持LINUX ,如果应用还包括 WINDOWS、SOLIRIS等就不行了因此,建议在简单的LINUX应用中使用LVS,复杂的应用,或者重要的应 用,还是应该使用专业的负载均衡软

11、件,如富士通西门子公司的PCL负载均衡软件。下面转载一下如何使用LVS实现负载均衡:搭建集群负载均衡系统(原文:/linux/artic .pZ20060707Z2519.html)负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩 的,高负载的服务器组以保证对外提供良好的服务响应;而 LVS就是实现这一 功能的技 术.实际上LVS是一种Linux操作系统上基于IP层的负载均衡调度技 术,它在操作系统核心层上,将来自IP层的TCP/UDP请求均衡地转移到不同的 服务器,从而将一组服务器构成一个高性能、高可用的虚拟服务器。使用三台机器就可以用LVS实现最简单的集群,如图1所示。图1

12、LVS实现集群系统结构简图图1显示一台名为Director的机器是前端负载均衡器,运行 LVS,目前只 能在 Linux 下运行.可以针对 web、ftp、cache、mms 甚至 mysql等服务做load balance;后端两台机器称之为Real Server ,是需要负载均衡的服务器,可以为 各类系统,Linux、Solaris Aix、BSD、Windows 都可,甚至 Director 本身 也可以作为Real Server.本文将通过实际操作,重点介绍如何在Redhat 9上用LVS构建一个负载均 衡集群,关于负载均衡集群、LVS的详细内容,可参考如下信息: HYPERLINK

13、/ / HYPERLINK /developerWorks/ /developerWorks/.r/lvs/part1/index.shtml安装LVSRedHat在9.0以后,就将ipvsadm 这些套件去除,因此如果想使用 LVS(Linux Virtual Server),就得自己重新编译核心(kernel)。下载所需软件下载ipvs 补丁包从RedHat 9开始ipvs不再被预先编译到了 RedHat发行版的内核中,我4需要从 HYPERLINK http:/www.linuxvirtualserver.Org/software/kernel-2.4 http:/www.linuxvi

14、rtualserver.Org/software/kernel-2.4下载新版的ipvs,这里我们使用ipvs-1.0.9.tar.gz这个版本.下载内核 linux-2.4.20.tar.gz这里需要强调的是由于所有的ipvs的补丁包都是为标准内核开发的,所以安装ipvs时不能使用RedHat光盘中的Kernel Source ,而是需要去下载标准 的内核。所以我们从 /pub/linux/kernel/得至U standardkernel linux-2.4.20.tar.gz下载ipvs管理工具ipvsadm得到 ipvs 管理工具从 HYPERLINK / / ipvsadm-1.21

15、.tar.gz, ipvsadm 是设置ipvs转发方式和调度算法的工具得到 ipvs 管理工具开始安装安装内核源码把 linux-2.4.20.tar.gz 解压到/usr/src 目录,生成了 /usr/src/linux 目录;如果生成的是/usr/src /linux-2.4.20 目录,则要在/usr/src 下建立一个连接ln-s linux-2.4.20 linux,因为在 ipvs-1.0.9 中的 makefile 文件中默认指定 KernelSource 的路径为:KERNELSOURCE = /usr/src/linux把ipvs补丁 Patch到内核源码中把 ipvs-

16、1.0.9.tar.gz 解压缩到某个目录,如 /test ,生成了 /test/ipvs-1.0.9目录;进入/test/ipvs-1.0.9 ,依次执行如下命令:make patchkernel 、makeinstallsource,将 ipvs 的 Patch 力口载至U kernel 的 source 中。重新编译支持ipvs的内核进入/usr/src/linux目录,分别执行:make mrproper为创建新的内和配置做好准备make menuconfig进行酉己置这里请确保IP:Virtual Server Configuration中的选项设定都用 Mmake dep检测是否有

17、相关的软件包被使用make clean 为新内核结构准备源目录树make bzImage创建内核引导映像make modules 、make modules_install 生成模块make install安装新的内核到指定位置并重新配置grub.conf到这里新内核就安装完毕了 ,请重启并用此内核引导系统安装ipvs管理工具ipvsadm当使用新内核启动后,就可以安装ipvsadm:tar xzvf ipvsadm-1.21.tar.gzcd ./ipvsadm-1.21makemake install安装完成后,执行ipvsadm命令,如果有如下信息出现则说明安装成功了。rootleon

18、c# ipvsadmIP Virtual Server version 1.0.9 (size=65536)Prot LocalAddress:Port Scheduler Flags-; RemoteAddress:PortForward Weight ActiveConnInActConn到现在为止,支持负载均衡功能的director就安装成功了,接下来我们可以通过ipvsadm来配置一个负载均衡集群。构建负载均衡集群这里我们假设局域网中有两台FTP服务器,IP分别为FTP1:03,FTP2: 所提供的资料都是相同的,这可以通过无密码SSH登录+RSYNC来保证数据 一致,这非本文中电,故

19、而略过.我们提供给用户的虚拟IP是00,而在 后台为这两台FTP服务器实行LVS负载均衡的服务器的IP是3.这三 台均安装RedHat9系统.我们最终要实现的目标是当用户输入 ftp 00 时,LVS负载均衡服 务器系统会根据当时的负载情况,依据轮换策略来决定Real Server到底是FTP1 还是FTP2,从而使得整个FTP服务器的负载到达均衡.目前 LVS 有三种负载平衡方式,NAT (Network Address Translation ), DR (Direct Routing ) , IP Tunneling 。其中,最为常用的是 DR方式,因此 这里只说明DR(Direct R

20、outing) 方式的LVS负载平衡。其它两种的详细情况请 参考 LVS-HOWTO.Director(即3)上执行的设置为了方便我们将所有步骤写成一个 shell script.#!/bin/bashecho 0 ; /proc/sys/net/ipv4/ip_forward ( 关闭 ip_forward)echo 1 ; /proc/sys/net/ipv4/conf/all/send_redirects(开启 ICMPRedirects)echo 1 ; /proc/sys/net/ipv4/conf/default/send_redirects(开启ICMP Redirects)ec

21、ho 1 ; /proc/sys/net/ipv4/conf/eth0/send_redirects(开启ICMP Redirects)ifconfig eth0:10000 broadcast 00 netmask55(设置虚拟IP)route add -host 00 dev eth0:100 ( 设置达到虚拟 Ip 的路由)ipvsadm-C G青空 ipvsadm table)ipvsadm -A -t 00:21 -s wrr ( 建立 service rule, 当前调度算法 为加权轮叫调度)ipvsadm -a -t 00:21 -r 6 -g -w 3 ( 建立转发规则)ipv

22、sadm -a -t 00:21 -r -g -w 1(建立转发规贝U )ipvsadm ( 检查当前 ipvsadm table)将此shell script加入到/etc/rc.local中,这样在每次系统启动时都可以自 动运行进行设置了。Realserver(即 和 6)上的设置这里我们必须先修正real server上arp problem .这是因为在使用 VS/DR 的时候,real server会在一块网卡上绑定两个 IP,但linux在kernel 2.2.14 以 后就将eth0:1的NOARP FLAG关闭,这使得eth0:1仅仅是eth0的别名,任 何又t eth0:1的

23、操作都对eth0有效,因此如果此时使 eth0:1 NOARP ,则也使得eth0 NOARP,这样整个网卡都不会收到数据包,具体的说就是因为我所有的机器都放在同一个网段,当该网段的Router接收到用户对虚拟IP的TCPconnection 要求(即使用FTP登录服务器)时,会先在网段中利用 Arp request 询问谁有 VIP的地址,而包含 Director与Real Servers上所有的interface,只 要他有那个ip,都会发送arp reply回去,造成网段内所有拥有 Virtual IP的 interface都会reply给Router ,最后结果就是看谁的速度快,Rou

24、ter就将该 封包送给谁,如此会造成 LVS的Server并无法发挥其效果,而我们所希望的 是只有Director上的Virtual IP 发送arp reply 回去,因此需要利用hidden 这个 pattch ,将real server上的 Virtual IP给隐藏起来,如此他就不会对ArpRequest进行Reply ,就可以解决ARP的问题.具体步骤是:下载所需的软件包A HYPERLINK http:/www.ssi.bg/ja/ http:/www.ssi.bg/ja/ 得到hidden修正包,不同的核心使用相应的版本.请参考下表Patch Linux 2.4 Createdh

25、idden-2.4.28-1.diff2.4.28 - 2.4.30November 18, 2004hidden-2.4.26-1.diff2.4.26 - 2.4.27February 28, 2004hidden-2.4.25-1.diff 2.4.25 February 19, 2004hidden-2.4.20pre10-1.diff 2.4.20pre10 - 2.4.24 October 12, 2002hidden-2.4.5-1.diffhidden-2.4.19pre5-1.diff 2.4.19pre5 - 2.4.20pre9 April 7, 2002hidden-2

26、.4.5-1.diff2.4.5 - 2.4.19pre4 June 2, 2001hidden-2.4.4-1.diff 2.4.4 April 29, 2001Patch Linux 2.6 Createdhidden-2.6.9-1.diffhidden-2.6.4-1.diff2.6.9 - 2.6.11 October 19, 2004hidden-2.6.9-1.diffhidden-2.6.4-1.diffhidden-2.6.3-1.diff2.6.3 February 19, 20042.6.4 - 2.6.8 March 12, 2004hidden-2.6.3-1.dif

27、f2.6.3 February 19, 2004hidden-2.5.67-1.diff本例使用的内核版本是hidden-2.5.67-1.diff本例使用的内核版本是2.5.67 - 2.6.2 April 9, 20032.4.20-8,因此下载 hidden-2.4.20pre10-1.diff重新编译内核,修正arp problem把 hidden-2.4.20pre10-1.diff 放至U/usr/src/linux 下,用命令patch -p1 ; /proc/sys/net/ipv4/ip_forward ( 关闭 ip_forward)ifconfig lo:10000 broadcast 00 netmask0 xffffffff up ( 设置虚拟 IP)route add -host 00 dev lo:100 (设置达到虚拟 Ip 的路由)echo 1 ; /proc/sys/net/ipv4/conf/all/hidden (开启 No-ARP)echo 1 ; /proc/sys/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论