Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現了一個高可用集群系統。心跳服務和集群通信是高可用集群的兩個關鍵組件,在 Heartbeat 項目里,由 heartbeat 模塊實現了這兩個功能。本實驗實現web伺服器的主備雙熱備份系統Linux系統:Linux6.8規劃:2台... ...
Heartbeat 項目是 Linux-HA 工程的一個組成部分,它實現了一個高可用集群系統。心跳服務和集群通信是高可用集群的兩個關鍵組件,在 Heartbeat 項目里,由 heartbeat 模塊實現了這兩個功能。
本實驗實現web伺服器的主備雙熱備份系統
Linux系統:Linux6.8
規劃:2台主機做集群
目錄:
1、修改主機名,並設置主機名解析
2、建立SSH互信,ssh-keygen
3、NTP時間同步
4、安裝heartbeat軟體
5、heartbeat服務配置
6、啟動服務,進行測試-編寫網站頁面
1、修改主機名,並設置主機名解析
配置信息
NA1
vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=na1.server.com vim /etc/hosts 添加 192.168.94.129 na1 na1.server.com 192.168.94.130 na2 na2.server.comNA2
vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=na2.server.com vim /etc/hosts 添加 192.168.94.129 na1 na1.server.com 192.168.94.130 na2 na2.server.com
測試效果
在NA1和NA2上進行測試,ping na1 | ping na2
2、建立SSH互信,ssh-keygen
配置信息
NA1
ssh-keygen -t rsa -f ./.ssh/id_rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub [email protected]NA2
ssh-keygen -t rsa -f ./.ssh/id_rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub [email protected]
測試效果
分別ssh對方,不需要輸入密碼
3、NTP時間同步
配置信息
我們沒有時間伺服器,為了2台設備能夠穩定,我們採用NA1作為ntp伺服器。
NA1
vim /etc/ntp.conf修改內容如下
啟動服務
service ntpd start chkconfig ntpd onNA2
NA2的時間需要和NA1進行同步,因此關閉NA2的ntp服務,同步NA1的時間。
關閉服務
service ntpd stop chkconfig ntpd off同步時間
由於沒法每次手動同步時間,我們需要寫一個計劃任務,定期同步時間
時間同步計劃
crontb -e 添加 */5 * * * * /sbin/ntpdate na1 &> /dev/null每5分鐘同步一次
4、安裝heartbeat軟體
安裝軟體之前建議對系統備份一次,避免安裝失敗,又得從頭再來。
下載安裝包,這裡我使用epel的yum進行安裝。
NA1和NA2都進行安裝
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm -y安裝heartbeat
yum install heartbeat*
5、heartbeat服務配置
heartbeat有3個主要配置文件
1、秘鑰文件 authkeys,該文件許可權要為600,不然服務啟動會失敗。
2、服務配置文件 ha.cf
3、資源管理配置文件 haresources
配置文件路徑為/etc/ha.d
預設這個路徑下沒有配置文件,有個配置樣例,在/usr/share/doc/heartbeat-*.*.*/路徑下,*是你安裝的版本號。
cd /etc/ha.d/ cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} ./
設置網站主備
NA1
1、秘鑰文件設置
vim /etc/ha.d/authkeys使用md5,隨便計算一個md5值。
2、服務配置
vim /etc/ha.d/ha.cf在eth1介面上進行廣播
添加集群節點(這裡的名字必須和主機uname -n一致)
3、資源管理配置
vim /etc/ha.d/sharesources
NA2將NA1的配置文件複製過來即可。
配置完成之後,我們將三個配置文件複製到NA2上
scp authkeys haresources ha.cf na2:/etc/ha.d/
7、啟動服務,進行測試
首先停止並且關閉開機自啟httpd服務。
NA1&NA2
service httpd stop chkconfig httpd off
編寫網站頁面
NA1
echo "<h1>na1.server.com</h1>" >> /var/www/html/index.htmlNA2
echo "<h1>na2.server.com</h1>" >> /var/www/html/index.html
啟動heartbeat服務
NA1&NA2
service heartbeat start
結果查看
NA1上查看日誌消息
查看埠服務
現在NA1是主服務節點
訪問VIP192.168.94.222
模擬NA1故障,使用內置腳本hb_standby,將NA1修改為從節點。
將NA1改為從節點
訪問VIP192.168.94.222
現在NA2為主,NA2提供web服務。
查看埠狀態
NA1
NA2
現在我們NA2是主節點,我們在換回來,讓NA1當主。
NA2
[root@na2 ~]# /usr/share/heartbeat/hb_standby Going standby [all]. [root@na2 ~]#
模擬真實故障,我們把NA1關機測試。
NA1關機後,NA2變為了主節點,為客戶端提供服務,能夠實現備雙熱備份系統。
讀書和健身總有一個在路上