LVS原理详解及部署之三:手动部署LVS

-------------------LVS专题------------------------linux

LVS原理详解及部署之一:ARP原理准备算法

LVS原理详解及部署之二:LVS原理详解(3种工做方式8种调度算法)数据库

LVS原理详解及部署之三:手动部署LVS缓存

LVS原理详解及部署之四:keepalived介绍服务器

LVS原理详解及部署之五:LVS+keepalived实现负载均衡&高可用网络

-------------------------------------------------架构

以上两篇LVS文章已经介绍了LVS的理论知识,本篇博文就介绍如何手动的配置LVS,目录:并发

1、环境需求&安装LVS软件负载均衡

2、手动配置LVS负载均衡器tcp

3、RS节点服务器手动配置

4、测试LVS是否生效

5、部署成功后的另外一些问题

 

1、环境需求&安装LVS软件

环境准备:三台虚拟机

1)此环境是针对内部服务的LVS架构,如数据库,缓存,共享存储等业务。

虚拟机角色 IP地址 备注
LVS负载均衡器 192.168.41.181 VIP地址:192.168.40.17
http服务器RS1 192.168.41.31  
http服务器RS2 192.168.41.33  

安装LVS软件

1)在安装LVS软件以前,先肯定两条HTTPserver是可以正常访问的。

2)下载软件

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

这里咱们使用的2.4版本,而且注意内核是2.6版本的,若是你的版本是6.X版本的话,那么可使用2.6版本

3)编译安装

须要建立一个软链接:ln -s /usr/src/kernels/2.6.18-238.el5-i686 /usr/src/linux

此处红色许根据本身的系统来进行定义,可使用tab键来补齐。

tar -zxf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

make

make install

lsmod |grep ip_vs

ipvsadm --》由于此时系统尚未把ipvs模块加载进系统,须要咱们执行ipvsadm命令才会加载进去

或者modprobe ip_vs。

[root@localhost ipvsadm-1.24]# lsmod |grep ip_vs

ip_vs_rr                6081  1

ip_vs                  78081  3 ip_vs_rr

 

2、手动配置LVS负载均衡器

正常工做中是不会手动配置的,也不会使用脚本配置的。最终咱们是经过配置文件生效的,结合keepalived来进行部署的。

1)负载均衡器上配置VIP地址

ifconfig eth0:1 192.168.40.17 netmask 255.255.254.0

route add -host 192.168.40.17  dev eth0

2)ipvsadm添加LVS服务

参数 参数说明
-A

-A --add-service 添加一个带选项的虚拟服务。

Add  a virtual  service. A serviceaddress is uniquely defined by a triplet: IP address, portnumber,  and  protocol. Alternatively a virtualservice may be defined by a firewall-mark.

-t 指定虚拟服务器的IP地址和端口
-s -s,--scheduler scheduling-method 调度算法
-p 会话保持按秒计算
-a

-a在对应的VIP下添加RS节点

-g 指定此LVS的工做模式为-g   -g为DR模式
-l

指定LVS的工做模式为-l  -l为tunnel模式

-m 指定LVS的工做模式为NAT模式
-w 指定RS节点的权重
-D

删除虚拟服务

格式:ipvsadm-D -t|u|f service-address

Delete a virtual service, alongwith any associated real servers.

-C

-C, --clear  Clear the virtual server table清空lvs原有的配置。

-set 设置tcp  tcpfn udp  的链接超时时间(通常来讲高并发的时候小一点点。

ipvsadm  -C                                                #请用LVS原有的配置

ipvsadm -A -t 192.168.40.17:80 -s rr -p 20                 #添加虚拟服务指定VIP

ipvsadm -a -t 192.168.40.17:80 -r 192.168.41.31:80 -g -w 10#针对虚拟服务添加RS节点

ipvsadm -a -t 192.168.40.17:80 -r 192.168.41.33:80 -g -w 10

ipvsadm -L -n                                              #查看VIP和RS是否已经配置成功。

[root@localhost ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.40.17:80 rr persistent 20

 -> 192.168.41.33:80             Route   10     0          0        

 -> 192.168.41.31:80             Route   10     0          0

LB上删除虚拟服务

ipvsadm -D -t 192.168.40.17:80  

 

3、RS节点服务器手动配置

1)添加lo端口的VIP&路由

ifconfig lo 192.168.40.17 netmask 255.255.255.255 (因为RS的VIP不是用来通信,而且这里必定要设置24位掩码)

route add -host 192.168.40.17  dev lo

2)ARP抑制

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_announce

echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

 

4、测试LVS是否生效

在LB上面输入命令ipvsadm -L -n就可以查看LB上面的会话分配。在前面加上watch能够动态的查看ipvsadm的会话分配。watch ipvsadm -L -n.

1)测试RS节点是否正常访问

2)测试从LB可否正常访问RS

3)测试客户端可否正常访问VIP

在测试的时候能够先把防火墙关闭掉,通常按照这样配置就可以实现LVS的负载均衡了。

   至此咱们的LVS DR模式负载均衡已经配置完成了。至于不一样的调度算法啊-s  不一样的工做模式-g(DR) -l(TUNNEL) -m(NAT)服务器端基本上没有什么差异。只是在客户端上有必定的差异。

NAT模式:

客户端一样须要配置VIP,进行ARP抑制,而且要服务器端开启内核转发功能,配置LB的DIP(内网IP地址)做为默认网关。

开启内核转发功能:vi /etc/sysctl  net.ipv4.ip_forword = 1

route add default gw  192.168.41.181

Tunnel模式:

客户端须要先开启Tunnel协议支持。

/sbin/modprobe ipip

/sbin/route add –host 192.168.40.17 devtun1

echo”1”>/proc/sys/net/ipv4/conf/tun1/arp-ignore

echo”2”>/proc/sys/net/ipv4/conf/tun1/arp_announce

echo”0” >/proc/sys/net/ipv4/conf/tun1/rp_filter

echo”1” >/proc/sys/net/ipv4/conf/tun1/forwarding

echo”1” >/proc/sys/net/ipv4/conf/all/arp_ignore

echo”2” >/proc/sys/net/ipv4/conf/all/ arp_announce

 

5、部署成功后的另外一些问题

1)当咱们的RS节点出现问题,LB如何知道。若是不知道是会把会话链接接续转发到RS上面。

2)若是LB出现故障,那么整个网络就出现故障。

针对上面的1问题,咱们就须要一种RS节点健康检查机制。定时的去检测RS是否正常,若是出现不正常那么就把这个RS从VIP服务里面删除掉。若是恢复正常了,就再把RS添加进来。针对2问题,咱们能够另外再架设一台LB服务器,做为备LB服务器。那么当主LB出现故障,备LB服务器就会启动接管主LB服务器的工做,接管它的资源(IP地址,在网络中的角色身份等)

   而上面提到的这些咱们就须要结合keepalived来完成。因此后续咱们开始讲keepalived+lvs结合适用。完成RS节点健康检查和LVS的高可用性功能。

相关文章
相关标签/搜索