標籤:keepalived 高可用
一、VRRP(虛擬路由器冗餘協議)
虛擬路由冗餘協議(Virtual Router Redundancy Protocol,簡稱VRRP)是由IETF提出的解決區域網路中配置靜態網關出現單點失效現象的路由協議,1998年已推出正式的RFC2338協議標準。VRRP廣泛應用在邊緣網路中,它的設計目標是支援特定情況下IP資料流量失敗轉移不會引起混亂,允許主機使用單路由器,以及及時在實際第一跳路由器使用失敗的情形下仍能夠維護路由器間的連通性。
二、Keepalived
Keepalived是基於VRRP協議的進階應用程式,作用於網路層、傳輸層和應用程式層交換器制的處理高可用的軟體。
Keepalived的作用是檢測web伺服器的狀態,如果有一台web伺服器死機,或工作出現故障,Keepalived將檢測到,並將有故障的web伺服器從系統中剔除,當web伺服器工作正常後Keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的只是修複故障的web伺服器。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/3F/wKiom1c8CY6A72YDABPGPNExXlQ318.png" title="1.png" alt="wKiom1c8CY6A72YDABPGPNExXlQ318.png" style="float:none;width:300px;" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/80/3C/wKioL1c8Co3Cmqm0ABL0cQ3HLRE707.png" title="2.png" alt="wKioL1c8Co3Cmqm0ABL0cQ3HLRE707.png" style="white-space:normal;float:right;width:300px;" />
三、安裝Keepalived
[[email protected] ~]# yum -y install keepalived
在我們的網路環境中,keepalived存在於內網IP,如所示:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/80/42/wKioL1c8QP_DIOrOAABkQ9TB8uI477.png" title="QQ20160518-0.png" alt="wKioL1c8QP_DIOrOAABkQ9TB8uI477.png" />
配置內網IP,操作如下:(無需請忽略此步驟)
[[email protected] ~]# cd /etc/sysconfig/network-scripts[[email protected] network-scripts]# vi ./ifcfg-eth0DEVICE=eth0HWADDR=00:2B:00:2E:00:D0TYPE=EthernetUUID=ffffffff-ffff-ffff-ffff-ffffffffffffONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.9.12NETMASK=255.255.255.0GATEWAY=192.168.9.254[[email protected] network-scripts]# /etc/init.d/network restart
編輯Keepalived的設定檔:
[[email protected] ~]# vi /etc/keepalived/keepalived.confvrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.9.3 }}virtual_server 192.168.9.3 80 { delay_loop 6 lb_algo rr lb_kind NAT nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.9.12 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 } } real_server 192.168.9.13 80 { weight 1 HTTP_GET { url { path / status_code 200 } connect_timeout 3 } }}
.13伺服器上配置類似,就在此省略了,只是將status設為BACKUP
四、啟動Keepalived
[[email protected] ~]# /etc/rc.d/init.d/keepalived startStarting keepalived: [ OK ]
將會看到keepalived的啟動資訊,相關參數還有stop和restart
此時通過ifconfig是查看不到VIP資訊的,通過以下命令可以查看VIP是否綁定:
[[email protected] ~]# ip addr show eth0
同時,也可以查看守護線程的運行情況,通過以下命令查看:
[[email protected] ~]# tail -20 /var/log/messages
五、網路映射
當Keepalived運行起來後,發現curl內網IP: 192.168.9.3是可行的,但外網IP: 200.32.152.121無法訪問,顯示This site can‘t be reached. 通過與伺服器託管的網路團隊溝通,以如下簡化了的網路拓撲圖為例,發現192.168.9.x是在交換器層面的內網網段,而當前網段需要在防火牆層面可見,並且在防火牆上將外網IP:200.32.152.121綁定到我們的VIP:192.168.9.3上。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/3F/wKiom1c8CY6A72YDABPGPNExXlQ318.png" title="1.png" alt="wKiom1c8CY6A72YDABPGPNExXlQ318.png" style="float:none;" />
相關資料:
虛擬路由器冗餘協議_百度百科
Keepalived_百度百科
Keepalived官方指南
CentOS上的LVS配置
本文出自 “裡奧的技術日記” 部落格,請務必保留此出處http://shskey.blog.51cto.com/8310114/1774720
CentOS安裝Keepalived