实验平台:virtualbox 4.12
操作系统:RHEL5.4
实验拓扑:
两台Directory都有两块网卡,都设置为静态地址,其中eth0用于网络间通信,eth1用于两台Directory监测彼此心跳信息,所以使用独立的网络进行连接,在实际应用中可以使用串行线进行连接,这里由于使用虚拟机就采用intnet的内部网予以实现。
本实验用到的软件包有:
- heartbeat-2.1.4-9.el5.i386.rpm
- heartbeat-devel-2.1.4-9.el5.i386.rpm
- heartbeat-gui-2.1.4-9.el5.i386.rpm
- heartbeat-pils-2.1.4-10.el5.i386.rpm
- heartbeat-stonith-2.1.4-10.el5.i386.rpm
- libnet-1.1.4-3.el5.i386.rpm
一.首先安装软件包
- [root@DIR ~]# yum localinstall *.rpm --nogpgcheck -y
按照拓扑图设置两台主机的IP地址和主机名
分别修改两主机/etc/hosts文件,添加下面的内容
- 192.168.56.10 node1.a.org node1
- 192.168.56.30 node2.a.org node2
为两主机设置免密码ssh连接
首先在node1上:
- [root@DIR ~]# ssh-keygen -t rsa
- [root@DIR ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2
再在node2上:
- [root@DIR2 ~]# ssh-keygen -t rsa
- [root@DIR2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1
这样就可以免输密码自由连接了。
可以将node1上的软件包直接拷贝至node2上进行安装:
然后同样的安装步骤:
- [root@DIR2 ~]# yum localinstall -y *.rpm –nogpgcheck
准备工作基本结束,下面开始进行配置
二.配置Heartbeat
1.将heartbeat的配置文件拷贝到/etc/ha.d目录下
- [root@node1 ~]# cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,haresources,authkeys} /etc/ha.d/
2.首先编辑ha.cf
- [root@node1 ha.d]# cd /etc/ha.d/
- [root@node1 ha.d]# vim ha.cf
修改下面几项:
- logfile /var/log/ha-log //打开日志
- bcast eth1 //监测心跳的网卡
- node node1.a.org
- node node2.a.org //定义集群节点
- respawn hacluster /usr/local/lib64/heartbeat/ipfail
- apiauth ipfail gid=haclient uid=hacluster //定义随heartbeat一起启动的进程
3.然后编辑authkeys
- [root@node1 ha.d]# vim authkeys
修改文件最后几行为
- auth 2 //这里是用来指定认证方式的
- 2 sha1 e781edf0090887bee14405fd48768ac6(随机数)
- //随机数可以用下面的命令生成
- [root@node1 ~]# dd if=/dev//urandom bs=512 count=1 | md5sum
- [root@node1 ha.d]# chmod 400 authkeys //修改该文件的权限为400或600
4.接下来编辑haresources
- [root@node1 ha.d]# vim haresources
- //在其中写入:
- node1.a.org 192.168.56.20/24/eth0/192.168.56.255 httpd
这条语句分别用来定义主节点,VIP,指定网卡,广播地址和服务
5.拷贝配置文件至node2
由于两台主机的配置文件必须相同,这里直接将node1上编辑好的配置文件拷贝至node2
- [root@node1 ha.d]# scp ha.cf haresources authkeys node2:/etc/ha.d
三.启动服务进行测试
为了验证效过,在node1和node2上分别安装httpd服务,并添加测试页。
启动集群服务
- [root@node1 ~]# /etc/init.d/heartbeat start
- [root@node1 ~]# ssh node2 -- `/etc/init.d/heartbeat start`
- [root@node1 ~]# service heartbeat status //查看一下heartbeat运行状态
说明服务运行正常
查看ip地址
[root@node1 ~]# ifconfig
此时在浏览器内出入192.168.56.20(VIP)可以看到
再停掉node1上的heartbeat,看一下服务状态
- [root@node1 ~]# service heartbeat stop
- [root@node2 ha.d]# service heartbeat status
- [root@node1 ~]# ifconfig
刷新页面可以看到
可见heartbeat工作正常,高可用集群搭建成功!