LVS负载均衡——DR+Keepalived部署实战

目录

前言

一、LVS-DR

1、LVS-DR工作特点

2、LVS-DR存在ARP问题以及解决方法

二、LVS-DR部署

1、实验环境

2、实验目的

3、实验过程

3.1  调度器配置

3.2  配置两台节点IP地址绑定VIP

3.3  节点服务器配置抑制ARP响应

3.4  两台节点服务器配置测试网址

3.5  实验验证

三、keepalived实现原理

1、keepalived工具概述

2、原理解析

四、如何部署Keepalievd

1、Keepalievd部署概述

2、Keepalievd安装与启动

3、配置Keepalievd master服务器

4、配置Keepalived slave服务器

5、Keepalived双机热备效果测试

五、双机热备keepalived配置

1、配置

2、实验验证 

总结


 

前言

在这个高度信息化的 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服务器都修改网卡为仅主机模式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值