LVS (DR) 实现负载均衡 FTP
LVS keepalived负载均衡高可用 配置安装大全

LVS+Keepalived实现高可用集群一、基础介绍 (2)二、搭建配置LVS-NA T模式 (2)三、搭建配置LVS-DR模式 (4)四、另外一种脚本方式实现上面LVS-DR模式 (6)五、keepalived + LVS(DR模式) 高可用 (8)六、Keepalived 配置文件详细介绍 (11)一、基础介绍(一)根据业务目标分成三类:High Availability 高可用Load Balancing 负载均衡High Performance 高性能(二)实现集群产品:HA类:rhcs、heartbeat、keepalivedLB类:haproxy、lvs、nginx、f5、piranhaHPC类:/index/downfile/infor_id/42(三)LVS 负载均衡有三种模式:LVS-DR模式(direct router)直接路由模式进必须经过分发器,出就直接出LVS-NAT模式(network address translation)进出必须都经过分发器LVS-TUN模式(ip tunneling)IP隧道模式服务器可以放到全国各地二、搭建配置LVS-NAT模式1 、服务器IP规划:DR服务器添加一张网卡eth1,一个网卡做DIP,一个网口做VIP。
设置DIP、VIP IP地址:DIP的eth1和所有RIP相连同一个网段CIP和DIP的eth0(Vip)相连同一个网段Vip eth0 192.168.50.200Dip eth1 192.168.58.4客户机IP:Cip 192.168.50.32台真实服务器IP:Rip1 192.168.58.2Rip2 192.168.58.32 、R ealServer1配置:mount /dev/xvdd /media/vi /var/www/html/index.html写入:this is realserver1启动httpdvi /etc/sysconfig/network-scripts/ifcfg-eth0设置RIP,子网掩码必须设置成DIPIPADDR=192.168.58.2NETMASK=255.255.255.0GA TEWAY=192.168.58.43 、R ealServer2 配置:vi /var/www/html/index.html写入:this is realserver2启动httpdvi /etc/sysconfig/network-scripts/ifcfg-eth0设置RIP,子网掩码必须设置成DIPIPADDR=192.168.58.3NETMASK=255.255.255.0GA TEWAY=192.168.58.44 、在DR服务器上做以下设置:开启IP数据包转发vi /etc/sysctl.confnet.ipv4.ip_forward = 0 ##0改成1 ,此步很重要查看是否开启:sysctl -p5 、安装LVS服务:ipvsadmyum -y install ipvsadmlsmod |grep ip_vsTurbolinux系统没有带rpm包,必须下载源码安装:#ln -s /usr/src/kernels/2.6.18-164.el5-x86_64/ /usr/src/linux##如果不做连接,编译时会包错#tar zxvf ipvsadm-1.24.tar.gz#cd ipvsadm-1.24#make && make install运行下ipvsadm ,就加到ip_vs模块到内核了lsmod | grep ip 可以看到有ip_vs模块了6 、配置DR服务器,添加虚拟服务ipvsadm -L -n 查询信息ipvsadm -A -t 192.168.50.200:80 -s rr #添加集群服务、调度算法,rr为调度算法ipvsadm -a -t 192.168.50.200:80 -r 192.168.58.2 -m -w 1 # -m代表net模式,-w代表权重ipvsadm -a -t 192.168.50.200:80 -r 192.168.58.3 -m -w 2ipvsadm -L -n 再次查看是就有了realserverservice ipvsadm save 保存配置iptables -L 关闭或者清空防火墙watch -n 1 'ipvsadm -L -n' 查看访问记录的数显示如下:-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.50.200:80 rr-> 192.168.58.2:80 Masq 1 0 13-> 192.168.58.3:80 Masq 2 0 12ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED;InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接.7 、测试:http://192.168.58.200配完后若想修改算法:ipvsadm -E -t 192.168.58.200:80 -s wlc修改Rip的权重:ipvsadm -e -t 192.168.58.200:80 -r 192.168.58.2 -m -w 1ipvsadm -e -t 192.168.58.200:80 -r 192.168.58.3 -m -w 5三、搭建配置LVS-DR模式lo:1 回应客户端,lo:1上的IP跟机器有关,跟网卡没有关系arp_announce 对网络接口上本地IP地址发出的ARP回应作出相应级别的限制arp_ignore 定义对目标地址为本地IP的ARP询问不同的请求一、3台服务器IP配置规划:DIP:eth0:1 192.168.58.200/32 (VIP)eth0 192.168.58.3/24 (DIP)RIP1 lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.4/24RIP2 lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.5/24 .................................................................RIP n lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.N/24二、每台realserver都加上下面四个步骤配置:1 、配置每台rip的IP、http,web页面2 、关闭每台rip服务器的ARP广播:echo 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_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce3 、配置VIPifconfig lo:1 192.168.58.200 netmask 255.255.255.255 broadcast 192.168.58.200 up4 、配置网关route add -host 192.168.58.200 dev lo:1三、DR上的配置(DR模式下Dip不用开启转发):1 、配置DIP,在eth0上添加一个子VIP接口:添加VIP:ifconfig eth0:1 192.168.58.200 broadcast 192.168.58.200 netmask 255.255.255.255 up2 、配置网关:route add -host 192.168.58.200 dev eth0:1route -n3 、安装ipvsadm(方法见文档上面)yum -y install ipvsadmlsmod |grep ip_vs4 、配置LVS集群:ipvsadm -A -t 192.168.58.200:80 -s rr #添加集群服务、调度算法,rr为调度算法ipvsadm -a -t 192.168.58.200:80 -r 192.168.58.3 -g -w 1 # -g代表DR模式,-w代表权重ipvsadm -a -t 192.168.58.200:80 -r 192.168.58.2 -g -w 2service ipvsadm saveipvsadm -L -n 查看信息四、测试:http://192.168.58.200四、另外一种脚本方式实现上面LVS-DR模式IP规划:Dip eth0 192.168.58.139VIP:192.168.58.200RIP1:192.168.58.2RIP2:192.168.58.31 、D R服务器上安装ipvsadm#yum -y install ipvsadm#lsmod | grep ip_vs 查看没有输出#modprobe ip_vs 安装即可2 、配置DIP服务器、LVS这里也是个写脚本为了方便vim /etc/init.d/lvsdr#!/bin/bash#lvs of DRVIP=192.168.58.200RIP1=192.168.58.2RIP2=192.168.58.3case "$1" instart)echo "start lvs of DR"/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.0 up echo "1" > /proc/sys/net/ipv4/ip_forward/sbin/iptables -C/sbin/ipvsadm -A -t $VIP:80 -s rr/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g/sbin/ipvsadm;;stop)echo "stop lvs of DR"echo "0" > /proc/sys/net/ipv4/ip_forward/sbin/ipvsadm -C/sbin/ifconfig eth0:0 down;;*)echo "Usage :$0 {start|stop}"exit1esacexit 0#chmod o+x /etc/init.d/lvsdr启动脚本:#service lvsdr start3 、2台RIP服务器都配置这里我们也都可以写成脚本开启2台RIP的httpd服务。
负载均衡--LVS+Keepalived

