版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux负载均衡软件LVS(概念篇)一、 LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而
2、以低廉的成本实现最优的服务性能。LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:Linux的门户网站()、向RealPlayer提供音频视频服务而闻名的Real公司()、全球最大的开源网站()等。二、LVS体系结构使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用Load Balancer表示,中间的服务器群组层,用Server Array表示,最底端的
3、数据共享存储层,用Shared Storage表示,在用户看来,所有的内部应用都是透明的,用户只是在使用一个虚拟服务器提供的高性能服务。LVS体系结构如图1所示:图1 LVS的体系结构下面对LVS的各个组成部分进行详细介绍:lLoad Balancer层:位于整个集群系统的最前端,有一台或者多台负载调度器(Director Server)组成,LVS模块就安装在Director Server上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(Real Server)上。同时,在Direct
4、or Server上还要安装对Real Server服务的监控模块Ldirectord,此模块用于监测各个Real Server服务的健康状况。在Real Server不可用时把它从LVS路由表中剔除,恢复时重新加入。lServer Array层:由一组实际运行应用服务的机器组成,Real Server可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接。在实际的应用中,Director Server也可以同时兼任Real Server的角色。lShared Storage层:是为所
5、有Real Server提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成,为了提供内容的一致性,一般可以通过NFS网络文件系统共享数据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如Red hat的GFS文件系统,oracle提供的OCFS2文件系统等。从整个LVS结构可以看出,Director Server是整个LVS的核心,目前,用于Director Server的操作系统只能是Linux和FreeBSD,linux2.6内核不用任何设置就可以支持LVS功能,而FreeBSD作为Director Server的应用还不是很多,性能也不是
6、很好。对于Real Server,几乎可以是所有的系统平台,Linux、windows、Solaris、AIX、BSD系列都能很好的支持。三、 IP负载均衡与负载调度算法1IP负载均衡技术负载均衡技术有很多实现方案,有基于DNS域名轮流解析的方法、有基于客户端调度访问的方法、有基于应用层系统负载的调度方法,还有基于IP地址的调度方法,在这些负载调度算法中,执行效率最高的是IP负载均衡技术。LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必
7、须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的Real Server节点,而Real Server节点如何返回数据给用户,是IPVS实现的重点技术,IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR,详述如下:lVS/NAT: 即(Virtual Server via Network Address Translation)也就是网络地址翻译技术实现虚拟服务器,
8、当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。可以看出,在NAT方式下,用户请求和响应报文都必须经过Director Server地址重写,当用户请求越来越多时,调度器的处理能力将称为瓶颈。lVS/TUN :即(Virtual Server vi
9、a IP Tunneling)也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。lVS/DR: 即(Virtual Server via Direct Routing)也就是用直接路由技术
10、实现虚拟服务器。它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。2负载调度算法上面我们谈到,负载调度器是根据各个服务器的负载情况,动态地选择一台Real Server响应用户请求,那么动态选择是如何实现呢,其实也就是我们这里要说的负载调度算法,根据不同的网络服务需
11、求和服务器配置,IPVS实现了如下八种负载调度算法,这里我们详细讲述最常用的四种调度算法,剩余的四种调度算法请参考其它资料。l轮叫调度(Round Robin)“轮叫”调度也叫1:1调度,调度器通过“轮叫”调度算法将外部用户请求按顺序1:1的分配到集群中的每个Real Server上,这种算法平等地对待每一台Real Server,而不管服务器上实际的负载状况和连接状态。l加权轮叫调度(Weighted Round Robin)“加权轮叫”调度算法是根据Real Server的不同处理能力来调度访问请求。可以对每台Real Server设置不同的调度权值,对于性能相对较好的Real Serve
12、r可以设置较高的权值,而对于处理能力较弱的Real Server,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。充分合理的利用了服务器资源。同时,调度器还可以自动查询Real Server的负载情况,并动态地调整其权值。l最少链接调度(Least Connections)“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。l加权最少链接调度(Weighted Least Connections)“加权最少链接调度”是“最少连接调度”的超集,每个服务节点可以用相应的权
13、值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值为1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。其它四种调度算法分别为:基于局部性的最少链接(Locality-Based Least Connections)、带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)、目标地址散列(Destination Hashing)和源地址散列(Source Hashing),对于这四种调度算法的含义,本文不再讲述,如果想深入了解这其余四种调度策略的话,可以登陆LVS中文站点zh.
14、,查阅更详细的信息。3.2 高可用性LVS是一个基于内核级别的应用软件,因此具有很高的处理性能,用LVS构架的负载均衡集群系统具有优秀的处理能力,每个服务节点的故障不会影响整个系统的正常使用,同时又实现负载的合理均衡,使应用具有超高负荷的服务能力,可支持上百万个并发连接请求。如配置百兆网卡,采用VS/TUN或VS/DR调度技术,整个集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s。3.3 高可靠性LVS负载均衡集群软件已经在企业、学校等行业得到了很好的普及应用,国内外很多大型的、关键性的web站点也都
15、采用了LVS集群软件,所以它的可靠性在实践中得到了很好的证实。有很多以LVS做的负载均衡系统,运行很长时间,从未做过重新启动。这些都说明了LVS的高稳定性和高可靠性。3.4 适用环境LVS对前端Director Server目前仅支持Linux和FreeBSD系统,但是支持大多数的TCP和UDP协议,支持TCP协议的应用有:HTTP,HTTPS ,FTP,SMTP,POP3,IMAP4,PROXY,LDAP,SSMTP等等。支持UDP协议的应用有:DNS,NTP,ICP,视频、音频流播放协议等。LVS对Real Server的操作系统没有任何限制,Real Server可运行在任何支持TCP/
16、IP的操作系统上,包括Linux,各种Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows等。3.5 开源软件LVS集群软件是按GPL(GNU Public License)许可证发行的自由软件,因此,使用者可以得到软件的源代码,并且可以根据自己的需要进行各种修改,但是修改必须是以GPL方式发行。Linux负载均衡软件LVS(安装篇)一、 安装LVS软件1安装前准备工作操作系统:统一采用Centos4.4版本。地址规划,如表1所示:表1更详细的信息如图2所示:图2 LVS DR模式安装部署结构图图2中的VIP指的是虚拟IP地址,还可以叫做LVS集
17、群的服务IP,在DR、TUN模式中,数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址。此IP在Real Server上一般绑定在回环地址上,例如lo:0,同样,在Director Server上,虚拟IP绑定在真实的网络接口设备上,例如eth0:0。各个Real Server可以是在同一个网段内,也可以是相互独立的网段,还可以是分布在internet上的多个服务器。2安装操作系统Centos4.4版本的Linux,内核默认支持LVS功能,为了方便编译安装IPVS管理软件,在安装操作系统时,建议选择如下这些安装包:l桌面环境:xwindow
18、s system、GNOME desktop environment。l开发工具:development tools、x software development、gnome software、development、kde software development。系统安装完毕,可以通过如下命令检查kernel是否已经支持LVS的ipvs模块:rootlocalhost #modprobe -l |grep ipvs/lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_rr.ko/lib/modules/2.6.9-42.ELsmp/k
19、ernel/net/ipv4/ipvs/ip_vs_sh.ko如果有类似上面的输出,表明系统内核已经默认支持了IPVS模块。接着就可以安装IPVS管理软件了。3在Director Serve上安装IPVS管理软件IPVS提供的软件包有源码方式的也有rpm方式的,这里介绍下源码方式安装IPVS,首先从 /usr/src/linux也可以下载rpm安装包,通过rpm方式进行安装:rootlocalhost #rpm ivh ipvsadm-1.24-6.1.i386.rpm然后执行:rootlocalhost # ipvsadm -help如果看到帮助提示,表明IPVS已经成功安装。4ipvsad
20、m的用法(1)Ipvsadm常用的语法和格式如下:ipvsadm -A|E -t|u|f virutal-service-address:port -s scheduler -p timeout -M netmaskipvsadm -D -t|u|f virtual-service-addressipvsadm -Cipvsadm -Ripvsadm -S -nipvsadm -a|e -t|u|f virtual-service-address:port -r real-server-address:port-g|i|m -w weightipvsadm -d -t|u|f virtual-
21、service-address -r real-server-addressipvsadm -L|l optionsipvsadm -Z -t|u|f virtual-service-addressipvsadm -set tcp tcpfin udpipvsadm h其中:lvirtual-service-address:是指虚拟服务器的IP地址,本文是00lreal-service-address:是指Real Server的IP地址,本文是32/144lscheduler:指定调度算法ipvsadm命令选项详细含义如表2所示:表2命令选项含
22、义-A (-add-service)在内核的虚拟服务器列表中添加一条新的虚拟IP记录。也就是增加一台新的虚拟服务器。虚拟IP也就是虚拟服务器的IP地址。-E (-edit-service)编辑内核虚拟服务器列表中的一条虚拟服务器记录-D (-delete-service)删除内核虚拟服务器列表中的一条虚拟服务器记录-C (-clear)清除内核虚拟服务器列表中的所有记录-R (-restore)恢复虚拟服务器规则-S (-save)保存虚拟服务器规则,输出为-R 选项可读的格式-a (-add-server)在内核虚拟服务器列表的一条记录里添加一条新的Real Server记录。也就是在一个虚
23、拟服务器中增加一台新的Real Server-e (-edit-server)编辑一条虚拟服务器记录中的某条Real Server记录-d (-delete-server)删除一条虚拟服务器记录中的某条Real Server记录-L|-l list显示内核中虚拟服务器列表-Z (-zero)虚拟服务器列表计数器清零(清空当前的连接数量等)-set tcp tcpfin udp设置连接超时值-t说明虚拟服务器提供的是tcp服务,此选项后面跟如下格式:virtual-service-address:port or real-server-ip:port-u说明虚拟服务器提供的是udp服务,此选项后
24、面跟如下格式:virtual-service-address:port or real-server-ip:port-f fwmark说明是经过iptables标记过的服务类型-s 此选项后面跟LVS使用的调度算法有这样几个选项: rr|wrr|lc|wlc|lblc|lblcr|dh|sh默认的调度算法是: wlc-p timeout在某个Real Server上持续的服务时间。也就是说来自同一个用户的多次请求,将被同一个Real Server处理。此参数一般用于有动态请求的操作中,timeout 的默认值为300 秒。例如:-p 600,表示持续服务时间为600秒。-r指定Real Ser
25、ver的IP地址,此选项后面跟如下格式:real-server-ip:port-g (-gatewaying)指定LVS 的工作模式为直接路由模式(此模式是LVS 默认工作模式)-i (-ipip)指定LVS 的工作模式为隧道模式-m (-masquerading)指定LVS 的工作模式为NAT模式-w (-weight) weight指定Real Server的权值-c (-connection)显示LVS目前的连接信息 如:ipvsadm -L -c-L -timeout显示“tcp tcpfin udp”的timeout值,如:ipvsadm -L -timeout-L -daemon显
26、示同步守护进程状态,例如:ipvsadm -L daemon-L -stats显示统计信息,例如:ipvsadm -L stats-L -rate显示速率信息,例如:ipvsadm -L -rate-L -sort对虚拟服务器和真实服务器排序输出,例如:ipvsadm -L -sort注释:在表2中,左边括弧中的内容为ipvsadm每个选项的长格式表示形式,linux命令选项中,有长格式和短格式,短格式的选项用的比较多,实际应用中可以用括弧中的长格式替代短格式,例如,可以用“ipvsadm -clear”代替“ipvsadm -C”。(2)举例rootlocalhost # ipvsadm -
27、A -t 00:80 -s rr -p 600以上表示在内核的虚拟服务器列表中添加一条00的虚拟服务器记录,并且指定此虚拟服务器的服务端口为80,然后指定此虚拟服务器的调度策略为轮询调度,并且在每个real server上的持续服务时间为600秒,即10分钟。rootlocalhost # ipvsadm -A -t 88:21 -s wlc以上表示在内核的虚拟服务器列表中又添加了一条88的虚拟服务器,此虚拟服务器的服务端口为21,即FTP服务。使用的调度策略为wlc,即加权最少链接算法。rootl
28、ocalhost # ipvsadm -a -t 00:80 -r 32:80 grootlocalhost # ipvsadm -a -t 00:80 -r 44:80 g以上两条设置表示在虚拟服务器00中添加两条新的Real Server记录,两个Real Server的IP分别为32和44,参数“-g”指定了虚拟服务器的工作模式为直接路由模式,即DR模式。这样设置完毕后,当用户访问00的80服务时,
29、LVS会根据设置的调度策略和路由模式将请求分配到32以及44的80端口。Linux负载均衡软件LVS(配置篇)LVS集群有DR、TUN、NAT三种配置模式,可以对www服务、FTP服务、MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置。一、Director Server的配置在Director Server上配置LVS负载均衡集群,有两种方法:通过ipvsadm命令行进行配置通过Redhat提供的工具piranha来配置LVS1、通过ipvsadm命令行方式配置LVS安装IPVS后,就可以配置LVS
30、集群了,首先在Director Server上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务,执行如下命令:rootlocalhost #ifconfig eth0:0 00 broadcast 00 netmask 55 up此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是00,也就是上面我们规划的IP地址,然后指定广播地址也为00,需要特别注意的是,这里的子网掩码为55。然后给设备eth0:0指定一条路由,执
31、行如下指令:rootlocalhost #route add -host 00 dev eth0:0接着启用系统的包转发功能,从而使系统充当路由器,执行如下指令:rootlocalhost #echo 1 /proc/sys/net/ipv4/ip_forward指令中,参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是必须的,而在NAT模式下此操作是必须的。然后开始配置ipvs,执行如下操作:rootlocalhost #ipvsadm -Crootlocalhost #ipvsadm -A -t 00:8
32、0 -s rr -p 600rootlocalhost #ipvsadm -a -t 00:80 -r 32:80 -grootlocalhost #ipvsadm -a -t 00:80 -r 44:80 -g上面操作中,第一行是清除内核虚拟服务器列表中的所有记录,第二行是添加一条新的虚拟IP记录。这个新的IP是00,同时指定持续服务时间为600秒。第三、四行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS 的工作模式为直接路由模式。最后,启动L
33、VS服务,执行如下操作:rootlocalhost #ipvsadm这样,LVS在Director Server上的配置就完成了。为了管理和配置的方便,可以将上面的操作写出一个脚本文件,脚本内容如下:#!/bin/bashVIP=00RIP1=32RIP2=44GW=# set the Virtual IP Address/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 55 up/sbin/route add -host
34、$VIP dev eth0:0echo 1 /proc/sys/net/ipv4/ip_forward#Clear IPVS table/sbin/ipvsadm -C#set LVS/sbin/ipvsadm -A -t $VIP:80 -s rr -p 600/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g#Run LVS/sbin/ipvsadm#end也可以写成可启动与停止的服务脚本,脚本内容如下:#!/bin/sh# description: Start LVS o
35、f Director serverVIP=00RIP1=32RIP2=44./etc/rc.d/init.d/functionscase $1 in start) echo start LVS of Director Server# set the Virtual IP Address and sysctl parameter/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 55 up echo 1 /proc/sys/net/ipv4/ip_fo
36、rward#Clear IPVS table /sbin/ipvsadm -C#set LVS/sbin/ipvsadm -A -t $VIP:80 -s rr -p 600/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g#Run LVS /sbin/ipvsadm ; stop) echo close LVS Directorserver echo 0 /proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig
37、 eth0:0 down ; *) echo Usage: $0 start|stop exit 1esac将此脚本命名为lvsDR文件,然后把文件放到/etc/init.d下,执行:rootlocalhost #chomd 755 /etc/init.d/lvsDR最后可以通过下面命令启动或停止LVS服务:service lvsDR start|stop到此为止,命令行方式配置Director Server完毕。2、通过Redhat提供的工具piranha来配置LVSPiranha是REDHAT提供的一个基于Web的LVS配置软件,可以省去手工配置LVS的繁琐工作,同时,也可单独提供clus
38、ter功能,例如,可以通过Piranha激活Director Server的后备主机,也就是配置Director Server的双机热备功能。Piranha工具的安装非常简单,下载Piranha的rpm包,进行安装即可:rootlocalhost #rpm ivh piranha-0.8.2-1.i386.rpmPiranha安装完毕后,会产生/etc/sysconfig/ha/lvs.cf文件,默认此文件是空的,可以通过Piranha提供的web界面配置此文件,也可以直接手动编辑此文件,编辑好的lvs.cf文件内容类似如下,注意,“#”号后面的内容为注释。rootlocalhost # mo
39、re /etc/sysconfig/ha/lvs.cfserial_no = 18 #指定主Director Server的真实IP地址,是相对与有备用的Director Server而言的,也就是给Director Server做HA Cluster。service = lvs #指定双机的服务名。backup_active = 0 #是否激活备用Director Server。“0”表示不激活,“1” #这里指定备用Director Server的真实IP地址,如果没有备用Director Server,可以用“”代替。heartbeat = 0 #是否开启心跳,1表示开启,0表示不开启。
40、heartbeat_port = 539 #指定心跳的UDP通信端口。keepalive = 5 #心跳间隔时间,单位是秒。deadtime = 10 #如果主Director Server在deadtime(秒)后没有响应,那么备份DirectorServer就会接管主Director Server的服务。network = direct #指定LVS的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUNL模式。debug_level = NONE #定义debug调试信息级别。virtual #指定虚拟服务的名称。active = 1 #是否激活此服务。addr
41、ess = 00 eth0:0 #虚拟服务绑定的虚拟IP以及网络设备名。port = 80 #虚拟服务的端口。send = GET / HTTP/1.0rnrn #给real server发送的验证字符串。expect = HTTP #服务器正常运行时应该返回的文本应答信息,用来判断real server是否工作正常。use_regex = 0 # expect选项中是否使用正则表达式,0表示不使用,1表示使用。load_monitor = none #LVS中的Director Server能够使用 rup 或 ruptime 来监视各个real server的负载状
42、态。该选项有3个可选值,rup、ruptime和none,如果选择rup,每个real server就必须运行rstatd服务。如果选择了ruptime,每个real server就必须运行 rwhod 服务。scheduler = rr #指定LVS的调度算法。protocol = tcp #虚拟服务使用的协议类型。timeout = 6 #real server失效后从lvs路由列表中移除失效real server所必须经过的时间,以秒为单位。reentry = 15 #某个real server被移除后,重新加入lvs路由列表中所必须经过的时间,以秒为单位。quiesce_server
43、= 0 #如果此选项为1.那么当某个新的节点加入集群时,最少连接数会被重设为零,因此LVS会发送大量请求到此服务节点,造成新的节点服务阻塞,建议设置为0。server RS1 #指定real server的IP地址。active = 1 #是否激活此real server服务。weight = 1 #指定此real server的权值,是个整数值,权值是相对于所有real server节点而言的,权值高的real server处理负载的性能相对较强。server RS2 address = 44active = 1weight = 1编辑完成,然后启动pulse服务,即
44、启动lvs服务rootlocalhost #service pulse start同理,此种方式下也要启用系统的包转发功能:rootlocalhost #echo 1 /proc/sys/net/ipv4/ip_forward到此为止,Piranha工具方式配置Director Server完毕。二、Real server 的配置在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户,增加VIP地址的操作可以通过创建脚本的方式
45、来实现,创建文件/etc/init.d/lvsrs,脚本内容如下:#!/bin/bashVIP=00/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 55 up/sbin/route add -host $VIP dev lo:0echo “1 /proc/sys/net/ipv4/conf/lo/arp_ignoreecho “2 /proc/sys/net/ipv4/conf/lo/arp_announceecho “1 /proc/sys/net/ipv4/conf/all/arp_ignor
46、eecho “2 /proc/sys/net/ipv4/conf/all/arp_announcesysctl -p#end此操作是在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为55,与Director Server上的虚拟IP保持互通,然后禁止了本机的ARP请求。上面脚本也可以写成可启动与停止的服务脚本,内容如下:rootlocalhost #more /etc/init.d/lvsrs#!/bin/bash#description : Start Real ServerVIP=00./etc/rc.d/init.d/function
47、scase $1 in start) echo Start LVS of Real Server/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 55 up echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/sys/net/ipv4/conf/all/arp_announce
48、 ; stop) /sbin/ifconfig lo:0 down echo close LVS Director server echo 0 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 /proc/sys/net/ipv4/conf/lo/arp_announce echo 0 /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 /proc/sys/net/ipv4/conf/all/arp_announce ; *) echo Usage: $0 start|stop exit 1esac然后,修改lvs
49、rs有可执行权限:rootlocalhost #chomd 755 /etc/init.d/lvsrs最后,可以通过下面命令启动或关闭lvsrsservice lvsrs start|stop由于虚拟ip,也就是上面的VIP地址,是Director Server和所有的Real server共享的,如果有ARP请求VIP地址时,Director Server与所有Real server都做应答的话,就出现问题了,因此,需要禁止Real server响应ARP请求。而lvsrs脚本的作用就是使Real Server不响应arp请求。对于2.4以下低版本,在Real Server上要安装ARP h
50、idden内核补丁,幸运的是,在2.6内核中通过调整内核参数即可忽略ARP广播回应。三、在Director上配置冗余策略 LdirectordLdirectord的作用是监测Real Server,当Real Server失效时,把它从虚拟服务器列表中删除,恢复时重新添加到列表,在前面文章介绍heartbeat时默认已经安装了Ldirectord,因此。这里只需进行配置即可。Ldirectord的配置文件是/etc/ha.d/ldirectord.cf。下面是需要配置的选项,注意,“#”号后面的内容为注释:# Global Directiveschecktimeout=20 #判定real s
51、erver出错的时间间隔。checkinterval=10 #指定ldirectord在两次检查之间的间隔时间。fallback=:80 #当所有的real server节点不能工作时,web服务重定向的地址。autoreload=yes #是否自动重载配置文件,选yes时,配置文件发生变化,自动载入配置信息。logfile=/var/log/ldirectord.log #设定ldirectord日志输出文件路径。quiescent=no“全局”设置,它们可以应用到下面多个虚拟主机,下面是每个虚拟主机的配置。# Sample for an http virtual serv
52、icevirtual=00:80 #指定虚拟的IP地址和端口号,注意,在virtual行后面的行必须缩进4个空格或以一个tab字符进行标记。real=32:80 gate #指定Real Server服务器地址和端口,同时设定LVS工作模式,用gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。real=44:80 gatefallback=:80 gateservice=http #指定服务的类型,这里是对http服务做负载均衡。request=index.html #ldirect
53、ord将根据指定的Real Server地址,结合该选项给出的请求路径,发送访问请求,检查Real Server上的服务是否正常运行,确保这里给出的页面地址是可访问的,不然ldirectord会误认为此节点已经失效,发生错误监控现象。receive=Test Page #指定请求和应答字串。scheduler=rr #指定调度算法,这里是rr(轮叫)算法。protocol=tcp #指定协议的类型,LVS支持TCP和UDP协议。checktype=negotiate #指定Ldirectord的检测类型,默认为negotiate。checkport=80 #虚拟服务器的名称,随便指定。配置完毕,就可以执行如下命令启动或关闭ldirectord服务/etc/init.d/ldirectord start|stopLdirectord的核心作用是监控Real Server节点状态,同时,它还能调用ipvsadm自动创建LVS路由表,这点从ldirectord.cf中可以看出,这里需要说明的是,ldirectord和Piranha都具有监控Real Server的功能,如果要通过ldirectord监控节点状态,只需启动ldirectord服务,整个集群系统就可以运行起来,而无需执行上面我们配置的LVS脚本,因为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单招电力专业考试题目及答案解析
- 重庆国显科技:LED会议屏需要上门调试运维吗
- 2026年重庆市部编版高中英语必修第二册第6单元阅读理解专项训练
- 2026年软件工程文档编写与项目管理实操考核试卷
- 2026年幼儿园小班社会交往能力评估试卷
- 2026年四川省部编版高一语文上册第1单元文言文阅读同步练习题
- 2026年心理疾病预防与识别试题
- 2026年食品安全与卫生法规测试
- 2026年四川省幼儿艺术手工活动测试卷
- 2026年湘教版六年级英语下册第9单元阅读理解专项训练
- 2026年秋季学期每周国旗下讲话稿
- ISOIEC TS 17021-152023 管理体系审核和认证机构的合格评定要求第15部分医疗机构质量管理体系审核与认证的能力要求标准立项发展报告
- 2025-2026学年湖北省武汉市江岸区八年级上册期中物理试卷 含答案
- 2026年苏教版七年级下册数学期末学业检测卷(含答案可下载)
- 2025年贵州黔南人力资源开发有限责任公司招聘劳务派遣制专职民兵教练员5人笔试备考试题及答案解析
- 2026年广西公务员申论试题解析及答案
- 《五粮浓香型白酒智能化酿造体系要求》编制说明
- 2025海南国资运营旗下国改基金公司招聘4人笔试历年难易错考点试卷带答案解析
- 2026年及未来5年市场数据中国采购代理行业市场发展数据监测及投资战略咨询报告
- 2026年单细胞多组学技术在肿瘤微环境研究中的突破应用
- 三一重工销售员奖惩制度
评论
0/150
提交评论