Keepalived高可用集群部署

      负载均衡服务器(Haproxy、Nginx和LVS等)能够实现后端服务器集群的负载均衡和高可用性,但本身也存在着单点故障的问题。通过Keepalived搭建负载均衡集群,可以实现负载均衡服务器的高可用,并且集群作为一个整体对外提供唯一的访问入口。

一、架构

系统由高可用负载均衡集群、Web应用服务器集群组成:

  • 高可用负载均衡集群:包括一台主节点和至少一台备用节点,主节点和备用节点安装的软件一致(Haproxy和Keepalived)。Haproxy实现负载均衡和可用性;Keepalived实现集群中各节点的高可用并提供唯一的Web访问入口。
  • Web应用服务器集群:由多台Web服务器组成,每台服务器都部署了Web服务(httpd+php)、数据库服务(MariaDB)和应用系统(Discuz社区平台)。

二、软硬件环境

节点

功能

操作系统

IP

软件

haproxy1

keepalived master

负载均衡、高可用

CentOS7.9

VIP:10.0.80.10

外网:10.0.80.11/24

内网:192.168.80.11/24

CentOS7.9安装光盘自带的haproxy(1.5.18)

CentOS7.9安装光盘自带的keepalived(1.3.5)

haproxy2

keepalived backup

负载均衡、高可用

CentOS7.9

VIP:10.0.80.10

外网:10.0.80.12/24

内网:192.168.80.12/24

同上

web001

web服务器(LAMP架构)

CentOS7.9

192.168.80.21/24

CentOS7.9安装光盘自带的Apache(httpd 2.4.6)、mariadb(5.5.68)和PHP(5.4.16);Discuz_X3.4_SC_UTF8_20220518

web002

web服务器(LAMP架构)

CentOS7.9

192.168.80.22/24

同上

Client

客户端浏览器

任意

10.0.80.200/24

浏览器

 

三、实施

1、各台服务器环境配置

  • 主备节点要双网卡
  • 配置IP、修改计算机名
  • 关闭防火墙
  • 关闭selinux
  • 配置本地yum源

2、Web服务器群集部署

  • 参考“LAMP架构+Discuz应用部署”完成各台web服务器搭建(各台服务器除了ip不一样,其他配置一样)。
  • web001服务器

[root@web001 ~]# ip a

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:49:b6:e6 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.21/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::4683:ecd5:224:574f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

  • web002服务器

[root@web002 ~]# ip a

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:e6:d8:32 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.22/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::4683:ecd5:224:574f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3Haproxy负载均衡群集部署

  • 参考“Haproxy负载均衡部署”完成各台Haproxy服务器搭建(各台服务器除了ip不一样,其他配置一样)。
  • Haproxy1服务器

[root@haproxy1 ~]# ip a

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:d4:70:71 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.11/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e7b0:65ff:ba8e:3764/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:d4:70:7b brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.11/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e2e1:605d:ebfb:f457/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

  • Haproxy2服务器

[root@haproxy2 ~]# ip a

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:74:67:3c brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.12/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:74:67:46 brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.12/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

4Keepalived部署

  • 在Haproxy1上部署keepalived master;在Haproxy2上部署keepalived backup。
  • keepalived master部署

[root@haproxy1 ~]# ip a

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:d4:70:71 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.11/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e7b0:65ff:ba8e:3764/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:d4:70:7b brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.11/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e2e1:605d:ebfb:f457/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

[root@haproxy1 ~]# mount /dev/sr0 /opt/centos/

mount: /dev/sr0 is write-protected, mounting read-only

[root@haproxy1 ~]# yum install -y keepalived

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

centos                                                                                                                                | 3.6 kB  00:00:00    

Resolving Dependencies

--> Running transaction check

---> Package keepalived.x86_64 0:1.3.5-19.el7 will be installed

--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: keepalived-1.3.5-19.el7.x86_64

。。。。。。
Installed:

  keepalived.x86_64 0:1.3.5-19.el7                                                                                                                          

