溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

發(fā)布時間:2021-11-08 10:24:39 來源:億速云 閱讀:126 作者:柒染 欄目:建站服務(wù)器

這篇文章給大家介紹Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

配置heartbeat v2基于haresources配置文件的httpd高可用集群。

 ll  要求 

完全掌握heartbeat v2基于haresources配置文件的httpd高可用服務(wù)。

  前期準(zhǔn)備 

1、heartbeat服務(wù)主機(jī)規(guī)劃

主機(jī)接口ip服務(wù)用途
node1.chanedu.cometh0192.168.1.131

heartbeat

httpd

LAN數(shù)據(jù)轉(zhuǎn)發(fā)

eth2192.168.2.131心跳信息鏈路

vip192.168.1.180提供給外部訪問httpd的ip
node1.chanedu.cometh0192.168.1.132

heartbeat

httpd

LAN數(shù)據(jù)轉(zhuǎn)發(fā)

eth2192.168.2.132心跳信息鏈路
shared.chanedu.cometh0192.168.1.150nfsLAN數(shù)據(jù)轉(zhuǎn)發(fā)

2、架構(gòu)圖

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

3、配置yum源

rpm -ivh https://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm

4、同步時間

兩個節(jié)點的時間必須一致,可以使用網(wǎng)絡(luò)時間服務(wù)器或本地ntpd服務(wù)器同步事件,我這里直接同步網(wǎng)絡(luò)時間服務(wù)器

ntpdate 202.120.2.101

5、節(jié)點名稱和IP地址必須能互相解析,保證/etc/hosts文件中主機(jī)名的正反解析結(jié)果與‘uname -n’的名稱一致

分別在node1和node2中的/etc/hosts添加下面的名稱解析

echo "192.168.1.131    node1.chanedu.com    node1" >> /etc/hosts
echo "192.168.1.132    node2.chanedu.com    node2" >> /etc/hosts

6、配置節(jié)點心跳連接

node1和node2都使用eth2網(wǎng)卡互相連接,不經(jīng)過交換機(jī),直接用網(wǎng)線連接node1上的eth2和node2上的eth2,用作心跳檢測

node1上的eth2:192.168.2.131
node2上的eth2:192.168.2.132

在node1和node2兩臺主機(jī)上分別增加一條主機(jī)路由,實現(xiàn)兩臺主機(jī)檢測對端時通過eth2網(wǎng)卡來實現(xiàn)心跳檢測

在node1上添加:

route add -host 192.168.2.132 dev eth2
# 這條命令的意思是從node1訪問192.168.2.132(node2),走eth2網(wǎng)卡出去
echo "route add -host 192.168.2.132 dev eth2" >> /etc/rc.local

在node2上添加:

route add -host 192.168.2.131 dev eth2
# 這條命令的意思是從node1訪問192.168.2.131(node1),走eth2網(wǎng)卡出去
echo "route add -host 192.168.2.131 dev eth2" >> /etc/rc.local

7、為了保證通信安全,節(jié)點之間使用ssh密碼的方式進(jìn)行通信,可以使用“ssh-keygen -t  rsa”命令產(chǎn)生密鑰。

ssh-keygen -t rsa
ssh-copy-id root@192.168.1.132

  安裝heartbeat v2 

由于heartbeat-pils在CentOS-6.5后被cluster-glue取代了,所以需要手動解決依賴關(guān)系

1、解決依賴關(guān)系

yum install perl-TimeDate net-snmp-libs libnet PyXML
rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm

注意:libnet在epel源中

  node1、node2主機(jī)安裝httpd 

這里不演示

  shared主機(jī)安裝nfs 

這里不演示

  配置httpd高可用集群 

1、復(fù)制ha.cf、haresources、authkey這三個文件至/etc/ha.d文件中

cd /usr/share/doc/heartbeat-2.1.4/
cp ha.cf haresources authkeys /etc/ha.d/
cd /etc/ha.d/
ls
authkeys  ha.cf  harc  haresources  rc.d  README.config  resource.d  shellfuncs

2、配置heartbeat的基本參數(shù),直接編輯/etc/ha.d/ha.cf

vim /etc/ha.d/ha.cf 
grep -v "#" /etc/ha.d/ha.cf 
debugfile /var/log/ha-debug
logfile/var/log/ha-log
logfacilitylocal0
keepalive 1000ms
deadtime 8
warntime 4
initdead 60
udpport694
ucast eth2 192.168.1.132
auto_failback on
nodenode1.chanedu.com
nodenode2.chanedu.com
ping 192.168.1.1

這里有一點要注意,上面的ha.cf配置是node1上的,node2上的配置要修改單播地址

ucast eth2 192.168.1.131

3、配置heartbeat資源,定義node1為主節(jié)點,直接編輯/etc/ha.d/haresources

vim /etc/ha.d/haresources
node1.chanedu.com       192.168.1.180/24/eth0   httpd

以上的ip地址即是vip,是向外提供httpd服務(wù)的地址,子網(wǎng)掩碼為24位,從eth0接口配置別名

4、配置認(rèn)證文件,編輯/etc/ha.d/authkeys

chmod 600 /etc/ha.d/authkeys
openssl hand -hex 12
6107510ab21f17a41d377135
vim /etc/ha.d/authkeys
auth 2
#1 crc
2 sha1 6107510ab21f17a41d377135
#3 md5 Hello!

