簡介
-
keepalived是一個能實現高可用的軟件
-
什麼是高可用?
- 你可以理解爲是當系統中的某個組件發生故障後,系統依舊處於可用狀態的一種特性
-
keepalived如何實現高可用?
- 一種方式是熱備(建議百度)
-
舉個例子,現有數據一模一樣的服務器A和B
- 稍微解釋下
- vip是由keepalived生成的一個virtual ip
- 正常情況下,訪問vip就是訪問服務器A(一般我們叫服務器A叫主)
- 正常情況下,服務器B不對外提供服務(一般我們叫服務器B叫備)
- 此時keepalived正在不停地對服務器A和B進行偵查,看看哪臺有問題
- 當服務器A宕機後,keepalived會自動讓B來對用戶服務
- 稍微解釋下
- 當keepalived檢測到服務器A宕機後,自動讓B對用戶進行服務
- 此時,訪問vip就是訪問服務器B
- 當我們修好服務器A後,keepalived會自動地讓服務器A對用戶進程服務
安裝
安裝軟件
yum install -y keepalived
啓動與停止
- 以centos7爲例
systemctl start keepalived
systemctl stop keepalived
開機自啓動
systemctl enable keepalived
配置
基本配置
- keepalived默認配置文件是
/etc/keepalived/keepalived.conf
keepalived主配置
vrrp_instance VI_1 {
state MASTER # keepalived啓動時,把此設備當做主
interface bond0 # vip綁定的網口,你可以理解爲,訪問vip就是訪問這個ip
virtual_router_id 51 # 一個身份標識,簡稱vrid
priority 100 # 權重,權重高的爲主,主機的權重要比備機高
advert_int 1 # 檢查間隔,默認爲1秒
authentication { # 認證,主備要一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { # vip
192.168.1.100
}
}
-
keepalived備配置
state MASTER
–>state BACKUP
priority 100
–>priority 90
-
好,我們在來看下圖
- 再來解釋下
- vip來自配置文件的virtual_ipaddress
- 正常情況下,訪問vip就是訪問服務器A,因爲A的權重比B大
keepalived之間的通信
- keepalived之間通過vrrp協議通信
- 那麼可以通過抓包方式查看,如下
- 在服務器A上運行
tcpdump -s0 -i bond0 -n vrrp
可以看到
15:09:38.559031 IP 服務器A的IP > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20
- 意思是在vrid爲51的虛擬路由中,服務器A爲主,權重爲100
- 想要看得在詳細點可以用
tcpdump -s0 -i bond0 -n vrrp -vvv
15:31:27.908882 IP (tos 0xc0, ttl 255, id 40522, offset 0, flags [none], proto VRRP (112), length 40)
服務器A的IP > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20, addrs: 192.168.1.100 auth "1111^@^@^@^@"