双主模型高可用负载均衡集群的实现(keepalived+lvs-dr)

时间:2022-08-12 03:05:46

实现keepalived双主模型lvs高可用集群

 一、拓扑图

双主模型高可用负载均衡集群的实现(keepalived+lvs-dr)

 二、环境准备

两台负载均衡调度器,两台web服务器。

调度器A环境:

VS:一张网卡

DIP:192.168.0.7/24

VIP(主):192.168.0.200

VIP(备):192.168.0.201

软件包:yum install -y keepalived ipvsadm nginx(作用:sorry-server服务)


调度器B环境:

VS:一张网卡

DIP:192.168.0.8/24

VIP(主):192.168.0.201

VIP(备):192.168.0.200

软件包:yum install -y keepalived ipvsadm nginx(作用:sorry-server服务)


web服务器A环境:

RS1:192.168.0.3

lo:0:192.168.0.200

lo:1:192.168.0.201

软件包:yum install -y httpd


web服务器B环境:

RS1:192.168.0.4

lo:0:192.168.0.200

lo:1:192.168.0.201

软件包:yum install -y httpd


 三、配置

调度器A配置

主要操作:ip配置,时间同步、hosts文件更改,修改主机名(确保主从节点能够通信)、keepalived.conf配置文件更改,通知脚本配置(两个脚本),ipvsadm规则查看

ip配置

[root@node1keepalived]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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 qlen 1000
    link/ether 00:0c:29:0c:d2:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.7/24 brd 192.168.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.0.200/24 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe0c:d206/64 scope link 
       valid_lft forever preferred_lft forever

时间同步 

ntpdate ntp-server-ip #时间服务器的ip

hosts文件

[root@node1 keepalived]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node1::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node1192.168.0.8 node2192.168.0.7 node1

主机名修改

hostnamectl set-hostname node1

keepalived.conf配置文件更改

[root@localhost keepalived]# cat keepalived.conf! Configuration File for keepalivedglobal_defs {   notification_email {     root@localhost   }   notification_email_from keepalived@localhost   smtp_server 127.0.0.1    smtp_connect_timeout 10   router_id node1vrrp_mcast_group4 224.0.0.223}vrrp_instance VI_1 {    state MASTER    interface ens33    virtual_router_id 51    priority 110    advert_int 1    authentication {        auth_type PASS        auth_pass JzvnmfkY     }    virtual_ipaddress {        192.168.0.200/24 dev ens33 label ens33:1    }notify_master "/etc/keepalived/notify1.sh master"notify_backup "/etc/keepalived/notify1.sh backup"notify_fault "/etc/keepalived/notify1.sh fault"}virtual_server 192.168.0.200 80 {    delay_loop 3    lb_algo wrr    lb_kind DR    protocol TCP    sorry_server 127.0.0.1 80    real_server 192.168.0.3 80 {        weight 2        HTTP_GET {            url {              path /              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }    real_server 192.168.0.4 80 {        weight 1        HTTP_GET {            url {              path /              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }}}vrrp_instance VI_2 {    state BACKUP    interface ens33    virtual_router_id 52    priority 90    advert_int 1    authentication {        auth_type PASS        auth_pass JzvnmfkY     }    virtual_ipaddress {        192.168.0.201/24 dev ens33 label ens33:2    }notify_master "/etc/keepalived/notify2.sh master"notify_backup "/etc/keepalived/notify2.sh backup"notify_fault "/etc/keepalived/notify2.sh fault"}virtual_server 192.168.0.201 80 {    delay_loop 3    lb_algo wrr    lb_kind DR    protocol TCP    sorry_server 127.0.0.1 80    real_server 192.168.0.3 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.0.4 80 {        weight 2        HTTP_GET {            url {              path /              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }}}

通知脚本配置

脚本1

[root@node1 keepalived]# cat notify1.sh #!/bin/bash#description: An example of notify script#vip=192.168.0.200contact='root@localhost'notify(){local mailsubject="$(hostname) to be $1:$vip floating"local mailbody="$(date +'%F %T'):vrrp1 transition,$(hostname) changed to be $1"echo "$mailbody" | mail -s "$mailsubject" $contact}case $1 inmaster)notify master;;backup)notify backup;;fault)notify fault;;*)echo "Usage:$(basename $0) {master|backup|fault}"exit 1;;esac

