轉載請註明出處:
Keepalived是一個基於VRRP(虛擬路由冗餘協定)的開源軟體,用於在Linux系統上實現高可用性和負載均衡。它的主要功能是通過多臺伺服器之間的共同作業,確保在其中一臺伺服器發生故障時,另一臺伺服器可以接管其功能,並繼續提供服務,從而實現系統的高可用性。
常用功能:
虛擬IP(Virtual IP): Keepalived通過設定一個虛擬IP地址,將其繫結到多個伺服器上,使得這些伺服器可以共用一個IP地址。當主伺服器發生故障時,備份伺服器會接管該虛擬IP地址並繼續提供服務。
VRRP:Keepalived使用VRRP協定來實現伺服器之間的冗餘備份。VRRP協定定義了伺服器之間的選舉機制,主伺服器傳送心跳包以表明自己的存活狀態,備份伺服器監聽主伺服器的心跳包,一旦主伺服器失去響應,備份伺服器會接管其角色。
健康檢查(Health Checks): Keepalived可以週期性地對伺服器進行健康檢查,例如檢查伺服器上的某個埠是否正常執行,以確定伺服器的狀態。如果檢測到故障,Keepalived可以自動觸發故障轉移。
設定範例說明:
以下是一個簡單的Keepalived設定範例,假設有兩臺伺服器:Server A(IP地址為192.168.1.10)和Server B(IP地址為192.168.1.11),要實現故障轉移和負載均衡。
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER # 主伺服器設定為MASTER
interface eth0 # 使用的網路介面
virtual_router_id 51 # 虛擬路由ID,用於標識VRRP組
priority 100 # 主伺服器的優先順序較高
advert_int 1 # 傳送心跳包的時間間隔
authentication {
auth_type PASS
auth_pass password # 驗證密碼
}
virtual_ipaddress {
192.168.1.100 # 虛擬IP地址
}
}
virtual_server 192.168.1.100 80 { # 定義虛擬伺服器
delay_loop 6 # 檢查伺服器的時間間隔
lb_algo rr # 負載均衡演演算法,此處使用輪詢演演算法
lb_kind NAT # 負載均衡方式,此處使用NAT模式
persistence_timeout 50 # 連線保持時間
protocol TCP # 使用TCP協定
}
vrrp_instance VI_1 {
state BACKUP # 備份伺服器設定為BACKUP
priority 90 # 備份伺服器的優先順序較低
}
引數說明:
auth_type
: 這個設定項指定了身份驗證的型別。在範例中,PASS
表示使用基於密碼的身份驗證。還可以選擇其他選項,如AH
(基於身份驗證頭)或PASSAH
(同時使用密碼和身份驗證頭)等。auth_pass
: 這個設定項指定了用於身份驗證的密碼。在範例中,將password
替換為您要使用的實際密碼。使用這個設定,當兩個執行keepalived的主機之間建立VRRP通訊時,它們將相互驗證提供的身份驗證資訊是否匹配。如果身份驗證資訊不匹配,通訊將被拒絕,並且無法建立故障轉移。
在以上設定中,Server A被設定為主伺服器(MASTER)並具有較高的優先順序,Server B被設定為備份伺服器(BACKUP)並具有較低的優先順序。另外,虛擬IP地址被定義為192.168.1.100,並且將請求分發到兩臺伺服器上的埠80。且虛擬ip 也可以通過
當主伺服器(Server A)失去響應時,備份伺服器(Server B)會自動接管虛擬IP地址,從而實現故障轉移和高可用性。同時,請求會通過負載均衡演演算法分發到兩臺伺服器上,實現了負載均衡。