Keepalived 雙機熱備

Keepalived 雙機熱備





大綱

         1 KeepaLived概述
                1.1 Keepalived的熱備方式
                1.2 Keepalived的安裝與服務控制
                1.3 使用Keepalived實現雙機熱備
         2 LVS+Keepalived高可用羣集
                2.1 配置主調度器
                2.2 配置從調度器
                2.3 配置Web節點服務器
                2.4 測試LVS+keepalived高可用羣集


1 KeepaLived概述

Keepalived是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換(Failover)和健康檢查(HeathChecking)功能html

——判斷LVS負載調度器、節點服務器的可用性,及時隔離並替換爲新的服務器,當故障主機恢復後將其從新加入羣集。


Keepalived概述及安裝
Keepalived的官方網站位於http://www.keepaltved.org/


1.1 Keepalived的熱備方式
Keepalived採用VRRP(Virtual Router Redundancy Protocol,虛擬路由冗餘協議)熱備份協議,以軟件的方式實現Linux服務器的linux

多機熱備功能。VRRP是針對路由器的一種備份解決方案——由多臺路由器組成一個熱備組,經過共用的虛擬ip地址對外提供服務;web

每一個熱備組內同一時刻只有一臺主路由器提供服務,其餘路由器處於冗餘狀態,若當前在線的路由器失效,算法

則其餘路由器會自動接替(優先級決定接替順序)虛擬IP地址,以繼續提供服務:
 


熱備組內的路由器之間進行轉移,因此也稱爲漂移IP地址。使用Keepalived時,漂移地址的實現不須要vim

手動創建虛接口配置文件(如eth0:0)而是由Keepalived根據配置文件自動管理。

1.2 Keepalived的安裝與服務控制
1)安裝支持軟件
在編譯安裝Keepallved以前,必須先安裝內核開發包kernel-devel,以及openss1一devel、popt-devel後端

等支持庫。除此以外,在LVS羣集環境中應用時,也須要用到rpvsadm管理工具。
瀏覽器



[root@Keep1 ~]# yum -y install kernel-devel openssl-devel popt-devel
......//省略部分信息
已安裝:
  kernel-devel.x86_64 0:2.6.32-504.12.2.el6        openssl-devel.x86_64 0:1.0.1e-30.el6.8      
  popt-devel.x86_64 0:1.13-7.el6                 
做爲依賴被安裝:
  keyutils-libs-devel.x86_64 0:1.4-5.el6          krb5-devel.x86_64 0:1.10.3-37.el6_6           
  libcom_err-devel.x86_64 0:1.41.12-21.el6        libselinux-devel.x86_64 0:2.0.94-5.8.el6      
  libsepol-devel.x86_64 0:2.0.41-4.el6            zlib-devel.x86_64 0:1.2.3-29.el6    
[root@Keep1 ~]# yum -y install keepalived    <==yum安裝
[root@Keep1 ~]# rpm -ivh / misc/cd/Paclcages/ipvsadm-1.25-9.e16.i686.rpm    <==rpm包安裝



2)編譯安裝Keepaived
使用指定的Linux內核位置對Keepalived進行配置,並將安裝路徑指定爲根目錄,這樣就無需額外建立連接文件了服務器

。配置完成後,依次執行make、makeinstall進行安裝。

網絡



[root@Keep1 ~]# tar zxf keepalived-1.2.2.tar.gz
[root@Keep1 ~]# cd keepalived-1.2.2
[root@Keep1 keepalived-1. 2. 2]# ./configure --prefix=/ --with-kernel-dir=負載均衡

/usr/stc/kernels/2.6.32-131.0.15.el6.i686
[root@Keep1 keepalived-1. 2. 2]# make
[root@Keep1 keepalived-1. 2. 2]# make install




3)使用Keepalived服務
執行make instal操做之後會自動生成/etc/lnit.d/keepalived腳本文件,但還須要手動添加爲系統服務

,這樣就可使用service,chkconfig工具來對Keepalived服務程序進行管理了。



[root@Keepalived ~]# ls -1 /etc/init.d/keepalived
-rwxr-xr-x 1 root root 1288 11月 8 16:23  /etc/init.d/keepalived
[root@Keep1 ~]# chkconfig --add keepalived
[root@Keep1 ~]# chkconfig keepalived on



