LVS-DR模式集群搭建

1.  LVS-DR模式的特点:

        1>.  所有集群节点RS必须和Director在相同的物理网段(即同一个局域网中);
        2>.  所有客户端入站(而不是出站)请求由Director首先接收,并转发给集群节点RS;
        3>.  集群节点RS通常来说最好带外部IP,而不使用Director及某固定机器作为默认网关,以便将数据包直接回复给客户端计算机,且不会产生回包的瓶颈;
        4>.  所有集群节点 RS 上必须在 lo 网卡上绑定 VIP 地址,以便验证通过目的 IP RS 的数据包;
        5>.  由于所有集群节点 RS 上必须在 lo 网卡上绑定 VIP 地址,因此,带来 arp 问题,即集群节点 RS 默认会相应发往Director VIP 的数据包。因此要对所有集群节点 RS ARP 抑制处理,把响应 VIP 的请求交给 LVS Director;
        6>.  很多操作系统都可以用在集群内部的 RS 真实服务器上只要该操作系统能够实现 ARP 隐藏,如: Windows, linux unix
        7>.  LVS/DR 模式不需要开启调度器转发功能,这点和 LVS/NAT 模式是不同的。
        8>.  LVS/DR Director(服务器数量100台)可以比LVS-NAT Director(服务器数量10-20台)承受更多的并发请求和转发更多的服务器数量。
2.  LVS-DR模式的配置:
ipvsadm命令常用选项:
        
        -A: 添加虚拟服务器
        -t: 设置群集地址(VIP,Virtual IP)
        -s: 指定负载调度算法
        -a: 添加真实服务器
        -d: 删除真实服务器
        -r: 指定真实服务器(Real Server)的地址
        -m: 使用NAT模式;-g、-i分别对应DR、TUN模式
        -w: 为节点服务器设置权重,默认为1
        -p: 配置会话保持的时间
        1>.  环境规划:
主机名 主机地址 角色
node1 192.168.188.11 LVS服务器
node2 192.168.188.12 RS1
node3 192.168.188.13 RS2
node4 192.168.188.14 测试主机
        2>.  LVS配置:
1. 安装ipvsadm:
[root@node1 ~]# yum install ipvsadm -y

2. 添加虚拟IP(vip):
[root@node1 ~]# nmcli con modify ens33 +ipv4.addresses 192.168.188.100/24

3. 重启网卡ens33:
[root@node1 ~]# nmcli con up ens33

4. ipvsadm命令操作:
[root@node1 ~]# ipvsadm -C  ##清空ipvsadm配置

[root@node1 ~]# ipvsadm -At 192.168.188.100:80 -s rr [-p 20] ##配置LVS虚拟IP(VIP)
-p表示设置会话保持时间为20秒

[root@node1 ~]# ipvsadm -at 192.168.188.100:80 -r 192.168.188.12:80 -g [-w 2]
##配置后端真实服务器

[root@node1 ~]# ipvsadm -at 192.168.188.100:80 -r 192.168.188.13:80 -g
##配置后端真实服务器

[root@node1 ~]# ipvsadm -Ln  ##查看ipvsadm配置

[root@node1 ~]# ipvsadm -D -t 192.168.188.100:80 -s wrr  ##删除LVS虚拟IP配置

[root@node1 ~]# ipvsadm -d -t 192.168.188.100:80 -r 192.168.188.12:80
[root@node1 ~]# ipvsadm -d -t 192.168.188.100:80 -r 192.168.188.13:80
##删除后端真实服务器配置

        3>.  真实服务器配置:node2和node3两台真实服务器都要配置

1. 配置web页面:
[root@node2 ~]# yum install httpd
[root@node2 ~]# echo "`hostname -I`" > /var/www/html/index.html
[root@node3 ~]# echo "`hostname -I`" > /var/www/html/index.html
[root@node2 ~]# systemctl start httpd

2. 手工在RS端绑定VIP:将vip绑定在lo的子接口上:
[root@node2 ~]# ifconfig lo:100 192.168.188.100 netmask 255.255.255.255 up

3. 添加本机访问VIP的路由
[root@node2 ~]# route add -host 192.168.188.100 dev lo:100

4. 配置arp抑制:
[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 

[root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 

[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 

[root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

        4>.  测试LVS负载均衡是否成功:

[root@node4 ~]# for ((i=0;i<10;i++)); 
do 
curl 192.168.188.100; 
done;

192.168.188.13 
192.168.188.12 
192.168.188.13 
192.168.188.12 
192.168.188.13 
192.168.188.12 
192.168.188.13 
192.168.188.12 
192.168.188.13 
192.168.188.12

        5>.  注意:以上配置都只是命令行的配置,因此都是临时配置,重启一下网络,RS上的vip,路由都会消失,因此要使其长期有效可以使用脚本来配置LVS-DR模式。

脚本启动的方式:将脚本写在/etc/init.d/目录下
[root@node1 ~]# cd /etc/init.d/

[root@node1 ~]# vim lvs_dr

[root@node1 ~]# chmod +x lvs_dr.sh  ##添加执行权限

[root@node1 ~]# chkconfig --add lvs_dr  ##将脚本添加为系统服务

[root@node1 ~]# chkconfig lvs_dr on  ##设置脚本的开机自启

[root@node1 ~]# systemctl daemon-reload 

[root@node1 ~]# systemctl start lvs_dr  ##立即启动脚本

[root@node1 ~]# chkconfig --del lvs_dr  ##删除脚本的系统服务

你可能感兴趣的:(web服务器集群,lvs,服务器,centos,linux,运维)