脚本2

[root@node1 keepalived]# cat notify2.sh #!/bin/bash#description: An example of notify script#vip=192.168.0.201contact='root@localhost'notify(){local mailsubject="$(hostname) to be $1:$vip floating"local mailbody="$(date +'%F %T'):vrrp2 transition,$(hostname) changed to be $1"echo "$mailbody" | mail -s "$mailsubject" $contact}case $1 inmaster)notify master;;backup)notify backup;;fault)notify fault;;*)echo "Usage:$(basename $0) {master|backup|fault}"exit 1;;esac

ipvsadm规则查看

[root@node1 keepalived]# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.0.200:80 wrr  -> 192.168.0.3:80               Route   2      0          0           -> 192.168.0.4:80               Route   1      0          0         TCP  192.168.0.201:80 wrr  -> 192.168.0.3:80               Route   1      0          0           -> 192.168.0.4:80               Route   2      0          0

调度器B配置

主要操作:ip配置,时间同步、hosts文件更改,修改主机名(确保主从节点能够通信)、keepalived.conf配置文件更改,通知脚本配置(两个脚本),ipvsadm规则查看

ip配置

[root@node2 keepalived]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1    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 forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:3f:e3:9e brd ff:ff:ff:ff:ff:ff    inet 192.168.0.8/24 brd 192.168.0.255 scope global ens33       valid_lft forever preferred_lft forever    inet 192.168.0.201/24 scope global secondary ens33:2       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:fe3f:e39e/64 scope link        valid_lft forever preferred_lft forever

时间同步 

ntpdate ntp-server-ip


hosts文件更改

[root@node2 keepalived]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node2::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node2192.168.0.7 node1192.168.0.8 node2

        主机名修改       

hostnamectl set-hostname node2

keepalived.conf配置文件更改

[root@localhost keepalived]# cat keepalived.conf ! Configuration File for keepalivedglobal_defs {   notification_email {     root@localhost   }   notification_email_from keepalived@localhost   smtp_server 127.0.0.1    smtp_connect_timeout 10   router_id node2vrrp_mcast_group4 224.0.0.223}vrrp_instance VI_1 {    state BACKUP    interface ens33    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass JzvnmfkY     }    virtual_ipaddress {        192.168.0.200/24 dev ens33 label ens33:1    }        notify_master "/etc/keepalived/notify1.sh master"        notify_backup "/etc/keepalived/notify1.sh backup"        notify_fault "/etc/keepalived/notify1.sh fault"}virtual_server 192.168.0.200 80 {    delay_loop 3    lb_algo wrr    lb_kind DR    protocol TCPsorry_server 127.0.0.1 80    real_server 192.168.0.3 80 {        weight 2        HTTP_GET {            url {              path /              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }    real_server 192.168.0.4 80 {        weight 1        HTTP_GET {            url {              path /              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }}}vrrp_instance VI_2 {    state MASTER    interface ens33    virtual_router_id 52    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass JzvnmfkY    }    virtual_ipaddress {        192.168.0.201/24 dev ens33 label ens33:2    }        notify_master "/etc/keepalived/notify2.sh master"        notify_backup "/etc/keepalived/notify2.sh backup"        notify_fault "/etc/keepalived/notify2.sh fault"}virtual_server 192.168.0.201 80 {    delay_loop 3    lb_algo wrr    lb_kind DR    protocol TCPsorry_server 127.0.0.1 80    real_server 192.168.0.3 80 {        weight 1        HTTP_GET {            url {              path /              status_code 200            }              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }    real_server 192.168.0.4 80 {        weight 2        HTTP_GET {            url {              path /              status_code 200            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }}}

通知脚本配置(同调度器A的脚本一致)

脚本1

