heartbeat 非聯網安裝(通過配置本地yum文件庫安裝heartbeat)
軟件環境:centos6.5
一、下載rpm包
首先找一臺聯網的centos6.5機器
安裝epel擴展源:
yum install -y epel-release
安裝yum-plugin-downloadonly:
yum install yum-plugin-downloadonly
安裝完就可以使用yum只下載不安裝功能了
yum install --downloadonly --downloaddir=*** -y ***
downloadonly:只下載模式;downloaddir:指定下載目錄;-y後面是要安裝的軟件(會下載下來該軟件的rpm包及相關依賴包)
創建createrepo文件夾(用於配置本地yum源):
cd /opt/ mkdir createrepo
下載createrepo相關軟件包:
yum install --downloadonly --downloaddir=/opt/createrepo/ -y createrepo
在/opt/下創建rpm文件夾:
mkdir rpm
下載heartbeat、libnet、nginx包 :
yum install --downloadonly --downloaddir=/opt/rpm/ -y heartbeat* libnet* nginx
截圖是一部分
二、配置本地yum源
進入到createrepo文件夾下:
cd /opt/createrepo/
按照如上順序安裝createrepo:
rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
安裝 libxml2-2.7.6-21.el6_8.1.x86_64.rpm 時 報如下錯誤:
說明包有沖突,把原來的包卸載:
yum -y remove libxml2-2.7.6-14.el6.x86_64
竟然報錯!可能要卸載的依賴項包含yum或正在被yum使用,無法卸載
只卸載 libxml2-2.7.6-14.el6.x86_64,忽略依賴項,使用“–nodeps”參數
rpm -e --nodeps libxml2-2.7.6-14.el6.x86_64
然後繼續安裝:
rpm -ivh libxml2-2.7.6-21.el6_8.1.x86_64.rpm rpm -ivh libxml2-python-2.7.6-21.el6_8.1.x86_64.rpm rpm -ivh createrepo-0.9.9-27.el6_9.noarch.rpm
安裝成功後創建yum倉庫:
createrepo /opt/rpm/
修改repo文件:
cd /etc/yum.repos.d/
創建repo_backup目錄,然後將所有文件剪切到此目錄:
mkdir repo_backup mv *.repo ./repo_backup
拷貝cp CentOS-Media.repo :
cp ./repo_backup/CentOS-Media.repo ./
修改該文件:
原文件
修改後
初始化yum緩存:
yum clean all yum makecache
yum repolist
本地倉庫搭建完畢。
三、本地安裝
主副節點都要安裝
yum -y install heartbeat*
發現並未安裝成功:
GPG密鑰存在的目的是處於安全和規範考慮,RedHat在發布軟件包的時候會根據軟件包生成對應密鑰,當用戶安裝軟件包的時候會根據密鑰校驗軟件包。yum安裝的時候就會校驗軟件包是否是官方發布的。
可以給yum添加--nogpgcheck來強制安裝或者在將源碼包加入到倉庫中的時候可以提前檢驗一下源碼包的官方性:rpm -K *.rpm
檢測完成後安裝:
yum -y install heartbeat* yum -y install libnet* yum -y install nginx --nogpgcheck
安裝成功。
四、配置heartbeat
拷貝配置文件:
cd /usr/share/doc/heartbeat-3.0.4/ cp authkeys ha.cf haresources /etc/ha.d/ cd /etc/ha.d/
修改authkeys:
vim authkeys
修改權限:
chmod 600 authkeys
編輯haresources文件:
vim haresources
在最後一行加入:
其中master為主節點hostname,192.168.60.200為vip,/24為掩碼為24的網段,eth0:0為vip的設備名,nginx為heartbeat監控的服務(/usr/sbin目錄下的)。
編輯ha.cf修改如下:
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 warntime 10 initdead 60 udpport 694 ucast eth0 192.168.60.137 auto_failback on node master node slave ping 192.168.60.200 respawn hacluster /usr/lib64/heartbeat/ipfail
配置說明:
debugfile /var/log/ha-debug:該文件保存heartbeat的調試信息。
logfile /var/log/ha-log:heartbeat的日誌文件。
keepalive 2:心跳的時間間隔,默認時間單位為秒s。
deadtime 30:超出該時間間隔未收到對方節點的心跳,則認為對方已經死亡。
warntime 10:超出該時間間隔未收到對方節點的心跳,則發出警告並記錄到日誌中。
initdead 60:在某系統上,系統啟動或重啟之後需要經過一段時間網絡才能正常工作,該選項用於解決這種情況產生的時間間隔,取值至少為deadtime的2倍。
udpport 694:設置廣播通信使用的端口,694為默認使用的端口號。
ucast eth0 192.168.60.137:設置對方機器心跳檢測的網卡和IP。
auto_failback on:heartbeat的兩臺主機分別為主節點和從節點。主節點在正常情況下占用資源並運行所有的服務,遇到故障時把資源交給從節點由從節點運行服務。在該選項設為on的情況下,一旦主節點恢復運行,則自動獲取資源並取代從節點,否則不取代從節點。
ping 192.168.60.200:設置的VIP。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定與heartbeat一同啟動和關閉的進程,該進程被自動監視,遇到故障則重新啟動。最常用的進程是ipfail,該進程用於檢測和處理網絡故障,需要配合ping語句指定的ping node來檢測網絡連接。如果你的系統是64bit,請註意該文件的路徑。
把主節點的配置文件拷到從節點:
scp authkeys ha.cf haresources slave:/etc/ha.d/
編輯從節點的ha.cf文件:
vi /etc/ha.d/ha.cf
修改:ucast eth0 192.168.60.139
五、啟動heartbeat服務
先master啟動,後slave啟動
service heartbeat start
查看ip是否綁定:
ip add
heartbeat 非聯網安裝(通過配置本地yum文件庫安裝heartbeat)