1.3 使用Keepalived實現雙機熱備
基於VRRP協議的熱備方式,Keepalived能夠用做服務器的故障切換,每一個熱備組能夠有多臺服務器——

固然,最經常使用的就是雙機熱備了。在這種雙機熱備方案中故障切換主要針對虛擬IP地址的漂移來實現,

所以可以適用於各類應用服務器(不論是Web、FTP、Mail仍是SSH、DNS......)。
網絡拓撲:
 



主備服務器都須要安裝Keepalived,使用rpm或yum方式安裝httpd、vsftpd提供Web、FTP服務。
1)主服務器配置
Keepalived服務的配置目錄位於/etc/Keepalived/。其中Keepalived.conf是主配置文件;

另外包括一個子目錄samples/,提供了許多配置樣例參考。在Keepalived的配置文件中,

使用「global_defs {...}"區段指定全局參數,使用「vrrp_instance 實例名稱 {...}"區段指定VRRR熱備參數,

註釋文字以「!」符號開頭。



[root@Keep1 ~]# cd /etc/keepalived/
[root@Keep1 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@Keep1 keepalived]# vim keepalived.conf
global_defs {
    router_id HA_TEST_R1  //本路由器(服務器)的名稱
}
vrrp_instance VI_1 {         //指定VRRP熱備實例
    state MASTER             //熱備狀態,MASTER表示主服務器
    interface eth0           //承載VIP地址的物理接口
    virtual_router_id 1      //虛擬路由器的ID號,每一個熱備組保持一致
    priority 100             //優先級,數值越大優先級越高 
    advert_int 1             //通告間隔秒數(心跳頻率)
    authentication {         //認證信息,每一個熱備組保持一致
        auth_type PASS       //認證類型
        auth_pass 1111       //密碼字串
    }
    virtual_ipaddress {
        172.16.1.130         //指定漂移地址(VIP),能夠有多個
    }
}


確認配置無誤,而後啓動keepalived服務。實際狀態爲MASTER的主服務器將爲eth0接口自動添加VIP地址,

經過ip命令能夠查看(注:ifconfig看不到)



[root@Keep1 keepalived]# service keepalived start
[root@Keep1 keepalived]# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:88:9b:6a brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.128/24 brd 172.16.1.255 scope global eth0
    inet 172.16.1.130/32 scope global eth0     <==自動設置的VIP地址
    inet6 fe80::20c:29ff:fe88:9b6a/64 scope link
       valid_lft forever preferred_lft forever




2) 備用服務器的配置 

在同一個Keepalived熱備組內,全部服務器的Keepalived配置文件基本相同,包括路由器名稱,

虛擬路由器的ID號,認證信息,漂移地址,心跳頻率等。不一樣之處主要在於路由器名稱熱備狀態,優先級。
➣  路由器名稱(router_id):建議爲每一個參與熱備的服務器指定不一樣的名稱。
➣  熱備狀態(state):至少應有一臺主服務器,將狀態設爲MASTER;能夠有多臺備用的服務器,

將狀態設爲備用服務器。
➣  優先級(priority):數值越大則取得VIP控制權的優先級越高,所以主服務器的優先級應設爲最高;

其餘備用服務器的優先級可依次遞減,但不要相同,
     以避免在爭奪VIP控制權時發生衝突。
配置備用服務器(能夠有多臺)時能夠參考主服務器的keepalived.conf配置文件內容,只要修改路由器名稱,

熱備狀態,優先級就能夠了。



[root@Keep2 ~]# cd /etc/keepalived/
[root@Keep2 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@Keep2 keepalived]# vim keepalived.conf
global_defs {
    router_id HA_TEST_R2      //本路由器(服務器)的名稱
}
vrrp_instance VI_1 {         
    state BACKUP              //熱備狀態,BACKUP/SLAVE都表示備用服務器
    interface eth0            //承載VIP地址的物理接口
    virtual_router_id 1       //虛擬路由器的ID號,每一個熱備組保持一致
    priority 99               //優先級,數值越大優先級越高
    advert_int 1              //通告間隔秒數(心跳頻率)
    authentication {          //認證信息,每一個熱備組保持一致
        auth_type PASS        //認證類型
        auth_pass 1111        //密碼字串
    }
    virtual_ipaddress {
        172.16.1.130          //指定漂移地址(VIP),能夠有多個
    }
}


