linux keepalived实现DR模式


在上一篇博客中讲到了DR模式的实现,但是会发现以下几两个问题:
1、如果将一台RS的httpd服务器关闭,发现请求的时候,响应如果转发到down掉的RS将会出现响应比较慢的情况,有时候还会显示找不到网页。虽然最终或通过启动RS再次给与响应,但是用户体验非常不好。
2、如果LB服务器down掉,及时RS全部正常运行,用户请求将得不到响应。
所以还需要通过keepalived升级DR模式,
keepalived是集群管理中保证集群高可用的服务软件。Keepalived的作用是检测服务器的状态,如果有一台服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
高可用 High Available

1、安装前准备

1.1恢复DR模式负载均衡器

由于之前keepalived不再需要之前简单DR模式的配置,需要恢复网卡配置。

ifconfig  eth0:3 down
ipvsadm -ln
ipvsadm -C
ipvsadm -ln

在这里插入图片描述

1.2 再准备一台虚拟机

再准备一台虚拟机:192.168.8.63,用做备用服务器

2、安装keepalived

在两台负载均衡服务器上安装keepalived

yum install keepalived -y

在这里插入图片描述

在这里插入图片描述

3、配置/etc/keepalived/keepalived.conf

3.1 先在node0上配置

vim /etc/keepalived/keepalived.conf

具体配置如下

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.8.100/24 dev eth0 label eth0:8
    }
}
virtual_server 192.168.8.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 0
    protocol TCP

    real_server 192.168.8.62 80 {
        weight 1
        HTTP_GET {
            url {
              path /
             status_code 200
                }
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }   
    real_server 192.168.8.65 80 {
        weight 1
        HTTP_GET {
            url {
              path /
             status_code 200
                }
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
    }
}

3.2 配置备用服务器

配置拷贝到 备用服务器上

scp /etc/keepalived/keepalived.conf root@192.168.8.63:/etc/keepalived

在这里插入图片描述

 vim /etc/keepalived/keepalived.conf

只需要调整如下内容即可
在这里插入图片描述

4.启动keepalived

service keepalived start

两台服务器都需要启动
在这里插入图片描述
在这里插入图片描述

5.验证

5.1 正常验证

在node0 主服务器上输入ifconfig
在这里插入图片描述
看到虚拟服务器ip已经配置上去。
再通过ipvsadm时可以看到
VIP和真实服务器IP地址也配置成功。
在这里插入图片描述

在备用服务器上通过上述命令没有看到任何结果,没有启动eth0:8的网卡 ,但是会监听真实服务器情况
在这里插入图片描述
在这里插入图片描述

通过浏览器不断刷新也可以实现轮询方式访问真是服务器
在这里插入图片描述

在这里插入图片描述

ipvsadm -lnc

可以查看访问轨迹

在这里插入图片描述

5.2 模拟其中一台服务器宕掉

将62服务器上的httpd停掉

 service   httpd stop

在这里插入图片描述
再回到主负载均衡器上,查看服务器群情况,由于62已经被停掉,不再有效,keepalive监测到后,将其
从服务器群众剔除掉,只剩下65

在这里插入图片描述
并且备用负载均衡服务器也会实时监听,真实服务器情况,即备用负载均衡服务器上62也会被剔除
在这里插入图片描述

页面上正常访问的地址为65,也不会出现卡顿情况。
在这里插入图片描述

5.3 模拟主负载均衡服务器宕机

将主负载均衡服务器keepalived停掉。

service keepalived stop

或者 需要重新进VM中 eth0 up 才能通过ssh连接

ifconfig eth0 down

在这里插入图片描述
发现页面也能正常访问
在这里插入图片描述

再回到备用负载均衡器上查看网卡以及服务器群情况

ifconfig
ipvsadm -ln

在这里插入图片描述
在这里插入图片描述

可以看到备用负载均衡器已经正常启用eth0:8

6、问题

在主负载均服务器上查看keepalived进程

ps -ef|grep keepalived

在这里插入图片描述

父进程1556接收并转发请求,子进程1558和1559是分别长链接,用于监听RS的状态。
当我们把这三个进程杀掉时,按正常逻辑此时主负责均衡服务器也不能正常提供服务器,不能监听RS的情况。

ifconfig

在这里插入图片描述
看到虽然把keepalived相关进程杀掉,但是负载均衡服务器依然正常提供服务,没有让给备用负载均衡服务器。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的中年程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值