负载均衡系统构架.doc_第1页
负载均衡系统构架.doc_第2页
负载均衡系统构架.doc_第3页
负载均衡系统构架.doc_第4页
负载均衡系统构架.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

最新【精品】范文 参考文献 专业论文负载均衡系统构架负载均衡系统构架 【摘要】随着计算机网络和Internet应用的飞速发展,信息共享日益广泛化,并深入到人们工作和生活的各个领域。人们对信息共享的依赖正逐渐增强。而作为提供信息载体的服务器的压力也越来越大,对于电子商务、信息共享平台急需合理分配访问流量来减少服务器的压力。 本文对目前的负载均衡技术进行简单的阐述,并对现有均衡算法进行简单的比较,分析其不足之处。并采用LVS(Linux虚拟服务器)实现负载均衡的架构。采用Keepalived技术实现负载均衡的高可用性。并对LVS不同策略上实现的均衡结果进行详细的比较。最终完成对负载均衡系统的构建同时提供了详细的系统搭建步骤,为研究该方向的人员提供可靠的参考资料。 【关键词】负载均衡、LVS、Keepalived、高并发 中图分类号:TN711 文献标识码:A 文章编号: 简介 1.1背景 目前随着网络技术的迅速崛起,网络信息共享数据越来越大,访问量和数据流量的快速增长,所需的处理能力和运算强度也越来越大,使得单一的服务器设备根本无法承担在此情况下,如果花大量的资金进行硬件方面的升级,会造成大量的资源浪费。并且对于下一次升级来说,将会投入更大的成本,如何才能利用现有资源,在少量的投入下解决该问题? 针对此情况而衍生出来的一种廉价有效透明的方法来扩展现有网络设备和服务器的带宽增加吞吐量加强网络数据处理能力提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。 1.2负载均衡技术概述 负载均衡(又称为负载分担),英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器通采用现有主机进行服务器集群,并把访问流量分发到不同的服务器上从而减少对单一服务器的压力。 负载均衡有两方面的含义: 、大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间; 、单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。 对一个网络的负载均衡应用,可以从网络的不同层次入手,具体情况要看对网络瓶颈所在之处的具体分析,网络的负载均衡可以从不同的网络层入手,总体上不外乎从传输链路聚合、采用更高层网络交换技术和设置服务器集群策略三个角度实现。 现有的均衡技术 2.1局部负载均衡技术 局部负载均衡技术就是对一个服务器群执行两种功能 : 、将对服务器发出的请求根据服务器的负载情况进行分配另外一个是将损坏的服务器的工作做无缝的接替,从而最大程度上确保网站的业务不受影响。 、能够进行无级的扩充,而不要很早就担心将来的容量不够问题。 局部负载均衡技术是一项比较成熟的技术,因为负载均衡技术最初就是为了解决局部均衡问题,但是局部负载均衡技术先天不足之处在于无法攻克通往网站最后一段连接。 2.2全局负载均衡技术 负载均衡技术的近期发展产物是全局负载,它能更有效的解决网站在大范围内的负载均衡问题,同时避免因为大量的流量访问而造成网络阻塞或瘫痪。通常情况下,一个网站采用先全局均衡,然后在局部均衡的逐层均衡方式。所以全局负载均衡具有以下几个特点: 1分布性:全局负载均衡技术解绝的是远距离(地理距离或拓扑距离)上的对象。 2对等性:全局负载均衡技术处理的是具有相同内容的网站的镜像。 2.3实现负载均衡 的四个方案 目前实现的负载均衡的有四个方案。不论全局或者局部均衡,但其侧重点不同。比如:HTTP重定向就适合于均不均衡技术。 1、HTTP 重定向基 2、基于 TCP层 的方法 3、基于IP层的方法 4、基于DNS的方法 负载均衡 本次研究的负载均衡技术主要是指在均衡服务器群中所有服务器和应用程序之间流量负载的应用,负载均衡技术用于提高Web服务器、数据库服务器的高可用性和高可伸缩性。 3.1负载均衡算法 LVS集群属于任务级负载均衡集群, 采用集中式任务分配。负载均衡任务的分配是以连接为粒度的,这在一定程度上避免了用户访问的突发性引起的负载不均问题。 LVS目前支持以下八种调度算法: (1) 轮询算法 (RR):把新的连接请求按顺序轮流分配到不同的服务器上, 从而实现负载均衡。该算法最大的优点在于简单易行,但不适用于每个服务器处理性能不一致的情况。 (2) 加权轮询算法 (WRR) : 克服轮询算法的不足, 用相应的权值表示服务器的处理能力, 权值较大的服务器将被赋予更多的请求。一段时间后, 各服务器处理的请求数趋向于各自权值的比例。 (3) 目的哈希算法 (DH) :以目的地址为关键字查找一个静态hash表来获得所需的真实服务器。 (4) 源哈希算法 (SH):以源地址为关键字查找一个静态hash表来获得所需的真实服务器。 (5) 最小连接算法 (LC):负载均衡器记录各个真实服务器的连接数。当用户请求到达时,负载均衡器把该连接请求分配到当前连接数最小的真实服务器。 (6) 加权最小连接算法(WLC):克服最小连接算法的不足, 用相应的权值表示服务器的处理能力, 将用户的请求分配给当前连接数与权值之比最小的服务器。WLC是LVS缺省的负载分配算法。 (7) 基于位置的最小连接算法(LBLC):根据请求的目标IP地址找出该目标IP地址最近使用的服务器。若该服务器是可用的且没有超载,将请求发送到该服务器;否则用“最小连接”的原则选出一个可用的服务器,将请求发送到该服务器。 (8) 带复制的基于位置的最小连接算法 (LBLCR):根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从该服务器组中选出一台服务器。若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从整个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器,并定期将该集合中负载最大的服务器节点剔除。 由以上分析可知,前四种调度策略属于静态调度算法,而后四种属于动态调度算法, 但它们是以最小连接算法为基础的。 3.2LVS集群的体系结构 IPVS软件实现了这三种IP负载均衡技术,它们的原理如下: 1、Virtual Server via Network Address Translation(VS/NAT)通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。NAT结构图如图.: 图3.3.1 NAT结构 2、Virtual Server via IP Tunneling(VS/TUN)采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报 文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。TUN结构图如图.: 图3.3.2TUN结构 3、VS/DR(Virtual Server via Direct Routing)通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。DR结构图如图. 图3.3.3DR结构 负载均衡实现 我们采用了LVSKeepalived 组合来实现高性能和高可负载的均衡架构。采用了如下图的均衡架构: 图 4.1软件安装 1、获取LVS和Keepalived软件包 #mkdir /usr/local/src/lvs #cd /usr/local/src/lvs #wget /software/kernel-2.6/ipvsadm-1.24.tar.gz #wget /software/keepalived-1.1.15.tar.gz 可到官方网站下载最新版本(分别为ipvsadm-1.25和keepalived-1.1.19) 2、安装LVS和Keepalived #lsmod |grep ip_vs /查看内核是否已经安装了ip_vs,若安装了则不需要再安装 #uname -r 2.6.18-53.el5PAE #ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/usr/src/linux #tar zxvf ipvsadm-1.24.tar.gz #cd ipvsadm-1.24 #make & make install #find / -name ipvsadm /查看ipvsadm的位置 #tar zxvf keepalived-1.1.15.tar.gz #cd keepalived-1.1.15 #./configure #make & make install #find / -name keepalived / 查看keepalived位置 #cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ #cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ #mkdir /etc/keepalived #cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ #cp /usr/local/sbin/keepalived /usr/sbin/ #service keepalived start|stop /做成系统启动服务方便管理. 4.2配置LVS实现负载均衡(本例:隧道模式) 1、LVS-TUN,配置LVS脚本实现负载均衡 #vi /usr/local/sbin/lvs-tun.sh /编辑lvs-tun.sh脚本文件,加入如下内容 #!/bin/sh VIP=9 RIP1=88 RIP2=21 /etc/rc.d/init.d/functions case $1 in start) echo Start Lvs of DirectorServer #set vip server /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 55 up /sbin/route add -host $VIP dev tunl0 #clear IPVS table /sbin/ipvsadm -C #set lvs /sbin/ipvsadm -A -t $VIP:80 -s rr /rr为调度算法,可修改 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i #Run Lvs /sbin/ipvsadm ; stop) echo Close Lvs DirectorServer ifconfig tunl0 down /sbin/ipvsadm -C ; *) echo Usage: $0 start|stop exit 1 esac 2、配置Realserver脚本. #vi /usr/local/sbin/lvs-real-tun.sh /编辑lvs-real-tun.sh脚本文件,加入如下内容 #!/bin/sh VIP=9 /etc/rc.d/init.d/functions case $1 in start) echo tunl port starting /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 55 up /sbin/route add -host $VIP dev tunl0 echo 1 /proc/sys/net/ipv4/conf/tunl0/arp_ignore echo 2 /proc/sys/net/ipv4/conf/tunl0/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/

温馨提示

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

评论

0/150

提交评论