Heartbeat高可用軟件服務--1.Heartbeat介紹(2)

五、Heartbeat 消息類型

     Heartbeat 高可用軟件在工作過程中,一般來說,有三種消息類型,具體爲:
           · 心跳消息
           · 集羣轉換消息
           · 重傳請求

心跳消息

     心跳消息爲約 150 字節的數據包,可能爲單播、廣播或多播的方式,控制心跳頻率及出現故障要等待多久進行故障轉換。


集羣轉換消息

     ip-request 和 ip-request-resp

     當主服務器恢復在線狀態時,通過 ip-request 消息要求備機釋放主服務器失敗時被服務器取得的資源,然後備份服務器關閉釋放主服務器失敗時取得的資源及服務。

     備服務器釋放主服務器失敗時取得的資源及服務後,就會通過 ip-request-resp 消息通知主服務器它不再擁有該資源及服務,主服務器收到來自備節點的 ip-request-resp 消息通知後,啓動失敗時釋放的資源及服務,並開始提供正常的訪問服務。


重傳請求

     rexmit-request 控制重傳心跳請求。此消息不太重要,細節就不浪費筆墨了。

     提示:以上心跳控制消息都使用 UDP 協議發送到 /etc/ha.d/ha.cf 文件制定的任意端口,或制定的多播地址,如果使用多播默認端口爲 694。


心跳實現方式及查看心跳消息

     heartbeat集羣心跳配置及mgmt調用修改方法
     集羣心跳可在文件etc/ha.d/ha.cf中進行配置,如下所示:

bcast eth0
ucast eth1 192.168.127.132

     心跳有如下四種類型:串口、廣播、多播、ucast,以下分別進行介紹:

#serial 串口名稱

   #serial /dev/cuaa0 # FreeBSD
   #serial /dev/cuad0 # FreeBSD 6.x
   #serial /dev/cua/a # Solaris

#廣播heartbeats的接口

       #bcast eth1 eth2 # Linux
       #bcast le0 # Solaris
       #bcast le1 le2 # Solaris

#設置一個多播心跳介質

       #[dev]發送/接收heartbeats的設備
       #[mcast group]加入到的多播組(D類多播地址224.0.0.0 - 239.255.255.255)
       #[port]端口用於發送/接收udp(設置這個值跟上面的udpport爲相同值)
       #[ttl]外流的heartbeats的ttl值。這個影響多播包能傳播多遠。(0-255)必須要大於0 。
       #[loop]爲多播heartbeat開關loopback。如果enabled,一個外流的包將被迴環到原處並由發送它的接口接收。(0或者1)設置這個值爲0。
       #mcast eth0 225.0.0.1 694 1 0

#配置一個unicast / udp heartbeat 介質

       #[dev]用於發送/接收heartbeat的設備
       #[peer-ip-addr]包被髮送到的對等的IP地址
       #ucast eth0 192.168.1.2

Heartbeat IP 地址接管和故障轉移

     Heartbeat 是通過 IP 地址接管和 ARP 廣播進行故障轉移的。

     ARP 廣播在主服務器故障時,備節點接管資源後,會立即強制更新所有客戶端本地的 ARP 表(即清除客戶端本地緩存的失敗服務器的 vip 地址和 mac 地址的解析記錄)。確保客戶端和新的主服務器對話。


七、VIP/IP 別名/輔助 IP


虛擬 IP

     虛擬 IP 即 VIP,在老男孩看來,這只是個概念而已,可能會誤導你,實際上就是 heartbeat 臨時綁定在物理網卡上的別名 IP(heartbeat3 以上也採用了輔助 IP),如 eth0:x ,x 爲 0-255 的任意數字,你可以在一塊網卡上綁定多個別名。這個 VIP 可以看作是你上網的 QQ 網名、暱稱、外號等,如:一提到老男孩,很多人都知道我,這個老男孩就是我的網名,在實際生產環境中,需要在 DNS 配置中把網站域名地址解析到這個 VIP 地址,由這個 VIP 對用戶提供服務。如: 把 www.baidu.com 解析到 VIP 211.100.98.99 上。

      這樣做的好處就是當提供服務的服務器宕機以後,在接管的服務器上回直接會自動配置上同樣的 VIP 提供服務。如果是使用管理 IP 的話,來回遷移就難以做到,而且,管理 IP 遷移走了。我們就只能取機房連接服務器了。 VIP 的實質就是確保兩臺服務器各有一個管理 IP 不懂,就是隨時可以連上機器,然後,增加綁定其他的 VIP,這樣就算 VIP 轉移走了,也不至於服務器本身連不上,因爲還有管理 IP 呢,讀者應該明白了吧?

     Linux 系統給網卡配置 VIP 的方法常見的有兩種,即別名 IP(alias ip)以及輔助 IP(secondary ip address)。

     the Linux kernel supports both IP aliases and secondary IP addresses, though IP aliases are deprecated in favor of secondary IP addresses.

     ip alias 和 secondary ip address 是兩種不同的實現方式,用來在 Linux 系統中給同一個物理網卡增加多個 ip 地址。

別名 IP (alias ip)

     ip alias 是由 Linux 系統的 ifconfig 命令來創建和維護的,別名 IP 就是在網卡設備上綁定的第二個及以上的 IP,例如:

     1. 手工配置別名 VIP 的方法
          ifconfig eth0:1 10.0.0.7 netmask 255.255.255.0 up # ip alias 這個配置是臨時的,重啓網卡就丟了。
          或者 ifconfig eth0:1 10.0.0.7/24 up

          #====> heartbeat 2 軟件默認是使用這個命令來添加 VIP 的

     2、手工查看 VIP 別名的方法
          使用別名的方法配置的 VIP,可通過 ifconfig 查看,也可以通過 ip add 查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章