HA heartbeat在虚拟机中的实现及其问题

                  ha部署

 

1. VMware:12.5.0  

2. Linux:CentOS6.3-x86  

3. Heartbeat:3.0.4  

4. Nginx:1.6.2  

5. 主机A(eth0):192.168.157.137

6. 备机B(eth0):192.168.157.138   

7. 主机A心跳线(eth1):192.168.0.250   

8. 备机B心跳线(eth1):192.168.0.249   

9. 虚拟IP(eth0:0):192.168.157.200

10. 裁判IP(Ping):192.168.1.1  

第一步 配置基础环境 

配置主机A、备机B,以下操作需要在两台主机上都进行配置。

安装Nginx,并搭建一个简易的网站,直接Yum在线安装即可。

1. [root@wang-A ~]# yum -y install nginx  

喜欢折腾的朋友也可以使用纯手工编译安装:纯手工搭建LNMP环境 

禁用系统防火墙、Selinux。

1. [root@wang-A ~]# service iptables stop  

2. [root@wang-A ~]# setenforce 0  

编辑hosts,格式为:“IP 主机名”,IP和主机名之间有一个空格。

1. [root@wang-A ~]# vim /etc/hosts  

主机名如果不知道,输入hostname查看即可。

1. 192.168.157.137 wang-A  

2. 192.168.157.138 wang-B  

安装epel扩展源,再安装heartbeat软件包,openssh-clients其实可装可不装,花郎只是为了接下来要使用scp命令罢了。

1. [root@wangA ~]# yum -y install epel-release  

2. [root@wangh-A ~]# yum -y install heartbeat*  

3. [root@wang-A ~]# yum -y install openssh-clients  

至此,基本的实验环境就准备好了,为方便演示,主机A是123123123,备机B是456456456

       

第二步 配置主机A 

先拷贝三份heartbeat配置文件模版到指定路径。

1. [root@wang-A ~]# cd /usr/share/doc/heartbeat-3.0.4/  

2. [root@wang-A heartbeat-3.0.4]# cp -rf authkeys ha.cf haresources /etc/ha.d/  

配置authkeys加密文件,按Shift+G到文件末尾,按需修改加密方式,花郎是使用MD5的加密,修改完毕后,再设置文件权限为600。注意,如果主机A是使用MD5加密,那么备机B也必须保持一致!

1. [root@wang-A heartbeat-3.0.4]# cd /etc/ha.d  

2. [root@wang-A ha.d]# chmod 600 authkeys  

3. [root@wang-A ha.d]# vim authkeys  

内容如下:

1. auth 3  

2. #1 crc  

3. #2 sha1 HI!  

4. 3 md5 Hello!  

接下来要设置一个虚拟IP,花郎设置为192.168.157.200,端口为eth0:0,对应启动的服务为Nginx。

1. [root@wangA ha.d]# vim haresources  

主机A的主机名、虚拟IP、网口、监控的服务,不要写错!

1. wang-A 192.168.157.200/24/eth0:0 nginx  

重头戏来了,开始配置主机A的heartbeat主配置文件。

1. [root@wang-A ha.d]# vim ha.cf  

以下内容并非是凑在一起的,得自己逐行慢慢找!每一行选项参数的意义,可以稍后自己谷歌搜索了解,不懂也可以在文章评论,建议先参考花郎的笔记把实验做成功,再慢慢剖析知识点,也是不错的学习方法。

1. debugfile /var/log/ha-debug  

2. logfile /var/log/ha-log  

3. logfacility     local0  

4. keepalive 2  

5. deadtime 30  

6. warntime 10  

7. initdead 60  

8. udpport 694  

9. ucast eth1 192.168.0.250

10. auto_failback on  

11. node    wang-A  

12. node    wang-B  

13. ping 192.168.1.1  

14. respawn hacluster /usr/lib/heartbeat/ipfail   #如果操作系统是64位的路径为 /usr/lib64/heartbeat/ipfail   

