這篇文章給大家介紹Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都網(wǎng)站設計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設的開發(fā),更需要了解用戶,從用戶角度來建設網(wǎng)站,獲得較好的用戶體驗。成都創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡公司,打造的就是網(wǎng)站建設產(chǎn)品直銷的概念。選擇成都創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務。
配置heartbeat v2基于haresources配置文件的httpd高可用集群。
ll 要求
完全掌握heartbeat v2基于haresources配置文件的httpd高可用服務。
前期準備
1、heartbeat服務主機規(guī)劃
主機 | 接口 | ip | 服務 | 用途 | |
node1.chanedu.com | eth0 | 192.168.1.131 | heartbeat httpd | LAN數(shù)據(jù)轉(zhuǎn)發(fā) | |
eth2 | 192.168.2.131 | 心跳信息鏈路 | |||
vip | 192.168.1.180 | 提供給外部訪問httpd的ip | |||
node1.chanedu.com | eth0 | 192.168.1.132 | heartbeat httpd | LAN數(shù)據(jù)轉(zhuǎn)發(fā) | |
eth2 | 192.168.2.132 | 心跳信息鏈路 | |||
shared.chanedu.com | eth0 | 192.168.1.150 | nfs | LAN數(shù)據(jù)轉(zhuǎn)發(fā) |
2、架構圖
3、配置yum源
rpm -ivh https://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm
4、同步時間
兩個節(jié)點的時間必須一致,可以使用網(wǎng)絡時間服務器或本地ntpd服務器同步事件,我這里直接同步網(wǎng)絡時間服務器
ntpdate 202.120.2.101
5、節(jié)點名稱和IP地址必須能互相解析,保證/etc/hosts文件中主機名的正反解析結(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)過交換機,直接用網(wǎng)線連接node1上的eth2和node2上的eth2,用作心跳檢測
node1上的eth2:192.168.2.131 node2上的eth2:192.168.2.132
在node1和node2兩臺主機上分別增加一條主機路由,實現(xiàn)兩臺主機檢測對端時通過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密碼的方式進行通信,可以使用“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取代了,所以需要手動解決依賴關系
1、解決依賴關系
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主機安裝httpd
這里不演示
shared主機安裝nfs
這里不演示
配置httpd高可用集群
1、復制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ǎng)掩碼為24位,從eth0接口配置別名
4、配置認證文件,編輯/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/目錄下,并保留文件權限
rsync -p /etc/ha.d/{ ha.cf,haresources,authkeys} root@192.168.1.132:/etc/ha.d/
6、設置node1和node2節(jié)點的httpd開機不自動啟動,并停止httpd服務。
service httpd stop chkconfig httpd off
7、啟動heartbeat服務
在node1節(jié)點上啟動heartbeat服務并查看是否存在eth0:0
service heartbeat start
在node1上啟動node2的heartbeat服務
[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
可以訪問,表示heartbeat的基本配置沒有問題。接下來模擬node1宕機,這里直接停掉node1的heartbeat服務,看下是否能直接跳轉(zhuǎn)到node2
root@node1 ha.d]# service heartbeat stop Stopping High-Availability services: Done.
查看node2的IP地址,發(fā)現(xiàn)VIP資源已經(jīng)被node2接管了。
再次訪問客戶端,httpd資源也已經(jīng)轉(zhuǎn)移到node2節(jié)點。
基于nfs共享存儲的httpd高可用
配置集群服務中兩個節(jié)點共享后端NFS文件系統(tǒng)資源,將shared主機添加一個共享文件夾并修改屬主為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主機的共享目錄,而后要使用curl命令訪問下本機的。這里最好測試下,如果你的CentOS或者Redhat是最小化安裝,默認是沒有安裝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>
停止node1的heartbeat服務
ssh node1 'service heartbeat stop'
在/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認為node2宕機,所以node1將重新接管資源。
這里不演示了,很簡單。
總結(jié)
1、基于haresources配置文件的heartbeat v2.x版本的httpd高可用集群實現(xiàn)起來是比較簡單的,但是它的功能畢竟有限,如果需要更強大的功能,pacemaker無疑是比較好的選擇。
2、因為最小化安裝centos的原因,node2節(jié)點沒有安裝nfs-client等軟件,沒有mount.nfs命令,導致測試到后面node1資源一致不能轉(zhuǎn)移到node2節(jié)點,排查了很多原因,最終找到罪魁禍首是node2無法掛載nfs共享文件系統(tǒng)的緣故,自己不細心導致實驗時間變長,如果是在生產(chǎn)環(huán)境中,這種情況是不允許發(fā)生的。
關于Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享題目:Linux中如何配置heartbeatv2基于haresources配置文件的httpd高可用集群
URL分享:http://www.rwnh.cn/article20/psghco.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、網(wǎng)站排名、網(wǎng)站改版、企業(yè)建站、微信公眾號、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)