[root@node2 keepalived]# cat notify1.sh #!/bin/bash#description: An example of notify script#vip=192.168.0.200contact='root@localhost'notify(){local mailsubject="$(hostname) to be $1:$vip floating"local mailbody="$(date +'%F %T'):vrrp1 transition,$(hostname) changed to be $1"echo "$mailbody" | mail -s "$mailsubject" $contact}case $1 inmaster)notify master;;backup)notify backup;;fault)notify fault;;*)echo "Usage:$(basename $0) {master|backup|fault}"exit 1;;esac

脚本2

[root@node2 keepalived]# cat notify2.sh #!/bin/bash#description: An example of notify script#vip=192.168.0.201contact='root@localhost'notify(){local mailsubject="$(hostname) to be $1:$vip floating"local mailbody="$(date +'%F %T'):vrrp2 transition,$(hostname) changed to be $1"echo "$mailbody" | mail -s "$mailsubject" $contact}case $1 inmaster)notify master;;backup)notify backup;;fault)notify fault;;*)echo "Usage:$(basename $0) {master|backup|fault}"exit 1;;esac

web服务器A配置

ip配置

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1    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    inet 192.168.0.201/32 brd 192.168.0.201 scope global lo:1       valid_lft forever preferred_lft forever    inet 192.168.0.200/32 brd 192.168.0.200 scope global lo:0       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:ab:50:14 brd ff:ff:ff:ff:ff:ff    inet 192.168.0.4/24 brd 192.168.0.255 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:feab:5014/64 scope link        valid_lft forever preferred_lft forever

lvs-dr-预配置脚本

脚本1

[root@localhost ~]# cat vip200-setrs.sh #!/bin/bash#vip=192.168.0.200mask='255.255.255.255'case $1 instart)echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceifconfig lo:0 $vip netmask $mask broadcast $vip uproute add -host $vip dev lo:0;;stop)ifconfig lo:0 downecho 0 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/all/arp_announceecho 0 > /proc/sys/net/ipv4/conf/lo/arp_announce;;*) echo "Usage $(basename $0) start|stop"exit 1;;esac


脚本2

[root@localhost ~]# cat vip201-setrs.sh #!/bin/bash#vip=192.168.0.201mask='255.255.255.255'case $1 instart)echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceifconfig lo:1 $vip netmask $mask broadcast $vip uproute add -host $vip dev lo:1;;stop)ifconfig lo:1 downecho 0 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/all/arp_announceecho 0 > /proc/sys/net/ipv4/conf/lo/arp_announce;;*) echo "Usage $(basename $0) start|stop"exit 1;;esac

web服务器B配置

ip配置