確認配置無誤,同樣須要啓動Keepalived服務。此時主服務器仍然在線,VIP地址實際上仍然由主服務器控制,

其餘服務器處於備用狀態,所以在備用服務器中將不會爲eth0添加接口VIP地址。



[root@Keep2 keepalived]# service keepalived start
[root@Keep2 keepalived]# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:88:9b:6a brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.128/24 brd 172.16.1.255 scope global eth0
    inet6 fe80::20c:29ff:fe88:9b6a/64 scope link
       valid_lft forever preferred_lft forever




3) 測試雙機熱備功能
Keepalived的日誌消息保存在/var/log/messages文件中,在測試主備故隆自動切換功能時,

能夠跟蹤此日誌文件來觀察熱備狀態的變化。以針對連通性、FTP和Web服務的測試爲例,主要操做以下所述:

一. 連通性測試
在客戶機中執行"ping -t 172.16.1.130",可以正常持續ping通,根據如下操做繼續觀察測試結果。


(1)禁用主服務器的eth0網卡發現ping測試只中斷了1-2個包即恢復正常說明已有其餘服務器接替VIP地址,

並及時響應客戶機請求。
 
(2)從新啓用主服務器的eth0網卡,發現ping測試再次中斷1-2個包即恢復正常,說明主服務器已恢復正常,

並奪回VIP地址的控制權。
 
二. FTP和Web訪問測試
在客戶機中訪問ftp://172.16.1.130、http://172.16.1.130,將看到由主服務器172.16.1.128提供的FTP目錄,

網頁文檔。

(1)禁用主服務器的eth0網卡,再次訪問上述FTP,Web服務將看到由備用服務器172.16.16.129提供的FTP目錄,

網頁文檔,說明VIP地址已切換至備用服務器。

(2)從新啓用主服務器的eth0網卡,再次訪問上述FTP,Web服務將看到從新由主服務器172.16.1.128提供的

FTP目錄,網頁文檔,說明主服務器已從新奪回控制權。

三. 查看日誌記錄
在執行主、備故障切換的過程當中,分別觀察各自的/var/log/messages日誌文件能夠看到MASTER,

SLAVE狀態的遷移記錄。

(1)主服務器中,狀態先變爲失效、放棄控制權,恢復後從新變爲MASTER。



[root@LVS keepalived]# less /var/log/messages




(2)備用服務器中,狀態先切換爲MASTER,待主服務器回覆後再交回控制權。


經過上述測試過程,能夠發現雙機熱備已經正常。客戶機只要經過VIP地址就能夠訪問服務器所提供的FTP、

Web等應用,其中任何一臺服務器失效,另外一臺服務器將會當即接替服務,從而實現高可用性。

實際應用中,注意主、備服務器所提供的FTP、WEB服務內容要保持相同。




2 LVS+Keepalived高可用羣集
Keepalived的設計目標是構建高可用的LVS負載均衡羣集,能夠調用ipvsadm工具來建立虛擬服務器,

管理服務器池,而不只僅用來作雙機熱備。使用

Keepalived構建LVS羣集更加簡便易用,主要優點體如今:對LVS負載調度器實現熱備切換,提升可用性;

對服務器池中的節點進行健康檢查自動移除失效節點,恢復後再從新加入。



在基於LVS+Keepalived實現的LVS羣集結構中,至少包括兩臺熱備的負載調度器,三臺以上的節點服務器,

下面將以DR模式的LVS羣集爲基礎增長一臺從負載調度器使用Keepalived來實現主從調度器的熱備從而構建兼

有負載均衡,高可用兩種能力的LVS網站羣集平臺。
網絡拓撲:
 

使用Keepalived構建LVS羣集時也須要用到ipvsadm管理工具,但大部分工做會由Keepalived自動完成,

不須要手動執行ipvsadm(除了查看和監控羣集之外)。下面主要是Keepalved的服務器池設置關於

NFS共享服務的配置。關於NFS共享服務器設置、Keepalived的熱備配置等請參考有關筆記。

2.1 配置主調度器
【LVS負載均衡配置部分】