利用LVS+Keepalived 实现高性能高可用负载均衡作者:NetSeek 网站: 背景:随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
一.L VS+Keepalived 介绍1.LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
目前有三种IP负载均衡技术(VS/NA T、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
2.KeepalviedKeepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现二. 网站负载均衡拓朴图.IP信息列表:名称IPLVS-DR-Master 61.164.122.6LVS-DR-BACKUP 61.164.122.7LVS-DR-VIP 61.164.122.8WEB1-Realserver 61.164.122.9WEB2-Realserver 61.164.122.10GateWay 61.164.122.1三. 安装LVS和Keepalvied软件包1. 下载相关软件包#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.gz2. 安装LVS和Keepalived#lsmod |grep ip_vs#uname -r2.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 #做成系统启动服务方便管理.四. 配置LVS实现负载均衡1.LVS-DR,配置LVS脚本实现负载均衡#vi /usr/local/sbin/lvs-dr.sh#!/bin/bash# description: start LVS of DirectorServer#Written by :NetSeek GW=61.164.122.1# website director vip.SNS_VIP=61.164.122.8SNS_RIP1=61.164.122.9SNS_RIP2=61.164.122.10./etc/rc.d/init.d/functionslogger $0 called with $1case "$1" instart)# set squid vip/sbin/ipvsadm --set 30 5 60/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up/sbin/route add -host $SNS_VIP dev eth0:0/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1touch /var/lock/subsys/ipvsadm >/dev/null 2>&1;;stop)/sbin/ipvsadm -C/sbin/ipvsadm -Zifconfig eth0:0 downifconfig eth0:1 downroute del $SNS_VIProute del $SS_VIPrm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1echo "ipvsadm stoped";;status)if [ ! -e /var/lock/subsys/ipvsadm ];thenecho "ipvsadm stoped"exit 1elseecho "ipvsadm OK"fi;;*)echo "Usage: $0 {start|stop|status}"exit 1esacexit 02.配置Realserver脚本.#vi /usr/local/sbin/realserver.sh#!/bin/bash# description: Config realserver lo and apply noarp#Written by :NetSeek SNS_VIP=61.164.122.8. /etc/rc.d/init.d/functionscase "$1" instart)ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP/sbin/route add -host $SNS_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_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p >/dev/null 2>&1echo "RealServer Start OK";;stop)ifconfig lo:0 downroute del $SNS_VIP >/dev/null 2>&1echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announceecho "RealServer Stoped";;*)echo "Usage: $0 {start|stop}"exit 1esacexit 0或者采用secondary ip address方式配置# vi /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2#sysctl –p#ip addr add 61.164.122.8/32 dev lo#ip add list 查看是否绑定3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态:#watch ipvsadm –ln五.利用Keepalvied实现负载均衡和和高可用性1.配置在主负载均衡服务器上配置keepalived.conf#vi /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {cnseek@# failover@firewall.loc# sysadmin@firewall.loc}notification_email_from sns-lvs@smtp_server 127.0.0.1# smtp_connect_timeout 30router_id LVS_DEVEL}# 20081013 written by :netseek# VIP1vrrp_instance VI_1 {state MASTER #备份服务器上将MASTER改为BACKUP interface eth0virtual_router_id 51priority 100 # 备份服务上将100改为99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {61.164.122.8#(如果有多个VIP,继续换行填写.)}}virtual_server 61.164.122.8 80 {delay_loop 6 #(每隔10秒查询realserver状态)lb_algo wrr #(lvs 算法)lb_kind DR #(Direct Route)persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver) protocol TCP #(用TCP协议检查realserver状态)real_server 61.164.122.9 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 61.164.122.10 80 {weight 3TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}}2. BACKUP服务器同上配置,先安装lvs再按装keepalived,仍后配置/etc/keepalived/keepalived.conf,只需将红色标示的部分改一下即可.3. vi /etc/rc.local#/usr/local/sbin/lvs-dr.sh 将lvs-dr.sh这个脚本注释掉。
基于LVS集群负载均衡算法改进与实现

基于LVS集群负载均衡算法的改进与实现摘要:随着计算机应用的越来越广泛、越来越深入,人们对计算机性能的要求也越来越高,而一般的计算机单机不具备处理大量数据及数据流量的能力,实际证明,如果单靠提高计算机硬件的性能,那么也难以提高整个计算机系统的性能。
解决的办法之一,就是采用并行处理技术,构建“超级”计算机系统。
计算机集群系统是目前实现并行运算,提高计算机系统性能的有效途径。
该系统是由两台以上的单机通过网络连接构成,通过某种方式使集群内部机器按某一设定法则一起协同工作,对用户提供全时的可靠服务,提高了系统的整体性能。
lvs(linux virtual server)集群系统是具有代表性的计算机集群系统之一。
关键词:集群;lvs;负载均衡;动态反馈一、绪论在一些繁忙的场合,单凭一台计算机,哪怕是一台性能优良的服务器甚至是大型机,都已经难以满足人们对计算机性能要求日益增涨的需求,单靠提高单机系统中硬件配置以期提高计算机整体性能已很难达到目的。
开发和应用并行处理技术已成为计算机技术向高层次发展的必由之路。
为了解决这个问题,产生了以并行计算为基础的集群技术,用户采用一组由多机组成的集群(cluster)来代替单一的机器,满足对计算机高性能的需求,取得了预期的效果。
计算机集群可以将多台计算机连接起来协同运作以对用户提供各种服务,比如apache、ftp、mail等。
二、计算机集群及负载均衡(一)计算机集群系统的体系结构计算机集群的网络拓扑结构如图2-1所示:图2-1 计算机集群的网络拓扑结构(二)负载均衡的层次a基于客户端的负载均衡b应用服务器的负载均衡技术 c基于域名系统的负载均衡 d高层协议内容交换技术 e网络接入协议交换 f带均衡策略的服务器群集(三)计算机集群系统的主要特点a高可扩展性 b良好的可用性 c高性能 d高性价比 e好的可管理性 f对用户的透明性(四)衡量集群的重要指标a能用性 b可用性处 c理器和存储器 e磁盘阵列 f操作系统 g 通信网络 h可扩展性 i性价比 j地址转换。
lvs dr模式原理

lvs dr模式原理LVS DR模式原理。
LVS(Linux Virtual Server)是一种基于Linux系统的高性能、高可用的服务器集群架构,它可以实现负载均衡和高可用性服务。
LVS DR(Direct Routing)模式是LVS的一种工作模式,它通过网络地址转发技术实现负载均衡,本文将介绍LVS DR模式的原理及其工作流程。
LVS DR模式的原理。
LVS DR模式是通过在负载均衡器和后端服务器之间建立直接路由的方式来实现负载均衡。
在LVS DR模式中,负载均衡器和后端服务器在同一个局域网中,负载均衡器通过ARP协议欺骗客户端,使客户端认为负载均衡器的MAC地址就是后端服务器的MAC地址,从而实现数据包的直接路由。
工作流程。
1. 客户端向负载均衡器发送请求。
2. 负载均衡器接收到请求后,根据负载均衡算法选择一台后端服务器,并将请求转发给该后端服务器。
3. 后端服务器接收到请求后,处理并返回响应给客户端。
4. 后端服务器直接将响应返回给客户端,绕过负载均衡器。
优点。
LVS DR模式相比LVS NAT模式具有以下优点:1. 减少了负载均衡器的负担,提高了系统的整体性能。
2. 后端服务器直接与客户端通信,减少了数据包在负载均衡器和后端服务器之间的传输,降低了网络延迟。
3. 后端服务器可以直接获取客户端的真实IP地址,方便进行日志记录和统计分析。
注意事项。
在使用LVS DR模式时,需要注意以下事项:1. 负载均衡器和后端服务器必须在同一个局域网中,以保证直接路由的实现。
2. 负载均衡器需要支持ARP协议欺骗功能,以实现客户端对负载均衡器的请求转发。
3. 后端服务器需要关闭对负载均衡器的ARP响应,以避免ARP 包的冲突。
总结。
LVS DR模式通过直接路由的方式实现负载均衡,提高了系统的整体性能和可靠性。
在实际应用中,可以根据系统的需求选择合适的负载均衡模式,以达到最佳的性能和可用性。
结语。
本文介绍了LVS DR模式的原理及其工作流程,以及使用该模式时需要注意的事项。
lvs dr模式原理

lvs dr模式原理LVS DR模式原理。
LVS(Linux Virtual Server)是一个基于Linux内核的高性能、可扩展的服务器集群系统,它可以实现负载均衡、高可用和扩展性。
LVS DR(Direct Routing)模式是LVS集群中最常用的一种负载均衡模式,本文将介绍LVS DR模式的原理及其实现方式。
LVS DR模式的原理。
LVS DR模式是通过修改数据包的目的MAC地址实现负载均衡的。
在LVS DR模式中,负载均衡器和真实服务器都在同一子网中,负载均衡器和真实服务器之间通过交换机连接。
当客户端发送请求时,数据包首先到达负载均衡器,负载均衡器根据负载均衡算法选择一个真实服务器,并将数据包的目的MAC地址修改为该真实服务器的MAC地址,然后将数据包转发给真实服务器。
真实服务器接收到数据包后进行处理,并将响应数据包直接返回给客户端,由于响应数据包的源MAC地址是真实服务器的MAC地址,所以响应数据包会直接经过交换机到达客户端,绕过了负载均衡器。
LVS DR模式的实现方式。
要实现LVS DR模式,需要进行以下几个步骤:1. 配置负载均衡器。
在负载均衡器上配置虚拟IP地址,并配置负载均衡规则和负载均衡算法。
2. 配置真实服务器。
在真实服务器上配置IP地址,并关闭ARP响应,以避免真实服务器响应ARP 请求。
3. 配置交换机。
在交换机上配置ARP代理,以便负载均衡器可以响应真实服务器的ARP请求。
4. 测试负载均衡。
进行负载均衡器和真实服务器的连通性测试,确保负载均衡器可以正常转发数据包到真实服务器。
LVS DR模式的优缺点。
LVS DR模式相对于其他负载均衡模式有以下优点:减少了负载均衡器的负载,提高了系统的性能和可扩展性。
真实服务器可以直接与客户端通信,减少了数据包在负载均衡器和真实服务器之间的传输延迟。
然而,LVS DR模式也存在一些缺点:需要对真实服务器进行特殊配置,关闭ARP响应,增加了部署和维护的复杂性。
LVS原理详解配置文件参数详解

LVS原理详解配置文件参数详解LVS(Linux Virtual Server)是一种基于四层(TCP/UDP)和七层(HTTP/HTTPS)负载均衡技术,能够将网络流量按照一定的策略分发到多个真实服务器上,从而提高服务器的可用性和负载能力。
LVS的主要原理是通过网络地址转换(NAT)、数据包转发(DR)和IP隧道(TUN)三种方式实现负载均衡。
在LVS的配置文件中,有一些重要的参数需要进行详细的解释。
1. Virtual Server(虚拟服务器)参数:- VIP(Virtual IP):虚拟服务器的IP地址。
当客户端请求访问这个VIP时,LVS会根据一定的策略将请求转发到后端真实服务器进行处理。
- Protocol(协议):虚拟服务器所使用的协议类型,如TCP、UDP、HTTP等。
根据不同的协议,LVS的配置和行为会略有差异。
- Scheduler(调度算法):LVS使用的负载均衡算法,常见的有轮询(Round Robin)、加权轮询(Weighted Round Robin)、最少连接(Least Connection)等。
2. Real Server(真实服务器)参数:- RIP(Real IP):真实服务器的IP地址。
- RS_PORT(Real Server Port):真实服务器上对外提供服务的端口号。
- RS_WEIGHT(Real Server Weight):真实服务器的权重值。
通过权重值可以实现负载均衡的策略,权重越高的服务器会处理更多的请求。
3.LVS模式参数:- NAT模式(Network Address Translation):LVS作为网络地址转换器,将客户端请求的源IP地址和目标IP地址进行转换,使得请求最终到达真实服务器。
- DR模式(Direct Routing):LVS将客户端请求的目标IP地址更改为真实服务器的IP地址,并通过修改ARP映射表使得请求直接发送给真实服务器。
lvs工作原理

lvs工作原理
LVS(LinuxVirtualServer)是一种开源的负载均衡软件,其主要功能是将客户端的请求按照一定的规则分发给多个服务器进行处理,以实现高可用、高性能、高可扩展性的应用。
LVS的工作原理主要包括以下几个方面:
1. IP负载均衡
LVS通过在负载均衡器上设置虚拟IP(VIP),将客户端请求转发给后端的多个真实服务器。
这个过程中,LVS会根据一定的策略(如轮询、最少连接数等)选择一个可用的真实服务器进行请求转发。
2. 网络地址转换(NAT)
在NAT模式下,LVS会将客户端请求的源IP地址和端口号替换成负载均衡器的IP地址和端口号,再将请求转发给真实服务器进行处理。
这种方式比较适用于应对客户端IP地址变动的情况。
3. 直接路由(DR)
在DR模式下,LVS会将客户端请求的目标IP地址和端口号保持不变,直接将请求转发给真实服务器进行处理。
这种方式比较适用于高并发的场景,可以减轻负载均衡器的负载压力。
4. 表决调度
表决调度是LVS的一种高可用机制,即将多个负载均衡器组成一个集群,通过基于心跳检测的机制,选择一台具有最高优先级的负载均衡器作为主节点,负责处理客户端请求。
如果主节点发生故障,其他节点会自动接管主节点的工作,从而实现高可用。
总的来说,LVS的工作原理可以简单归纳为将客户端请求分发给多个真实服务器进行处理,并通过一些高可用机制保证系统的可用性和稳定性。
lvs dr模式原理

lvs dr模式原理区域可扩展性是分布式系统设计中的常见需求。
LVS (Linux Virtual Server) 是一种基于Linux操作系统的软件负载均衡解决方案。
LVS可以通过实现IP负载均衡、端口负载均衡、Iptables模块、NAT模块等来将用户请求分发到不同的服务器上,以提高系统的性能和可靠性。
LVS DR (Direct Routing) 模式是LVS中的一种负载均衡模式。
它的原理是将前端负载均衡设备和后端真实服务器通过二层网络连接起来,前端负载均衡设备负责接收用户请求并进行负载均衡操作,将请求发送到合适的真实服务器上,然后直接将响应数据通过交换机发送给用户,绕过前端设备,提高了系统的处理性能。
具体来说,LVS DR模式的工作流程如下:1. 用户发送请求到前端负载均衡设备的VIP(Virtual IP)地址。
2. 前端负载均衡设备接收到请求后,根据负载均衡算法选择一个合适的后端真实服务器来处理请求。
3. 前端负载均衡设备将请求的目标IP地址修改为所选择的后端真实服务器的IP地址,然后将修改后的请求通过交换机发送给后端真实服务器。
4. 后端真实服务器接收到请求后,处理请求并生成响应数据。
5. 后端真实服务器将生成的响应数据直接发送给用户,绕过前端负载均衡设备,加快响应速度。
6. 用户收到响应数据后完成整个请求-响应过程。
需要注意的是,LVS DR模式中,前端负载均衡设备只负责将请求发送到合适的后端真实服务器上,并不参与响应数据的传输。
通过绕过前端设备,避免了响应数据再次经过前端设备的额外开销,提高了系统的处理性能和吞吐量。
总结来说,LVS DR模式通过在二层网络层面上实现负载均衡,将用户请求发送到不同的后端真实服务器上,并直接将响应数据发送给用户,以提高系统的性能和可靠性。
lvs的工作原理

lvs的工作原理
lvs(Linux Virtual Server)是一种基于Linux内核的高性能、
高可用性的负载均衡技术。
其工作原理如下:
1. LVS通过网络地址转换(NAT)或直接路由(DR)技术将
前端客户端的请求通过虚拟IP(VIP)转发到后端的真实服务
器(RS)上。
2. 当客户端发起连接请求时,请求首先达到负载均衡调度器(Load Balancer),负载均衡调度器根据预设的策略(如轮询、加权轮询、最小连接数等)选择一个合适的RS来处理请求。
3. 负载均衡调度器将请求转发给选中的RS,并进行地址转换
或直接路由,使得客户端认为与VIP直接通信。
4. 后端的真实服务器接收到请求后,处理请求并将响应返回给负载均衡调度器。
5. 负载均衡调度器将响应返回给客户端,完成整个请求-响应
过程。
6. LVS实时监控后端RS的可用性,若某台RS发生故障,则
负载均衡调度器会自动将该RS从可选服务器列表中剔除,并
将新的请求转发给其他可用的RS,确保系统的高可用性。
7. 对于复杂的应用场景,LVS可与其他网络服务协同工作,
如与防火墙(iptables)结合起来实现安全访问控制。
总之,LVS通过将客户端请求转发给多台后端服务器,实现负载均衡和高可用性,提升系统的性能和稳定性。
LVS四层转发模式:DR模式、TUNNEL模式、NAT模式、FULLNAT模式

LVS四层转发模式:DR模式、TUNNEL模式、NAT模式、FULLNAT模式1.DR模式要求调度器 LB 与真实服务器 RS 都有⼀块⽹卡连接到同⼀物理⽹段上,必须在同⼀个局域⽹环境。
(使⽤MAC地址确定真实服务器) RS需要配置VIP与LB的IP相同。
2.TUNNEL模式简单来说IP隧道技术就是将【IP数据包】的上⾯再封装⼀层【IP数据包】,然后路由器根据最外层的IP地址路由到⽬的地服务器,⽬的地服务器拆掉最外层的IP数据包,拿到⾥⾯的IP数据包进⾏处理。
⽤户请求负载均衡服务器,当IP数据包到达负载均衡服务器后根据算法选择⼀台真实的服务器,然后通过IP隧道技术将数据包原封不动再次封装,并发送给真实服务器当这个数据包到达真实服务器以后,真实服务器进⾏拆包(拆掉第⼀层的IP包)拿到⾥⾯的IP数据包进⾏处理,然后将结果直接返回给客户端。
3.NAT模式NAT模式对⼊报⽂做了DNAT,即将报⽂的⽬的地址改为RS的地址,但源地址不变;出报⽂到了LVS(需要LVS作为⽹关)设备上后做SNAT,即将报⽂的源地址改为LVS设备上的地址,⽬的地址不变。
4.FULLNAT模式FULLNAT模式对⼊报⽂做了DNAT+SNAT,即将报⽂的⽬的地址改为RS的地址,源地址改为LVS设备地址;出报⽂到了LVS(不必要配置为⽹关)设备上后做SNAT+DNAT,即将报⽂的源地址改为LVS设备上的地址,⽬的地址改为真实的⽤户地址。
问题⼀般来说,我们不需要使⽤FULLNAT,但是有⼀种场景,必须使⽤FULLNAT(或者类似的技术)通常LVS是为了解决外部访问集群内部的问题,但是在我们的⼀个⽣产环境上,我们遇到了必须在集群内部的server1,向server2/server3(提供sysdb)写log的场景。
server2/server3对外提供了VIP,⽤户可以从集群外部通过LVS来访问,但是server1访问sysdb的时候,会有路由问题。
lvs的四种工作模式工作原理

lvs的四种工作模式工作原理LVS的四种工作模式工作原理LVS(Linux Virtual Server)是一种高可用性、高性能的负载均衡软件,它可以将来自客户端的请求分发到多个服务器上,从而提高系统的可用性和性能。
LVS有四种工作模式,分别是NAT模式、DR模式、TUN模式和FULLNAT模式。
下面将分别介绍这四种工作模式的工作原理。
一、NAT模式NAT模式是LVS最常用的一种工作模式,它的工作原理是将客户端的请求地址和端口号转换成LVS的虚拟IP地址和端口号,然后再将请求转发给后端的真实服务器。
当后端服务器返回响应时,LVS会将响应的源地址和端口号转换成虚拟IP地址和端口号,然后再将响应返回给客户端。
这种模式的优点是配置简单,但缺点是性能较低,因为需要进行地址转换。
二、DR模式DR模式是LVS的一种高性能工作模式,它的工作原理是将客户端的请求直接转发给后端的真实服务器,而不进行地址转换。
当后端服务器返回响应时,LVS会将响应的源地址和端口号修改成虚拟IP地址和端口号,然后再将响应返回给客户端。
这种模式的优点是性能高,但缺点是配置较为复杂,需要在后端服务器上配置虚拟IP地址。
三、TUN模式TUN模式是LVS的一种高可用性工作模式,它的工作原理是将客户端的请求转发给后端的真实服务器,同时在LVS和后端服务器之间建立一条虚拟隧道,用于传输数据。
当后端服务器返回响应时,LVS会将响应通过虚拟隧道返回给客户端。
这种模式的优点是可用性高,但缺点是性能较低,因为需要进行数据传输。
四、FULLNAT模式FULLNAT模式是LVS的一种高可用性、高性能工作模式,它的工作原理是将客户端的请求地址和端口号转换成LVS的虚拟IP地址和端口号,然后再将请求转发给后端的真实服务器。
当后端服务器返回响应时,LVS会将响应的源地址和端口号转换成LVS的虚拟IP地址和端口号,然后再将响应返回给客户端。
这种模式的优点是可用性高、性能高,但缺点是配置较为复杂。
负载均衡软件实现方式

负载均衡软件实现方式之一- URL重定向方式有一种用软件实现负载均衡的方式,是基于"URL重定向"的.先看看什么是URL重定向:"简单的说,如果一个网站有正规的URL和别名URL,对别名URL进行重定向到正规URL,访问同一个网址,或者网站改换成了新的域名则把旧的域名重定向到新的域名,都叫URL重定向"(/service/host_faq.php)"很多网络协议都支持“重定向”功能,例如在HTTP协议中支持Location指令,接收到这个指令的浏览器将自动重定向到Location指明的另一个URL上。
"(/art/200604/25388.htm)这种方式,对于简单的网站,如果网站是自己开发的,也在一定程度上可行.但是它存在着较多的问题:1、“例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送Location指令,Location指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。
”2、在哪里放LOCATION,也是一个问题。
很有可能用户会访问系统的很多个不同URL,这个时候做起来会非常麻烦。
并且,对URL的访问,有的时候是直接过来的,可以被重定向,有的时候是带着SESSION之类的,重定向就可能会出问题。
并且,这种做法,将负载均衡这个系统级的问题放到了应用层,结果可能是麻烦多多。
3、这种方式一般只适用于HTTP方式,但是实际上有太多情况不仅仅是HTTP方式了,特别是用户如果在应用里面插一点流媒体之类的。
4、重定向的方式,效率远低于IP隧道。
5、这种方式,有的时候会伴以对服务器状态的检测,但往往也是在应用层面实现,从而实时性大打折扣。
实际上,这种方式是一种“对付”的解决方法,并不能真正用于企业级的负载均衡应用(这里企业级是指稍微复杂一点的应用系统)可以看一下专业的负载均衡软件是如何来实现的:/pcl/pcl_sis_theory.htm对比一下可以发现,专业的负载均衡软件要更适用于正规应用,而重定向方式则比较适用于一些简单的网站应用。
lvs dr模式原理

lvs dr模式原理LVS DR模式原理。
LVS(Linux Virtual Server)是一个开源的负载均衡软件,可以用来构建高可用、高性能的服务器集群。
LVS支持多种负载均衡调度算法,其中DR(Direct Routing)模式是其中一种常用的工作模式。
在LVS DR模式中,负载均衡器和后端真实服务器都在同一子网内,负载均衡器直接将客户端请求转发给后端真实服务器,而不修改IP数据包的目的地址。
这种模式下,后端真实服务器直接响应客户端请求,不需要经过负载均衡器的处理,因此可以提高系统的性能和吞吐量。
LVS DR模式的原理如下:1. 客户端发送请求。
客户端向负载均衡器发送请求,请求的目标是负载均衡器的虚拟IP地址。
2. 负载均衡器接收请求。
负载均衡器接收到客户端的请求后,根据预先设定的调度算法,选择一台后端真实服务器来处理该请求。
3. 负载均衡器修改目的MAC地址。
负载均衡器将请求数据包的目的MAC地址修改为被选中的后端真实服务器的MAC地址,然后将数据包发送到局域网中。
4. 后端真实服务器接收请求。
后端真实服务器接收到经过负载均衡器转发的请求数据包。
5. 后端真实服务器响应客户端。
后端真实服务器直接向客户端发送响应数据包,响应数据包的源IP地址是后端真实服务器的IP地址,而不是负载均衡器的虚拟IP地址。
通过以上原理的步骤,LVS DR模式实现了客户端请求的负载均衡和后端真实服务器的直接响应,整个过程中负载均衡器只是起到了转发请求的作用,而后端真实服务器直接与客户端进行通信,从而提高了系统的性能和吞吐量。
需要注意的是,在LVS DR模式下,负载均衡器和后端真实服务器必须在同一子网内,并且要求后端真实服务器能够接收到经过负载均衡器转发的请求数据包。
此外,负载均衡器需要对请求数据包进行目的MAC地址的修改,因此需要在内核中开启IP包转发功能。
总的来说,LVS DR模式是一种高性能、高可用的负载均衡模式,通过直接路由的方式实现了客户端请求的负载均衡和后端真实服务器的直接响应,适用于对性能和吞吐量要求较高的场景。
ftp负载均衡方案

FTP负载均衡方案1. 引言负载均衡是在计算机网络中常用的一种技术,它能够将请求分散到多台服务器上,使得每台服务器的负载均衡,并提高系统的性能和可用性。
本文将介绍一种基于FTP协议的负载均衡方案,以满足高并发的文件传输需求。
2. 负载均衡方案负载均衡方案主要包括以下几个方面:2.1. 硬件负载均衡器硬件负载均衡器是负载均衡方案中的核心组件。
它通常由一台或多台高性能的服务器构成,具有智能路由和负载均衡算法。
在本方案中,我们选择一台商用的硬件负载均衡器,它可以轻松地实现对FTP请求的负载均衡,同时具备较高的性能和可靠性。
2.2. 负载均衡策略在文件传输过程中,我们可以使用不同的负载均衡策略。
常用的策略包括轮询、加权轮询和最少连接数等。
在本方案中,我们选择使用加权轮询策略。
每个FTP服务器都根据其处理能力被分配一个权重,负载均衡器根据权重决定将请求转发到哪个服务器上,以确保各服务器的负载相对均衡。
2.3. 服务器群组为了实现负载均衡,我们需要将多台FTP服务器组成一个服务器群组。
每个服务器都需要具备相同的文件系统和配置,以确保文件传输的一致性。
此外,还需要进行服务器之间的心跳检测和状态同步,以便在某个服务器出现故障时,负载均衡器可以自动将请求转发到其他正常工作的服务器上。
2.4. 安全性保障在负载均衡方案中,安全性也是一个重要的考虑因素。
我们可以通过以下手段来保障系统的安全性:•使用SSL/TLS协议进行加密传输,确保数据在传输过程中不被窃取或篡改。
•配置访问控制列表(ACL),限制FTP服务器的访问权限,只允许经过认证的用户进行文件传输。
•定期进行安全审计和系统漏洞扫描,及时发现并修复系统中的安全风险。
3. 实施步骤3.1. 部署FTP服务器首先,需要在每台服务器上部署FTP服务器软件,我们推荐使用ProFTPd或vsftpd等常见的FTP服务器软件。
确保每台服务器的文件系统和配置都相同,以便在负载均衡过程中保持一致性。
基于LVS的负载均衡技术在VOD系统中的实现

务器并不能很好地解决这一 问题 ,而利用集群技术 Lnx iu程序 员发起 的一个集 群研 究项 目,旨在 实现一
构建 一个 高 可用 的 可伸缩 的服务 器组 ,可 以用 较好 个 高 可用 、高性 能 、可伸 缩 的集 群 系 统 。L S V 的结 的性 价 比极 大 的改 善 服务 器 端 性 能川。本 文 正是 采 构 如 图 1 所示 ,它 由前 端 的负 载均 衡器 ( B)和后 L 用Lnx 的 L S iu下 V 实现 了基 于集 群 的视 频 点播 系 统 , 取得 了 良好 的效 果 。 端 的真 实服 务 器 ( S)构 成 。L S 集群 中的各 个 R V将
图1 V 逻 辑 框 图 S L
Fi 1L gi a r m fLVS g. o cDi g a o
11 V . L S的技术 结构 Ln x 的L S( iu iu l evr i 下 u V Ln xV r a S re )是 由 中国 t
从而使服务器成为整个系统 的瓶颈 。简单的升级服
一
问题 。
基 于I隧道 的方式 利 用报 文单 项 重写 策 略 ,在 P
基 于直 接路 由的虚拟 服 务器 实现 方式 。下 面 简述 三 负 载均 衡 服务 器收 到用 户请 求 包后 ,利用 I隧道 协 P 种 方式 的工 作 原理 及本 系统 选择 直接 路 南方 式 的理 议 封装 该包 ,将 封 装后 的包 转发 给后 端某 台真实 服
5 8
深圳信息职业技 术学 院学报
第6 卷
包转发策略和负载均衡调度算法决定口 I 。 1 V 的负载均衡技术及本 系统的选择 . LS 2
2)基 于I隧道 的虚 拟服 务器 P 基于N T A 的虚 拟服 务器 由于进 出报文 均要 经 过
使用LVS实现负载均衡原理及安装配置详解

