您的位置:首页 > 运维架构 > 网站架构

HA(heartbeat)主备模式实现lvs群集的高可用性

2014-01-24 14:02 573 查看
案例要求:

1、通过HA主备模式实现对lvs群集(web服务器)的高可用性,并实现对内部web服务器在线状态进行探测。

案例拓扑:





ha-1配置

环境准备:
a、用hostname修改主机名,

#hostname ha1.abc.com

b、并修改/etc/sysconfig/network

HOSTNAME=ha1.abc.com

c、因没有配置dns,所以直接hosts文件,

#vim /etc/hosts/

ha1.abc.com 192.168.2.60

ha2.abc.com 192.168.2.61

1.安装 heartbeat 相关软件包,有依赖关系,推荐使用yum安装
heartbeat-2.1.4-11.el5.i386.rpm

heartbeat-pils-2.1.4-11.el5.i386.rpm

heartbeat-stonith-2.1.4-11.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

额外依赖包:libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm

2.关闭相关服务,
# service ipvsadm stop 关闭服务并禁止开机启动,由ha来控制操作

# chkconfig ipvsadm off

#service ldirectord stop 关闭ldirectord服务并禁止开机启动

#chkconfig ldirectord off

3.拷贝配置文件

/usr/share/doc/heartbeat-2.1.4

# cp -p haresources ha.cf authkeys /etc/ha.d/

4.编辑配置文件

a、 # vim /etc/ha.d/ha.cf

95 bcast eth1

96 node ha1.abc.com

97 node ha2.abc.com

b、身份验证

[root@ha1 ~]# dd if=/dev/random bs=512 count=1| openssl md5

0+1 records in

0+1 records out

ec92b27792a008b420ec5adfe0a34ea0

17 bytes (17 B) copied, 6.1088e-05 seconds, 278 kB/s

# vim /etc/ha.d/authkeys

auth 3

3 md5 ec92b27792a008b420ec5adfe0a34ea0 //为刚才借助dd产生的随机md5加密值

# chmod 600 /etc/ha.d/authkeys //修改权限

c、资源

# vim /etc/ha.d/haresources

ha1.abc.com 192.168.2.254/24/eth0 ldirectord:ldirectord.cf //ha1.abc.com为首先要激活的





#ll /etc/ha.d/resource.d/ldir* //查看该目录是否有ldirectord服务的控制脚本,若没有执行复制:#cp -p /etc/init.d/ldirectord /etc/ha.d/resource.d/





d、复制并编辑配置文件ldirectord.cf

#cp -p /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/

#vim /etc/ha.d/ldirectord.cf





4、启动heartbeat服务

# service heartbeat start//启动heartbeat服务

ha-2配置

环境准备:
a、用hostname修改主机名,

#hostname ha2.abc.com

b、并修改/etc/sysconfig/network

HOSTNAME=ha2.abc.com

c、因没有配置dns,所以直接hosts文件,

#vim /etc/hosts/

ha1.abc.com 192.168.2.60

ha2.abc.com 192.168.2.61

1、安装 heartbeat 相关软件包,

heartbeat-2.1.4-11.el5.i386.rpm

heartbeat-pils-2.1.4-11.el5.i386.rpm

heartbeat-stonith-2.1.4-11.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

依赖包:libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm

2、也要关闭相关服务

# service ipvsadm stop关闭ipvsadm服务并禁止开机启动

# chkconfig ipvsadm off

#service ldirectord stop 关闭ldirectord服务并禁止开机启动

#chkconfig ldirectord off

3、ha-1与ha-2的配置相同,所以直接使用scp命令实现安全拷贝,将ha-1的相应修改内容拷贝到ha-2中,

#scp ha1.abc.com:/etc/ha.d/ha.cf authkeys haresources ldirectord.cf /etc/ha.d/





# service heartbeat start //启动heartbeat服务。

server1配置、server2配置相同(server2自形配置)

#解决arp不响应的问题

[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore //只回答目标IP地址是来访网络接口本地地址的ARP查询请求

[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce //对查询目标使用最适当的本地地址

[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

[root@server1 ~]# ifconfig lo:0 192.168.2.254 netmask 255.255.255.255 //lo:0的地址

#添加一条路由

[root@server1 ~]# route add -host 192.168.2.254 dev lo:0

注:对于server的配置是临时性的,重启配置消失,

下面为在ha-1上的操作:

正常启动heartbeat服务后,测试会发现可以正常高可用性,并且添加了eth0:0接口与地址





查看日志可以看出,可以接收资源,启动相应接口、服务。



当然实验过程中,遇到错误时也可以通过查看日志来解决……

查看ipvsadm策略规则表:发现web服务器的权重为0,因为没有创建web服务器的测试页,





在web服务器上创建相应测试后(#echo "ok" > /var/www/html/.index.html),权重变为1,表示可以探测到,





现在我们关闭一台web服务器,会发现权重值变为0,而我们采用的是rr调度算法,权重值的大小是不会影响轮循的,我们再次设置/etc/ha.d/ldirectord.cf,不再采用静默模式,配置文件保存退出后,不需要重启heartbeat服务,是自动加载的,





注意:也要对ha-2下的/etc/ha.d/ldirectord.cf做同样配置。

现在再来测试一下,关闭一个web服务器,service httpd stop后,发现ipvsadm的策略规则表中马上就消失了关于该服务器的策略分配语句。





通过ha1作为主模式测试正常,并可以探测到内部web服务器的运行状态。

现在将ha1通过命令实现成为备份模式,来测试ha2的工作情况:

ha-1上执行:

#/usr/share/heartbeat/hb_standby

2012/12/28_19:43:49 Going standby [all].

再次查看ha1的ipvsadm策略规则时,发现已经没有了,





查看ha2的ipvsadm策略表,会发现已经存在了,并成功探测到了内部web服务器,





对web服务器的探测也是正常的,不再附图。

在ha1执行:# /usr/share/heartbeat/hb_takeover 重新变为主动模式。
实验注意项:
1、ha群集中,两个node点的共享资源要相同,
2、心跳探测时,两个node点交流时,身份验证的的配置文件authkeys的权限值一定要修改,

heartbeat[24576]: 2012/12/29_16:45:50 ERROR: Bad permissions on keyfile [/etc/ha.d/authkeys], 600 recommended.
heartbeat[24576]: 2012/12/29_16:45:50 ERROR: Authentication configuration error.
heartbeat[24576]: 2012/12/29_16:45:50 ERROR: Configuration error, heartbeat not started.
#chmod 600 /etc/ha.d/authkeys
3、其他错误,查看日志一般可以解决了,祝你好运!

实验结束。
本文出自 “刘园的博客” 博客,请务必保留此出处/article/4539641.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: