HeartBeat双机热备配置

HeartBeat双机热备配置

一.安装前环境设定

两台主机硬件环境可以不一样,本人用的是vmware来做的实验,还没有在真实的在两台机器上安装。
硬件环境:虚拟 2个机器
软件环境:vmware6  RHEL4-U4    heartbeat2.0.4
环境描述:
两台计算机(两个节点),每个节点有自己的系统磁盘;每个分别带有两块以太网卡,(其中一块用于网络通讯,另一块用于心跳功能。)。两个节点的网络设置如下:
节点1: 主机名为:rhel,第一块网卡(eth0)的IP地址:172.16.0.101 (用于网络通讯) 。第二块网卡(eth1)的IP地址:10.0.0.101 (用于心跳通讯) 。
节点2: 主机名为:rhel2,第一块网卡(eth0)的IP地址:172.16.0.102 (用于网络通讯) 。第二块网卡(eth1)的IP地址:10.0.0.102 (用于心跳通讯) 。
vm里用eth1做心跳(只要互相可以ping就可以了)。实际安装时,两台主机的eht1使用双机对联线直接连接。

二.安装前网络环境设定:

node1: 主机名:rhel1 ( ha1 )
eth0:  172.16.0.101    //对外IP地址
eth1:  10.0.0.101           //HA心跳使用地址
node2: 主机名:rhel2 ( ha2 )
eth0:  172.16.0.102        //对外IP地址
eth1:  10.0.0.102           //HA心跳使用地址

a) node1的hosts内容如下:

#vi /etc/hosts

127.0.0.1       localhost.localdomain   localhost
172.16.0.101     rhel1              ha1
10.0.0.101        ha1
10.0.0.102        ha2
172.16.0.102     rhel2

b) node2的hosts内容如下:

#vi /etc/hosts

127.0.0.1       localhost.localdomain   localhost
172.16.0.102     rhel2              ha2
10.0.0.102        ha2
10.0.0.101        ha1
172.16.0.101     rhel1

c) 确认以下文件内容

#cat /etc/host.conf
order hosts,bind

#cat /etc/resolv.conf
nameserver 202.98.0.68

#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rhel1

d) 网卡ifcfg-eth0,ifcfg-eth1配置
#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=172.16.0.101
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=172.16.0.1

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

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.101
NETMASK=255.0.0.0
GATEWAY=10.0.0.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

e) node2与node1相似,参考上述配置.

三.安装HA与HA依赖包,并进行配置:

a) 安装heartbeat及其相关包

#rpm -Uvh libnet-1.1.2.1-1.1.i386.rpm
#rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
#rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
#rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
#rpm -Uvh ipvsadm-1.24-5.i386.rpm

b) 配置heartbeart文件,包括ha.cf,haresources,authkeys

#cp /usr/share/doc/heartbeat-2.0.4/ha.cf /etc/ha.d/
#cp /usr/share/doc/heartbeat-2.0.4/haresources /etc/ha.d/
#cp /usr/share/doc/heartbeat-2.0.4/authkeys /etc/ha.d/

1.配置ha.cf

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

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth1 10.0.0.101
auto_failback on
node    rhel1
node    rhel2
ping 172.16.0.1
respawn hacluster /usr/lib64/heartbeat/ipfail

2.配置authkey,并将文件权限设为600

#vi /etc/ha.c/authkey

auth 1
1 crc

#chmod 600 authkeys

3.配置haresources,其中httpd,myservice为服务项

# vi /etc/ha.d/haresources

rhel1 172.16.0.100/24/172.16.0.255 httpd myservice

4.ipvsadm设置

#ipvsadm -A -t 172.16.0.100:80 -s rr
#ipvsadm -a -t 172.16.0.100:80 -r 172.16.0.101:80 -m
#ipvsadm -a -t 172.16.0.100:80 -r 172.16.0.102:80 -m

四.测试

rhel1的httpd 的 /var/www/html/index.html 中写入rhel1
rhel2的httpd 的 /var/www/html/index.html 中写入rhel2

分别在rhel1/rhel2上启动heartbeat 服务
#/etc/init.d/heartbeat start
heartbeat会自动启动httpd服务
服务成功启动后,会在主节点添加eth0:0 172.16.0.101提供httpd服务;rhel2是从节点,没有启动httpd服务
此时访问httpd://172.16.0.100 会显示rhel1
将rhel1断开网络,rhel2会自动启动httpd服务,并添加eth0:0 172.16.0.102 提供httpd服务
此时访问httpd://172.16.0.100 会显示rhel2
恢复rhel1网络,rhel2会停止httpd服务,并删掉eth0:0;rhel添加eth0:0 172.16.0.100 提供httpd服务

五.防火墙

#vi /etc/sysconfig/iptables
加入以下内容,意思是udp 694端口对对方的心跳网卡地址 10.0.0.101 开放
-A RH-Firewall-1-INPUT -p udp -m udp –dport 694 -d 10.0.0.101 -j ACCEPT
#service iptables restart

猜你喜欢

转载自zlbabel.iteye.com/blog/961329