负载均衡的开源软件:LVS配置
先了解常识,负载均衡集群典型的开源软件:LVS,haproxy,nginx.高可用性集群的软件:keepalived,heartbeat.配置准备:1.三台服务器或者虚拟机(我用的centos7)Server1:用作LVS负载均衡器,即(LB)IP:192..168.202.101Server2:作为RSIP:192.168.202.10
·
先了解常识,负载均衡集群典型的开源软件:LVS,haproxy,nginx.
高可用性集群的软件:keepalived,heartbeat.
配置准备:
1.三台服务器或者虚拟机(我用的centos7)
Server1:用作LVS负载均衡器,即(LB)
IP:192..168.202.101
Server2:作为RS
IP:192.168.202.103
Server3:作为RS
IP:192.168.202.104
2.下载LVS(软件包名字为ipvsadm)
大家可以根据自己的内核版本,从LVS官网下载,或者直接YUM直接安装(我采取的YUM)
内核版本:3.10.0-327.el7.x86_64
软件版本:ipvsadm-1.27-7.el7.x86_64
LB配置:
1.首先,启动ipvsadm。
————————————————————————————————————————————————————————
2.执行lsmod | grep ip_vs ##ip_vs是LVS在内核中的一个模块
出现如下样式则代表启动成功
ip_vs_rr 12600 1
ip_vs 140944 3 ip_vs_rr
nf_conntrack 105745 6 ip_vs,nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
libcrc32c 12644 2 xfs,ip_vs
————————————————————————————————————————————————————————
3.确定启动成功后,根据原理,需要在网卡上添加VIP
ifconfig eno16777736:0 192.168.202.29 up
添加后查看:
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:fe:6e:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.202.101/24 brd 192.168.202.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet 192.168.202.29/24 brd 192.168.202.255 scope global secondary eno16777736:0 ##此IP为添加的虚拟IP
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fefe:6e2e/64 scope link
valid_lft forever preferred_lft forever
————————————————————————————————————————————————————————
4.执行命令添加VIP的网关 ##经本人测试,不添加此处的网关也可以实验成功。
route add -host 192.168.202.29 eno16777736
查看:route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.202.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
192.168.202.29 0.0.0.0 255.255.255.255 UH 0 0 0 eno16777736 ##所添加的网关
————————————————————————————————————————————————————————
5.执行ipvsadm -A -t 192.168.202.29:80 -s rr 将VIP与LVS绑定
ipvsadm -Ln查看:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.202.29:80 rr ##绑定成功
##-A表示添加绑定的VIP,-t指定VIP,-s指定算法。
————————————————————————————————————————————————————————
6.执行
ipvsadm -a -t 192.168.202.29:80 -r 192.168.202.103:80 -g
ipvsadm -a -t 192.168.202.29:80 -r 192.168.202.104:80 -g
添加RS。 ##-a表示添加,-t指定添加的RS所对应的VIP地址,-r表示指定RS的IP,-g表示DR模式,-m表示NAT模式,-i表示TUN模式。具体可以--help查看。
ipvsadm -Ln
添加后检查:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.202.29:80 rr
-> 192.168.202.103:80 Route 1 0 0
-> 192.168.202.104:80 Route 1 0 0
##添加成功
RS配置:
根据原理,RS上需要添加VIP,并且需要抑制ARP,以防止从原本从客户端发送到LB的数据请求,与RS的VIP发生冲突。
1.添加VIP,注意是添加到lo网卡。
ifconfig lo:29 192.168.202.29/32 netmask 255.255.255.255 up ##子网掩码必须是4个255,广播地址的对外不冲突。
—————————————————————————————————————————————————————
2.添加网关 ##不执行这一步也执行成功
route add -host 192.168.202.29 eno16777736
—————————————————————————————————————————————————————
3.抑制ARP,防止VIP冲突。
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
之后,通过网页访问VIP:192.168.202.29即可测试。
DR模式不需要开启内核转发功能,与NAT不同
关于抑制ARP:
点击阅读全文
更多推荐
所有评论(0)