在前面的章節中,咱們學習了Keepalived簡介、原理、以及Keepalived 配置文件的詳細解讀;今天咱們經過幾個配置實例來幫助你們掌握Keepalived的高可用性。服務器
配置Keepalived實現單實例單IP自動漂移接管微信
yum -y install keepalived
須要在qll251和qll252兩臺服務器上同時安裝Keepalived網絡
vim /etc/keepalived/keepalived.conf
運維
配置文件詳細說明,參考:ide
這裏咱們只注意一點:服務器qll251 做爲實例VI_1的master,實例ID爲
60
,實例優先級150
,浮動IP地址爲10.43.187.201雲計算
vim /etc/keepalived/keepalived.conf
3d
systemctl start keepalived
注意:MASTER跟BACKUP節點都要啓動Keepalived服務
因爲VI_1實例中,qll251優先級高於qll252,所以qll251爲MASTER
在服務器qll251上,能夠看到虛擬IP10.43.187.201
而qll252做爲Keepalive備節點,無浮動ip:
(1)將qll251節點Keepalived服務中止,模擬MASTER宕機
(2)關閉qll251節點服務後,備節點接管綁定VIP
(3)經過日誌,查看Keepalived主備切換過程
經過日誌,發現備節點qll252已經接管綁定了
10.43.187.201
這個VIP,期間備節點發送ARP廣播,讓全部客戶端更新本地的ARP表,以便客戶端訪問
新接管VIP服務的節點。
此時備節點已接管VIP,若再次啓動主節點的Keepalived服務,主節點是否會接管回VIP?咱們驗證下
(啓動主節點qll251 Keepalived服務過程省略,咱們經過日誌觀察切換現象)
經過日誌得知:
因爲主節點優先級高於備節點,所以主節點搶佔爲MASTER,同時備節點成爲BACKUP,而且移除VIP。
以上遍實現了單實例Keepalived服務
IP自動漂移接管
;VIP漂移至新機器,用戶的訪問請求天然就會找新機器了。
前面給出的是Keepalived單實例主備模式的高可用演示;Keepalived還支持多實例多業務雙向主備模式,即A業務在qll251上是主模式,在qll252上是備模式,而B業務在qll251上是備模式,在qll252上是主模式,下面就以雙實例爲例講解不一樣業務實現雙主的配置。
下圖爲Keepalived雙實例雙主模式IP及VIP規劃表:
yum -y install keepalived
須要在qll251和qll252兩臺服務器上同時安裝Keepalived
[root@qll251 ~]# vim /etc/keepalived/keepalived.conf 14 state MASTER 15 interface eth0 16 virtual_router_id 60 17 priority 150 18 advert_int 1 19 authentication { 20 auth_type PASS 21 auth_pass 1111 22 } 23 virtual_ipaddress { 24 10.43.187.201/24 dev eth0 label eth0:1 25 } 26 } 27 28 vrrp_instance VI_2 { 29 state BACKUP 30 interface eth0 31 virtual_router_id 61 32 priority 100 33 advert_int 1 34 authentication { 35 auth_type PASS 36 auth_pass 1111 37 } 38 virtual_ipaddress { 39 10.43.187.202/24 dev eth0 label eth0:2 40 } 41 }
實例
VI_1
在qll251節點上的角色爲主
,實例VI_2
在qll251節點上的角色爲備
。
[root@qll252 ~]# vim /etc/keepalived/keepalived.conf 14 state BACKUP 15 interface eth0 16 virtual_router_id 60 17 priority 100 18 advert_int 1 19 authentication { 20 auth_type PASS 21 auth_pass 1111 22 } 23 virtual_ipaddress { 24 10.43.187.201/24 dev eth0 label eth0:1 25 } 26 } 27 28 vrrp_instance VI_2 { 29 state MASTER 30 interface eth0 31 virtual_router_id 61 32 priority 150 33 advert_int 1 34 authentication { 35 auth_type PASS 36 auth_pass 1111 37 } 38 virtual_ipaddress { 39 10.43.187.202/24 dev eth0 label eth0:2 40 } 41 }
實例
VI_1
在qll252節點上的角色爲備
,實例VI_2
在qll252節點上的角色爲主
。
若是您是手機閱讀的,配置文件查看起來應該不方便吧。這裏咱們就經過截圖對比下主備節點配置文件差異項:
經過對比能夠看出,主備節點配置文件實際就兩項區別:
首先關閉
qll251和qll252的Keepalived服務,而後再進行以下操做:
//在qll251上進行以下操做: [root@qll251 ~]# systemctl start keepalived [root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202" inet 10.43.187.201/24 scope global secondary eth0:1 inet 10.43.187.202/24 scope global secondary eth0:2 //因爲qll252還沒開服務,主備VIP都綁定在qll01上 //在qll252上進行以下操做: [root@qll252 ~]# systemctl start keepalived [root@qll252 ~]# ip a | egrep "10.43.187.201|10.43.187.202" inet 10.43.187.202/24 scope global secondary eth0:2 //開啓qll252服務,因爲在實例VI_2中其優先級高於qll251,所以VIP10.43.187.202綁定在qll252 //再次在qll251上進行以下操做: [root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202" inet 10.43.187.201/24 scope global secondary eth0:1 //qll251上只有10.43.187.201了
經驗證,咱們發現qll251,qll252主備節點已經實現了當任意一端宕機時,VIP能夠實現互相切換接管。在實際工做中,能夠把www.cloud.com解析到VIP 10.43.187.201提供服務,把bbs.cloud.com解析到10.43.187.202提供服務。固然,qll251,qll252也要配置相應服務,例如:Nginx反向代理服務等。
歡迎關注微信公衆號『開源Linux
』,專一於分享Linux/Unix相關內容,包括Linux運維、Linux系統開發、網絡編程、以及虛擬化和雲計算等技術乾貨。後臺回覆『學習
』,送你一套學習Linux的系列書籍,期待與你相遇。