Dependency Installed:

  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7     net-snmp-agent-libs.x86_64 1:5.7.2-49.el7     net-snmp-libs.x86_64 1:5.7.2-49.el7            

  perl.x86_64 4:5.16.3-297.el7                                perl-Carp.noarch 0:1.26-244.el7               perl-Encode.x86_64 0:2.51-7.el7                

  perl-Exporter.noarch 0:5.68-3.el7                           perl-File-Path.noarch 0:2.09-2.el7            perl-File-Temp.noarch 0:0.23.01-3.el7          

  perl-Filter.x86_64 0:1.49-3.el7                             perl-Getopt-Long.noarch 0:2.40-3.el7          perl-HTTP-Tiny.noarch 0:0.033-3.el7            

  perl-PathTools.x86_64 0:3.40-5.el7                          perl-Pod-Escapes.noarch 1:1.04-297.el7        perl-Pod-Perldoc.noarch 0:3.20-4.el7           

  perl-Pod-Simple.noarch 1:3.28-4.el7                         perl-Pod-Usage.noarch 0:1.63-3.el7            perl-Scalar-List-Utils.x86_64 0:1.27-248.el7   

  perl-Socket.x86_64 0:2.010-5.el7                            perl-Storable.x86_64 0:2.45-3.el7             perl-Text-ParseWords.noarch 0:3.29-4.el7       

  perl-Time-HiRes.x86_64 4:1.9725-3.el7                       perl-Time-Local.noarch 0:1.2300-2.el7         perl-constant.noarch 0:1.27-2.el7              

  perl-libs.x86_64 4:5.16.3-297.el7                           perl-macros.x86_64 4:5.16.3-297.el7           perl-parent.noarch 1:0.225-244.el7             

  perl-podlators.noarch 0:2.5.1-3.el7                         perl-threads.x86_64 0:1.87-4.el7              perl-threads-shared.x86_64 0:1.43-6.el7        

Complete!

[root@haproxy1 ~]# rpm -qi keepalived

Name        : keepalived

Version     : 1.3.5

Release     : 19.el7

Architecture: x86_64

Install Date: Thu 25 Aug 2022 10:19:54 PM CST

Group       : System Environment/Daemons

Size        : 1023403

License     : GPLv2+

Signature   : RSA/SHA256, Thu 15 Oct 2020 02:52:16 AM CST, Key ID 24c6a8a7f4a80eb5

Source RPM  : keepalived-1.3.5-19.el7.src.rpm

Build Date  : Thu 01 Oct 2020 12:40:03 AM CST

Build Host  : x86-02.bsys.centos.org

Relocations : (not relocatable)

Packager    : CentOS BuildSystem <http://bugs.centos.org>

Vendor      : CentOS

URL         : Keepalived for Linux

Summary     : Load balancer and high availability service

Description :

Keepalived provides simple and robust facilities for load balancing

and high availability.  The load balancing framework relies on the

well-known and widely used Linux Virtual Server (IPVS) kernel module

providing layer-4 (transport layer) load balancing.  Keepalived

implements a set of checkers to dynamically and adaptively maintain

and manage a load balanced server pool according their health.

Keepalived also implements the Virtual Router Redundancy Protocol

(VRRPv2) to achieve high availability with director failover.

#修改keepalived配置文件

[root@haproxy1 ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

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_skip_check_adv_addr

   #vrrp_strict #严格遵守VRRP协议

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}

vrrp_instance VI_1 {

    state MASTER

    interface ens37

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        10.0.80.10

    }

}

[root@haproxy1 ~]# systemctl start keepalived && systemctl enable keepalived

Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.

[root@haproxy1 ~]# systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor

   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2022-08-25 22:24:02 CST; 14s ago

 Main PID: 1861 (keepalived)

   CGroup: /system.slice/keepalived.service

           ├─1861 /usr/sbin/keepalived -D

           ├─1862 /usr/sbin/keepalived -D

           └─1863 /usr/sbin/keepalived -D

Aug 25 22:24:04 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:04 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:04 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:04 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

[root@haproxy1 ~]# ip a

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:d4:70:71 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.11/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e7b0:65ff:ba8e:3764/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:d4:70:7b brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.11/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet 10.0.80.10/32 scope global ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e2e1:605d:ebfb:f457/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

  • keepalived backup部署

[root@haproxy2 ~]# ip a

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:74:67:3c brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.12/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:74:67:46 brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.12/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

[root@haproxy2 ~]# mount /dev/sr0 /opt/centos/

mount: /dev/sr0 is write-protected, mounting read-only

