CentOS 6.5 下keepalived服務的配置


CentOS 6.5 下keepalived服務的配置

參考網站:

http://zhangxugg-163-com.iteye.com/blog/1665419

http://www.2cto.com/os/201412/362685.html

http://outofmemory.cn/wiki/keepalived-configuration

本文使用兩台虛擬機進行Keepalived的配置,其中主Keepalived的Ip地址為192.168.178.2,

備Keepalived的Ip地址為192.168.178.3.

1         Keepalived工作原理

keepalived是集群管理中保證集群高可用的一個服務軟件,其功能類似於heartbeat,用來防止單點故障。

keepalived工作原理

keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協議

虛擬路由冗余協議,可以認為是實現路由器高可用的協議,即將N台提供相同功能的路由器組成一個路由器組,這個組里面有一個master和多個backup,master上面有一個對外提供服務的vip(該路由器所在局域網內其他機器的默認路由為該vip),master會發組播,當backup收不到vrrp包時就認為master宕掉了,這時就需要根據VRRP的優先級選舉一個backup當master。這樣的話就可以保證路由器的高可用了。

keepalived主要有三個模塊,分別是core、check和vrrp。core模塊為keepalived的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模塊是來實現VRRP協議的。

2         Keepalived的配置文件說明

keepalived只有一個配置文件keepalived.conf,里面主要包括以下幾個配置區域,分別是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

 

global_defs區域

主要是配置故障發生時的通知對象以及機器標識

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 DodeB

}

notification_email 故障發生時給誰發郵件通知。

notification_email_from 通知郵件從哪個地址發出。

smpt_server 通知郵件的smtp地址。

smtp_connect_timeout 連接smtp服務器的超時時間。

enable_traps 開啟SNMP陷阱(Simple Network Management Protocol)。

router_id 標識本節點的字條串,通常為hostname,但不一定非得是hostname。故障發生時,郵件通知會用到。

static_ipaddress和static_routes區域

static_ipaddress和static_routes區域配置的是是本節點的IP和路由信息。如果你的機器上已經配置了IP和路由,那么這兩個區域可以不用配置。一般情況下你的機器都會有IP地址和路由信息。

static_ipaddress {

10.210.214.163/24 brd 10.210.214.255 dev eth0

...

}

static_routes {

10.0.0.0/8 via 10.210.214.1 dev eth0

...

}

以上分別表示啟動/關閉keepalived時在本機執行的如下命令:

# /sbin/ip addr add 10.210.214.163/24 brd 10.210.214.255 dev eth0

# /sbin/ip route add 10.0.0.0/8 via 10.210.214.1 dev eth0

# /sbin/ip addr del 10.210.214.163/24 brd 10.210.214.255 dev eth0

# /sbin/ip route del 10.0.0.0/8 via 10.210.214.1 dev eth0

注意: 請忽略這兩個區域,因為你的機器肯定已經配置了IP和路由。

vrrp_script區域

用來做健康檢查的,當時檢查失敗時會將vrrp_instance的priority減少相應的值。

vrrp_script chk_http_port {

script "</dev/tcp/127.0.0.1/80"

interval 1

weight -10

}

以上意思是如果script中的指令執行失敗,那么相應的vrrp_instance的優先級會減少10個點。

 

vrrp_instance和vrrp_sync_group區域

vrrp_instance用來定義對外提供服務的VIP區域及其相關屬性。

vrrp_rsync_group用來定義vrrp_intance組,使得這個組內成員動作一致。舉個例子來說明一下其功能:

兩個vrrp_instance同屬於一個vrrp_rsync_group,那么其中一個vrrp_instance發生故障切換時,另一個vrrp_instance也會跟着切換(即使這個instance沒有發生故障)。

vrrp_sync_group VG_1 {

group {

inside_network   # name of vrrp_instance (below)

outside_network  # One for each moveable IP.

...

}

notify_master /path/to_master.sh

notify_backup /path/to_backup.sh

notify_fault "/path/fault.sh VG_1"

notify /path/notify.sh

smtp_alert

}

