LVS负载均衡详解(二)DR模式搭建以及用keepalived实现健康检测以及高可用

1、DR模式的原理

在一台主机上搭建LVS服务器,设置LVS的工作模式是DR模式,LVS仅仅是一个调度器,他会把客户端的请求转发给后备服务器。DR模式直接由后备服务器把数据返回给客户端,不需要逆向发送数据包,此时LVS专注做调度就可,效率很高,DR模式高效的原因是RS服务器会直接响应客户端的请求,发送的请求一直往前发送数据包,不会再返回数据包给调度器。

2、搭建DR模式的LVS步骤

1、实验环境:


      三台虚拟机做服务,一台真机做测试。
   server1 172.25.30.1 调度器
   server2 172.25.30.2 真实服务器RS1
   server3 172.25.30.3 真实服务器RS
   真机 172.25.30.250 客户端
   对四台主机分别关闭火墙,关闭selinux,配置好yum源

步骤:
调度器server1模块
1、安装ipvsadm

[root@server1 ~]# yum install ipvsadm.x86_64 -y

在这里插入图片描述
2、ipvsadm -ln 查看策略,此时应该为空
在这里插入图片描述
3、对调度器进行配置
配置步骤
(1)设置客户端进入lvs调度器的入口地址

[root@server1 ~]# ipvsadm -A -t 172.25.30.100:80 -s rr
-A表示添加新虚拟服务 -t 协议为tcp协议 100指设置vip为100 端口为80    
rr表示调度策略为轮询 -s表示调度算法(10

(2)配置后端服务器的信息

[root@server1 ~]# ipvsadm -a -t 172.25.30.100:80 -r 172.25.30.2:80 -g
[root@server1 ~]# ipvsadm -a -t 172.25.30.100:80 -r 172.25.30.3:80 -g
dr模式需要给dr和sr都配置两个ip一个eth0,一个vip
-a表示在一个虚拟服务其中添加一个真实的服务器,-t 指tcp模式 vip为172.25.30.100 -g表示指定为dr模式,-r表示后端RS

(3)给调度器添加临时vip,让他可以对外提供服务

[root@server1 ~]# ip addr add 172.25.30.100/24 dev eth0

在这里插入图片描述

RS server2模块
真实后端的vip不是对外的,对客户端是隐藏的。
配置步骤:
(1)安装arptables程序
arptables是一段程序,用户管理内核空间的arp规则表,规定arp什么时候响应,什么时候不响应。

[root@server2 ~]# yum install arptables-0.0.4-8.el7.x86_64

(2)查看策略,添加策略

arptables -nL

在这里插入图片描述
(3)

[root@server2 ~]# arptables -A INPUT -d 172.25.30.100 -j DROP
来的ARP,如果目的ip是vip的,丢弃
[root@server2 ~]# arptables -A OUTPUT -s 172.25.30.100 -j mangle --mangle-ip-s 172.25.30.2
如果发出去的ARP包,如果源ip是vip的,改成RS的ip

(4)

arptable-save > /etc/sysconfig/arptables

(5)为rs添加vip

[root@server2 ~]# ip addr add 172.25.30.100/24 dev eth0

在这里插入图片描述
(6)安装并开启httpd服务

[root@server2 ~]# yum install httpd
[root@server2 ~]# systemctl start httpd

在这里插入图片描述

server3模块
配置过程:
(1)安装arptables程序

[root@server3 ~]# yum install arptables-0.0.4-8.el7.x86_64

(2)

[root@server3 ~]# arptables -A INPUT -d 172.25.30.100 -j DROP

(3)

arptables -A OUTPUT -s 172.25.30.100 -j mangle --mangle-ip-s 172.25.30.3

(4)

arptable-save > /etc/sysconfig/arptables

(5)为rs添加vip

[root@server1 ~]# ip addr add 172.25.30.100/24 dev eth0

在这里插入图片描述

(6)安装并开启httpd服务

[root@server3 ~]# yum install httpd
[root@server3 ~]# systemctl start httpd

在这里插入图片描述

结果测试
1、首先可以在server1中查看规则是否编写成功
在这里插入图片描述

2、在真实主机查看,轮询调度可以实现
在这里插入图片描述

3、keepalived实现LVS的健康检测

默认情况下,lvs对后端没有健康检查机制,如果出现了某台RS故障,是不会报错的,也没有提示。为了使得故障的RS能被及时检测到,可以做lvs的健康检测
1、在没有健康检测的情况下关闭一个虚拟机的httpd服务,则在真机的访问会报错

[root@server2 html]# systemctl stop httpd

在这里插入图片描述
2、在调度器上安装keepalived软件,使用该软件可以自动添加虚拟ip以及编写ipvsadm规则,实现健康检测,进入/etc/keepalived目录下,编辑keepalived.conf文件,内容如下

[root@server1 html]# yum install keepalived.x86_64

在这里插入图片描述

    advert_int 1   ##表示主备之间的心跳为1 秒,负责高可用的
   virtual_ipaddress {
        172.25.30.100 
    }                ## 修改vip为172.25.30.100

在这里插入图片描述

virtual_server 172.25.30.100 80 修改虚拟服务为80
delay_loop 3  每隔3秒对后台进行一次健康检查
 lb_algo rr   ##LVS的调度算法为rr(轮询)
lb_kind DR  ##工作模式为DR模式
#persistence_timeout 50  ##持续调度时间为50s,在50s内调度器始终会把服务器调度给一个后端,50s后调度到另一个后端,由于我们需要持续的调度访问,同一个客户端的请求让同一个后端处理。所以要把它注释掉。

在这里插入图片描述

real_server 172.25.30.2 80 ##真实主机为172.25.30.2 80
 weight 1    ##权重为1
 

在这里插入图片描述

在这里插入图片描述
3、删除之前添加的vip否则会造成冲突

[root@server1 keepalived]# ip addr del 172.25.30.100/24 dev eth0

4、将之前添加的策略刷掉
在这里插入图片描述
5、打开keepalived服务
在这里插入图片描述
查看日志可以看到keepalived处于master状态

在这里插入图片描述
此时用ipvsadm -ln 进行检测发现只有server3可以检测到因为server2的httpd被关掉了
在这里插入图片描述
此时就会进行健康检测,因为server2被关掉了所以直接访问server3,不会报错,这样就能保证前端访问都是正常的。
在这里插入图片描述

4、keepalive实现高可用

由于只有一台主机作为调度器,所以当server1宕机则整个lvs系统无法使用,所以可以设置另一台主机作为调度器,当server1宕机,server4作为调度器可以直接使用

1、添加一台主机server4

设置server4 ip为172.25.30.4
将server1中的/etc/keepalived/keepalived.conf 文件复制到server4 的/etc/keepalived/目录下

在这里插入图片描述
在这里插入图片描述
2、编辑server4中的keepalived.conf文件

state BACKUP ##修改server4为backup状态
priority 50   ##更改优先级为50,与server1加以区别,当server1正常时用server1

在这里插入图片描述

3、设置完成后安装并重启keepalived服务
在这里插入图片描述
重启服务
在这里插入图片描述
可以看到server4的keepalived服务为BACKUP状态
在这里插入图片描述
4、将server1中的keepalived服务关掉,此时LVS仍然可以正常使用,正是由于server4中的keepalived服务作为备用调度器在工作
在这里插入图片描述
LVS可以正常服务
在这里插入图片描述
在这里插入图片描述
此时server4的keepalived服务处于MASTER状态
在这里插入图片描述
当server1中的keepalived重启,由于优先级较低所以server4中的keepalived服务又变为BACKUP状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值