1、簡介
Heartbeat是一個守護進程,為client的集群基礎設施之間的成員及通信服務。它允許clients 掌握在其他server上的對等進程是否正在運行並可以和其他server進行通訊。
為方便使用,Heartbeat 守護進程被合並到集群資源管理器中(cluster resource manager CRM),CRM可以進行啟動停止相應服務來提供高高的可用性。這個CRM就是Pacemaker,一個高擴展性,具有豐富管理功能,並且支持Heartbeat和Corosync 集群的通訊層。
2、組件
2.1通訊模塊
提供強認證,本地有序的廣播
支持以下類型的網絡鏈路:
1、在ipv4中的UDP單播
2、ipv4中的中的udp廣播
3、ipv4中的UDP多播
4、串行鏈接(相比網絡來說,直接的串口鏈接是最安全的)
Heartbeat 可以在半秒內檢測node的故障。
heartbeat layer的API可以提供以下級別的服務:
1、向集群內的節點,發送和接受數據包
2、可配置的查詢
3、可以得知正在接受packet的Node的查詢和通知的連接信息
4、基本組的成員服務
2.2Cluster Consensus Membership
CCM 維護集群成員的一致性
2.3 Cluster Plumbing Library
2.4 ipc 進程間通訊
2.5 logging 守護進程
將日志信息記錄的系統日志中或者其他文件,或者兩者都有。這個守護進程是不間斷的,它只會摒棄那些落後太多的信息。
安裝:
3.1從源碼安裝:
需要的軟件包:heartbeat ,cluster-glue(包含Heartbeat的本地資源.LRM和 STONITH 插件,這個屬於附屬軟件,必須先安裝
3.1.1從源碼安裝cluster-glue
先決條件:
C編譯器(GCC),C的開發包
flex scanner generator ,the bison parser compiler;
net-snmp development headers(啟用snmp相關功能)
OpenIPMI development headers(啟用IPMI相關功能)
Python(只是一個語言接口,不需要頭文件)
# wget http://hg.linux-ha.org/glue/archive/glue-1.0.1.tar.bz2
# tar -vxjf glue-1.0.1.tar.bz2
安裝:
./autogen.sh
./configure
make
make install
安裝 heartbeat,(前期都准備好的話,基本不需要其他依賴包)
# wget http://hg.linux-ha.org/dev/archive/STABLE-3.0.4.tar.bz2
# tar -vxjf STABLE-3.0.4.tar.bz2
安裝:
$ ./bootstrap
$ ./configure
$ make
$ sudo make install
初始化配置:
以下文件必須存在:
/etc/ha.d/ha.cf—全局配置文件
/etc/ha.d/authkeys – 節點之間進行驗證
ha.cf 簡單的配置:
autojoin none
禁止cluster Node 自動發現其他Node,直接使用配置文件中已經列出的node list。加快cluster啟動過程。
配置文件詳解:
ha.cf
logfile /var/log/ha-log 日志存儲位置
crm yes (是否開啟crm 集群資源管理功能)
bcast eth1 指明心跳檢測在eth1上以廣播的形式進行。
Keepalive 2 心跳檢測間隔時間S。
Warntime 10 心跳延遲的時間,超過後在日志中進行記錄。
Deadtime 30 超過此時間,則認為對方 node 已經dead,如果是master的話,則進行角色切換
initdead 120 系統重啟過程中,等待時間(至少為deadtime的兩倍)
udpport 694 廣播通信使用的端口
baud 19200 設置串行通信的波特率
serial /dev/ttyS0 選擇串行通信設備,
ucast eth0 ip 使用 eth0 udp 單播的形式進行心跳檢測,
mcast eth0 ip 使用 eth0 多播的形式進行心跳檢測
返回欄目頁:http://www.bianceng.cn/OS/Linux/
auto_failback on 當master恢復後,是否將服務自動切回。stonith baytech /etc/ha.d/conf/stonith.baytech stonith的主 要作用是使出現問題的節點從集群環境中脫離,進而釋放集群資源,避免兩個節點爭 用一個資源的情形發生。保證共享數據的安全性和完整性。
watchdog /dev/watchdog #該選項是可選配置,是通過Heartbeat來監控系統的運 行狀態。使用該特性,需要在內核中載入"softdog"內核模塊,用來生成實際的設備文件, 如果系統中沒有這個內核模塊,就需要指定此模塊,重新編譯內核。編譯完成輸入 "insmod softdog"加載該模塊。然後輸入"grep misc /proc/devices"(應為10), 輸入"cat /proc/misc |grep watchdog"(應為130)。最後,生成設備文件: "mknod /dev/watchdog c 10 130" 。即可使用此功能。(在半秒內,能檢測到系統故障)
node node1 #主節點主機名,"uname -n"查看。
node node2 #備用節點主機名。
ping ip ping節點僅僅用來測試網絡連接。ping節點選擇的越好,HA集群就越強壯, 可以選擇固定的路由器作為ping節點,但最好不要選擇集群中的成員作為ping節點
資源文件: /etc/ha.d/haresources
文件格式: node-name network <resource-group>
Haresources 文件用於指定系統中的主節點、集群ip、子網掩碼、廣播地址以及啟動的服務等集群資源。文件每一行可以包含一個或多個資源腳本名,資源之間空格隔開。參數之間使用::隔開,在兩個ha節點上該文件必須完全一致。
Node-name 表示主節點的主機名,network 為 設定集群的ip地址、netmask 、device resource-group 用來指定需要Heartbeat 托管的服務,這樣heartbeat會根據腳本的名稱自動去/etc/init.d 或者 /etc/ha.d/resource.d 目錄下找到相應的腳本。
舉例:
Node 1 IPaddr::192.168.60.200/24/eth0/ Filesystem::/dev/sdb5::/web/data:ext3 httpd tomcat
Node 1 是HA集群的主節點,IPaddr 為heartbeat自帶的一個執行腳本,它首先執行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start 操作,虛擬出一虛擬ip(集群的ip地址)並指定使用的網絡接口是eth0,接著 heartbeat將共享磁盤分區的掛接操作,即:mount –t ext3 /dev/sdb5 /webdata 最後依次啟動httpd 和tomcat 服務。
注意點: master和slave中資源文件haresources 完全一樣。
認證文件 /etc/ha.d/authkeys
設定heartbeat的認證方式,三種認證,crc md5 sha1 不推薦 crc
Auth 1
1 md5
(必須保證主節點和備份節點的時間同步,相差10秒內是正常的)
本文出自 “技術成就夢想” 博客,請務必保留此出處http://weipengfei.blog.51cto.com/1511707/1058341