因为主机A和备机B的三份heartbeat配置文件在内容上是差不多的,所以配置备机B的时候,可以直接把主机A的三份配置文件直接拷贝到备机B上,一会再稍作修改即可!注意,要使用scp命令,主机A、备机B必须安装openssh-clients。

1. [root@wang-A ha.d]# scp authkeys ha.cf haresources root@wanghualang-B:/etc/ha.d/  

第三步 配置备机B 

刚才已经从主机A拷贝了三份配置文件过来,需要对ha.cf文件进行修改,另外两个则不需要。

1. [root@wang-B ~]# cd /etc/ha.d/  

2. [root@wang-B ha.d]# vim ha.cf  

唯一需要修改的参数就是ucast,修改侦听的心跳线接口和对应的对端接口的IP地址,所以在配置备机B时,ucast必须填写主机A的心跳线IP地址,即192.168.0.249。

1. debugfile /var/log/ha-debug  

2. logfile /var/log/ha-log  

3. logfacility     local0  

4. keepalive 2  

5. deadtime 30  

6. warntime 10  

7. initdead 60  

8. udpport 694  

9. ucast eth1 192.168.0.250

10. auto_failback off   #A正常B不接手   

11. node    wang-A  

12. node    wang-B  

13. ping 192.168.1.1  

14. respawn hacluster /usr/lib64/heartbeat/ipfail  

第四步 启动测试 

两台主机可以同时启动Nginx,然后先打开浏览器访问两个网站,确保Nginx服务是正常的。

1. [root@wang-A ~]# service nginx start  

2. [root@wang-B ~]# service nginx start  

主机A,123123123:http://192.168.157.137
备机B,456456456:http://192.168.157.138

能正常访问网页后,再停用两台主机的Nginx。

1. [root@wang-A ~]# service nginx stop  

2. [root@wang-B ~]# service nginx stop   

先启动主机A上的Heartbeat。

1. [root@wang-A ~]# service heartbeat start  

大约一分钟后,再看eth0:0虚拟IP是否启动。/

1. [root@wang-A ~]# ip a   

虚拟IP已经成功启动,


如果虚拟网卡一直无法启动日志也没有报错的话 手动配置eth0:0

ifconfig eth0:0 192.168.157.200 netmask 255.255.255.0 

ifconfig eth0:0  查看eth0:0网卡

ifconfig eth0:0 up 启动网卡


浏览器访问192.168.157.137或192.168.157.200,都会显示同一个网站,123132123,

 

再启动备机B上的Heartbeat,备机B就会自动进入待命模式,即主机A一旦故障,备机B就会接手。

1. [root@wang-B ~]# service heartbeat start  

 

扩展阅读 

启动备机B之后,要特别注意观察,当主机A运行正常时,不论等多久,备机B上是不会启动虚拟IP的,一旦启用,就表示两台机子都在互抢资源,都误判对方机子故障,自己将成为主导,俗称脑裂(split-brain)!详情可以查看日志,进行故障分析。

1. [root@wang-A ~]# cat /var/log/ha-debug   

2. [root@wang-A ~]# cat /var/log/ha-log  

 

 

接下来,直接把主机A断电关机,玩的就是简单,要的就是粗暴!彻底断电后,立即清空浏览器所有缓存,再次访问192.168.157.137或 192.168.157.200时,应该就无法打开123123123,即主机A已彻底故障,等待备机B接手!等大约一分钟,再用浏览器访问 192.168.157.200,456456456,说明备机B已接手,并正常提供服务, 

B机毕竟是作为备机而存在的,当主机A修理好之后,便会自动接管回来!开始做最终测试,依旧先清空浏览器所有缓存,虚拟机打开主机A的电源,并启动 Heartbeat,等一分钟左右,再次访问192.168.1157.200,如果出现的是123123123,说明主机A已自动做回主导,实验 成功!

 


最后感谢wanghualang提供的教程!! 谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值