[root@LVS+K1~]# modprobe ip_vs         <==加載ip_Vs模塊
[root@LVS+K1 ~]# yum -y install ipvsadm      <==安裝ipvsadm工具包
[root@LVS+K1 ~]# ipvsadm -A -t 172.16.1.130:80 -s rr      <==配置負載分配策略
[root@LVS+K1 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.131:80 -g -w 1
[root@LVS+K1 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.132:80 -g -w 1
[root@LVS+K1 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm    <==保存負載分配策略
[root@LVS+K1 ~]# cat /etc/sysconfig/ipvsadm      <==確認保存結果
[root@LVS+K1 ~]# chkconfig ipvsadm on    <==加入開機自啓動


#調整/proc響應參數(避免ARP包錯誤)


[root@LVS+K1 ~]# vim /etc/sysctl.conf
…… /省略部分信息
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
[root@LVS+K1 ~]# sysctl -p   <==讓配置生效
[root@LVS+K1 ~]# ipvsadm -Ln    <==查看節點狀態



【Keepalived雙擊熱備配置部分】

1)全局配置,熱備配置
首先應爲主,從調度器實現熱備功能,漂移地址使用LVS羣集的VIP地址。


[root@LVS+K1 ~]# yum -y install kernel-devel openssl-devel popt-devel      <==安裝內核開發包
[root@LVS+K1 ~]# yum -y install keepalived       <==安裝keepalived軟件包
[root@LVS+K1 ~]# chkconfig --add keepalived      <==建立爲系統服務服務
[root@LVS+K1 ~]# chkconfig keepalived on         <==加入開機自啓動
[root@LVS+K1 ~]# cd /etc/keepalived/
[root@LVS+K1 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@LVS+K1 keepalived]# vim keepalived.conf
global_defs {
    router_id LVS_HA_R1    //主調度器的名稱
}
vrrp_instance VI_1 {
    state MASTER           //主調度器的熱備狀態
    interface eth0
    virtual_router_id 51
    priority 100           //主調度器的優先級
    advert_int 1
    authentication {       //主、從熱備認證信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.1.130       //指定集羣VIP地址
    }
}



2)Web服務器池配置
在keepalived的熱備配置基礎上,添加「virtual_server VIP端口 {...}」區段來配置虛擬服務器。

主要包括對負載調度算法,羣集工做模式,健康檢查間隔,真實服務器地址等參數的設置。



root@LVS+K1 keepalived]# vi /etc/keepalived/keepalived.conf
virtual_server 172.16.1.130 80 {               //虛擬服務器地址(VIP)、端口
    delay_loop 15                              //健康檢查時間的間隔(秒)
    lb_algo rr                                 //輪詢(rr)調度算法
    lb_kind DR                                 //直接路由(DR)羣集工做模式
! persistence 60                             //鏈接保持時間(秒),若啓用請去掉!號
    protocol TCP                               //應用服務採用的是TCP協議
    real_server 172.16.1.131 80 {              //第一個Web節點的地址、端口
        weight 1                               //節點權重
        TCP_CHECK {                            //健康檢查方式
                connect_port  80               //檢查的目標端口
                connect_timeout  3             //鏈接超時(秒)
                nb_get_retry  3                //重試次數
                delay_before_retry  4          //重試間隔(秒)
            }
    }
    real_server 172.16.1.132 80 {              //第二個Web節點的地址、端口
        ......//省略部分信息
    }
     real_server 172.16.1.133 80 {             //第三個Web節點的地址、端口
        ......//省略部分信息
    }
     real_server 172.16.1.134 80 {             //第四個Web節點的地址、端口
        ......//省略部分信息
    }
}

3)從新啓動keepalived服務


