prollerweg 发表于 2019-1-1 06:04:17

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

实现keepalived双主模型lvs高可用集群
  一、拓扑图
https://s2.运维网.com/wyfs02/M01/9A/9B/wKiom1lYXyXjsm_NAAC0uSYuwXI603.gif
  二、环境准备
  两台负载均衡调度器,两台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配置
# ip a
1: lo: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: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文件

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node1
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node1
192.168.0.8 node2
192.168.0.7 node1  主机名修改
hostnamectl set-hostname node1  keepalived.conf配置文件更改
# cat keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
   root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 10
   router_id node1
vrrp_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
# cat notify1.sh
#!/bin/bash
#description: An example of notify script
#
vip=192.168.0.200
contact='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 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage:$(basename $0) {master|backup|fault}"
exit 1
;;
esac  脚本2
# cat notify2.sh
#!/bin/bash
#description: An example of notify script
#
vip=192.168.0.201
contact='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 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage:$(basename $0) {master|backup|fault}"
exit 1
;;
esac  ipvsadm规则查看
# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port         Forward Weight ActiveConn InActConn
TCP192.168.0.200:80 wrr
-> 192.168.0.3:80               Route   2      0          0         
-> 192.168.0.4:80               Route   1      0          0         
TCP192.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配置
# ip a
1: lo: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: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文件更改
# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 node2
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 node2
192.168.0.7 node1
192.168.0.8 node2  主机名修改
hostnamectl set-hostname node2  keepalived.conf配置文件更改
# cat keepalived.conf
! Configuration File for keepalived
global_defs {
   notification_email {
   root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 10
   router_id node2
vrrp_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 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 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 TCP
sorry_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
# cat notify1.sh
#!/bin/bash
#description: An example of notify script
#
vip=192.168.0.200
contact='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 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage:$(basename $0) {master|backup|fault}"
exit 1
;;
esac  脚本2
# cat notify2.sh
#!/bin/bash
#description: An example of notify script
#
vip=192.168.0.201
contact='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 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage:$(basename $0) {master|backup|fault}"
exit 1
;;
esac  web服务器A配置
  ip配置
1: lo: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 forever
2: ens33: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
# cat vip200-setrs.sh
#!/bin/bash
#
vip=192.168.0.200
mask='255.255.255.255'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 $vip netmask $mask broadcast $vip up
route add -host $vip dev lo:0
;;
stop)
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage $(basename $0) start|stop"
exit 1
;;
esac  

  脚本2
# cat vip201-setrs.sh
#!/bin/bash
#
vip=192.168.0.201
mask='255.255.255.255'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:1 $vip netmask $mask broadcast $vip up
route add -host $vip dev lo:1
;;
stop)
ifconfig lo:1 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage $(basename $0) start|stop"
exit 1
;;
esac  web服务器B配置
  ip配置
# ip a
1: lo: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 forever
2: ens33: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.shvip201-setrs.sh
  客户端测试
  ip配置
  # ip a
1: lo: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: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测试
# for i in {1..10};do curl http://192.168.0.200;done
backend server1
backend server1
backend server2
backend server1
backend server1
backend server2
backend server1
backend server1
backend server2
backend server1
# for i in {1..10};do curl http://192.168.0.201;done
backend server1
backend server2
backend server2
backend server1
backend server2
backend server2
backend server1
backend server2
backend server2
backend 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
# systemctl status keepalived #分析以下信息,VIP2已移除
Jul 02 10:18:53 node2 systemd: Stopping LVS and VRRP High Availability Monitor...
Jul 02 10:18:53 node2 Keepalived_vrrp: VRRP_Instance(VI_2) sending 0 priority
Jul 02 10:18:53 node2 Keepalived_vrrp: VRRP_Instance(VI_2) removing protocol VIPs.
Jul 02 10:18:53 node2 systemd: Stopped LVS and VRRP High Availability Monitor.  查看ip
# ip a         #VIP2移除
1: lo: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: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操作
# 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 -D
Jul 02 10:07:37 node1 Keepalived_vrrp: Opening script file /etc/keepalived/notify1.sh
Jul 02 10:07:37 node1 Keepalived_healthcheckers: Netlink reflector reports IP 192.168.0.200 added
Jul 02 10:07:42 node1 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on ens33 for 192.168.0.200
Jul 02 10:18:54 node1 Keepalived_vrrp: VRRP_Instance(VI_2) Transition to MASTER STATE
Jul 02 10:18:55 node1 Keepalived_vrrp: VRRP_Instance(VI_2) Entering MASTER STATE
Jul 02 10:18:55 node1 Keepalived_vrrp: VRRP_Instance(VI_2) setting protocol VIPs.
Jul 02 10:18:55 node1 Keepalived_vrrp: VRRP_Instance(VI_2) Sending gratuitous ARPs on ens33 for 192.168.0.201
Jul 02 10:18:55 node1 Keepalived_vrrp: Opening script file /etc/keepalived/notify2.sh
Jul 02 10:18:55 node1 Keepalived_healthcheckers: Netlink reflector reports IP 192.168.0.201 added
Jul 02 10:19:00 node1 Keepalived_vrrp: VRRP_Instance(VI_2) Sending gratuitous ARPs on ens33 for 192.168.0.201  查看邮件
# 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 Jul2 10:1819/702   "node1 to be master:192.168.0.201 floating"
& 1
Message1:
From root@node1.localdomainSun Jul2 10:18:55 2017
Return-Path:
X-Original-To: root@localhost
Delivered-To: root@localhost.localdomain
Date: Sun, 02 Jul 2017 10:18:55 +0800
To: root@localhost.localdomain
Subject: node1 to be master:192.168.0.201 floating
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@node1.localdomain (root)
Status: RO
2017-07-02 10:18:55:vrrp2 transition,node1 changed to be master  2.模拟web服务器A故障(RS1)
  webA上操作
