LVS(DR模式)+keepalived(高可用)

此实验是在DR模式下进行的,关于DR模式及DR模式下的健康检查请查看我之前的博文:

DR模式部署:https://blog.csdn.net/y_yang666/article/details/86922742
DR模式下的健康检查:https://blog.csdn.net/y_yang666/article/details/86931176

一.keepalived简介
  • Keepalived是基于vrrp协议的一款高可用软件。Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。
vrrp协议:
  • VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议),VRRP是为了解决静态路由的高可用。VRRP的基本架构
    虚拟路由器由多个路由器组成,每个路由器都有各自的IP和共同的VRID(0-255),其中一个VRRP路由器通过竞选成为MASTER,占有VIP,对外提供路由服务,其他成为BACKUP,MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供路由服务,从而实现高可用。
二.实验环境(RHEL6.5版本):
主机名IP
server1(主调度器):LVS MASTER172.25.4.1
server4(副调度器):LVS BACKUP172.25.4.4
server2(真实服务器):Realserver1172.25.4.2
server3(真实服务器):Realserver2172.25.4.3

Virtual IP:172.25.4.100

三.高可用的部署
1.配置server1

1).配置高级yum源

[root@server1 ha.d]# vim /etc/yum.repos.d/rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.4.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.4.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.4.250/rhel6.5/HighAvailability
enabled=1

在这里插入图片描述
2).下载keepalived安装包并解压

[root@server1 mnt]# ls
keepalived-2.0.6 
[root@server1 mnt]# tar zxf keepalived-2.0.6.tar.gz 
[root@server1 mnt]# ls
keepalived-2.0.6  keepalived-2.0.6.tar.gz

在这里插入图片描述
3).安装keepalived的依赖包 :openssl-devel
在这里插入图片描述
4).进入keepavilved解压目录进行编译

[root@server1 keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[root@server1 keepalived-2.0.6]# make && make install

在这里插入图片描述
在这里插入图片描述
5).赋予keepalived脚本可执行权限

[root@server1 keepalived-2.0.6]# cd /usr/local/keepalived/etc/rc.d/init.d/
[root@server1 init.d]# ls
keepalived
[root@server1 init.d]# chmod +x keepalived

在这里插入图片描述
6).做软连接方便管理keepalived

[root@server1 init.d]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server1 init.d]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@server1 init.d]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

在这里插入图片描述
7).编辑配置文件

[root@server1 init.d]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {      ##发送报警邮件收件地址
   root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc   ##指明报警邮件的发送地址
   smtp_server 127.0.0.1     ##邮件服务器地址
   smtp_connect_timeout 30   ##smtp的超时时间
   router_id LVS_DEVEL    ##物理服务器的主机名
   vrrp_skip_check_adv_addr
#   vrrp_strict    ##此处要注释掉
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER   ##当前节点在此虚拟路由器上的初始状态;主机是MASTER,余下的备机都应该为BACKUP(由优先级决定)
    interface eth0   ##绑定为当前虚拟路由器使用的物理接口;
    virtual_router_id 4   ##当前虚拟路由器的惟一标识,范围是0-255(主,备机一致)
    priority 100    ##当前主机在此虚拟路径器中的优先级(z主机要大于备机);范围1-254;
    advert_int 1    ##通告发送间隔,包含主机优先级、心跳等。
    authentication {
        auth_type PASS    ##认证类型,PASS表示简单字符串认证
        auth_pass 1111   ##认证密码,PASS密码最长为8位

    }
    virtual_ipaddress {   #虚拟路由IP地址,以辅助地址方式设置
        172.25.4.100
    }
}

virtual_server 172.25.4.100 80 {   ##LVS配置段 ,设置LVS的VIP地址和端口
    delay_loop 6    ##服务轮询的时间间隔;检测RS服务器的状态。
    lb_algo rr    ##调度算法(rr:轮询)   
    lb_kind DR   ##集群类型
#    persistence_timeout 50    ##是否启用持久连接,连接保存时长,此处要将其注释掉
    protocol TCP    ##协议,只支持TCP
   real_server 172.25.4.2 80 {     ##配置RS服务器的地址和端口
         TCP_CHECK {     ##TCP方式的健康检查,realserve 的状态检测设置部分,单位是秒
         weight 1     ##权重
            connect_timeout 3    ##连接超时时间
            retry 3   ##重试次数
            delay_before_retry 3   ##重试间隔
       }
    }
        real_server 172.25.4.3 80 {
         TCP_CHECK {
         weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

8).将配置好的keepalived发送给server4(备调度器)

[root@server1 init.d]# cd /usr/local/
[root@server1 local]# ls
bin  etc  games  include  keepalived  lib  lib64  libexec  sbin  share  src
[root@server1 local]# scp -r keepalived root@server4:/usr/local

在这里插入图片描述

2.配置server4:

1).搭建gaojiyum源

[root@server4 keepalived]# vim /etc/yum.repos.d/rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.4.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=ldirectord
baseurl=http://172.25.4.250/rhel6.5/HighAvailability
enabled=1           

在这里插入图片描述
2).同样做软连接

[root@server4 local]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server4 local]#  ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@server4 local]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@server4 local]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

在这里插入图片描述
3).修改keepalived配置文件,将本机改为备用调度器(修改两个地方)

! Configuration File for keepalived

global_defs {
   notification_email {
   root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
#   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP   #将此处改为BACKUP,作为备机
    interface eth0
    virtual_router_id 4
    priority 50     #将优先级改为50,一定要小于主机的优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.4.100
    }
}

virtual_server 172.25.4.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
#    persistence_timeout 50
    protocol TCP
    real_server 172.25.4.2 80 {
         TCP_CHECK {
         weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
       }
    }
        real_server 172.25.4.3 80 {
         TCP_CHECK {
         weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}
测试:

1.开启server1(主机)与server4(备机)的keepalived

[root@server1 local]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]
[root@server4 keepalived]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]

在这里插入图片描述
在这里插入图片描述
此时,会自动分配vip(172.25.4.100)给主机,因为主,备机同时开启时,主机的优先级高
在这里插入图片描述
2.当关掉主机的keepalived服务时,vip地址会自动漂移到备机(server4)上
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高可用下测试健康检查

1.两台realserver都正常时(开启http服务)
在这里插入图片描述
2.当有一台realserver出现故障时(关掉server2的http服务)
在这里插入图片描述
3.当两台realserver都出现故障时(server2与server3同时关掉http服务)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值