keepalived双机热备

本章将实现如何使用keepalived实现双机热备

keepalived双机热备基础知识

keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。

keepalived概述及安装

(1)安装keepalived

[root@master2~]# yum -y install keepalived ipvsadm

(2)控制keepalived服务

[root@master2~]# systemctl enable keepalived
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.

使用keepalived实现双机热备(主、备服务器中都需要安装keepalived)

在这里插入图片描述

1、主服务器的配置

keepalived服务的配置目录位于/etc/keepalived/。其中,keepalived.conf是主配置文件;
[root@master2~]# systemctl stop firewalld
[root@master2~]# cd /etc/keepalived/
[root@master2keepalived]# cp keepalived.conf keepalived.conf.bak         //备份主配文件
[root@master2 ~]# ip addr // 查看虚拟机网卡信息,keepalived.conf中interface ens33                1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2e:61:f3 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.69/24 brd 172.16.0.255 scope global noprefixroute dynamic ens33
       valid_lft 84068sec preferred_lft 84068sec
    inet6 fe80::e300:faca:77a3:d499/64 scope link tentative noprefixroute dadfailed
       valid_lft forever preferred_lft forever
    inet6 fe80::b711:13ec:bbbf:f91/64 scope link tentative noprefixroute dadfailed
       valid_lft forever preferred_lft forever
    inet6 fe80::bf4c:dee3:4394:a61/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:8b:89:80:52 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

[root@master1 keepalived]# vim keepalived.conf
! Configuration File for keepalived

global_defs {
 # keepalived自带的邮件提醒需要开启sendmail 服务,建议用独立的监控或第三方SMTP
   notification_email {
     15358135330@163.com 
   }
   notification_email_from Alexandre.Cassen@firewall.loc
    #vrrp_strict 如果ping不通vip地址,把这个注释掉,建议直接注释掉,否则容易产生ip无法ping通的问题
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL  //路由器(服务器)名称(建议指定不同的名称区分路由)标识本节点的字条串,通常为hostname,这里要唯一,主备不一样
}

vrrp_instance VI_1 {
    state MASTER //是主节点还是备节点,取值:MASTER或者BACKUP
    interface ens33 //承载VIP地址的物理接口
    virtual_router_id 99 //虚拟路由的ID号,两个节点(主备)设置必须一样,可选IP最后一段使用, 相同的VRID为一个组,他将决定多播的MAC地址
    priority 100 //节点优先级,值范围 0-254,MASTER要比BACKUP高。当主节点故障时,备节点选举时,优先级越高,优先成为主节点,官方建议,备节点的优先级的值相差50
    advert_int 1 //组播信息发送间隔,两个节点设置必须一样,默认1s(一般情况下,当主节点故障时,keepalived一秒就可以完成主备的切换)
     ## 设置验证信息,两个节点必须一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 设置虚拟ip池,两个节点设置必须一样
    virtual_ipaddress {
        172.16.0.61 //虚拟ip,可以定义多个,注意:这里的虚拟ip要和机器的ip在同一个网段
    }
}

确认上述配置无误,然后启动keepalived服务。实际状态为MASTER的主服务器将为ens33接口自动添加VIP地址,通过IP命令可以查看(注意:ifconfig命令看不到)。

[root@master1 keepalived]# systemctl start keepalived //启动keepalived服务

[root@master1 keepalived]# ip a show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:9c:95:b7 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.141/24 brd 172.16.0.255 scope global noprefixroute dynamic ens33
       valid_lft 82842sec preferred_lft 82842sec
    inet 172.16.0.61/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::e300:faca:77a3:d499/64 scope link tentative noprefixroute dadfailed
       valid_lft forever preferred_lft forever
    inet6 fe80::b711:13ec:bbbf:f91/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

2、备用服务器的配置

    在同一个keepalived热备组内,所有服务器的keepalived配置文件基本相同,包括虚拟路由器的ID号、认证信息、漂移地址、心跳频率等。不同之处主要在于路由器名称、热备状态、优先级。

路由器名称(router_id):建议为每个参与热备的服务器指定不同的名称。
热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为BACKUP。
优先级(proiority):数值越大则取得VIP控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺VIP控制权时发生冲突。
配置备用服务器(可以有多台)时,可以参考主服务器的keepalived.conf配置文件内容,只要修改路由器名称、热备状态、优先级就可以了。

! Configuration File for keepalived

global_defs {
   notification_email {
   15358135330@163.com
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 99
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.0.61
    }
}

确认配置无误,一样需要启动keepalived服务。此时主服务器仍然在线,VIP地址实际上任然由主服务器控制,其他服务器处于备份状态,因此在备份服务器中将不会为ens33接口添加VIP地址


[root@master2 keepalived]# ip a show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2e:61:f3 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.69/24 brd 172.16.0.255 scope global noprefixroute dynamic ens33
       valid_lft 83128sec preferred_lft 83128sec
    inet6 fe80::e300:faca:77a3:d499/64 scope link tentative noprefixroute dadfailed
       valid_lft forever preferred_lft forever
    inet6 fe80::b711:13ec:bbbf:f91/64 scope link tentative noprefixroute dadfailed
       valid_lft forever preferred_lft forever
    inet6 fe80::bf4c:dee3:4394:a61/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@master2 keepalived]#

测试双机热备功能

在测试主、备故障自动切换功能时,可以跟踪此日志文件来观察热备状态的变化。/var/log/messages

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值