[root@haproxy2 ~]# yum install -y keepalived

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

centos                                                                                                                                | 3.6 kB  00:00:00    

Resolving Dependencies

--> Running transaction check

---> Package keepalived.x86_64 0:1.3.5-19.el7 will be installed

--> Processing Dependency: libnetsnmpmibs.so.31()(64bit) for package: keepalived-1.3.5-19.el7.x86_64

。。。。。。

Installed:

  keepalived.x86_64 0:1.3.5-19.el7                                                                                                                           

Dependency Installed:

  lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7     net-snmp-agent-libs.x86_64 1:5.7.2-49.el7     net-snmp-libs.x86_64 1:5.7.2-49.el7             

  perl.x86_64 4:5.16.3-297.el7                                perl-Carp.noarch 0:1.26-244.el7               perl-Encode.x86_64 0:2.51-7.el7                

  perl-Exporter.noarch 0:5.68-3.el7                           perl-File-Path.noarch 0:2.09-2.el7            perl-File-Temp.noarch 0:0.23.01-3.el7          

  perl-Filter.x86_64 0:1.49-3.el7                             perl-Getopt-Long.noarch 0:2.40-3.el7          perl-HTTP-Tiny.noarch 0:0.033-3.el7            

  perl-PathTools.x86_64 0:3.40-5.el7                          perl-Pod-Escapes.noarch 1:1.04-297.el7        perl-Pod-Perldoc.noarch 0:3.20-4.el7           

  perl-Pod-Simple.noarch 1:3.28-4.el7                         perl-Pod-Usage.noarch 0:1.63-3.el7            perl-Scalar-List-Utils.x86_64 0:1.27-248.el7   

  perl-Socket.x86_64 0:2.010-5.el7                            perl-Storable.x86_64 0:2.45-3.el7             perl-Text-ParseWords.noarch 0:3.29-4.el7       

  perl-Time-HiRes.x86_64 4:1.9725-3.el7                       perl-Time-Local.noarch 0:1.2300-2.el7         perl-constant.noarch 0:1.27-2.el7              

  perl-libs.x86_64 4:5.16.3-297.el7                           perl-macros.x86_64 4:5.16.3-297.el7           perl-parent.noarch 1:0.225-244.el7             

  perl-podlators.noarch 0:2.5.1-3.el7                         perl-threads.x86_64 0:1.87-4.el7              perl-threads-shared.x86_64 0:1.43-6.el7        

Complete!

#备用节点keepalived配置

[root@haproxy2 ~]# cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

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_skip_check_adv_addr

   #vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens37

    virtual_router_id 51

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        10.0.80.10

    }

}

[root@haproxy2 ~]# systemctl start keepalived && systemctl enable keepalived

Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.

[root@haproxy2 ~]# systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor

   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2022-08-25 22:37:28 CST; 10s ago

 Main PID: 1740 (keepalived)

   CGroup: /system.slice/keepalived.service

           ├─1740 /usr/sbin/keepalived -D

           ├─1741 /usr/sbin/keepalived -D

           └─1742 /usr/sbin/keepalived -D

Aug 25 22:37:28 haproxy2 Keepalived[1740]: Starting VRRP child process, pid=1742

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: Registering Kernel netlink reflector

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: Registering Kernel netlink command channel

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: Registering gratuitous ARP shared channel

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: Opening file '/etc/keepalived/keepalived.conf'.

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) removing protocol VIPs.

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: Using LinkWatch kernel netlink reflector...

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) Entering BACKUP STATE

Aug 25 22:37:28 haproxy2 Keepalived_vrrp[1742]: VRRP sockpool: [ifindex(3), proto(112), unicast(0), fd(10,11)]

Aug 25 22:37:28 haproxy2 Keepalived_healthcheckers[1741]: Opening file '/etc/keepalived/keepalived.conf'.

[root@haproxy2 ~]# ip a

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:74:67:3c brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.12/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:74:67:46 brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.12/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

5、运行测试

#高可用测试:把haproxy1的网卡ens37设置为故障!

#haproxy1

[root@haproxy1 ~]# ip a

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:d4:70:71 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.11/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e7b0:65ff:ba8e:3764/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000

    link/ether 00:0c:29:d4:70:7b brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.11/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e2e1:605d:ebfb:f457/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

