目录
前言
在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,使得对高可用技术的应用需求大量上升,以便提供持续的、不间断的计算机系统或网络服务。
一、LVS-DR
1、LVS-DR工作特点
负载均衡调度器和后端真实服务器再同一区域网内。
负载均衡调度器最为群集的访问入口,但不作为网关使用,所有的回复报文不经过负载均衡调度器
Real Server的网关不允许指向Director Server IP,即Real Server发送的数据包不允许经过Director Server。
后端真实服务器上的lo接口配置VIP的IP地址。
2、LVS-DR存在ARP问题以及解决方法
在LVS-DR负载均衡集中,在局域网中具有相同的IP地址会造成各服务器ARP通信的紊乱。因为当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同网络上,所以它们都会接收到ARP广播。
解决方法:对节点服务器进行处理,使其不响应针对VIP的ARP请求。 使用虚接口 lo:0 承载VIP地址设置内核参数 arp_ignore=1:系统只响应目的IP为本地 IP 的ARP请求。
Real Server返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址如:ens33,路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址,路由器根据ARP表项,会将新来的请求报文转发给Realserver,导致Director的VIP失效。
解决方法:对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。
二、LVS-DR部署
1、实验环境
为了进一步提高公司网站的负载能力,公司决定扩展现有的网站平台,基于LVS构筑负载均衡群集。考虑到群集的访问效率,管理员准备采用LVS群集的DR模式,共享存储设备存放在内部专有网络中
LVS1:192.168.100.100
LVS2:192.168.100.110
Web1:192.168.100.200
Web2:192.168.100.222
VIP=192.168.100.10
Win 10 :192.168.100.50
2、实验目的
- win10客户机通过访问lvs调度器漂移IP地址可以成功访问web节点服务器内容
3、实验过程
3.1 调度器配置
- 两台LVS服务器都安装工具包
[root@lvs1 ~]# yum install keepalived ipvsadm -y '//keepalived:双机热备要用到的,ipvsadm:调度管理要用'
[root@lvs2 ~]# yum install keepalived ipvsadm -y
- 两台LVS服务器都开启路由转发,关闭重定向
[root@lvs1 ~]# vim /etc/sysctl.conf
'//尾行插入下段配置'
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@lvs1 ~]# sysctl -p '//重载配置,使之生效'
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
- 两台LVS服务器都创建脚本便于service管理
[root@lvs1 network-scripts]# vim /etc/init.d/dr.sh
'//编辑以下脚本内容'
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10 ##虚拟ip
RIP1=192.168.100.200 ##真实web服务器ip
RIP2=192.168.100.222
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm ##保存配置
systemctl start ipvsadm ##启动服务
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
##设置ens33:0地址,广播地址,子网掩码,并开启
/sbin/route add -host $VIP dev ens33:0 ##添加路由网段信息
/sbin/ipvsadm -A -t $VIP:80 -s rr ##指定虚拟服务访问入口,指定轮询算法
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g ##指定真实服务器,dr模式
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting --------------------[ok]"
;;
stop)
/sbin/ipvsadm -C ##清空缓存
systemctl stop ipvsadm ##关闭服务
ifconfig ens33:0 down ##关闭接口
route del $VIP ##删除路由信息
echo "ipvsamd stoped----------------------[ok]"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then ##判断文件存在与否决定状态
echo "ipvsadm stoped---------------"
exit 1
else
echo "ipvsamd Runing ---------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
[root@lvs1 network-scripts]# chmod +x /etc/init.d/dr.sh
两台LVS服务器都修改网卡为仅主机模式