vrrp_instance VI_1 {

state MASTER

interface eth0

use_vmac <VMAC_INTERFACE>

dont_track_primary

track_interface {

eth0

eth1

}

mcast_src_ip <IPADDR>

lvs_sync_daemon_interface eth1

garp_master_delay 10

virtual_router_id 1

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 12345678

}

virtual_ipaddress {

10.210.214.253/24 brd 10.210.214.255 dev eth0

192.168.1.11/24 brd 192.168.1.255 dev eth1

}

virtual_routes {

172.16.0.0/12 via 10.210.214.1

192.168.1.0/24 via 192.168.1.1 dev eth1

default via 202.102.152.1

}

track_script {

chk_http_port

}

nopreempt

preempt_delay 300

debug

notify_master <STRING>|<QUOTED-STRING>

notify_backup <STRING>|<QUOTED-STRING>

notify_fault <STRING>|<QUOTED-STRING>

notify <STRING>|<QUOTED-STRING>

smtp_alert

}

notify_master/backup/fault 分別表示切換為主/備/出錯時所執行的腳本。

notify 表示任何一狀態切換時都會調用該腳本,並且該腳本在以上三個腳本執行完成之后進行調用,keepalived會自動傳遞三個參數($1 = "GROUP"|"INSTANCE",$2 = name of group or instance,$3 = target state of transition(MASTER/BACKUP/FAULT))。

smtp_alert 表示是否開啟郵件通知(用全局區域的郵件設置來發通知)。

state 可以是MASTER或BACKUP,不過當其他節點keepalived啟動時會將priority比較大的節點選舉為MASTER,因此該項其實沒有實質用途。

interface 節點固有IP(非VIP)的網卡,用來發VRRP包。

use_vmac 是否使用VRRP的虛擬MAC地址。

dont_track_primary 忽略VRRP網卡錯誤。(默認未設置)

track_interface 監控以下網卡,如果任何一個不通就會切換到FALT狀態。(可選項)

mcast_src_ip 修改vrrp組播包的源地址,默認源地址為master的IP。(由於是組播,因此即使修改了源地址,該master還是能收到回應的)

lvs_sync_daemon_interface 綁定lvs syncd的網卡。

garp_master_delay 當切為主狀態后多久更新ARP緩存,默認5秒。

virtual_router_id 取值在0-255之間,用來區分多個instance的VRRP組播。

注意: 同一網段中virtual_router_id的值不能重復,否則會出錯,相關錯誤信息如下。  

Keepalived_vrrp[27120]: ip address associated with VRID not present in received packet :

one or more VIP associated with VRID mismatch actual MASTER advert

bogus VRRP packet received on eth1 !!!

receive an invalid ip number count associated with VRID!

VRRP_Instance(xxx) ignoring received advertisment...

可以用這條命令來查看該網絡中所存在的vrid:tcpdump -nn -i any net 224.0.0.0/8

priority 用來選舉master的,要成為master,那么這個選項的值最好高於其他機器50個點,該項取值范圍是1-255(在此范圍之外會被識別成默認值100)。

advert_int 發VRRP包的時間間隔,即多久進行一次master選舉(可以認為是健康查檢時間間隔)。

authentication 認證區域,認證類型有PASS和HA(IPSEC),推薦使用PASS(密碼只識別前8位)。

virtual_ipaddress vip,不解釋了。

virtual_routes 虛擬路由,當IP漂過來之后需要添加的路由信息。

virtual_ipaddress_excluded 發送的VRRP包里不包含的IP地址,為減少回應VRRP包的個數。在網卡上綁定的IP地址比較多的時候用。

nopreempt 允許一個priority比較低的節點作為master,即使有priority更高的節點啟動。

首先nopreemt必須在state為BACKUP的節點上才生效(因為是BACKUP節點決定是否來成為MASTER的),其次要實現類似於關閉auto failback的功能需要將所有節點的state都設置為BACKUP,或者將master節點的priority設置的比BACKUP低。我個人推薦使用將所有節點的state都設置成BACKUP並且都加上nopreempt選項,這樣就完成了關於autofailback功能,當想手動將某節點切換為MASTER時只需去掉該節點的nopreempt選項並且將priority改的比其他節點大,然后重新加載配置文件即可(等MASTER切過來之后再將配置文件改回去再reload一下)。

