分类: LINUX
2009-07-09 08:26:53
Rhel4的Heartbeat安装与配置
一、安装前环境设定
两台主机硬件环境(不必完全一致)
CPU:Xeon 2.833*2
MEM:2G
Eth0:对外服务器IP
Eth1:HA专用IP
OS平台:Redhat enterprise 4 update7 (2.6.9-78 EL)
---------------------------------------------------------------
二、网络环境设定:
1、设置node信息
node1:
主机名:servers01 (HA01)
eth0:10.10.10.217(接入网络)
eth1:192.168.0.217
node2:
主机名:servers02(HA02)
eth0:10.10.10.218(接入网络)
eth1:192.168.1.218
虚拟IP(公共IP,只在haresources中设置):
10.10.10.216
2、修改网络相关配置文件:
#vi /etc/hosts
node1的hosts内容:
127.0.0.1 localhost.localdomain localhost
10.10.10.217 servers01 HA01
192.168.0.217 HA01
192.168.0.218 HA02
10.10.10.218 server02
node2的hosts内容:
127.0.0.1 localhost.localdomain localhost
10.10.10.218 servers02 HA02
192.168.0.218 HA02
192.168.0.217 HA01
10.10.10.217 server01
#cat /etc/host.conf
order hosts,bind
#cat /etc/resolv.conf
nameserver 10.10.10.21 //DNS地址
#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servers01 //主机名
GATEWAY="10.10.10.250" //网关
ONBOOT=YES //启动时加载
FORWARD_IPV4="yes" //只允许IPV4
#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.217
NETMASK=255.255.255.0
GATEWAY=10.10.10.250
TYPE=Ethernet
IPV6INIT=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.0.217
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通
3.在两个节点上启用httpd并测试,首页文件index.html可显示当前节点地址信息,如节点1的index.html内容:
This is HA01
节点2的index.html内容:This is HA02
三、安装heartbeat
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.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
注:heartbeat软件包可以在下载
四、配置heartbeat
heartbeat的配置有以下三个文件,2个节点配置除ha.cf可能不一样外(如心跳接口名称),其他一样。
ha.cf 主配置文件
haresources 资源配置文件
authkeys 认证信息配置文件
可以拷贝三个范例来进行配置
cp /usr/share/doc/heartbeat-1.2.3/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-1.2.3/haresources /etc/ha.d/
cp /usr/share/doc/heartbeat-1.2.3/authkeys /etc/ha.d/
也可以直接配置
1)配置ha.cf
debugfile /var/log/ha_log/ha-debug //调试日志文件
logfile /var/log/ha_log/ha-log //系统运行日志文件
logfacility local0 //日志记录等级
keepalive 2 //心跳频率,2表示2秒;200ms则表示200毫秒
deadtime 10 //节点死亡时间,就是过了10秒后还没有收到心跳就认为主节点死亡
warntime 10 //告警时间
initdead 120 //初始化时间
udpport 694 //心跳信息传递的udp端口
bcast eth1 //采用udp广播播来通知心跳,建议在备用节点不只一台时使用
baud 19200
auto_failback on //如果主节点重新恢复过来,主节点将主动将资源抢占过来,如果为off,则只当备用节点当掉后,主节点才取回资源
watchdog /dev/watchdog //看门狗。如果本节点在超过1分钟后还没有发出心跳,那么本节点自动重启
ping 10.10.10.250 //通过ping网关来监测心跳是否正常
respawn root /usr/lib64/heartbeat/ipfail
respawn root /usr/sbin/httpd
apiauth ipfail gid=root uid=root
hopfudge 1
node servers01 //主节点名称,与uname -n显示必须一致
node servers02 //备用节点名称
2)配置haresources (定义虚拟IP及httpd服务等集群资源)
servers01 10.10.10.216 httpd //servers01为主节点名称,10.10.10.216为虚拟IP地址,httpd为集群服务资源之一且为该资源的启动脚本名称或程序名称
#servers01 10.10.10.216 MyService.sh //其他示例
#servers01 10.10.10.216 Filesystem::/dev/sdb2::/www::ext3::rw //示例挂接一个文件系统,包括设备名,挂接点、类型及权限
3)配置authkeys
auth 1
1 crc //主节点与备用节点间数据校验采用crc算法
#2 sha1 HI!
#3 md5 Hello!
注:authkeys需要设置读写权限:chmod 600 ./authkeys
五、测试校验
启动:service heartbeat start
验证:
1)haresources中配置的虚拟IP:10.10.10.216将在主节点自动启用,可用ifconfig查看到为eth0:0接口,并可用测试网页的打开.备份节点虚拟IP不启用是正常的,只在切换时启用。
2)将主节点的eth0和eth1都down掉,过一会应该可以看到备份节点接管了10.10.10.216地址。然后将主节点eth0和eth1起用,由于设置了fallback on,主节点主动将虚拟IP抢占回来(要等一会儿,用ifconfig多刷几次看看),并接管了相应的服务(httpd)。
校验截图:
刚开始,虚拟IP先由主节点接管
节点2没有虚拟IP
访问虚拟IP显示的是主节点
手动当掉主节点的2块网卡,模拟主节点发生故障,虚拟IP就由备用节点接管了
访问结果显示为备用节点
测试完成。