HeartBeat204双机软件方案正式.docx
《HeartBeat204双机软件方案正式.docx》由会员分享,可在线阅读,更多相关《HeartBeat204双机软件方案正式.docx(26页珍藏版)》请在冰豆网上搜索。
![HeartBeat204双机软件方案正式.docx](https://file1.bdocx.com/fileroot1/2023-1/27/3b6f9485-3615-409b-aabd-4ab253369b92/3b6f9485-3615-409b-aabd-4ab253369b921.gif)
HeartBeat204双机软件方案正式
HeartBeat2.0.4双机软件方案
2011/3/1
目录
第1章基础知识4
§1.1双机技术4
1.1.1为什么使用双机技术4
1.1.2双机集群基本原理及基本架构4
§1.2双机架构中的数据同步6
1.2.1DataSharing–None6
1.2.2DataSharing–ShareDisk6
1.2.3DataSharing–Replication6
第2章双机方案8
§2.1硬件环境8
§2.2方案一Sharing–None10
2.2.1安装10
2.2.2配置HeartBeat11
2.2.3验证测试13
2.2.4配置其它服务15
§2.3方案二Sharing–ShareDisk16
2.3.1VMWare下共享磁盘16
2.3.2安装SYBASE17
§2.4方案三DataSharing–Replication18
2.4.1DRBD是个什么东西18
2.4.2如何工作18
2.4.3如何使其运行19
2.4.4安装19
2.4.5测试23
第3章附录24
§3.1防火墙配置24
§3.2交叉网线的制作24
§3.3串口线的制作24
历史
初稿
2011/3/1
无数据复制情况下的方案
修改
2011/3/18
磁盘镜像情况下方案
第1章
基础知识
§1.1双机技术
1.1.1为什么使用双机技术
双机技术是实现系统高可用性、可靠性、稳定性、安全性并需要快速处理能力、大容量存储及系统的可管理性的重要手段。
服务器双机是作为单一系统进行管理的一组独立的服务器,用于实现更高的可用性、可管理性和更优异的可伸缩性。
双机概念就是一套或多套关键业务应用和数据在两套操作系统中的相互切换。
1.1.2双机集群基本原理及基本架构
就是后台应用为客户端提供一个逻辑的虚拟主机或IP,客户端用户只需要用到这一地址。
当后台服务有一台服务器出现故障点,另一台服务器就自动将本机地址或IP替换为逻辑的主机或IP,从而保证客户端用户的前台操作不出现问题。
基本架构
⏹双机热备
双机热备就是一台主机为工作机,另一台主机为备份机在系统正常情况下,工作机为信息系统提供支持,备份机监视工作机的运行情况(工作机也同时监视备份机是否正常,有时备份机因某种原因出现异常,工作机可尽早通知系统管理工作人员解决,确保下一次切换的可靠性)。
当工作机出现异常,不能支持信息系统运营时,备份机主动接管工作机的工作,继续支持信息的运营,从而保证信息系统能够不间断地运行。
双机热备模式图
双机热备基本配置需求
a)服务器与系统
b)客户端
c)PrivateNet(专有网路)
d)公用网路
e)共享数据磁盘柜(可选)
f)一套业务应用
⏹双机互备
双机互备就是两台服务器均为工作机运行两套业务应用,在正常情况下,两台工作机均为信息系统提供支持,并互相监视对方的运行情况。
当一台主机出现异常时,不能支持信息系统正常运营,另一主机则主动接管异常机的工作,继续支持信息的运营,从而保证信息系统能够不间断地运行,而达到不停机的功能,但正常运行主机的负载会有所增加。
此时必须尽快将异常机修复以缩短正常机负载持续时间,当异常机经过维修恢复正常后,恢复以前正常时的工作状态
双机互备模式图
⏹双机互备基本配置需求
a)服务器与系统
b)客户端
c)PrivateNet(专有网路)
d)公用网路
e)共享数据磁盘柜(可选)
f)两套业务应用
§1.2双机架构中的数据同步
1.2.1DataSharing–None
Strangelyenough,someHAconfigurationsdon'tneedanyformaldiskdatasharing
◆Firewalls
◆LoadBalancers
◆(Caching)ProxyServers
◆Staticwebserverswhosecontentiscopiedfromasinglesource
1.2.2DataSharing–ShareDisk
◆Themostclassicdatasharingmechanism
◆Allowsforfailovermode
◆Allowsfortrueparallelaccess
◆OracleRAC,Clusterfilesystems,etc.
◆FencingalwaysrequiredwithFiberChannel
1.2.3DataSharing–Replication
Someapplicationsprovidetheirownreplication
◆DNS,DHCP,LDAP,DB2,etc.
◆Linuxhasexcellentdiskreplicationmethodsavailable
◆DRBDismyfavorite
◆DRBD-basedHAclustersareextremelyaffordable
◆Someenvironmentscanlivewithless“precise”replicationmethods–rsync,etc.
◆Oftendoesnotsupportparallelaccess
◆Fencinghighlydesirable,butnotalwaysnecessary
◆EXTREMELYcosteffective
第2章
双机方案
本双机方案提供双机热备模式方案,暂不提供双机互备模式下的解决方案。
⏹方案一:
不需要数据同步情形(DataSharing–None)
⏹方案二:
共享磁盘阵列方式(DataSharing–ShareDisk)
⏹方案三:
数据复制或镜像方式(DataSharing–Replication)
§2.1硬件环境
HA实际上是两台(或更多)计算机通过一定方式互相监听,实现热备份。
当其中Primaryserver出现问题时,Standbyserver能够自动立即接替工作,使用户感觉不到停机。
在Primaryserver恢复正常之后,Standbyserver又会把工作还给Primaryserver。
HA集群结构图
本次实验环境为主备方式(Active-Standby)。
两台电脑分别为SMSS1和SMSS2,硬件环境不必完全一致,每台电脑需要配置至少三块网卡。
主节点SMSS1
RedHat4Update732bit.
eth0:
192.168.1.234
eth1:
10.1.0.100(心跳地址)
从节点SMSS2:
RedHat4Update732bit.
eth0:
192.168.1.235
eth1:
10.1.0.101(心跳地址)
虚拟ip地址(VirtualIP):
192.168.1.233
在安装软件前,手动配置每片网卡的IP(不能是DHCP方式动态获取的IP),同一台主机上每片网卡的IP设置在不同网段。
推荐配置是:
三片网卡、一条RS232串口线。
其中一片网卡用于配置公网,一片用于数据复制,另外一片网卡和RS232串口线用于配置心跳线(或者两片网卡用于配置心跳)。
注意:
✓保证两台电脑每块网卡能够ping通。
✓两台主机的心跳网卡使用双机对联线直接连接或者采用串口心跳,心跳线是HA软件正常运行的关键,建议同时采用一条心跳网线和串口线做心跳,或者两条网线同时做心跳。
Heartbeat默认使用udp694端口进行心跳监测。
必须保证心跳端口不被防火墙屏蔽。
见附录1《防火墙配置》。
§2.2
方案一Sharing–None
2.2.1安装
1)修改hosts
保证两台电脑以下文件必须相同
/etc/hosts
#vi/etc/hosts
SMSS1的hosts内容如下:
192.168.1.233SMSS
192.168.1.234SMSS1
192.168.1.235SMSS2
~ (保证机器名和参数uname-n输出一致)
SMSS2的hosts内容如下:
192.168.1.233SMSS
192.168.1.234SMSS1
192.168.1.235SMSS2
(保证机器名和参数uname-n输出一致)
2)软件包:
heartbeat-2.1.4-2.1.i386.rpm
heartbeat-pils-2.1.4-2.1.i386.rpm
libnet-1.1.2.1-2.1.i386.rpm
heartbeat-stonith-2.1.4-2.1.i386.rpm
perl-TimeDate-1.16-1.2.el4.rf.noarch.rpm
安装顺序:
#rpm-ivhperl-TimeDate-1.16-1.2.el4.rf.noarch.rpm
#rpm-ivhlibnet-1.1.2.1-2.1.i386.rpm
#rpm-ivhheartbeat-pils-2.1.4-2.1.i386.rpm
#rpm-ivhheartbeat-stonith-2.1.4-2.1.i386.rpm
#rpm-ivhheartbeat-2.1.4-2.1.i386.rpm
2.2.2配置HeartBeat
编辑HeartbeatHA的三个配置文件,authkeys、ha.cf和haresources;
1)配置/etc/ha.d/authkeys
该文件确定为群集您的验证密钥,配置心跳的加密,使用双机对联线(网线为交叉线),authkeys文件用于验证集群成员关系,两个节点配置的必须相同的。
#cd/etc/ha.d/
#cp/usr/share/doc/packages/heartbeat/authkeys./
#chmod600authkeys
SMSS1:
auth3
#1crc
#2sha1HI!
3md5自己定制的字符串(如Hello!
SMSS20101011)
SMSS2:
auth3
#1crc
#2sha1HI!
3md5自己定制的字符串(如Hello!
SMSS20101011)
在一个局域网环境中,需要不同双机群之间的“自己定制的字符串”不同,避免不同双机群之间心跳消息的干扰(在采用公网心跳消息时)。
2)配置/etc/ha.d/ha.cf
如果文件不存在,新建ha.cf文件
或者拷贝模版文件
#cp/usr/share/doc/packages/heartbeat/ha.cf到/etc/ha.d/
SMSS1:
logfile/var/log/ha-log#用于记录heartbeat的日志信息
keepalive10#发送心跳报文的间隔,默认单位为秒,如果你
#毫秒为单位,那么需要在后面跟ms单位,如1500ms即代表1.5s
deadtime30#用于配置认为对方节点菪掉的间隔
warntime10#发出最后的心跳警告报文的间隔
udpport694#广播/单播通讯使用的udp端口
bcasteth1eth2#Linux心跳所使用的网络接口,采用双网卡心跳
ucasteth110.1.0.101#如果采用单播,那么可以配置对端用的ip地址
auto_failbackoff#用于决定当主机恢复后,资源是否自动迁移到
#主机,还是在当前节点上继续运行。
nodeSMSS1#按照顺序第一台为Master
nodeSMSS2
#配置为多个外部网关地址或者服务器地址,监测主机公共网络是否正常
ping_groupgroup1192.168.1.2192.168.1.108192.168.1.169
respawnhacluster/usr/lib/heartbeat/ipfail
SMSS2:
logfile/var/log/ha-log
keepalive10#Heartbeatinterval
deadtime30#Howlongtosaytheserver'sdeath
warntime10
udpport694#Heartbeatport
bcasteth1eth2#LinuxHeartbeatinterface采用双网卡心跳
ucasteth110.1.0.100#IPaddressofpeertosendpacketsto
auto_failbackoff
nodeSMSS1
nodeSMSS2
#配置为多个外部网关地址或者服务器地址,监测主机公共网络是否正常
ping_groupgroup1192.168.1.2192.168.1.108192.168.1.169
respawnhacluster/usr/lib/heartbeat/ipfail
3)配置资源
TheharesourcesfilesMUSTBEIDENTICALonallnodesofthecluster.
[root@SMSS1ha.d]#cd/etc/ha.d/
[root@SMSS1ha.d]#cp/usr/share/doc/packages/heartbeat/haresources./
[root@SMSS1ha.d]#viharesources
SMSS1:
#Regardingthenode-namesinthisfile:
#
#Theymustmatchthenamesofthenodeslistedinha.cf,whichinturn
#mustmatchthe`uname-n`ofsomenodeinthecluster.Sotheyaren't
#virtualinanysenseoftheword.
#
SMSS1192.168.1.233vsftpdtomcat
SMSS2:
#Regardingthenode-namesinthisfile:
#
#Theymustmatchthenamesofthenodeslistedinha.cf,whichinturn
#mustmatchthe`uname-n`ofsomenodeinthecluster.Sotheyaren't
#virtualinanysenseoftheword.
#
SMSS1192.168.1.233vsftpdtomcat
haresource文件主要是配置集群资源或者服务,它的格式如下:
node-nameresource1resource2...resourceN
主节点为SMSS1,浮动IP为192.168.1.233,启动vsftpd和tomcat。
缺省情况下,在/etc/init.d和/etc/ha.d/resource.d查找资源和服务的脚本。
vsftpd是标准启动脚本(/etc/init.d/vsftpd),而Tomcat可以是自编的启动脚本(/etc/ha.d/resource.d/tomcat),在/etc/init.d/skeleton目录中有个框架示例。
heartbeat为我们提供了一个非常好的资源扩展框架,如果我们控制自己的资源,只需要实现一个支持start和stop参数的shell脚本就可以了。
自己的定制脚本需后面跟start、stop或status等命令进行测试,检查能否正确启动、停止和检测服务的状态。
4)设置heartbeat自动启动(启动系统时启动)
[root@SMSS1init.d]#chkconfig--addheartbeat
[root@SMSS1init.d]#chkconfig--list|grepheartbeat
heartbeat0:
off1:
off2:
on3:
on4:
on5:
on6:
off
2.2.3验证测试
1)为了验证你的配置,重新启动后
在SMSS1节点,网络配置如下:
eth0Linkencap:
EthernetHWaddr00:
0C:
29:
21:
65:
FC
inetaddr:
192.168.1.234Bcast:
192.168.255.255Mask:
255.255.0.0
inet6addr:
fe80:
:
20c:
29ff:
fe21:
65fc/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
3885errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
156errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
287178(280.4KiB)TXbytes:
20927(20.4KiB)
Interrupt:
193Baseaddress:
0x2024
eth0:
0Linkencap:
EthernetHWaddr00:
0C:
29:
21:
65:
FC
inetaddr:
192.168.1.233Bcast:
192.168.255.255Mask:
255.255.0.0
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
Interrupt:
193Baseaddress:
0x2024
eth1Linkencap:
EthernetHWaddr00:
0C:
29:
21:
65:
06
inetaddr:
10.1.0.100Bcast:
10.1.0.255Mask:
255.255.255.0
inet6addr:
fe80:
:
20c:
29ff:
fe21:
6506/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
4080errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
154errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
379334(370.4KiB)TXbytes:
17861(17.4KiB)
Interrupt:
169Baseaddress:
0x20a4
在SMSS2配置下:
[root@SMSS2~]#ifconfig-a
eth0Linkencap:
EthernetHWaddr00:
0C:
29:
E1:
A9:
87
inetaddr:
192.168.1.235Bcast:
192.168.255.255Mask:
255.255.0.0
inet6addr:
fe80:
:
20c:
29ff:
fee1:
a987/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
5096errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
117errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
375432(366.6KiB)TXbytes:
18598(18.1KiB)
Interrupt:
193Baseaddress:
0x2024
eth1Linkencap:
EthernetHWaddr00:
0C:
29:
E1:
A9:
91
inetaddr:
10.1.0.101Bcast:
10.1.0.255Mask:
255.255.255.0
inet6addr:
fe80:
:
20c:
29ff:
fee1:
a991/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
5102errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
149errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
381795(372.8KiB)TXbytes:
27201(26.5KiB)
Interrupt:
169Baseaddress:
0x20a4
2)主机在运行,在主机切换到备机(ForcingthePrimaryServerintoStandbyMode)
[root@SMSS1~]#cd/usr/lib/heartbeat
[root@SMSS1heartbeat]#./hb_standby
2011/02/22_18:
17:
34Goingstandby[all].
3)备机在运行,由主机接管备机(ForcingthePrimaryServerreturnActiveMode)
[root@SMSS1~]#cd/usr/lib/heartbeat
[root@SMSS1heartbeat]#./hb_takeover
2.2.4配置其它服务
在SMSS1和SMSS2的机器中设置。
注意:
要实现双机的各项服务需要取消自启动,已设置开机自启动的模块,首先按照以下取消自启动。
1、安装JAVA、TOMCAT、ACTIVEMQ
2、停止自启动
[root@SMSS1~]#chkconfigactivemqoff
[root@SMSS1~]#chkconfigtomcatoff
[root@SMSS1~]#
重启系统观察,如果还是能自启动,需要删除/etc/rc.d/rc3.d和/etc/rc.d/rc5.d的启动对应的脚本。
3、在/etc/ha.d/中修改haresources
[root@SMSS1h