當使用track_script時可以不用加nopreempt,只需要加上preempt_delay 5,這里的間隔時間要大於vrrp_script中定義的時長。

preempt_delay master啟動多久之后進行接管資源(VIP/Route信息等),並提是沒有nopreempt選項。

 

virtual_server_group和virtual_server區域

virtual_server_group一般在超大型的LVS中用到,一般LVS用不到這東西,因此不多說。

virtual_server IP Port {

    delay_loop <INT>

    lb_algo rr|wrr|lc|wlc|lblc|sh|dh

    lb_kind NAT|DR|TUN

    persistence_timeout <INT>

    persistence_granularity <NETMASK>

    protocol TCP

    ha_suspend

    virtualhost <STRING>

    alpha

    omega

    quorum <INT>

    hysteresis <INT>

    quorum_up <STRING>|<QUOTED-STRING>

    quorum_down <STRING>|<QUOTED-STRING>

    sorry_server <IPADDR> <PORT>

    real_server <IPADDR> <PORT> {

        weight <INT>

        inhibit_on_failure

        notify_up <STRING>|<QUOTED-STRING>

        notify_down <STRING>|<QUOTED-STRING>

        # HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK

        HTTP_GET|SSL_GET {

            url {

                path <STRING>

                # Digest computed with genhash

                digest <STRING>

                status_code <INT>

            }

            connect_port <PORT>

            connect_timeout <INT>

            nb_get_retry <INT>

            delay_before_retry <INT>

        }

    }

}

delay_loop 延遲輪詢時間(單位秒)。

lb_algo 后端調試算法(load balancing algorithm)。

lb_kind LVS調度類型NAT/DR/TUN

virtualhost 用來給HTTP_GET和SSL_GET配置請求header的。

sorry_server 當所有real server宕掉時,sorry server頂替。

real_server 真正提供服務的服務器。

weight 權重。

notify_up/down 當real server宕掉或啟動時執行的腳本。

健康檢查的方式,N多種方式。

path 請求real serserver上的路徑。

digest/status_code 分別表示用genhash算出的結果和http狀態碼。

connect_port 健康檢查,如果端口通則認為服務器正常。

connect_timeout,nb_get_retry,delay_before_retry分別表示超時時長、重試次數,下次重試的時間延遲。

3         Keepalived的安裝

[root@xldwhj]# cd /usr/local/src

[root@xldwhj]#wget http://www.keepalived.org/software/keepalived-1.2.6.tar.gz

[root@xldwhj]#tar zxf keepalived-1.2.6.tar.gz

[root@xldwhj]#cd keepalived-1.2.6

[root@xldwhj]#./configure --prefix=/usr/local/keepalived

[root@xldwhj]#make

[root@xldwhj]#make install

上述步驟中,可能為報錯,一般為缺少安裝keepalived所需要的依賴包,根據提示安裝缺少的依賴包,自重新編譯即可。

安裝完成后,還應進行如下操作:

1.  建立服務啟動腳本,以便使用service命令控制之

[root@xldwhj]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

[root@xldwhj]# chmod +x /etc/init.d/keepalived

因為我們使用非默認路徑(/usr/local)安裝keepalived, 故需要修改幾處路徑,以保證keepalived能正常啟動, 需要修改的文件如下:

2. 修改/etc/init.d/keepalived, 將. /etc/sysconfig/keepalived, 修改為:

. /usr/local/keepalived/etc/sysconfig/keepalived, 即指向正確的文件位置

同時在上述行下添加以下內容(將keepavlied主程序所在路徑導入到環境變量PATH中):

PATH="$PATH:/usr/local/keepalived/sbin"

export PATH

3. 修改/usr/local/keepalived/etc/sysconfig/keepalived文件,設置正確的服務啟動參數

KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"

4. 經過以上修改,keepalived基本安裝即可完成,啟動測試之:

[root@xldwhj]#service keepalived restart

5. 切勿忘記將此服務設置為開機啟動

[root@xldwhj]#chkconfig keepalived on

4         Keepalived主備配置

在這種模式下,虛擬IP在某時刻只能屬於某一個節點,另一個節點作為備用節點存在。當主點不可用時,備用節點接管虛擬IP,提供正常服務。