5、將ha.cf、haresources、authkeys這3各文件copy至node2的/etc/ha.d/目錄下,并保留文件權(quán)限

rsync -p /etc/ha.d/{
ha.cf,haresources,authkeys} root@192.168.1.132:/etc/ha.d/

6、設(shè)置node1和node2節(jié)點的httpd開機(jī)不自動啟動,并停止httpd服務(wù)。

service httpd stop
chkconfig httpd off

7、啟動heartbeat服務(wù)

在node1節(jié)點上啟動heartbeat服務(wù)并查看是否存在eth0:0

service heartbeat start

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

在node1上啟動node2的heartbeat服務(wù)

[root@node1 ha.d]# ssh node2 'service heartbeat start'
Starting High-Availability services: 
2017/05/08_23:46:22 INFO:  Resource is stopped
Done.
[root@node1 ha.d]# ssh node2 'ss -unl'
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
UNCONN     0      0                         *:694                      *:*     
UNCONN     0      0                         *:45373                    *:*

以上可以看到node2已經(jīng)監(jiān)聽在UDP:694上了,正明node2已經(jīng)成功啟動。

  客戶端訪問測試 

在客戶端訪問192.168.1.180

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

可以訪問,表示heartbeat的基本配置沒有問題。接下來模擬node1宕機(jī),這里直接停掉node1的heartbeat服務(wù),看下是否能直接跳轉(zhuǎn)到node2

root@node1 ha.d]# service heartbeat stop
Stopping High-Availability services: 
Done.

查看node2的IP地址,發(fā)現(xiàn)VIP資源已經(jīng)被node2接管了。

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

再次訪問客戶端,httpd資源也已經(jīng)轉(zhuǎn)移到node2節(jié)點。

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

  基于nfs共享存儲的httpd高可用 

配置集群服務(wù)中兩個節(jié)點共享后端NFS文件系統(tǒng)資源,將shared主機(jī)添加一個共享文件夾并修改屬主為apache用戶

cat /etc/exports 
  /www/htdocs    192.168.1.0/24(rw,no_root_squash,async)
setfacl -m u:apache:rwx /www/htdocs/
echo "<h2>Page in NFS Server.</h2>" > /www/htdocs/index.html

修改node1的haresources資源配置文件,指定掛載共享NFS文件系統(tǒng),并同步至node2節(jié)點的/etc/ha.d/目錄下

vim /etc/ha.d/haresources
node1.chanedu.com       192.168.1.180/24/eth0   Filesystem::192.168.1.180:/www/var/shared::/var/www/html/::nfs httpd
rsync /etc/ha.d/haresources root@192.168.2.132:/etc/ha.d/
ssh node2 'service heartbeat stop'
service heartbeat stop
service network restart
ssh node2 'service network restart'
service heartbeat start
ssh node2 'service heartbeat start'

在客戶端訪問192.168.1.180,成功訪問到了后端nfs共享存儲的頁面。

這里有一點需要注意,請確保node1和node2節(jié)點能夠成功掛載并shared主機(jī)的共享目錄,而后要使用curl命令訪問下本機(jī)的。這里最好測試下,如果你的CentOS或者Redhat是最小化安裝,默認(rèn)是沒有安裝nfs-client客戶端的,mount.nfs命令也就沒有,如果沒有就不能成功掛載nfs共享目錄,那么HA就無法生效。

在node1和node2節(jié)點上掛載/www/htdocs目錄至/var/www/html目錄。

mount -t nfs 192.168.1.150:/www/htdocs /var/www/html
[root@node1 heartbeat]# curl http://192.168.1.131
<h2> Page in NFS Server.</h2>
[root@node2 heartbeat]# curl http://192.168.1.132
<h2> Page in NFS Server.</h2>

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

停止node1的heartbeat服務(wù)

ssh node1 'service heartbeat stop'

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

在/usr/share/heartbeat/目錄下,有很多腳本文件,其中:

運行hb_standby腳本,指將自己變?yōu)閭涔?jié)點;比如在node1上運行hb_standby腳本,資源將被node2接管

運行hb_takeover腳本,指重啟對方節(jié)點;比如,node1已經(jīng)是備節(jié)點,在node1上運行hb_takeover腳本將重啟node2節(jié)點,此時,node1認(rèn)為node2宕機(jī),所以node1將重新接管資源。

這里不演示了,很簡單。

  總結(jié) 

1、基于haresources配置文件的heartbeat v2.x版本的httpd高可用集群實現(xiàn)起來是比較簡單的,但是它的功能畢竟有限,如果需要更強(qiáng)大的功能,pacemaker無疑是比較好的選擇。

2、因為最小化安裝centos的原因,node2節(jié)點沒有安裝nfs-client等軟件,沒有mount.nfs命令,導(dǎo)致測試到后面node1資源一致不能轉(zhuǎn)移到node2節(jié)點,排查了很多原因,最終找到罪魁禍?zhǔn)资莕ode2無法掛載nfs共享文件系統(tǒng)的緣故,自己不細(xì)心導(dǎo)致實驗時間變長,如果是在生產(chǎn)環(huán)境中,這種情況是不允許發(fā)生的。

關(guān)于Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI