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」。 |