[root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1    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    inet 192.168.0.201/32 brd 192.168.0.201 scope global lo:1       valid_lft forever preferred_lft forever    inet 192.168.0.200/32 brd 192.168.0.200 scope global lo:0       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:ab:50:14 brd ff:ff:ff:ff:ff:ff    inet 192.168.0.4/24 brd 192.168.0.255 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:feab:5014/64 scope link        valid_lft forever preferred_lft forever

lvs-dr-预设脚本

脚本内容同web服务A相同,拷贝过去即可

vip200-setrs.sh  vip201-setrs.sh

    客户端测试

ip配置

[root@localhost ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1    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 forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:d0:37:77 brd ff:ff:ff:ff:ff:ff    inet 192.168.0.14/24 brd 192.168.0.255 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:fed0:3777/64 scope link        valid_lft forever preferred_lft forever

curl测试

 [root@localhost ~]# for i in {1..10};do curl http://192.168.0.200;donebackend server1backend server1backend server2backend server1backend server1backend server2backend server1backend server1backend server2backend server1[root@localhost ~]# for i in {1..10};do curl http://192.168.0.201;donebackend server1backend server2backend server2backend server1backend server2backend server2backend server1backend server2backend server2backend server1

 四、健康状态查看以及故障排查参考方式

 方式1:查看keepalived的切换过程

systemctl status keepalived

 方式2:mail命令查看邮件

 方式3:查看web服务器日志

tail /var/log/httpd/access_log 

tail /var/log/httpd/error_log 

五、模拟故障

 1.模拟调度器B故障

调度器B上操作

停止keepalived服务

systemctl stop keepalived[root@node2 keepalived]# systemctl status keepalived #分析以下信息,VIP2已移除Jul 02 10:18:53 node2 systemd[1]: Stopping LVS and VRRP High Availability Monitor...Jul 02 10:18:53 node2 Keepalived_vrrp[50773]: VRRP_Instance(VI_2) sending 0 priorityJul 02 10:18:53 node2 Keepalived_vrrp[50773]: VRRP_Instance(VI_2) removing protocol VIPs.Jul 02 10:18:53 node2 systemd[1]: Stopped LVS and VRRP High Availability Monitor.

查看ip

[root@node2 keepalived]# ip a           #VIP2移除1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1    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 forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:3f:e3:9e brd ff:ff:ff:ff:ff:ff    inet 192.168.0.8/24 brd 192.168.0.255 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:fe3f:e39e/64 scope link        valid_lft forever preferred_lft forever

调度器A操作

[root@node1 keepalived]# systemctl status keepalived #分析以下信息,可知VIP漂移到调度A● keepalived.service - LVS and VRRP High Availability Monitor   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)   Active: active (running) since Sun 2017-07-02 10:07:36 CST; 17min ago  Process: 20019 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 20020 (keepalived)   CGroup: /system.slice/keepalived.service           ├─20020 /usr/sbin/keepalived -D           ├─20021 /usr/sbin/keepalived -D           └─20022 /usr/sbin/keepalived -DJul 02 10:07:37 node1 Keepalived_vrrp[20022]: Opening script file /etc/keepalived/notify1.shJul 02 10:07:37 node1 Keepalived_healthcheckers[20021]: Netlink reflector reports IP 192.168.0.200 addedJul 02 10:07:42 node1 Keepalived_vrrp[20022]: VRRP_Instance(VI_1) Sending gratuitous ARPs on ens33 for 192.168.0.200Jul 02 10:18:54 node1 Keepalived_vrrp[20022]: VRRP_Instance(VI_2) Transition to MASTER STATEJul 02 10:18:55 node1 Keepalived_vrrp[20022]: VRRP_Instance(VI_2) Entering MASTER STATEJul 02 10:18:55 node1 Keepalived_vrrp[20022]: VRRP_Instance(VI_2) setting protocol VIPs.Jul 02 10:18:55 node1 Keepalived_vrrp[20022]: VRRP_Instance(VI_2) Sending gratuitous ARPs on ens33 for 192.168.0.201Jul 02 10:18:55 node1 Keepalived_vrrp[20022]: Opening script file /etc/keepalived/notify2.shJul 02 10:18:55 node1 Keepalived_healthcheckers[20021]: Netlink reflector reports IP 192.168.0.201 addedJul 02 10:19:00 node1 Keepalived_vrrp[20022]: VRRP_Instance(VI_2) Sending gratuitous ARPs on ens33 for 192.168.0.201

查看邮件

[root@node1 keepalived]# mail        #node1成为VIP192.168.0.201的主节点Heirloom Mail version 12.5 7/5/10.  Type ? for help."/var/spool/mail/root": 1 message>   1 root                  Sun Jul  2 10:18  19/702   "node1 to be master:192.168.0.201 floating"& 1  Message  1:From root@node1.localdomain  Sun Jul  2 10:18:55 2017Return-Path: <root@node1.localdomain>X-Original-To: root@localhostDelivered-To: root@localhost.localdomainDate: Sun, 02 Jul 2017 10:18:55 +0800To: root@localhost.localdomainSubject: node1 to be master:192.168.0.201 floatingUser-Agent: Heirloom mailx 12.5 7/5/10Content-Type: text/plain; charset=us-asciiFrom: root@node1.localdomain (root)Status: RO2017-07-02 10:18:55:vrrp2 transition,node1 changed to be master

2.模拟web服务器A故障(RS1)

webA上操作

[root@localhost ~]# systemctl stop httpd

调度器A上操作

 查看邮件

[root@node1 keepalived]# mail #分析以下信息,可知RS1宕机Heirloom Mail version 12.5 7/5/10.  Type ? for help."/var/spool/mail/root": 4 messages 2 new    1 root                  Sun Jul  2 10:18  19/702   "node1 to be master:192.168.0.201 floating"    2 root                  Sun Jul  2 10:28  19/702   "node1 to be backup:192.168.0.201 floating">N  3 keepalived@localhost  Sun Jul  2 10:28  17/642   "[node1] Realserver [192.168.0.3]:80 - DOWN" N  4 keepalived@localhost  Sun Jul  2 10:28  17/642   "[node1] Realserver [192.168.0.3]:80 - DOWN"

客户端请求查看

[root@localhost ~]# curl http://192.168.0.200 #只能访问到RS2backend server2

   调度器B上操作

[root@node2 keepalived]# mail #分析以下信息,可知RS1宕机Heirloom Mail version 12.5 7/5/10.  Type ? for help."/var/spool/mail/root": 4 messages 2 new    1 root                  Sun Jul  2 10:28  19/702   "node2 to be backup:192.168.0.200 floating"    2 root                  Sun Jul  2 10:28  19/702   "node2 to be master:192.168.0.201 floating">N  3 keepalived@localhost  Sun Jul  2 10:28  17/642   "[node2] Realserver [192.168.0.3]:80 - DOWN" N  4 keepalived@localhost  Sun Jul  2 10:28  17/642   "[node2] Realserver [192.168.0.3]:80 - DOWN"

    3.模拟web服务双机故障

     RS1和RS2停止web服务

     调度器A上操作 

    查看邮件                #分析以下信息,可知双机宕机

    [root@node1 keepalived]# mailHeirloom Mail version 12.5 7/5/10.  Type ? for help."/var/spool/mail/root": 6 messages 2 new    1 root                  Sun Jul  2 10:18  19/702   "node1 to be master:192.168.0.201 floating"    2 root                  Sun Jul  2 10:28  19/702   "node1 to be backup:192.168.0.201 floating"    3 keepalived@localhost  Sun Jul  2 10:28  18/653   "[node1] Realserver [192.168.0.3]:80 - DOWN"    4 keepalived@localhost  Sun Jul  2 10:28  18/653   "[node1] Realserver [192.168.0.3]:80 - DOWN">N  5 keepalived@localhost  Sun Jul  2 10:36  17/642   "[node1] Realserver [192.168.0.4]:80 - DOWN" N  6 keepalived@localhost  Sun Jul  2 10:36  17/642   "[node1] Realserver [192.168.0.4]:80 - DOWN"

查看keepalived状态

[root@node1 keepalived]# systemctl status keepalived    #分析以下信息,双机宕机,启动sorry服务器  ● keepalived.service - LVS and VRRP High Availability Monitor   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled; vendor preset: disabled)   Active: active (running) since Sun 2017-07-02 10:07:36 CST; 30min ago  Process: 20019 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 20020 (keepalived)   CGroup: /system.slice/keepalived.service           ├─20020 /usr/sbin/keepalived -D           ├─20021 /usr/sbin/keepalived -D           └─20022 /usr/sbin/keepalived -DJul 02 10:36:31 node1 Keepalived_healthcheckers[20021]: Removing alive servers from the pool for VS [192.168.0.200]:80Jul 02 10:36:31 node1 Keepalived_healthcheckers[20021]: Remote SMTP server [127.0.0.1]:25 connected.Jul 02 10:36:31 node1 Keepalived_healthcheckers[20021]: SMTP alert successfully sent.Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: Error connecting server [192.168.0.4]:80.Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: Removing service [192.168.0.4]:80 from VS [192.168.0.201]:80Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: Lost quorum 1-0=1 > 0 for VS [192.168.0.201]:80Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: Adding sorry server [127.0.0.1]:80 to VS [192.168.0.201]:80Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: Removing alive servers from the pool for VS [192.168.0.201]:80Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: Remote SMTP server [127.0.0.1]:25 connected.Jul 02 10:36:32 node1 Keepalived_healthcheckers[20021]: SMTP alert successfully sent.

客户端请求

[root@localhost ~]# curl http://192.168.0.201        #请求至sorry服务器的web页面sorry server[root@localhost ~]# curl http://192.168.0.200sorry server


本文出自 “有点意思!” 博客,请务必保留此出处http://powermichael.blog.51cto.com/12450987/1943778