CentOS Heartbeat 高可用性叢集架設
HA=High Ability 即高可信度,意思就是不會中斷服務的架構!
做法就是用Cluster(叢集)方式來達到兩台主機彼此互相備援 雙方會互相偵測對方是否還活著
對整個架構來看,它是一台主機,對外共用一組IP,實際是由兩台電腦組成!
所以Cluster架構形成都會有下面幾個狀況:
1.兩台以上的主機
2.共用一種作業系統 ex:Linux or Windows
以下就來實作如何使用CentOS 5.4 架設 HA
網路架構如圖
A主機 (主要伺服器)
eth0:192.168.1.201 mask:255.255.255.0 GW:192.168.1.252
eth0:0:192.168.1.205 (這是虛擬ip heartbeat會自行建立)
eth1:10.0.0.5 mask:255.255.255.0 (網路線為跳線)
hostname:ha.abc.com.tw
B主機 (備援伺服器)
eth0:192.168.1.202 mask:255.255.255.0 GW:192.168.1.252
eth0:0:192.168.1.205 (這是虛擬ip heartbeat會自行建立)
eth1:10.0.0.6 mask:255.255.255.0 (網路線為跳線)
hostname:ha2.abc.com.tw
---------------------------------------
A & B 主機設定都是一樣
所需安裝套件如下:
heartbeat: HeartBeat的主控制程式,
heartbeat-gui: 圖形介面的HeartBeat叢集管理套件,
heartbeat-pils: 一個擴充與介面函數檔案的載入程式,
heartbeat-ldirectord: 用來監控高可用性資源及狀態的套件,
heartbeat-stonith: 防止裂腦的套件,但是必需搭配有序列埠的UPS使用,
heartbeat-devel: 開發套件。
A & B 主機都要安裝以上6個套件,可線上安裝
# yum install heartbeat
由於HeartBeat安裝時並未安裝設定檔,所以我們必須使用
# rpm –qd heartbeat
來找到3個設定檔,分別是authkeys、ha.cf、haresources,
找到設定檔之後複製到 /etc/ha.d/
# cd /usr/share/doc/heartbeat-2.1.3
# cp authkeys ha.cf haresources /etc/ha.d/
# vi /etc/ha.d/ha.cf
把以下前面的注解取消掉
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 40
warntime 20
initdead 180
udpport 694
baud 19200
serial /dev/ttyS0
bcast eth1
auto_failback on
node ha.abc.com.tw (需和uname -n名稱一樣)
node ha2.abc.com.tw (需和uname -n名稱一樣)
ping 192.168.1.252
ping_group group1 192.168.1.201 192.168.1.202 10.0.0.5 10.0.0.6
respawn hacluster /usr/lib/heartbeat/ipfail
# vi /etc/ha.d/haresources
ha.abc.com.tw IPaddr::192.168.1.205 httpd (所要啟動的服務必須要在/etc/init.d或/etc/ha.d/resource.d 資料夾找到)
# vi /etc/ha.d/authkeys
auth 1
1 crc
# chmod 600 authkeys
以上三個設定檔必須各個節點都要有,而且內容也要一致,要不然會導致HA叢集失效。
heartbeat 啟動時會自動啟動httpd 所以請先關閉 httpd service
最後就是直接啟動服務
# /etc/init.d/heartbeat start
啟動後輸入 ifconfig
就會看到虛擬IP eth0:0 為 192.168.1.205
在瀏覽器上輸入 http://192.168.1.205 就可以看到網頁了
接著把A主機網路線拔掉後 過幾分鐘 B主機也會主動模擬IP 192.168.1.205
最後把A主機網路線接回去 過幾分鐘 B主機會自動關閉httpd 和 eth0:0
這樣就架設成功了~~
留言