[root@haproxy1 ~]# systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor

   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2022-08-25 22:24:02 CST; 16min ago

 Main PID: 1861 (keepalived)

   CGroup: /system.slice/keepalived.service

           ├─1861 /usr/sbin/keepalived -D

           ├─1862 /usr/sbin/keepalived -D

           └─1863 /usr/sbin/keepalived -D

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:24:09 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:01 haproxy1 Keepalived_vrrp[1863]: Kernel is reporting: interface ens37 DOWN

Aug 25 22:40:01 haproxy1 Keepalived_vrrp[1863]: VRRP_Instance(VI_1) Entering FAULT STATE

Aug 25 22:40:01 haproxy1 Keepalived_vrrp[1863]: VRRP_Instance(VI_1) removing protocol VIPs.

Aug 25 22:40:01 haproxy1 Keepalived_vrrp[1863]: VRRP_Instance(VI_1) Now in FAULT state

#Haproxy2

[root@haproxy2 ~]# ip a

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:74:67:3c brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.12/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:74:67:46 brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.12/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet 10.0.80.10/32 scope global ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

[root@haproxy2 ~]# systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor

   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2022-08-25 22:37:28 CST; 2min 59s ago

 Main PID: 1740 (keepalived)

   CGroup: /system.slice/keepalived.service

           ├─1740 /usr/sbin/keepalived -D

           ├─1741 /usr/sbin/keepalived -D

           └─1742 /usr/sbin/keepalived -D

Aug 25 22:40:04 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:04 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:04 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:04 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

#网站正常访问

#Haproxy1网卡ens37故障修复

#Haproxy1

[root@haproxy1 ~]# ip a

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:d4:70:71 brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.11/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e7b0:65ff:ba8e:3764/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:d4:70:7b brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.11/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet 10.0.80.10/32 scope global ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link tentative noprefixroute dadfailed

       valid_lft forever preferred_lft forever

    inet6 fe80::e2e1:605d:ebfb:f457/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

[root@haproxy1 ~]# systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor

   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2022-08-25 22:24:02 CST; 21min ago

 Main PID: 1861 (keepalived)

   CGroup: /system.slice/keepalived.service

           ├─1861 /usr/sbin/keepalived -D

           ├─1862 /usr/sbin/keepalived -D

           └─1863 /usr/sbin/keepalived -D

Aug 25 22:45:42 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:42 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:42 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:42 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:47 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:47 haproxy1 Keepalived_vrrp[1863]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens37 for 10.0.80.10

Aug 25 22:45:47 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:47 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:47 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:47 haproxy1 Keepalived_vrrp[1863]: Sending gratuitous ARP on ens37 for 10.0.80.10

#Haproxy2

[root@haproxy2 ~]# ip a

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:74:67:3c brd ff:ff:ff:ff:ff:ff

    inet 192.168.80.12/24 brd 192.168.80.255 scope global noprefixroute ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::2e31:800b:3fff:57f/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:74:67:46 brd ff:ff:ff:ff:ff:ff

    inet 10.0.80.12/24 brd 10.0.80.255 scope global noprefixroute ens37

       valid_lft forever preferred_lft forever

    inet6 fe80::9fc6:5ef7:735e:964b/64 scope link noprefixroute

       valid_lft forever preferred_lft forever

[root@haproxy2 ~]# systemctl status keepalived

● keepalived.service - LVS and VRRP High Availability Monitor

   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)

   Active: active (running) since Thu 2022-08-25 22:37:28 CST; 8min ago

 Main PID: 1740 (keepalived)

   CGroup: /system.slice/keepalived.service

           ├─1740 /usr/sbin/keepalived -D

           ├─1741 /usr/sbin/keepalived -D

           └─1742 /usr/sbin/keepalived -D

Aug 25 22:40:04 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:40:09 haproxy2 Keepalived_vrrp[1742]: Sending gratuitous ARP on ens37 for 10.0.80.10

Aug 25 22:45:41 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) Received advert with higher priority 100, ours 90

Aug 25 22:45:41 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) Entering BACKUP STATE

Aug 25 22:45:41 haproxy2 Keepalived_vrrp[1742]: VRRP_Instance(VI_1) removing protocol VIPs.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值