如上图。FULLNAT模式对入报文做了DNAT+SNAT,即将报文的目的地址改为RS的地址,源地址改为LVS设备地址;RS上不需要配置路由策略,出报文到了LVS设备上后做 SNAT+DNAT,即将报文的源地址改为LVS设备上的地址,目的地址改为真实的用户地址。
LVS FULLNAT类型特性
ipvsadm:用户空间的命令行工具,规则管理器,用于管理集群服务及RealServer ipvs:工作于内核空间的netfilter的INPUT钩子之上的框架
LVS集群类型中的术语
Director:负载均衡器,也称VS(Virtual Server) RS:真实服务器(RealServer) CIP:客户端IP(Client IP) VIP: Client所请求的,提供虚拟服务的IP,可以用Keepalive做高可用 DIP:在Director实现与RS通信的IP RIP:RealServer IP
1.VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络,因此,RIP的网关一般不会指向DIP 2.RS收到的请求报文源地址是DIP,因此只需响应给DIP, Dirctor收到RS的回复报文后将其发往Client 3.请求和响应报文都经由Dirctor 4.支持端口映射
三、LVS调度方法(Scheduler)
2.2 LVS/DR(Direct Routing直接路由) 通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变, 请求报文经过Dirctor但响应报文不再经过Dirctor
二、LVS集群的类型
LVS转发模式有四种: lvs-nat: 修改请求报文的目标IP lvs-dr: 操纵封闭新的MAC地址 lvs-tun: 在原请求IP报文之外新加一个IP首部 lvs-fullnat: 修改请求报文的源和目标IP
LINUX集群LVS负载均衡配置