[root@LVS+K1 keepalived]# service keepalived restart
[root@LVS+K1 keepalived]# ip addr show dev eth0    <==查看浮動IP是否添加成功
[root@LVS+K1 ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT    <==開放80端口讓客戶端可以訪問進來
[root@LVS+K1 ~]# service iptables restart


#在LVS調度服務器上開放80端口,只是爲了讓客戶機能有一個接口進來,而後在經過此接口鏈接到後端

真正的Web服務器的80端口調取數據,在LVS調度服務器上並不須要安裝httpd服務!

2.2 配置從調度器
從調度器的配置與主調度器基本相同,也包括全局配置,熱備配置,服務器池配置,只須要調整router_id,

state,priority參數便可,其他內容徹底相同。配置完之後重啓keepalived服務。

【LVS負載均衡配置部分】



[root@LVS+K2~]# modprobe ip_vs               <==加載ip_Vs模塊
[root@LVS+K2 ~]# yum -y install ipvsadm      <==安裝ipvsadm工具包
[root@LVS+K2 ~]# ipvsadm -A -t 172.16.1.130:80 -s rr        <==配置負載分配策略
[root@LVS+K2 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.131:80 -g -w 1
[root@LVS+K2 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.132:80 -g -w 1
[root@LVS+K2 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm      <==保存負載分配策略
[root@LVS+K2 ~]# cat /etc/sysconfig/ipvsadm      <==確認保存結果
[root@LVS+K2 ~]# chkconfig ipvsadm on            <==加入開機自啓動


#調整/proc響應參數(避免ARP包錯誤)


[root@LVS+K2 ~]# vim /etc/sysctl.conf
…… /省略部分信息
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
[root@LVS+K2 ~]# sysctl -p      <==讓配置生效
[root@LVS+K2 ~]# ipvsadm -Ln    <==查看節點狀態




【Keepalived雙擊熱備配置部分】

1)全局配置,熱備配置
首先應爲主,從調度器實現熱備功能,漂移地址使用LVS羣集的VIP地址。



[root@LVS+K2 ~]# yum -y install kernel-devel openssl-devel popt-devel      <==安裝內核開發包
[root@LVS+K2 ~]# yum -y install keepalived       <==安裝keepalived軟件包
[root@LVS+K2 ~]# chkconfig --add keepalived      <==建立爲系統服務服務
[root@LVS+K2 ~]# chkconfig keepalived on         <==加入開機自啓動
[root@LVS+K2 ~]# cd /etc/keepalived/
[root@LVS+K2 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@LVS+K2 keepalived]# vim /etc/keepalived/keepalived.conf
global_defs {
    router_id LVS_HA_R2       //備份調度器的名稱
}
vrrp_instance VI_1 {
    state BACKUP       //備份調度器的熱備狀態
    interface eth0
    virtual_router_id 51
    priority 99       //備份調度器的優先級
    advert_int 1
    authentication {      
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.1.130     //指定集羣VIP地址
    }
virtual_server 172.16.1.130 80 {               //虛擬服務器地址(VIP)、端口
    delay_loop 15                              //健康檢查時間的間隔(秒)
    lb_algo rr                                 //輪詢(rr)調度算法
    lb_kind DR                                 //直接路由(DR)羣集工做模式
! persistence 60                             //鏈接保持時間(秒),若啓用請去掉!號
    protocol TCP                               //應用服務採用的是TCP協議
    real_server 172.16.1.131 80 {              //第一個Web節點的地址、端口
        weight 1                               //節點權重
        TCP_CHECK {                            //健康檢查方式
                connect_port  80               //檢查的目標端口
                connect_timeout  3             //鏈接超時(秒)
                nb_get_retry  3                //重試次數
                delay_before_retry  4          //重試間隔(秒)
            }
    }
    real_server 172.16.1.132 80 {              //第二個Web節點的地址、端口
        ......//省略部分信息
    }
     real_server 172.16.1.133 80 {             //第三個Web節點的地址、端口
        ......//省略部分信息
    }
     real_server 172.16.1.134 80 {             //第四個Web節點的地址、端口
        ......//省略部分信息
    }
}
[root@LVS+K2 keepalived]# service keepalived restart
[root@LVS+K2 keepalived]# ip addr show dev eth0    <==查看浮動IP是否添加成功
[root@LVS+K2 ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT    <==開放80端口讓客戶端可以訪問進來,

無需安裝httpd服務
[root@LVS+K2 ~]# service iptables restart




2.3 配置Web節點服務器
根據所選擇的集羣工做模式不一樣(DR或NAT),節點服務器的配置也有差別。以DR模式爲例,

除了須要調整/proc系統的ARP響應參數之外,還須要爲虛接口lo:0配置VIP地址,並添加一條到VIP的本地路由,具體方法參照LVS設置筆記。
1)安裝httpd服務



[root@www1 ~]# yum -y install httpd 
[root@www1 ~]# cd /etc/sysconfig/network-scripts/
[root@www1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@www1 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=172.16.1.130
NETMASK=255.255.255.255     <==注意子網掩碼必須全爲1
ONBOOT=yes
[root@www1 network-scripts]# ifup lo:0
[root@www1 network-scripts]# ifconfig lo:0
lo:0      Link encap:Local Loopback 
          inet addr:172.16.1.130  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
[root@www1 ~]# vi /etc/rc.local 
/sbin/route add -host 172.16.1.130 dev lo:0     <==添加VIP本地訪問路由
[root@www1~]#route add -host 172.16.1.130 dev lo:0




2)調整/proc響應參數

[root@www1 ~]# vim /etc/sysctl.conf
…… /省略部分信息
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@www1 ~]# sysctl -p


3)安裝httpd,建立測試網頁


[root@www1 ~]# mount 192.168.1.100:/opt/wwwroot /var/www/html     <==若是有NFS就掛載,

沒有就忽略此命令
[root@www1 ~]# vi /var/www/html/index.html
<h1>LVS負載均衡羣集——測試網頁/<h1>
[root@www1 ~]# service httpd start
[root@www1 ~]# chkconfig httpd on
[root@LVS+K2 ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT    <==開放80端口爲客戶端提供httpd服務
[root@LVS+K2 ~]# service iptables restart


4)測試LVS+keepalived高可用羣集
在客戶機的瀏覽器中,可以經過LVS+keepalived集羣的VIP地址(172.16.1.130)正常訪問web頁面內容。

當主,從調度器任何一個失效時,Web站點任然能夠訪問(可能須要刷新或從新打開瀏覽器);

只要服務器池有兩臺以上的真實服務器可用,就能夠實現訪問量的負載均衡。
經過主、從調度器的/var/log/messages日誌文件,能夠跟蹤故障切換過程;若要查看負載分配狀況,

可執行「ipvsadm -Ln」、「ipvsadm -Lnc」等操做命令。

最終以驗證LVS+keepalived高可用羣集是否成功運行。


#客戶機經過網頁訪問http://172.16.1.130,能夠看到由Web服務器提供的網頁內容,

多刷新幾回而後到LVS主調度器上查看負載均衡狀況:
 

#當前LVS備用調度器處於監控狀態,並無正式工做,因此上面並無負載均衡記錄:

 



#手動將LVS主調度器關機(或者斷開eth0鏈接),而後再次刷新網頁。

若是能瀏覽到網頁內容說明已經成功切換到LVS備用調度器上,而後查看LVS備用調度器的負載均衡狀況:
 



#在LVS主服務器宕機或斷開鏈接的狀況下,客戶機打開網頁發現仍然能夠繼續訪問Web服務器提供的網頁,

此時的網站負載均衡功能由LVS備用服務器提供:
 



注意:當LVS主服務器修復上線後,會再次奪取控制權,而LVS備用服務器也將回到監聽狀態。






**********LVS負載均衡失敗排查思路***********
➣  首先使用「ipvsadm -Ln」查看負載分配策略的ip和端口是否正確
➣  檢測iptables防火牆端口是否開放
➣  SElinux機制是否關閉
➣  網絡是否通暢,多重啓幾回服務「service ipvsadm restart」


**********Keepalived雙機熱備切換失敗排查思路***********
➣  檢測主調度服務器和備份調度服務器的/etc/keepalived/keepalived.conf配置文件是否正確。
➣  若是將eth0等端口重啓過,必定要記得重啓一下keepalived服務,「service keepalived restart」。

雖然已經將keepalived服務加入了開機自啓動,可是重啓網卡後浮動ip(VIP)就會丟失,

必須重啓網卡才能從新創建好浮動IP,可使用「ip add show dev eth0」命令查看浮動IP是否創建成功:

[root@LVS+K1 ~]# ip add show dev eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:88:9b:6a brd ff:ff:ff:ff:ff:ff    inet 172.16.1.128/24 brd 172.16.1.255 scope global eth0    inet 172.16.1.130/32 scope global eth0    inet6 fe80::20c:29ff:fe88:9b6a/64 scope link       valid_lft forever preferred_lft forever
➣  上面兩條都檢查無誤但仍是失敗的話建議重啓服務器試試「reboot」。
相關文章
相關標籤/搜索