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到当前目录下
[root@localhostha.d]#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地址和服务
[root@node1ha.d]#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:查看虚拟服务规则表,虚拟服务已经开启
[root@node1ha.d]#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到当前目录下
[root@localhostha.d]#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:查看虚拟服务规则表,虚拟服务已经开启
[root@node1ha.d]#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