作者:潜小生 open.source.niche@LINUX 集群LVS 负载均衡配置基础基础原理篇原理篇原理篇::LVS 是Linux Virtual Server 的缩写,意思是Linux 虚拟服务器。
负载均衡一般是指一群计算机的集合,通过一个虚拟ip 去根据某种算法,去不停分配到这集合的计算机当中,假如有 主机A 主机B 主机C 主机A 作为一个负载均衡机,主机B 和主机C 都是web 应用服务器,主机A 是负载均衡机,主机A 会虚拟一个IP 出来作为这个负载均衡的IP ,假定主机A 的IP 192.168.1.1 主机B 的IP 是192.168.10.2 主机C 的IP 192。
168.10.3 这个负载均衡虚拟IP 的192.168.1.10 就是访问这web 服务器的IP 地址 当外部来访问web 站点的时候,主机A(负载均衡机)会把这个虚拟IP 通过作为NAT 地址转换,分发主机A 和主机B ,采用一种算法,通常一般采用轮询的方式,当外部网络来访问时候,主机A(负载均衡机)首先任意分开给主机A ,有主机A 把页面访问给来至外部网络的访问,当有下一个来外部网络的访问,主机A(负载均衡机)在分发给主机B,按照这样的机制,一次分发给主机A,一次分发给主机B 。
LVS有三种负载均衡的模式,分别是VS/NAT(nat模式)VS/DR(路由模式) VS/TUN(隧道模式)介绍模式介绍VS/NAT模式这种模式当来访问这个网络的时候,负载均衡机会会通过NAT的转换分别分发给应用服务器A或应用服务器B。
应用服务器返回给来至外部的访问,要在次通过负载机访问给来至外部的访问。
这种模式通常是应用服务器是IP是私有IP地址,需要通过NAT地址来转换成公网IP地址。
返回给外部网络的不在通过这个负载均衡机出去,而且自己通过路由返回给外部网络,自己去查路由,去返回。
vs/tun模式介绍隧道模式,负载均衡机和集群集合的服务器和负载均衡虚拟出来IP不属于同一个网段,分别分布在不同网段,这时候我需要隧道模式,好比这个负载均衡机和这个集群集合的服务器建议一条用来专门用来负载均衡隧道,隧道模式首先外部网络访问时候,经负载均衡机来分发到应用服务器,应用服务器也是和路由模式一样的方式,自己路由出去返回结果给来至外部的访问,也不经在过负载均衡机出返回给来至外部网络的访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
# iptables -t mangle -A PREROUTING -p tcp -d 192.168.56.200 --dport 21 -j MARK --set-mark 21
# iptables -t mangle -A PREROUTING -p tcp -d 192.168.56.200 --dport 10000:20000 -j MARK --set-mark 21
address = 192.168.56.200 eth0:2
vip_nmask = 255.255.255.0
fwmark = 21 <---- 这个要和后面配置的 iptables 规则搭配使用
port = 21
persistent = 10 <---- 这个非常重要,后面讲解
用 LVS (DR) 实现负载均衡FTP
Date: Dec 29th, 2011
Author: Jaylin Zhou
实验环境:
四台 RHEL5u7 服务器,其中:
主 LVS 服务器一台(192.168.56.101);
从 LVS 服务器一台(192.168.56.102);
realserver 服务器两台(192.168.56.103 和 192.168.56.104)。
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
scheduler = wrr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server FTP_realserver1 {
address = 192.168.56.103
timeout = 6
reentry = 15
quiesce_server = 0
server Apache_realserver1 {
address = 192.168.56.103
active = 1
weight = 1
【配置主 LVS 服务器】
1. 安装 piranha 包。
2. 通过 piranha-gui 工具图形配置 Apache 和 FTP 两个服务。
Apache 监听 80/tcp 端口;
FTP 监听 21/tcp 端口。
3. 手动修改主配置文件中的几个地方:
# cat /etc/sysconfig/ha/lvs.cf
active = 1
weight = 1
}
server FTP_realserver2 {
address = 192.168.56.104
active = 1
weight = 1
network = direct
debug_level = NONE
monitor_links = 0
syncdaemon = 0
virtual Apache {
active = 1
address = 192.168.56.100 eth0:1
vip_nmask = 255.255.255.0
# iptables -t mangle -A PREROUTING -p tcp -d 192.168.56.200 --dport 20 -j MARK --set-mark 21
就是说,从客户端发给 192.168.56.200(浮动 IP)的 22/tcp 的包,打上 21 这个 mark,交给 LVS 处理。
被动模式下,是 FTP 服务器告诉客户端一个随机高端口,让客户端用自己的随机高端口来连接 FTP 服务器的随机高端口。我们首先要做的是把 FTP 服务器的被动连接端口范围固定,就是上面配置的 pasv_min_port 和 pasv_max_port。然后需要让 LVS 分发从客户端发给浮动 IP 的 pasv_min_port/tcp ~ pasv_max_port/tcp 的包,因此需要设置下面的 iptables 的规则:
现在理论上应该主动连接和被动连接都可以了,但是没有想象中的那么顺利。还有一个很关键的原因,我们通常配置的 LVS 是通过请求来分发给不同的 realserver 的。但是 FTP 这样的复杂协议,每一次连接都可能会被分发给不同的 realserver,导致数据连接意外中断(比如,控制连接和第一个 realserver 建立,但是数据连接却发给了第二个 realserver,导致数据连接失败)。所以还有一个很关键的参数要加进来——persistent。persistent 会让同一个客户端发来的请求在这一时间段内总能转发到一台 realserver 上。
serial_no = 77
primary = 192.168.56.101
service = lvs
backup_active = 1
backup = 192.
heartbeat_port = 539
keepalive = 6
deadtime = 18
【测试及修改】
Apache 没问题,负载均衡很顺利。但是 FTP 只可以进行数据连接。这是为什么呢?
我们需要分两部分考虑 FTP 的问题:主动模式和被动模式。
之所以数据连接可以,是因为数据连接只使用 21/tcp 端口,而 LVS 服务器已经配置分发 21/tcp 的请求。
主动模式下,是 FTP 服务器用自己的 TCP 的 20 端口去连接客户端的某一个随机高端口。LVS 服务器是用来分发客户端发送给服务器的请求的,所以当客户端收到 FTP 服务器(浮动 IP)发来的包之后,必定要回复一个包给服务器(浮动 IP),这个回包的目的端口是 TCP 的 20 端口,这时候 LVS 并不会分发 20/tcp 的包,连接断开。解决这个问题的方法是通过 LVS 的 fwmark。fwmask(firewall mark) 是配合防火墙标记一起使用,用来把一个服务使用的多个端口的请求定向到一台机器上。所以我们需要在 LVS 的配置文件中添加一个 fwmark=21,这里的 21 是随便设置的,但是必须要和下面的 iptables 规则的 mark 一致。我们需要在两台 LVS 服务器上配置如下的 iptables 规则:
}
}
4. 启动 pulse 服务。
【配置从 LVS 服务器】
1. 安装 piranha 包。
2. 从主 LVS 服务器上复制 /etc/sysconfig/ha/lvs.conf 文件。
3. 启动 pulse 服务。
【两台 realserver 的配置】
1. 安装 httpd 和 vsftpd 两个包。
}
server Apache_realserver2 {
address = 192.168.56.104
active = 1
weight = 1
}
}
virtual FTP {
active = 1
send = "quit" <---- 这个是根据 FTP 协议来的
expect = "220" <---- 这个也是根据 FTP 协议来的
use_regex = 0
load_monitor = none
2. httpd 不需要配置,但是 vsftpd 需要配置:
pasv_min_port=10000
pasv_max_port=20000
3. 启动两个服务。
4. 配置 arp:
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2