您好,登錄后才能下訂單哦!
[root@heartbeat-1-114 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
主服務(wù)器A:
主機(jī)名:heartbeat-1-114
eth0網(wǎng)卡地址:192.168.136.114(管理IP)
eth2網(wǎng)卡地址:10.0.10.4/255.255.255.0 (心跳IP)
從服務(wù)器B:
主機(jī)名:heartbeat-1-115
eth0網(wǎng)卡地址:192.168.136.115(管理IP)
eth2網(wǎng)卡地址:10.0.10.5/255.255.255.0(心跳IP)
虛擬VIP:
虛擬VIP在主服務(wù)器heartbeat-1-114上,VIP:192.168.136.116
仲裁主機(jī):10.0.10.6
配置IP就省略了,設(shè)置兩臺(tái)主機(jī)的主機(jī)名分別為heartbeat-1-114和heartbeat-1-115。分別編譯兩臺(tái)機(jī)器的/etc/sysconfig/network配置文件,設(shè)置HOSTNAME=heartbeat-1-114和HOSTNAME=heartbeat-1-115。然后在命令行下執(zhí)行hostname heartbeat-1-114和hostname heartbeat-1-115使設(shè)置馬上生效,注意/etc/hosts文件中127.0.0.1對(duì)應(yīng)的主機(jī)名不要配置。
提示:可以執(zhí)行setup命令然后選network configuration-->Edit configuration即可配置機(jī)器名,然后logout退出重新登錄后生效。
提示:兩臺(tái)機(jī)器必須互相能ping通
在heartbeat-1-114主機(jī)上配置hosts文件
[root@heartbeat-1-114 ~]# cat >>/etc/hosts<<EOF
> 192.168.136.114 heartbeat-1-114
> 192.168.136.115 heartbeat-1-115
> EOF
在heartbeat-1-115主機(jī)上配置hosts文件
[root@heartbeat-1-115 ~]# cat >>/etc/hosts<<EOF
> 192.168.136.114 heartbeat-1-114
> 192.168.136.115 heartbeat-1-115
> EOF
通過ping ip地址的方法檢查測(cè)試,看其返回的IP是不是和/etc/hosts中配置的內(nèi)容一致。
特別強(qiáng)調(diào):機(jī)器名必須是uname –n返回的結(jié)果
[root@heartbeat-1-114 ~]# uname -n
heartbeat-1-114
[root@heartbeat-1-115 ~]# uname -n
heartbeat-1-115
提示:hosts文件的配置在heartbeat服務(wù)中會(huì)用到,后文的drbd及存儲(chǔ)高可用也會(huì)用到,在生產(chǎn)環(huán)境中會(huì)把所有的機(jī)器名對(duì)應(yīng)上所有的機(jī)器IP地址,可以通過分發(fā)工具統(tǒng)一分發(fā)到所有機(jī)器的/etc/hosts中。
eth2 10.0.10.5和eth2 10.0.10.4兩塊網(wǎng)卡之間通過普通網(wǎng)線連接的,即不通過交換機(jī),直接用網(wǎng)線將兩塊網(wǎng)卡連在一起,用于做心跳檢測(cè)或傳數(shù)據(jù)等。
提示:高可用服務(wù)器對(duì)上的heartbeat軟件會(huì)利用這條心跳線來檢查對(duì)端的機(jī)器是否存活,進(jìn)而決定是否做故障轉(zhuǎn)移,資源切換,來保證業(yè)務(wù)的連續(xù)性。
如果條件允許,以上連接可同時(shí)使用,來加大保險(xiǎn)系數(shù)防止裂腦問題的發(fā)生。
本次案例:選用以太網(wǎng)電纜兩網(wǎng)卡直連。
選用原因:簡(jiǎn)單,容易部署、效果也不錯(cuò)。
在兩臺(tái)機(jī)器上分別增加一條主機(jī)路由,來實(shí)現(xiàn)兩臺(tái)機(jī)器檢查對(duì)端時(shí)通過這個(gè)心跳線線路檢查。
(1)在heartbeat-1-114上添加主機(jī)主機(jī)路由:
[root@heartbeat-1-114 ~]# /sbin/route add -host 10.0.10.4 dev eth2
添加到開機(jī)自啟動(dòng)配置文件中
[root@heartbeat-1-114 ~]# echo "/sbin/route add -host 10.0.10.4 dev eth2">>/etc/rc.local
(2)在heartbeat-1-115上增加如下主機(jī)路由:
[root@heartbeat-1-115 ~]# /sbin/route add -host 10.0.10.5 dev eth2
添加到開機(jī)自啟動(dòng)配置文件中
[root@heartbeat-1-115 ~]# echo "/sbin/route add -host 10.0.10.5 dev eth2">>/etc/rc.local
提示:要確保心跳線路是通的
在主服務(wù)器上heartbeat-1-114上配置輔助VIP,輔助ip用ip addr命令查看
[root@heartbeat-1-114 ha.d]# ip addr add 192.168.136.116/24 dev eth0:1
[root@heartbeat-1-114 ha.d]# ip addr|grep "116"
inet 192.168.136.116/24 brd 192.168.136.255 scope global secondary eth0:1
[root@heartbeat-1-114 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@heartbeat-1-114 ~]# getenforce
Disabled
[root@heartbeat-1-115 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@heartbeat-1-115 ~]# getenforce
Disabled
CentOS-6.8-x86_64的rpm包沒有heartbeat軟件,所以要下載epel包
[root@heartbeat-1-114 ~]# yum search heartbeat
已加載插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-local | 4.1 kB 00:00 ...
警告:沒有匹配 heartbeat 的軟件包
沒有找到匹配的軟件包
[root@heartbeat-1-114 ~]# mkdir -p /home/linzhongniao/tools
[root@heartbeat-1-114 ~]# cd /home/linzhongniao/tools
[root@heartbeat-1-114 tools]# wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
--2018-11-02 23:04:38-- http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
Resolving mirrors.ustc.edu.cn... 218.104.71.170, 2001:da8:d800:95::110
Connecting to mirrors.ustc.edu.cn|218.104.71.170|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://mirrors.ustc.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm [following]
--2018-11-02 23:04:38-- http://mirrors.ustc.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
Reusing existing connection to mirrors.ustc.edu.cn:80.
HTTP request sent, awaiting response... 200 OK
Length: 14540 (14K) [application/x-redhat-package-manager]
Saving to: “epel-release-6-8.noarch.rpm.1”
100%[==================================================================>] 14,540 --.-K/s in 0.04s
2018-11-02 23:04:38 (371 KB/s) - “epel-release-6-8.noarch.rpm.1” saved [14540/14540]
[root@heartbeat-1-114 tools]# rpm -ivh epel-release-6-8.noarch.rpm
warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing...########################################### [100%]
1:epel-release ########################################### [100%]
[root@heartbeat-1-114 tools]# rpm -qa|grep epel
epel-release-6-8.noarch
yum install heartbeat* -y
提示:如果yum安裝后想保留rpm包,用下面的方法。
[root@heartbeat-1-114 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@heartbeat-1-114 ~]# grep keepcache /etc/yum.conf
keepcache=1
兩臺(tái)機(jī)器分別執(zhí)行安裝heartbeat軟件后,不出意外就可以安裝好heartbeat軟件了。前面已經(jīng)提到了,heartbeat的默認(rèn)配置文件目錄為/etc/ha.d。heartbeat常用的配置文件有三個(gè),ha.cf、authkey和haresource,各自的作用見下面的表格。
(1)先把ha.cf、haresources和authkeys這三個(gè)文件拷到/etc/ha.d/目錄下
[root@heartbeat-1-114 ~]# ll /usr/share/doc/heartbeat-3.0.4/
total 144
-rw-r--r-- 1 root root 1873 Dec 3 2013 apphbd.cf
-rw-r--r-- 1 root root 645 Dec 3 2013 authkeys
-rw-r--r-- 1 root root 3701 Dec 3 2013 AUTHORS
-rw-r--r-- 1 root root 58752 Dec 3 2013 ChangeLog
-rw-r--r-- 1 root root 17989 Dec 3 2013 COPYING
-rw-r--r-- 1 root root 26532 Dec 3 2013 COPYING.LGPL
-rw-r--r-- 1 root root 10502 Dec 3 2013 ha.cf
-rw-r--r-- 1 root root 5905 Dec 3 2013 haresources
-rw-r--r-- 1 root root 2935 Dec 3 2013 README
[root@heartbeat-1-114 ~]# cd /usr/share/doc/heartbeat-3.0.4/
[root@heartbeat-1-114 heartbeat-3.0.4]# cp ha.cf authkeys haresources /etc/ha.d/
(2)配置ha.cf配置文件
[root@heartbeat-1-114 ha.d]# cat ha.cf
debugfile /var/log/ha-debug
logfile/var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
#bcast eth2
#mcast eth2 225.0.0.114 694 1 0
ucast eth2 10.0.10.5
auto_failback on
node heartbeat-1-114
node heartbeat-1-115
ping 10.0.10.6
respawn root /usr/lib64/heartbeat/ipfail
apiauth ipfail gid=root uid=root
#crm on
(3)ha.cf文件詳細(xì)說明
debugfile /var/log/ha-debug
:寫入調(diào)試信息的文件。
logfile /var/log/ha-log
:heartbeat的日志文件。
keepalive 2
:心跳的時(shí)間間隔,默認(rèn)時(shí)間單位為秒s。
deadtime 30
:超出該時(shí)間間隔未收到對(duì)方節(jié)點(diǎn)的心跳,則認(rèn)為對(duì)方已經(jīng)死亡。
warntime 10
:超出該時(shí)間間隔未收到對(duì)方節(jié)點(diǎn)的心跳,則發(fā)出警告并記錄到日志中。
initdead 60
:在某系統(tǒng)上,系統(tǒng)啟動(dòng)或重啟之后需要經(jīng)過一段時(shí)間網(wǎng)絡(luò)才能正常工作,該選項(xiàng)用于解決這種情況產(chǎn)生的時(shí)間間隔,取值至少為deadtime的2倍。
bcast eth2
:指明心跳使用以太網(wǎng)廣播方式在eth2接口上進(jìn)行廣播,如使用兩個(gè)實(shí)際網(wǎng)絡(luò)來傳送心跳則#bcast eth0 eth2
,用udp進(jìn)行廣播建議副節(jié)點(diǎn)不止一個(gè)情況下使用
mcast eth2 225.0.0.130 694 1 0
:設(shè)置多播通信使用的端口,225.0.0.130為多播ip地址在一個(gè)局域網(wǎng)內(nèi)這個(gè)ip地址不能一樣,694為默認(rèn)使用的udp端口號(hào),建議在副節(jié)點(diǎn)不止一臺(tái)使用。
注意:一個(gè)局域網(wǎng)內(nèi)有多組heartbeat服務(wù)同時(shí)正常使用的前提是多播地址不同(可選多播地址段為224.0.0.0-239.255.255.255),一般路由器、交換機(jī)等應(yīng)該都是多播的方式,建議IP的最后八位作為多播地址的最后8位。當(dāng)然不用多播也能解決心跳問題。
udpport 694
:設(shè)置廣播通信使用的端口,694為默認(rèn)使用的端口號(hào)。
ucast eth2 10.0.10.5
:設(shè)置廣播通信對(duì)方機(jī)器心跳檢測(cè)的網(wǎng)卡和IP和udpport一起用。
auto_failback on
:heartbeat的兩臺(tái)主機(jī)分別為主節(jié)點(diǎn)和從節(jié)點(diǎn)。主節(jié)點(diǎn)在正常情況下占用資源并運(yùn)行所有的服務(wù),遇到故障時(shí)把資源交給從節(jié)點(diǎn)由從節(jié)點(diǎn)運(yùn)行服務(wù)。在該選項(xiàng)設(shè)為on的情況下,一旦主節(jié)點(diǎn)恢復(fù)運(yùn)行,則自動(dòng)獲取資源并取代從節(jié)點(diǎn),否則不取代從節(jié)點(diǎn)。
respawn heartbeat /usr/lib64/heartbeat/ipfail
:指定與heartbeat一同啟動(dòng)和關(guān)閉的進(jìn)程,該進(jìn)程被自動(dòng)監(jiān)視,遇到故障則重新啟動(dòng)。最常用的進(jìn)程是ipfail,該進(jìn)程用于檢測(cè)和處理網(wǎng)絡(luò)故障,需要配合ping語句指定的ping node來檢測(cè)網(wǎng)絡(luò)連接。如果你的系統(tǒng)是64bit,請(qǐng)注意該文件的路徑。
crm on
:是否開啟集群資源管理功能(Cluster Resource Manager)
提示:我們可以查看/usr/share/doc/heartbeat-3.0.4/下的ha.cf來詳細(xì)了解參數(shù)信息。
(1)配置authkey文件
[root@heartbeat-1-114 ha.d]# sha1sum /etc/ha.d/authkeys
da39a3ee5e6b4b0d3255bfef95601890afd80709 /etc/ha.d/authkeys
[root@heartbeat-1-114 ha.d]# cat /etc/ha.d/authkeys
auth 2
2 sha1 da39a3ee5e6b4b0d3255bfef95601890afd80709
將authkey權(quán)限修改為600
[root@heartbeat-1-114 ha.d]# chmod 600 /etc/ha.d/authkeys
[root@heartbeat-1-114 ha.d]# ll /etc/ha.d/authkeys
-rw------- 1 root root 20 Nov 3 20:31 /etc/ha.d/authkeys
(2)文件說明
此處提到authkey權(quán)限必須為600
# Authentication file. Must be mode 600
# Must have exactly one auth directive at the front.
# authsend authentication using this method-id
#
# Then, list the method and key that go with that method-id
此處提到可以設(shè)置認(rèn)證方法
# Available methods: crc sha1, md5. Crc doesn't need/want a key.
# You normally only have one authentication method-id listed in this file
# Put more than one to make a smooth transition when changing auth
# methods and/or keys.
這里說明sha1是最好的認(rèn)證方法,其次md5是最好的
# sha1 is believed to be the "best", md5 next best.
# crc adds no security, except from packet corruption.
# Use only on physically secure networks.
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!
##########
注意:authkeys需要的權(quán)限默認(rèn)為600否則heartbeat服務(wù)會(huì)報(bào)錯(cuò)不發(fā)打開,兩臺(tái)機(jī)器都需要操作
[root@heartbeat-1-114 ha.d]# cat /etc/ha.d/haresources
heartbeat-1-114 IPaddr::192.168.136.116/24/eth0:1
配置參數(shù)說明 :heartbeat-1-114為主節(jié)點(diǎn)hostname,192.168.136.116為vip,24為掩碼是24位的網(wǎng)段,eth0:1為vip的設(shè)備名。IPaddr為heartbeat配置IP的默認(rèn)腳本,其后的IP等都是腳本參數(shù),腳本放置的位置如下所示:
[root@heartbeat-1-114 ha.d]# ll /etc/ha.d/resource.d/IPaddr
-rwxr-xr-x 1 root root 2273 Dec 3 2013 /etc/ha.d/resource.d/IPaddr
實(shí)際上面haresources文件中的內(nèi)容,相當(dāng)于在ip為192.168.136.116的機(jī)器上執(zhí)行下面的腳本:
/etc/ha.d/resource.d/IPaddr 192.168.136.116/24/eth0:1 start/stop
IPaddr::192.168.136.116/24/eth0:1
:這個(gè)語句的結(jié)構(gòu)是腳本::(兩個(gè)冒號(hào))傳參,確切的說這里并不是傳參只是在ip為192.168.136.116的機(jī)器上執(zhí)行一個(gè)這樣的腳本,所以自己開發(fā)得到腳本只要能夠用start/stop啟動(dòng)和停止并且滿足腳本::傳參這種格式,就能放到haresources文件中這是腳本要寫全路徑。
把主機(jī)上的三個(gè)文件拷貝到從上,只需配置ha.cf文件
[root@heartbeat-1-114 ha.d]# scp ha.cf authkeys haresources heartbeat-1-115:/etc/ha.d/
The authenticity of host 'heartbeat-1-115 (192.168.136.115)' can't be established.
RSA key fingerprint is 66:cc:1a:b8:c6:68:8e:8f:d1:2f:a3:a3:56:23:4a:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'heartbeat-1-115,192.168.136.115' (RSA) to the list of known hosts.
root@heartbeat-1-115's password:
ha.cf 100% 341 0.3KB/s 00:00
從節(jié)點(diǎn)只需要修改ha.cf文件,將10.0.10.5改成10.0.10.4,設(shè)置對(duì)方機(jī)器心跳檢測(cè)的網(wǎng)卡和IP。
[root@heartbeat-1-115 ha.d]# grep "ucast" ha.cf
ucast eth2 10.0.10.4
先啟動(dòng)主節(jié)點(diǎn)后啟動(dòng)從節(jié)點(diǎn),不要讓heartbeat開機(jī)自啟動(dòng)
[root@heartbeat-1-130 ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
Done.
[root@heartbeat-1-114 ~]# chkconfig --list|grep heartbeat
heartbeat 0:off 1:off 2:on3:on4:on5:on6:off
[root@heartbeat-1-114 ~]# chkconfig heartbeat off
[root@heartbeat-1-114 ~]# chkconfig --list|grep heartbeat
heartbeat 0:off 1:off 2:off 3:off 4:off 5:off 6:off
有兩種方法
(1)主節(jié)點(diǎn)停止heartbeat服務(wù)
/etc/init.d/heartbeat stop
(2)主節(jié)點(diǎn)禁ping
[root@heartbeat-1-114 ha.d]# iptables -I INPUT -p icmp -j DROP
主節(jié)點(diǎn)允許ping
[root@heartbeat-1-114 ha.d]# iptables -I INPUT -p icmp -j ACCEPT
我們就會(huì)發(fā)現(xiàn)虛擬VIP切換到從節(jié)點(diǎn)上了,來達(dá)到heartbeat高可用功能繼續(xù)為用戶提供服務(wù)。
兩節(jié)點(diǎn)都down掉eth2網(wǎng)卡
ifdown eth2
可以查看heartbeat日志和系統(tǒng)日志查看heartbeat啟動(dòng)及接管資源的過程
tail -f /var/log/ha-log
tail -f /var/log/messages
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。