節點A的Ip為192.168.178.2(主節點),節點B的Ip為192.168.178.3(備用節點)。

 

節點A上的配置文件/usr/local/keepalived/etc/keepalived/keepalived.conf主要修改如下:

global_defs {

   notification_email {

     root@localhost

   }

   notification_email_from root@local host

   smtp_server localhost

   smtp_connect_timeout 30

   router_id  NodeA

}

 

vrrp_instance VI_1 {

    state MASTER   #指定A節點為主節點 備用節點上設置為BACKUP即可

    interface eth0   #綁定虛擬IP的網絡接口

    virtual_router_id 51  #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬於同一VRRP組

    priority 100   #主節點的優先級(1-254之間),備用節點必須比主節點優先級低

    advert_int 1   #組播信息發送間隔,兩個節點設置必須一樣

    authentication {   #設置驗證信息,兩個節點必須一致

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {   #指定虛擬IP, 兩個節點設置必須一樣

        192.168.200.16/24

        192.168.200.17 /24

        192.168.200.18 /24

    }

}

 

按同樣的方法配置節點B並修改配置文件,可將A節點的配置文件復制到B節點,並修改以下幾項:

router_id  NodeB

state   BACKUP

priority   99

4.1         Keepalived主備配置測試

主Keepalived命令

[root@xldwhj ~]# service keepalived start

Starting keepalived:                                       [  OK  ]

[root@xldwhj ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ef:76:a8 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.2/24 brd 192.168.178.255 scope global eth0

    inet 192.168.200.16/32 scope global eth0

    inet 192.168.200.17/32 scope global eth0

    inet 192.168.200.18/32 scope global eth0

    inet6 fe80::20c:29ff:feef:76a8/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:ef:76:b2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.129/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:feef:76b2/64 scope link

       valid_lft forever preferred_lft forever

可以在主Keepalived看到16,17,18的虛擬IP。

備Keepalived命令

[root@xldmysql ~]# service keepalived start

Starting keepalived:                                       [  OK  ]

[root@xldmysql ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:53:74:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.3/24 brd 192.168.178.255 scope global eth0

    inet6 fe80::20c:29ff:fe53:7485/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:53:74:8f brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.132/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:fe53:748f/64 scope link

       valid_lft forever preferred_lft forever

並沒有出現16,17,18的虛擬IP

主Keepalived命令

停止Keepalived服務

[root@xldwhj ~]# service keepalived stop

Stopping keepalived:                                       [  OK  ]

[root@xldwhj ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ef:76:a8 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.2/24 brd 192.168.178.255 scope global eth0

    inet6 fe80::20c:29ff:feef:76a8/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:ef:76:b2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.129/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:feef:76b2/64 scope link

       valid_lft forever preferred_lft forever

16,17,18的虛擬IP已不存在

備Keepalived命令

[root@xldmysql~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:53:74:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.3/24 brd 192.168.178.255 scope global eth0

    inet 192.168.200.16/32 scope global eth0

    inet 192.168.200.17/32 scope global eth0

    inet 192.168.200.18/32 scope global eth0

    inet6 fe80::20c:29ff:fe53:7485/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:53:74:8f brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.132/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:fe53:748f/64 scope link

       valid_lft forever preferred_lft forever

關閉主服務上的keepalived服務,觀察vip是否會漂移到備用服務,由上述查詢結果可知此時在備用服務器上查看到了漂移的vip地址。

此時啟動主keepalived服務,vip會自動漂移到主服務器。

由上可知,keepalived主備服務配置成功。

5         Keepalived主主配置

兩個節點的配置應該是交叉的,對同個虛擬IP,應該交叉互為主備。

 

對節點A(192.168.178.2)的關鍵配置如下:

vrrp_instance VI_1 {

     state MASTER

    interface eth0

     virtual_router_id 51   #本機兩個vrrp_instance組的此值不能相同,但對應備用節點的此值必須相同

     priority 100 #對應備用節點值應該比此值小

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.16

    }

}

 

vrrp_instance VI_2 {

     state BACKUP

    interface eth0

     virtual_router_id 52  #本機兩個vrrp_instance組的此值不能相同,但對應主節點的此值必須相同

     priority 90   #主節點的值應該比此值大

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.17

    }

}

 

節點B(192.168.178.3)的關鍵配置如下:

vrrp_instance VI_1 {

     state BACKUP

    interface eth0

     virtual_router_id 51

     priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.16

    }

}

 

vrrp_instance VI_2 {

     state MASTER

    interface eth0

     virtual_router_id 52

     priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.17

    }

}

5.1         Keepalived主主配置測試

從上面的配置文件中可以看出,實際上是增加了一個vrrp實例

測試過程同Keepalived,但是結果可能不同。

主Keepalived命令如下:

重新啟動keepalived服務

[root@xldwhj ~]# service keepalived restart

Stopping keepalived:                                       [  OK  ]

Starting keepalived:                                       [  OK  ]

[root@xldwhj ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ef:76:a8 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.2/24 brd 192.168.178.255 scope global eth0

    inet 192.168.200.16/32 scope global eth0

    inet6 fe80::20c:29ff:feef:76a8/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:ef:76:b2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.129/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:feef:76b2/64 scope link

       valid_lft forever preferred_lft forever

可以看出,虛擬Ip192.168.200.16存在

備Keepalived命令如下:

[root@xldmysql ~]# service keepalived restart

Stopping keepalived:                                       [  OK  ]

Starting keepalived:                                       [  OK  ]

[root@xldmysql html]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:53:74:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.3/24 brd 192.168.178.255 scope global eth0

    inet 192.168.200.17/32 scope global eth0

    inet6 fe80::20c:29ff:fe53:7485/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:53:74:8f brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.132/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:fe53:748f/64 scope link

       valid_lft forever preferred_lft forever

可以看出,虛擬Ip192.168.200.17存在

主Keepalived命令如下:

[root@xldwhj ~]# service keepalived stop

Stopping keepalived:                                       [  OK  ]

[root@xldwhj ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ef:76:a8 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.2/24 brd 192.168.178.255 scope global eth0

    inet6 fe80::20c:29ff:feef:76a8/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:ef:76:b2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.129/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:feef:76b2/64 scope link

       valid_lft forever preferred_lft forever

虛擬Ip192.168.200.16已不存在。

備Keepalived命令如下:

[root@xldmysql ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:53:74:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.3/24 brd 192.168.178.255 scope global eth0

    inet 192.168.200.17/32 scope global eth0

    inet 192.168.200.16/32 scope global eth0

    inet6 fe80::20c:29ff:fe53:7485/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:53:74:8f brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.132/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:fe53:748f/64 scope link

       valid_lft forever preferred_lft forever

虛擬Ip192.168.200.16自動漂移到備服務器。

[root@xldmysql ~]# service keepalived stop

Stopping keepalived:                                       [  OK  ]

You have new mail in /var/spool/mail/root

[root@xldmysql ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:53:74:85 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.3/24 brd 192.168.178.255 scope global eth0

    inet6 fe80::20c:29ff:fe53:7485/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:53:74:8f brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.132/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:fe53:748f/64 scope link

       valid_lft forever preferred_lft forever

備keepalived服務器關閉

主Keepalived命令:

[root@xldwhj ~]# service keepalived start

Starting keepalived:                                       [  OK  ]

[root@xldwhj ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ef:76:a8 brd ff:ff:ff:ff:ff:ff

    inet 192.168.178.2/24 brd 192.168.178.255 scope global eth0

    inet 192.168.200.16/32 scope global eth0

    inet 192.168.200.17/32 scope global eth0

    inet6 fe80::20c:29ff:feef:76a8/64 scope link

       valid_lft forever preferred_lft forever

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

    link/ether 00:0c:29:ef:76:b2 brd ff:ff:ff:ff:ff:ff

    inet 192.168.254.129/24 brd 192.168.254.255 scope global eth1

    inet6 fe80::20c:29ff:feef:76b2/64 scope link

       valid_lft forever preferred_lft forever

可以看出虛擬Ip192.168.200.17自動漂浮到主keepalived服務器上。

由上可知。keepalived主主配置已成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM