Keepalived是HA cluster的一種實現方案,其以vrrp協議(Virtual Router Redundancy Protocol,即虛擬路由冗餘協議)爲實現基礎,在N臺具備相同功能的路由器或服務器中選出一個master或多個backup,這些路由器或服務器會共用一個對外提供服務的VIP。在此HA cluster集羣中,master主機會發送組播來跟backup主機進行通訊確認雙方是否存活。當backup主機在指定的時間內沒有收到vrrp組播報文則認爲master主機宕機了,此時就會在全部的backup主機中根據vrrp協議來選舉出新的master主機來保證服務的高可用性。html
一、域名指向,域名只能指向一個固定IP,若是該IP綁定的機器宕機了,那麼這個域名便沒法訪問了; 二、數據庫服務指向,應用是經過一個固定的IP鏈接到數據庫,若是該IP宕機,也沒法提供服務; 通常主要解決以上兩個問題,即keepalived+lvs+nginx和keepalive+mysql等等
keepalived主要有三個模塊,分別是ipvs wrapper、checkers和vrrp stack。node
keepalived源碼包下載地址:http://www.keepalived.org/download.htmlmysql
說明文檔:https://www.keepalived.org/LVS-NAT-Keepalived-HOWTO.htmlnginx
安裝環境es6
# yum install -y openssl-devel popt-devel curl gcc libnl3-devel net-snmp-devel libnfnetlink-devel
下載安裝包,主機備機都要安裝算法
wget https://www.keepalived.org/software/keepalived-2.0.0.tar.gz
解壓縮、編譯、安裝,過程當中提示缺什麼庫就安裝什麼庫,而後再從新編譯安裝。sql
# tar -zxf keepalived-2.0.0.tar.gz # cd keepalived-2.0.0 # ./configure --prefix=/usr/local/keepalived # make && make install # echo $? 0 # # cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ # cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ # cp ./keepalived/etc/init.d/keepalived /etc/init.d/
# mkdir /etc/keepalived
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
keepalived 只有一個配置文件 keepalived.conf,其中包含了三類配置區域。數據庫
VRRP 配置,包含了 vrrp_instance(VRRP 實例)、vrrp_sync_group(VRRP 同步組)、vrrp_script(VRRP 腳本) 、virtual_server 區域配置項。服務器
vrrp_script 區域app
master
[root@nginx ~]# cat /etc/keepalived/keepalived.conf global_defs { notification_email { #故障發生時給誰發郵件通知。 root@localhost root@192.168.10.18 } notification_email_from keepalived@localhost #通知郵件的發出地址。 smtp_server 127.0.0.1 #發現Email的smtp地址 smtp_connect_timeout 30 #超時時間 router_id node1 #運行keepalived的機器標識號,主從機必須不一樣 } vrrp_instance VI_1 { state MASTER #能夠是 MASTER 或 BACKUP,不過當其餘節點 keepalived 啓動時
#會將 Priority(優先級)比較大的節點選舉爲 MASTER,所以該項其實沒有實質用途。 interface eth1 #本機物理網卡,節點固有 IP(非 VIP)的網卡,用來發 VRRP 包。 lvs_sync_daemon_inteface eth1 #綁定 lvs syncd 的網卡。 virtual_router_id 151 #虛擬路由,主從機必需一致。設置 VRID,取值在 0-255 之間,用來區分多個 instance 的 VRRP 組播
#(同一網段中 virtual_router_id 的值不能重複,不然會出錯)。
#將決定多播的 MAC 地址 priority 100 #用來選舉 master,要成爲 master,這個選項的值最好高於其餘機器 50 個點,
#該項取值範圍是 1-255(在此範圍以外會被識別成默認值 100)。 advert_int 5 #發 VRRP 包的時間間隔,即多久進行一次 master 選舉(能夠認爲是健康查檢時間間隔,默認爲 1 秒)。 authentication { #認證區域,保持master和backup一致 auth_type PASS auth_pass 123456 } virtual_ipaddress { #VIP(虛擬 IP 地址),隨着 state 的變化而增長刪除,
#當 state 爲 master 的時候就添加,當 state 爲 backup 的時候刪除,
#主要由優先級來決定的,和 state 設置的值沒有多大關係,能夠設置多個 IP 地址。 192.168.100.100 dev eth1 } } virtual_server 192.168.100.100 3306 { #LVS配置,VIP delay_loop 6 #服務輪詢的時間間隔 lb_algo wrr #LVS 調度算法 lb_kind DR #LVS 集羣算法 persistence_timeout 60 #同一IP的連接50秒內被分配到同一臺realserver protocol TCP #用TCP協議檢查realserver狀態 real_server 192.168.10.18 3306 { #實際服務器的IP和端口 weight 100 notify_down /data/sh/mysql.sh TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } } [root@nginx ~]#
backup
[root@mysql ~]# [root@mysql ~]# cat /etc/keepalived/keepalived.conf global_defs { notification_email { root@localhost root@192.168.10.18 } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node2 } vrrp_instance VI_1 { state BACKUP interface eth1 lvs_sync_daemon_inteface eth1 virtual_router_id 151 priority 90 advert_int 5 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.100.100 dev eth1 } } virtual_server 192.168.100.100 3306 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 60 protocol TCP real_server 192.168.10.23 3306 { weight 100 notify_down /data/sh/mysql.sh TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } } [root@mysql ~]#
在兩端/data/sh/mysql.sh創建關閉keepalived的腳本
[root@mysql ~]# cat /data/sh/mysql.sh pkill keepalived [root@mysql ~]#
master和backup都啓動keepalived服務
[root@nginx ~]# service keepalived start Starting keepalived: [ OK ] [root@nginx ~]# [root@nginx ~]# ps -ef | grep keep root 127942 1 0 12:27 ? 00:00:00 keepalived -D root 127944 127942 0 12:27 ? 00:00:00 keepalived -D root 127945 127942 0 12:27 ? 00:00:00 keepalived -D root 130062 130014 0 14:27 pts/0 00:00:00 grep keep [root@nginx ~]# [root@nginx ~]# [root@nginx ~]# netstat -lantup | grep keep [root@nginx ~]#
[root@mysql ~]# /etc/init.d/keepalived restart Stopping keepalived: [ OK ] Starting keepalived: [ OK ] [root@mysql ~]# ps -ef | grep keep root 49218 1 0 12:01 ? 00:00:00 keepalived -D root 49220 49218 0 12:01 ? 00:00:00 keepalived -D root 49221 49218 0 12:01 ? 00:00:00 keepalived -D root 49223 48581 0 12:01 pts/3 00:00:00 grep keep [root@mysql ~]# [root@mysql ~]# netstat -lantup | grep keep tcp 0 1 192.168.10.23:58138 192.168.33.23:3306 SYN_SENT 49220/keepalived [root@mysql ~]#
查看兩端的虛擬IP啓動狀況,系統日誌
Master端
[root@nginx ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:69:6e:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.10.18/24 brd 192.168.10.255 scope global eth1 inet 192.168.100.100/32 scope global eth1 inet6 fe80::20c:29ff:fe69:6ec1/64 scope link valid_lft forever preferred_lft forever [root@nginx ~]#
虛擬IP:192.168.100.100已經成功啓動
[root@nginx ~]# tail -fn 10 /var/log/messages6 Sep 20 15:13:22 nginx Keepalived_healthcheckers[419]: TCP connection to [192.168.10.18]:tcp:3306 success. Sep 20 15:13:32 nginx Keepalived_vrrp[420]: (VI_1) Entering MASTER STATE Sep 20 15:13:32 nginx Keepalived_vrrp[420]: (VI_1) setting protocol VIPs. Sep 20 15:13:32 nginx Keepalived_vrrp[420]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:13:32 nginx Keepalived_vrrp[420]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:13:32 nginx Keepalived_vrrp[420]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:13:32 nginx Keepalived_vrrp[420]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:13:32 nginx Keepalived_vrrp[420]: Sending gratuitous ARP on eth1 for 192.168.100.100
說明已經成功做爲MASTER啓動,且發送ARP包傳輸
backup端
[root@mysql ~]# tail -fn 10 /var/log/messages Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: WARNING - default user 'keepalived_script' for script execution does not exist - please create. Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: Unknown keyword 'nb_get_retry' Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: Please add a #! shebang to script /data/sh/mysql.sh Sep 20 15:25:37 mysql Keepalived_vrrp[52340]: (VI_1) removing protocol VIPs. Sep 20 15:25:37 mysql Keepalived_vrrp[52340]: (VI_1) Entering BACKUP STATE (init) Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: SECURITY VIOLATION - check scripts are being executed but script_security not enabled. Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: Gained quorum 1+0=1 <= 100 for VS [192.168.100.100]:tcp:3306 Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: Activating healthchecker for service [192.168.10.23]:tcp:3306 for VS [192.168.100.100]:tcp:3306 Sep 20 15:25:37 mysql Keepalived_vrrp[52340]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(8,9)] Sep 20 15:25:43 mysql Keepalived_healthcheckers[52339]: TCP connection to [192.168.10.23]:tcp:3306 success.
(VI_1) Entering BACKUP STATE (init)已做爲backup機啓用
[root@mysql ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ad:ad:54 brd ff:ff:ff:ff:ff:ff inet 192.168.10.23/24 brd 192.168.10.255 scope global eth1 inet6 fe80::20c:29ff:fead:ad54/64 scope link valid_lft forever preferred_lft forever [root@mysql ~]#
backup的IP狀況
當Master的MySQL服務意外掛掉後,會自動啓用backup的Mysql繼續爲系統提供支持。
[root@nginx ~]# service mysqld stop Stopping mysqld: [ OK ] [root@nginx ~]# [root@nginx ~]# [root@nginx ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:69:6e:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.10.18/24 brd 192.168.10.255 scope global eth1 inet6 fe80::20c:29ff:fe69:6ec1/64 scope link valid_lft forever preferred_lft forever [root@nginx ~]# [root@nginx ~]# [root@nginx ~]# [root@nginx ~]# tail -fn 10 /var/log/messages Sep 20 15:36:44 nginx Keepalived_healthcheckers[419]: Error processing RCPT cmd on SMTP server [127.0.0.1]:25. SMTP status code = 501 Sep 20 15:36:44 nginx Keepalived_healthcheckers[419]: Can not read data from remote SMTP server [127.0.0.1]:25. Sep 20 15:36:44 nginx Keepalived[417]: Stopping Sep 20 15:36:44 nginx kernel: IPVS: __ip_vs_del_service: enter Sep 20 15:36:44 nginx Keepalived_vrrp[420]: (VI_1) sent 0 priority Sep 20 15:36:44 nginx Keepalived_vrrp[420]: (VI_1) removing protocol VIPs. Sep 20 15:36:44 nginx Keepalived_healthcheckers[419]: Shutting down service [192.168.10.18]:tcp:3306 from VS [192.168.100.100]:tcp:3306 Sep 20 15:36:44 nginx Keepalived_healthcheckers[419]: Stopped Sep 20 15:36:45 nginx Keepalived_vrrp[420]: Stopped Sep 20 15:36:45 nginx Keepalived[417]: Stopped Keepalived v2.0.0 (05/27,2018) ^C [root@nginx ~]# ps -ef | grep keep root 1127 130014 0 15:40 pts/0 00:00:00 grep keep [root@nginx ~]#
Master 測試關閉mysql服務,虛擬IP中止發送ARP包,keepalived服務終止
[root@mysql ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ad:ad:54 brd ff:ff:ff:ff:ff:ff inet 192.168.10.23/24 brd 192.168.10.255 scope global eth1 inet 192.168.100.100/32 scope global eth1 inet6 fe80::20c:29ff:fead:ad54/64 scope link valid_lft forever preferred_lft forever [root@mysql ~]# [root@mysql ~]# tail -fn 20 /var/log/messages Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: SECURITY VIOLATION - check scripts are being executed but script_security not enabled. Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: Gained quorum 1+0=1 <= 100 for VS [192.168.100.100]:tcp:3306 Sep 20 15:25:37 mysql Keepalived_healthcheckers[52339]: Activating healthchecker for service [192.168.10.23]:tcp:3306 for VS [192.168.100.100]:tcp:3306 Sep 20 15:25:37 mysql Keepalived_vrrp[52340]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(8,9)] Sep 20 15:25:43 mysql Keepalived_healthcheckers[52339]: TCP connection to [192.168.10.23]:tcp:3306 success. Sep 20 15:36:44 mysql Keepalived_vrrp[52340]: (VI_1) Backup received priority 0 advertisement Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: (VI_1) Entering MASTER STATE Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: (VI_1) setting protocol VIPs. Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 ps^C [root@mysql ~]# [root@mysql ~]# ps -ef | grep keepalived root 52337 1 0 15:25 ? 00:00:00 keepalived -D root 52339 52337 0 15:25 ? 00:00:00 keepalived -D root 52340 52337 0 15:25 ? 00:00:00 keepalived -D root 52760 51101 0 15:42 pts/0 00:00:00 grep keepalived [root@mysql ~]#
(VI_1) Entering MASTER STATE,backup機成爲Master,繼續爲系統提供mysql服務,測試成功。
重啓Master主機的mysql服務後,Master主機從新成爲master,備機從新成爲備機
[root@nginx ~]# [root@nginx ~]# service keepalived restasrt Usage: /etc/init.d/keepalived {start|stop|reload|restart|condrestart|status} [root@nginx ~]# service keepalived restart Stopping keepalived: [FAILED] Starting keepalived: [ OK ] [root@nginx ~]# [root@nginx ~]# [root@nginx ~]# [root@nginx ~]# tail -fn 10 /var/log/messages Sep 20 15:44:35 nginx Keepalived_healthcheckers[1409]: Gained quorum 1+0=1 <= 100 for VS [192.168.100.100]:tcp:3306 Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: Unknown keyword 'lvs_sync_daemon_inteface' Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: Assigned address 192.168.10.18 for interface eth1 Sep 20 15:44:35 nginx Keepalived_healthcheckers[1409]: Activating healthchecker for service [192.168.10.18]:tcp:3306 for VS [192.168.100.100]:tcp:3306 Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: Assigned address fe80::20c:29ff:fe69:6ec1 for interface eth1 Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: Registering gratuitous ARP shared channel Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: (VI_1) removing protocol VIPs. Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: (VI_1) Entering BACKUP STATE (init) Sep 20 15:44:35 nginx Keepalived_vrrp[1410]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(8,9)] Sep 20 15:44:36 nginx Keepalived_vrrp[1410]: (VI_1) received lower priority (90) advert from 192.168.10.23 - discarding Sep 20 15:44:41 nginx Keepalived_vrrp[1410]: (VI_1) received lower priority (90) advert from 192.168.10.23 - discarding Sep 20 15:44:41 nginx Keepalived_healthcheckers[1409]: TCP connection to [192.168.10.18]:tcp:3306 success. Sep 20 15:44:46 nginx Keepalived_vrrp[1410]: (VI_1) received lower priority (90) advert from 192.168.10.23 - discarding Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: (VI_1) Entering MASTER STATE Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: (VI_1) setting protocol VIPs. Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:50 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:55 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:55 nginx Keepalived_vrrp[1410]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:44:55 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:55 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:55 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:55 nginx Keepalived_vrrp[1410]: Sending gratuitous ARP on eth1 for 192.168.100.100 ^C [root@nginx ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:69:6e:c1 brd ff:ff:ff:ff:ff:ff inet 192.168.10.18/24 brd 192.168.10.255 scope global eth1 inet 192.168.100.100/32 scope global eth1 inet6 fe80::20c:29ff:fe69:6ec1/64 scope link valid_lft forever preferred_lft forever [root@nginx ~]#
[root@mysql ~]# [root@mysql ~]# tail -fn 20 /var/log/messages Sep 20 15:25:37 mysql Keepalived_vrrp[52340]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(8,9)] Sep 20 15:25:43 mysql Keepalived_healthcheckers[52339]: TCP connection to [192.168.10.23]:tcp:3306 success. Sep 20 15:36:44 mysql Keepalived_vrrp[52340]: (VI_1) Backup received priority 0 advertisement Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: (VI_1) Entering MASTER STATE Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: (VI_1) setting protocol VIPs. Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:45 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: (VI_1) Sending/queueing gratuitous ARPs on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:36:50 mysql Keepalived_vrrp[52340]: Sending gratuitous ARP on eth1 for 192.168.100.100 Sep 20 15:44:50 mysql Keepalived_vrrp[52340]: (VI_1) Master received advert from 192.168.10.18 with higher priority 100, ours 90 Sep 20 15:44:50 mysql Keepalived_vrrp[52340]: (VI_1) Entering BACKUP STATE Sep 20 15:44:50 mysql Keepalived_vrrp[52340]: (VI_1) removing protocol VIPs. ^C [root@mysql ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ad:ad:54 brd ff:ff:ff:ff:ff:ff inet 192.168.10.23/24 brd 192.168.10.255 scope global eth1 inet6 fe80::20c:29ff:fead:ad54/64 scope link valid_lft forever preferred_lft forever [root@mysql ~]#