指令碼核心思想:迴圈判斷當前rs狀態是否正常,正常,靜默等待下次迴圈;不正常,或刪除或新增
注意,此實驗環境為lvs-dr模式
可參考如下blog
lvs的dr模式搭建
指令碼內容:
#!/bin/bash
# vip=
10.10
.10.100
#集群虛擬ip
cport=
80#定義集群埠
fail_back=
127.0
.0.1
#本機回環位址
rs=("10.10.10.12"
"10.10.10.13"
)#編寫集群位址
declare -a rsstatus #變數rsstatus定義為數組態
rw=("2"
"1")
rport=
80#定義集群埠
type=g #制定lvs工作模式:g=dr m=nat
chkloop=
3 log=
/var/log/ipvsmonitor.log
addrs(
) delrs(
) checkrs(
) initstatus(
); do
if ipvsadm -l -n | grep "$i:$rport"&&
>
/dev/null ; then
rsstatus[$count]=1
else
rsstatus[$count]=0
filet count+
+ done
}initstatus
while
:; do
let count=
0for i in $
; do
if checkrs $i; then
if[ $-eq 0
]; then
addrs $i $
[ $? -eq 0]&
& rsstatus[$count]=1
&& echo "`date +'%f %h:%m:%s'`, $i is back."
>> $log
fielse
if[ $
-eq 1
]; then
delrs $i
[ $? -eq 0]&
& rsstatus[$count]=0
&& echo "`date +'%f %h:%m:%s'`, $i is gone."
>> $log
fifi
let count+
+ done
sleep 5
done
測試:
首先,lvs執行指令碼,監控伺服器的狀態
當rs正常時,集群採用的是輪詢的負載排程,可見與預期相符
此時,若某一台伺服器的http服務出現故障,lvs上應該刪除這個節點,且頁面不論如何重新整理,都跳轉至10.10.10.13
這個真實伺服器上
可見,與預期相符
當這個伺服器恢復後,節點正常新增進去
Keepalived高可用伺服器
準備三颱linux伺服器,兩台做web伺服器,並部署keepalived高可用軟體,一台作為客戶端主機,實現如下功能 使用keepalived實現web伺服器的高可用 web伺服器ip位址分別為192.168.4.10和192.168.4.20 web伺服器的漂移vip位址為192.168.4.80...
keepalived 高可用伺服器
keeplived主要包括三個模組 vrrp 多台路由器虛擬成一台路由器,通過給虛擬路由器配置ip從而實現閘道器的備份。和聚合連線對比 自動配置lvs 根據配置檔案自動建立和配置集群 健康檢查 對集群進行監督。目標 通過乙個ip位址192.168.4.80訪問兩台web伺服器,如下圖 1 為web1...
Keepalived 高可用伺服器
專案 二 keepalived 高可用伺服器 這個專案實現了web 的負載均衡功能,防止單點故障,提高 訪問速度。需要7臺linux伺服器,1臺做客戶端主機,一台dns伺服器,2臺排程伺服器高可用 3臺web伺服器 客戶端通過網路訪問web伺服器時,有一台 伺服器宕機或者出現故障時keepalive...