天天看點

備胎的養成記KeepAlived實作熱備負載

  但這樣的話有沒有發現所有請求都經過了HAproxy代理,自然當并發量越來越高時HAproxy就成了瓶頸,突發時HAproxy就會挂掉,或HAproxy伺服器出現故障,這時外部唯一的請求入口沒有了,怎麼辦?重新開機是個辦法,但還是需要搶修時間,這期間内客戶都無法通路損失的鍋又得程式猿來背。

備胎的養成記KeepAlived實作熱備負載

  這種情況下備胎出現了, Keepalived登場,他可以解決服務當機自動無縫切換。

Keepalived采用VRRP(virtual router redundancy protocol,虛拟路由備援協定)熱備份協定,以軟體的方式實作linux伺服器的多機熱備功能。VRRP是針對路由器的一種備份解決方案——由多台路由器組成一個熱備組。通過共用的虛拟IP位址對外提供服務;每個熱備組内同一時刻隻有一台主伺服器提供服務,其他伺服器處于備援狀态,若目前線上的伺服器失敗,其他伺服器會自動接替(優先級決定接替順序)虛拟IP位址,以繼續提供服務。 keepalived 預設需要使用D類多點傳播位址224.0.0.18 進行心跳通信 keepalived 使用vrrp協定(虛拟路由備援協定)進行通信(協定号碼為112)
備胎的養成記KeepAlived實作熱備負載

  Keepalived也可以與LVS、Nginx、MySQL等結合使用,形成可靠的主備機,給了你寶貴的搶修時間。

  下面來講如何一步步搭建。

  CentOS6.X

  HAProxy 1.7.3

  Keepalived 1.3.4

  用root使用者安裝

  若線上安裝不用下載下傳,可直接通過yum指令安裝(建議),不過需要聯網。

  去官網下載下傳 :http://www.keepalived.org/software/keepalived-1.3.4.tar.gz

  下載下傳後放進CentOS中的/usr/local/ 檔案夾中

  分兩種:

  1、線上裝:yum install -y ipvsadm keepalived (建議)

  2、安裝包;

  此處按照下載下傳好的安裝包操作:

  在此之前還需要設定主備機的時間一緻,可用ntpdate向時間伺服器同步,具體的方法有時間再詳細說明。

   修改keepalived.conf檔案配置

  具體配置内容:

  說明:

因為Keepalived在轉換狀态時會依照狀态來呼叫: 當進入Master狀态時會呼叫notify_master 當進入Backup狀态時會呼叫notify_backup 當發現異常情況時進入Fault狀态呼叫notify_fault 當Keepalived程式終止時則呼叫notify_stop

  配置中notify.sh:

  配置内容:

  其中chk_haproxy.sh

  添加内容:

  将以上三個檔案全部更改後 複制一份到備機;注意根據上述高亮描述進行更改。(非常重要)

  還要給chk_haproxy.sh和notify.sh執行腳本的權限。

   配置完後進行啟動keepalived 和haproxy,主備機均要啟動:

service keepalived start

   其它指令:

  down掉主機的haproxy,檢視haproxy監控通路VIP:192.168.80.32:8089/stats,看haproxy的ID是否有變化,然後重新開機主機的haproxy,再看haproxy的ID是否有變化。

   執行ip a檢視VIP在兩台機子上有變化

  虛拟IP必須與master 和 備機 在同一網段,經測試若虛拟IP與他們不在同一網段通路不了VIP。

  防止keepalived互搶IP的辦法,這個也有網有提出過,有相應的方法。

  主備機互作主備,即主機也是備機,可以做配置多個執行個體來實作。

  有網友測試出Keepalived限制死20個VIP問題,那這個是怎麼解決的。