1 項目經驗之Heartbeat

     聲明:如下僅爲我的的一些總結和隨寫,若有不對之處,還請看到的網友指出,以避免誤導。三克油!!!!!!!!!!!!!!!!!node

    前言:   mysql

                首先咱們得知道集羣(Cluster)是啥東東:用N臺服務器構成一個鬆耦合的多處理器系統(對外來講,他們就是一個服務器),它們之間經過網絡實現通訊。讓N臺服務器之間相互協做,共同承載一個網站的請求壓力。在集羣服務器架構中,當主服務器故障時,備份服務器可以自動接管主服務器的工做,並及時切換過去,以實現對用戶的不間斷服務。   linux

             heartbeat (Linux-HA)的工做原理:heartbeat最核心的包括兩個部分,心跳監測部分和資源接管部分,心跳監測能夠經過網絡鏈路和串口進行,並且支持 冗 餘鏈路,它們之間相互發送報文來告訴對方本身當前的狀態,若是在指定的時間內未收到對方發送的報文,那麼就認爲對方失效,這時需啓動資源接管模塊來接管運 行在對方主機上的資源或者服務。
sql

************************乾貨來啦*******************************************
vim

環境:紅帽企業6.5系統,關閉iptables和selinux
api

Node1:172.25.28.1(vm1.example.com) 
服務器

Node2:172.25.28.4(vm4.example.com)網絡

首先,請分別在node1和node2上面修改/etc/hosts解析文件
架構

                172.25.28.4 vm4.example.com
less

                172.25.28.1 vm1.example.com

下載實驗所需的rpm包: heartbeat-3.0.4-2.el6.x86_64.rpm   heartbeat-devel-3.0.4-2.el6.x86_64.rpm  ldirectord-3.9.5-3.1.x86_64.rpm     heartbeat-libs-3.0.4-2.el6.x86_64.rpm

接着在兩個node節點上面安裝軟件包:yum localinstall *.rpm (在rpm包所在的目錄下執行此操做)

具體配置過程以下:

[root@vm1 ha.d]# cd /etc/ha.d

[root@vm1 ha.d]# less README.config  查看主配文件下的README文件  

        ha.cf           Main configuration file  ( 主配置文件 )       haresources     Resource configuration file ( 資源配置文件)         authkeys        Authentication information  (  驗證信息 )   rpm -q heartbeat -d           ( 查找配置文件的具體路徑 )[root@vm1 ha.d]# rpm -q heartbeat -d      

           /usr/share/doc/heartbeat-3.0.4/authkeys   /usr/share/doc/heartbeat-3.0.4/ha.cf   /usr/share/doc/heartbeat-3.0.4/haresources

[root@vm1 ha.d]# cp /usr/share/doc/heartbeat-3.0.4/authkeys /usr/share/doc/heartbeat-3.0.4/ha.cf /usr/share/doc/heartbeat-3.0.4/haresources  ./    將配置文件複製到主配置目錄下

[root@vm1 ha.d]# vim ha.cf

    34         logfacility     local0       
     48         keepalive 2
 56             deadtime 30
61             warntime 10
71             initdead 60
76             udpport 694
91             bcast   eth0            # Linux
157           auto_failback on
211         node    vm1.example.com
212         node    vm4.example.com
220        ping 172.25.28.42
253     respawn hacluster /usr/lib64/heartbeat/ipfail  此處必定要將lib64路徑寫對,因爲此前忽略了,致使痛苦好長時間,沒法啓動heatbeat服務

[root@vm1 ha.d]# grep -v ^# ha.cf  logfacility 

  local0 keepalive 2      心跳頻率,本身設定。1:表示 1 秒;200ms:表示 200 毫秒

deadtime 30     節點死亡時間閥值,就是從節點在過了 30 後尚未收到心跳就認爲主節點死亡,本身設定

warntime 10     發出警告時間,本身設定

initdead 60      守護進程首次啓動後應該等待 60 秒後再啓動主服務器上的資源

udpport    694    心跳信息傳遞的 udp 端口,使用端口 694 進行 bcast 和 ucast 通訊,取默認值不要和別人衝突

bcast    eth0        # Linux         採用 udp 廣播播來通知心跳

auto_failback on                  當主節點恢復後,是否自動切回

node    vm1.example.com             主節點名稱,與 uname –n 保持一致。排在第一的默認爲主節點,因此不要搞措順序

node    vm2.example.com                   副節點名稱,與 uname –n 保持一致

ping 172.25.28.250                     加載ping模塊

respawn hacluster /usr/lib64/heartbeat/ipfail   此處必定要將lib64路徑寫對,因爲此前忽略了,致使痛苦好長時間,沒法啓動heatbeat服務

apiauth ipfail gid=haclient uid=hacluster          默認 heartbeat 並不檢測除自己以外的其餘任何服務,也不檢測網絡情況。 因此當網絡中斷時,並不會進行 Load Balancer 和 Backup 之間的切換。 能夠經過 ipfail 插件,設置'ping nodes'來解決這一問題,但不能使用一個集羣節點做爲 ping 的節點。

[root@vm1 ha.d]# vim haresources   修改資源文件

vm1.example.com IPaddr::172.25.28.100/24/eth0 mysqld

[root@vm1 ha.d]# vim authkeys    修改驗證信息

#

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!

安裝mysqld服務,不開啓,心跳服務自動開啓 修改認證文件的權限:[root@vm1 ha.d]# chmod 600 authkeys

將配置文件拷貝給另外一個node2節點:

[root@vm1 ha.d]# scp haresources authkeys ha.cf 172.25.28.4:/etc/ha.d/ 

開啓heartbeat 服務:

[root@vm1 ha.d]# /etc/init.d/heartbeat start

Starting High-Availability services: INFO:  Resource is stopped Done. 

若是出現問題,就差看日誌  tail -f /var/log/message  tail -f /var/log/ha-log  如今服務在主節點上運行着,若是主節點上的heartbeat當掉,服務自動切換到輔助節點上,若是主節點恢復正常,服務被接回。 開啓heartbeat後,mysql服務就會跟着自啓動,關掉heartbeat後,mysql服務就會跟着關掉。

使用ip addr 查看是否開啓虛擬ip 172.25.28.100

完畢!!!!!!!!!

相關文章
相關標籤/搜索