天天看點

LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

此篇部落格的基礎是配置DR的具體的虛拟環境已經配置完畢,詳情點選下面的網址檢視如何配置

https://blog.csdn.net/weixin_40543283/article/details/87794845

1.為什麼要進行健康檢查

在DR模式中我們設定的是輪詢模式,如果輪詢模式中的其中一台主機server2或者是server3或者兩台全部都挂了,那麼使用者通路的時候,這一次頁面是沒有問題的,但是很有可能下一次重新整理就出現了故障,是以我們需要進行一個健康檢查,當其中一台servre出現問題的時候,做到暫時在叢集中删除改server,當出現故障的server恢複其功能時,再将其加入到輪詢中,以保證整個群組的穩定可靠

2.怎麼實作LVS後端服務健康狀态檢查

實時檢查各Real Server的健康狀态,實作的方式很多,如四層TCP健康檢測、七層HTTP健康檢測,如通路某個端口、請求一個專用的服務接口等,也可用ldirectord、keepalived等高可用元件來實作,我們這裡使用ldirectord來實作

3.部署ldirectord健康檢查

1)server1

首先安裝ldirectord軟體,這裡我依舊使用ftp下載下傳到虛拟機,大家也可以使用scp等方法,點選下載下傳

yum install httpd -y
yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
           

然後檢視配置檔案

rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm
           
LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

這個軟體需要将配置檔案的主機闆拷到/etc/ha.d/,然後修改其中的配置為

cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d           ##拷貝檔案

vim /etc/ha.d/ldirectord.cf                    ##修改配置檔案

vim ldirectord.cf 
# Global Directives                 #“ 全局 ” 設定
checktimeout=3                      #指定定real server出錯的時間間隔
checkinterval=1                     #指定ldirectord在兩次檢查之間的時間間隔
autoreload=yes                      #自動重載配置檔案,選yes時,當配置檔案發生變化,自動載入配置資訊
quiescent=no                        
#當一個節點在 checktimeout 設定的時間周期内沒有響應是它是 “ 靜止的 ” (它的權重為0),當你設定了這個選項後,ldirectord 将 會從 IPVS 表中移除真實伺服器而不是 “ 停止 ” 它,從 IPVS 表移除節點将中斷現有的用戶端連接配接,并使 LVS 丢掉所有的連接配接跟蹤記錄和持續連接配接模闆,如果 你不将這個選項設定為 no,當某個節點崩潰時,對某些用戶端計算機而言可能會顯示為叢集關閉了,因為在這個節點崩潰前這些用戶端計算機被配置設定給它了,而連接配接跟蹤記錄和程式連接配接模闆仍然保留在Director上。
logfile="/var/log/ldirectord.log"   #設定ldirectord日志輸出檔案路徑
# Sample for an http virtual service
virtual=172.25.1.100:80              #VIP 位址和端口号
        real=172.25.1.2:80 gate      #指定RealServer位址和端口,同時設定LVS工作模式,gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。
        real=172.25.1.3:80 gate      #當所有的real server節點不能工作時,web服務重定向的位址
        fallback=127.0.0.1:80 gate     #當所有的real server節點不能工作時,web服務重定向的位址
        service=http            #指定服務類型,對http服務做負載均衡
        scheduler=rr           #指定排程算法,這裡是rr(輪叫)算法
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp                       #指出該服務使用的協定:tcp、udp 或 fwm
        checktype=negotiate                 #指定Ldirectord的檢測類型,預設為negotiate
        checkport=80                       #健康檢查使用的端口是 80
        request="index.html"
        #receive="Test Page"              #指定請求和應答字串
        #virtualhost=www.x.y.z            #虛拟伺服器的名稱
           

然後開啟服務

/etc/init.d/ldirectord start          ##開啟服務
           

4.測試:

1)當所有的伺服器正常的時候,是正常的輪詢的

LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

2)當其中一台主機server2壞掉的時候,會隻通路其中一台主機

LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

當server2恢複正常的時候,會恢複到輪詢模式

LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

3)當兩台主機都壞掉的時候,就會通路不到

LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

然而我們這裡為了看着友善,進行一個提示

/etc/init.d/httpd start

vim /var/www/html/index.html
網站正在維護中,清等待.....
           
LVS(linux虛拟機伺服器叢集系統)DR模式下的健康檢查

如圖,通路的人就知道是網站正在維護中了~

ok~

繼續閱讀