# systemctl stop httpd  调度器A上操作
   查看邮件
# mail #分析以下信息,可知RS1宕机
Heirloom Mail version 12.5 7/5/10.Type ? for help.
"/var/spool/mail/root": 4 messages 2 new
    1 root                  Sun Jul2 10:1819/702   "node1 to be master:192.168.0.201 floating"
    2 root                  Sun Jul2 10:2819/702   "node1 to be backup:192.168.0.201 floating"
>N3 keepalived@localhostSun Jul2 10:2817/642   " Realserver :80 - DOWN"
N4 keepalived@localhostSun Jul2 10:2817/642   " Realserver :80 - DOWN"  客户端请求查看
# curl http://192.168.0.200 #只能访问到RS2
backend server2      调度器B上操作
# mail #分析以下信息,可知RS1宕机
Heirloom Mail version 12.5 7/5/10.Type ? for help.
"/var/spool/mail/root": 4 messages 2 new
    1 root                  Sun Jul2 10:2819/702   "node2 to be backup:192.168.0.200 floating"
    2 root                  Sun Jul2 10:2819/702   "node2 to be master:192.168.0.201 floating"
>N3 keepalived@localhostSun Jul2 10:2817/642   " Realserver :80 - DOWN"
N4 keepalived@localhostSun Jul2 10:2817/642   " Realserver :80 - DOWN"  3.模拟web服务双机故障
  RS1和RS2停止web服务

  调度器A上操作
  查看邮件                #分析以下信息,可知双机宕机
    # mail
Heirloom Mail version 12.5 7/5/10.Type ? for help.
"/var/spool/mail/root": 6 messages 2 new
    1 root                  Sun Jul2 10:1819/702   "node1 to be master:192.168.0.201 floating"
    2 root                  Sun Jul2 10:2819/702   "node1 to be backup:192.168.0.201 floating"
    3 keepalived@localhostSun Jul2 10:2818/653   " Realserver :80 - DOWN"
    4 keepalived@localhostSun Jul2 10:2818/653   " Realserver :80 - DOWN"
>N5 keepalived@localhostSun Jul2 10:3617/642   " Realserver :80 - DOWN"
N6 keepalived@localhostSun Jul2 10:3617/642   " Realserver :80 - DOWN"  查看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 -D
Jul 02 10:36:31 node1 Keepalived_healthcheckers: Removing alive servers from the pool for VS :80
Jul 02 10:36:31 node1 Keepalived_healthcheckers: Remote SMTP server :25 connected.
Jul 02 10:36:31 node1 Keepalived_healthcheckers: SMTP alert successfully sent.
Jul 02 10:36:32 node1 Keepalived_healthcheckers: Error connecting server :80.
Jul 02 10:36:32 node1 Keepalived_healthcheckers: Removing service :80 from VS :80
Jul 02 10:36:32 node1 Keepalived_healthcheckers: Lost quorum 1-0=1 > 0 for VS :80
Jul 02 10:36:32 node1 Keepalived_healthcheckers: Adding sorry server :80 to VS :80
Jul 02 10:36:32 node1 Keepalived_healthcheckers: Removing alive servers from the pool for VS :80
Jul 02 10:36:32 node1 Keepalived_healthcheckers: Remote SMTP server :25 connected.
Jul 02 10:36:32 node1 Keepalived_healthcheckers: SMTP alert successfully sent.  客户端请求
# curl http://192.168.0.201      #请求至sorry服务器的web页面
sorry server
# curl http://192.168.0.200
sorry server




页: [1]
查看完整版本: 双主模型高可用负载均衡集群的实现(keepalived+lvs