当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Linux上的heartbeat双机热备服务架设

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 Linux上的heartbeat双机热备服务架设


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 60 ::
收藏到网摘: n/a

【一】安装前环境设定

两台主机硬件环境(不必完全一致):

CPU:Xeon3G*2(EM64T)

MEM:2G

NIC:Intel1G*2

eth0:对外IP

eth1:对内IP(HA专用)

两台主机的eth1使用双机对联线直接连接。

分区方式:

Filesystem容量挂载点

/dev/sda29.7G/

/dev/sda645G/Datas

/dev/sda199M/boot

none2.0G/dev/shm

/dev/sda39.7G/opt

另外每台主机应预留500M的raw空间或者更多来作为共用空间被HA使用。

操作系统:

RedHatEnterprise4Update2(2.6.9-22EL)

预安装软件:

@XWindowSystem

@GNOMEDesktopEnvironment

@KDEDesktopEnvironment

@Editors

@EngineeringandScientific

@GraphicalInternet

@Text-basedInternet

@AuthoringandPublishing

@ServerConfigurationTools

@DevelopmentTools

@KernelDevelopment

@XSoftwareDevelopment

@GNOMESoftwareDevelopment

@KDESoftwareDevelopment

@AdministrationTools

@SystemTools

【二】安装前网络环境设定:

node1:主机名:servers201(HA01)

eth0:192.168.10.201//对外IP地址

eth1:10.0.0.201//HA心跳使用地址

node2:主机名:servers202(HA02)

eth0:192.168.10.202//对外IP地址

eth1:10.0.0.202//HA心跳使用地址

特别注意要检查以下几个文件:

/etc/hosts

/etc/host.conf

/etc/resolv.conf

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

/etc/nsswitch.conf

#vi/etc/hosts

node1的hosts内容如下:

127.0.0.1localhost.localdomainlocalhost

192.168.10.201servers201HA01

10.0.0.201HA01

10.0.0.202HA02

192.168.10.202server202

node2的hosts内容如下:

127.0.0.1localhost.localdomainlocalhost

192.168.10.202servers202HA02

10.0.0.202HA02

10.0.0.201HA01

192.168.10.201server201

#cat/etc/host.conf

orderhosts,bind

#cat/etc/resolv.conf

nameserver61.139.2.69//DNS地址

#cat/etc/sysconfig/network

NETWORKING=yes

HOSTNAME=servers201//主机名

GATEWAY="192.168.10.1"//网关

GATEWAY="eth0"//网关使用网卡

ONBOOT=YES//启动时加载

FORWARD_IPV4="yes"//只允许IPV4

#cat/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.10.201

NETMASK=255.255.255.0

GATEWAY=192.168.10.1

TYPE=Ethernet

IPV6INIT=no

#cat/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

IPADDR=10.0.0.201

NETMASK=255.255.255.0

TYPE=Ethernet

[node1]与[node2]在上面的配置中,除了

/etc/hosts

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

要各自修改外,其他一致。

配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:

/root#pingHA02

PINGHA02(10.0.0.202)56(84)bytesofdata.

64bytesfromHA02(10.0.0.202):icmp_seq=0ttl=64time=0.198ms

64bytesfromHA02(10.0.0.202):icmp_seq=1ttl=64time=0.266ms

64bytesfromHA02(10.0.0.202):icmp_seq=2ttl=64time=0.148ms

---HA02pingstatistics---

3packetstransmitted,3received,0%packetloss,time2002ms

rttmin/avg/max/mdev=0.148/0.204/0.266/0.048ms,pipe2

【三】安装HA与HA依赖包

rpm-Uvhlibnet-1.1.2.1-1.rh.el.um.1.i386.rpm//可以不装

rpm-Uvhheartbeat-pils-2.0.4-1.el4.i386.rpm

rpm-Uvhheartbeat-stonith-2.0.4-1.el4.i386.rpm

rpm-Uvhheartbeat-2.0.4-1.el4.i386.rpm

rpm-Uvhipvsadm-1.24-5.i386.rpm

【四】配置HA的各配置文件

配置心跳的加密方式:authkeys

#vi/etc/ha.d/authkeys

如果使用双机对联线(双绞线),可以配置如下:

#vi/etc/hc.d/authkeys

auth1

1crc

存盘退出,然后

#chmod600authkeys

配置心跳的监控:haresources

#vi/etc/ha.d/haresources

各主机这部分应完全相同。

server201IPaddr::192.168.10.200ipvsadmhttpd

指定server201调用ipvsadm启动http服务,系统附加一个虚拟IP192.168.10.200给eth0:0

这里如果server201宕机后,server202可以自动启动http服务,并新分配IP192.168.10.200给server202的eth0:0

配置心跳的配置文件:ha.cf

#vi/etc/ha.d/ha.cf

logfile/var/log/ha_log/ha-log.log##ha的日志文件记录位置。如没有该目录,则需要手动添加

bcasteth1##使用eth1做心跳监测

keepalive2##设定心跳(监测)时间时间为2秒

warntime10

deadtime30

initdead120

hopfudge1

udpport694##使用udp端口694进行心跳监测

auto_failbackon

nodeserver201##节点1,必须要与uname-n指令得到的结果一致。

nodeserver202##节点2

ping192.168.10.1##通过ping网关来监测心跳是否正常。

respawnhacluster/usr/lib64/heartbeat/ipfail

apiauthipfailgid=rootuid=root

debugfile/Datas/logs/ha_log/ha-debug.log

设置ipvsadm的巡回监测

ipvsadm-A-t192.168.10.200:80-srr

ipvsadm-a-t192.168.10.200:80-r192.168.10.201:80-m

ipvsadm-a-t192.168.10.200:80-r192.168.10.202:80-m

执行后进行监测:

#ipvsadm--list

如果返回结果与下相同,则设置正确。

IPVirtualServerversion1.2.0(size=4096)

ProtLocalAddress:PortSchedulerFlags

->RemoteAddress:PortForwardWeightActiveConnInActConn

TCP192.168.10.200:httprr

->server202:httpLocal100

->server201:httpMasq100

【五】HA服务的启动、关闭以及测试

启动HA:serviceheartbeatstart

关闭HA;serviceheartbeatstop

系统在启动时已经自动把heartbeat加载了。

使用http服务测试heartbeat

首先启动httpd服务

#servicehttpdstart

编辑各自主机的测试用html文件,放到/var/www/html/目录下。

启动node1的heartbeat,并执行这个指令进行监控:heartbeatstatus

【六】防火墙设置

heartbeat默认使用udp694端口进行心跳监测。如果系统有使用iptables做防火墙,应记住把这个端口打开。

#vi/etc/sysconfig/iptables

加入以下内容

-ARH-Firewall-1-INPUT-pudp-mudp--dport694-d10.0.0.201-jACCEPT

意思是udp694端口对对方的心跳网卡地址10.0.0.201开放。

#serviceiptablesrestart

重新加载iptables。