Heartbeat實現HA羣集
Heartbeat服務實現高可用性羣集,節點之間是靠心跳線來傳輸資源,心跳線可以是雙絞線也可以是serial線。當一個節點失效,另一個節點搶奪資源,資源有ip地址、服務、配置文件,成爲主節點。
工作模式:主主模式,主備模式
主主模式:當一個節點實現http服務,爲主節點,實現ftp服務爲備用節點。另外一個節點在實現http時爲備用節點,實現ftp時爲主節點。
主備節點:一個節點爲主節點,另外一個爲備用節點,一旦主節點失效,備用節點接替工作,成爲主節點。
Heartbeat工作的四個階段:
第一個階段:messagelayer在/etc//ha.cf/ha.cf這個是實現高可用性羣集的配置文件,在這個文件裏指明,廣播接口、節點的名稱。
第二個階段:成員管理/Etc/ha.d/haresource指明節點名稱、搶佔的資源(vip、服務、配置文件)
第三個階段:/etc/ha.d/authkeys指明節點之間的驗證算法
第四階段:resourcesagent代理階段
一:
在節點一上的配置:
1:安裝高可用性羣集的相關軟件包
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-devel-2.1.4-9.el5.i386.rpm
heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpmldirectord服務用於後方真實的服務器的狀態監測
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
安裝好只好在/etc/ha.d目錄下形成一些與羣集相關文件和目錄
拷貝/usr/share/doc/heartbeat-2.1.4/ha.cfauthkeysharesources到當前目錄下
[[email protected]]#ll
total48
-rw-r--r--1rootroot645Oct401:42authkeys
-rw-r--r--1rootroot10578Oct401:41ha.cf
-rwxr-xr-x1rootroot745Jul242009harc
-rw-r--r--1rootroot5952Oct401:28haresources
drwxr-xr-x2rootroot4096Oct401:11rc.d
-rw-r--r--1rootroot692Jul242009README.config
drwxr-xr-x2rootroot4096Oct401:28resource.d
-rw-r--r--1rootroot7862Jul242009shellfuncs
:2:打開ha.cf這個文件,ha.cf是高可用性羣集的配置文件
bcasteth1#Linux廣播地址爲eth:0這個端口,當主節點失效時通過這個端口把資源(vip、heartbeat服務控制的其他服務、其他服務的配置文件)傳到備份節點上。
#bcasteth1eth2#Linux
#nodekathy
nodenode1.a.com
nodenode2.a.com
3:打開haresources文件配置資源,資源有節點名稱虛擬ip、被控制的服務,這裏控制ipvsadm服務
#node-nameresource1resource2...resourceN
node1.a.com192.168.20.100/24/eth0ipvsadm
#
拷貝ipvsadm的服務腳本到resource.d目錄下
cp/etc/init.d/ipvsadm/etc/ha.d/resource.d/
4:打開authkeys文件
authkeys
auth3#節點之間傳遞資源時要進行驗證,MD5身份驗證驗證內容是redhat
#1crc
#2sha1HI!
3md5redhat
5:Lvs虛擬服務配置
[root@localhost~]#ipvsadm-A-t192.168.20.100:80-srr
[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.30:80-g
[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.40:80-g
[root@localhost~]#ipvsadm-l
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.20.100:httprr
->192.168.20.40:httpRoute100
->192.168.20.30:httpRoute100
保存虛擬服務規則,關閉虛擬服務
[root@localhost~]#serviceipvsadmsave
SavingIPVStableto/etc/sysconfig/ipvsadm:[OK]
[root@localhost~]#serviceipvsadmstop
ClearingthecurrentIPVStable:[OK]
6:開啓高可用性羣集的功能Serviceheartbeatstart
執行hb_takeover
搶佔虛擬ip地址和服務
[[email protected]]#ifconfig
eth0Linkencap:EthernetHWaddr00:0C:29:FA:2D:49
inetaddr:192.168.20.10Bcast:192.168.20.255Mask:255.255.255.0
inet6addr:fe80::20c:29ff:fefa:2d49/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:7840errors:0dropped:0overruns:0frame:0
TXpackets:5142errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:2922637(2.7MiB)TXbytes:709106(692.4KiB)
Interrupt:19Baseaddress:0x2000
eth0:0Linkencap:EthernetHWaddr00:0C:29:FA:2D:49
inetaddr:192.168.20.100Bcast:192.168.20.255Mask:255.255.255.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
Interrupt:19Baseaddress:0x2000
7:查看虛擬服務規則表,虛擬服務已經開啓
[[email protected]]#ipvsadm-l
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.20.100:httprr
->192.168.20.30:httpRoute100
->192.168.20.40:httpRoute100
三:在節點二上
1:安裝高可用性羣集的相關軟件包
heartbeat-2.1.4-9.el5.i386.rpm
heartbeat-devel-2.1.4-9.el5.i386.rpm
heartbeat-gui-2.1.4-9.el5.i386.rpm
heartbeat-ldirectord-2.1.4-9.el5.i386.rpmldirectord服務用於後方真實的服務器的狀態監測
heartbeat-pils-2.1.4-10.el5.i386.rpm
heartbeat-stonith-2.1.4-10.el5.i386.rpm
libnet-1.1.4-3.el5.i386.rpm
perl-MailTools-1.77-1.el5.noarch.rpm
安裝好只好在/etc/ha.d目錄下形成一些與羣集相關文件和目錄
拷貝/usr/share/doc/heartbeat-2.1.4/ha.cfauthkeysharesources到當前目錄下
[[email protected]]#ll
total48
-rw-r--r--1rootroot645Oct401:42authkeys
-rw-r--r--1rootroot10578Oct401:41ha.cf
-rwxr-xr-x1rootroot745Jul242009harc
-rw-r--r--1rootroot5952Oct401:28haresources
drwxr-xr-x2rootroot4096Oct401:11rc.d
-rw-r--r--1rootroot692Jul242009README.config
drwxr-xr-x2rootroot4096Oct401:28resource.d
-rw-r--r--1rootroot7862Jul242009shellfuncs
:2:打開ha.cf這個文件,ha.cf是高可用性羣集的配置文件
bcasteth1#Linux廣播地址爲eth:0這個端口,當主節點失效時通過這個端口把資源(vip、heartbeat服務控制的其他服務、其他服務的配置文件)傳到備份節點上。
#bcasteth1eth2#Linux
#nodekathy
nodenode1.a.com
nodenode2.a.com
3:打開haresources文件配置資源,資源有節點名稱虛擬ip、被控制的服務,這裏控制ipvsadm服務
#node-nameresource1resource2...resourceN
node1.a.com192.168.20.100/24/eth0ipvsadm
#
拷貝ipvsadm的服務腳本到resource.d目錄下
cp/etc/init.d/ipvsadm/etc/ha.d/resource.d/
4:打開authkeys文件
authkeys
auth3#節點之間傳遞資源時要進行驗證,MD5身份驗證驗證內容是redhat
#1crc
#2sha1HI!
3md5redhat
5:Lvs虛擬服務配置
[root@localhost~]#ipvsadm-A-t192.168.20.100:80-srr
[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.30:80-g
[root@localhost~]#ipvsadm-a-t192.168.20.100:80-r192.168.20.40:80-g
[root@localhost~]#ipvsadm-l
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.20.100:httprr
->192.168.20.40:httpRoute100
->192.168.20.30:httpRoute100
保存虛擬服務規則,關閉虛擬服務
[root@localhost~]#serviceipvsadmsave
SavingIPVStableto/etc/sysconfig/ipvsadm:[OK]
[root@localhost~]#serviceipvsadmstop
ClearingthecurrentIPVStable:[OK]
6:開啓heartbeat服務執行hb_takeover功能搶佔資源
Serviceheartbeatstart
執行hb_takeover搶佔資源
eth0Linkencap:EthernetHWaddr00:0C:29:D2:75:D0
inetaddr:192.168.20.20Bcast:192.168.20.255Mask:255.255.255.0
inet6addr:fe80::20c:29ff:fed2:75d0/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:5162errors:0dropped:0overruns:0frame:0
TXpackets:3896errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:2896990(2.7MiB)TXbytes:596280(582.3KiB)
Interrupt:19Baseaddress:0x2000
eth0:0Linkencap:EthernetHWaddr00:0C:29:D2:75:D0
inetaddr:192.168.20.100Bcast:192.168.20.255Mask:255.255.255.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
Interrupt:19Baseaddress:0x2000
7:查看虛擬服務規則表,虛擬服務已經開啓
[[email protected]]#ipvsadm-l
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.20.100:httprr
->192.168.20.30:httpRoute100
->192.168.20.40:httpRoute100