设为首页 收藏本站
查看: 1242|回复: 0

[经验分享] web集群之二 heartbeat实现ip漂移

[复制链接]

尚未签到

发表于 2015-11-21 09:42:16 | 显示全部楼层 |阅读模式

  此文章是实现多台apache+tomcat集群功能的操作的部分之一
  -------
  使用Heartbeat实现IP飘移(虚拟机vm中部署)
使用Heartbeat实现双机热备或者称为双机互备
heartbeat
的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路(本次测试使用网络)和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。

heartbeat
的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。(主、从节点的区分很简单:本例在haresources配置文件中都设置v207m;所以v207m为主)

一、网络环境设定

网络拓扑结构图如下:



两台机器都添加网卡eth1(1段内部通信网络链接使用)

图像界面里设置--添加-自动桥接

vi/etc/udev/rules.d/70-persistent-net.rules 中复制eth1MC地址

cd /etc/sysconfig/network-scripts/目录下cp ifcfg-eht0 ifcfg-eht1

vi ifcfg-eth1,替换刚复制的MC地址、设置IP

service network restart

ifconfig -a查看,已生效


这样每个虚拟主机分别带有两块以太网卡,其中一块用于网络通信,另一块用于心跳功能。两个节点的网络设置如下:
node1:
主机名:v207m
eth0: 192.0.0.207  
255.255.255.0 //对外IP地址

eth1: 192.0.1.207  
255.255.255.0 //HA心跳使用地址
node2:
主机名:v208m
eth0: 192.0.0.208  
255.255.255.0 //对外IP地址

eth1: 192.0.1.208  
255.255.255.0 //HA心跳使用地址
vip
192.0.0.200
同时通过网络和另一台机器192.0.0.211相互连接用来检测网络连接情况。



两台机器的/etc/hosts文件中需要加入如下的配置
192.0.0.207  
v207m
192.0.0.208  v208m
主节点的/etc/sysconfig/network文件的HOSTNAME如下
HOSTNAME=v207m
从节点的/etc/sysconfig/network文件的HOSTNAME如下
HOSTNAME=v208m

二,安装配置

2.1,在两台机器上分别安装heartbeat
Centos6.2
下一键安装heartbeat

# yum -y install heartbeat*

提示找不到包。原因是针对centos6.2heartbeat尚未发布,解决办法可以到第三方资源为库中找,这里使用epel

centos6 64位的下载地址:

# wgethttp://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

# rpm -vih epel-release-6-8.noarch.rpm

再安装heartbeat

# yum -y install heartbeat*

------ ----

安装过程中可能遇到问题及解决

Yum报错[Errno 14]PYCURL ERROR 22 - "The requested URL returned error: 404"

解决办法:

http://mirrors.163.com/.help/centos.html下载CentOS6-Base-163.repo/etc/yum.repos.d

然后命令:yum makecache


yum [Errno 256] No more mirrors to try解决方法如下:


etc/yum目录下

# yum update

# yum clean all

# yum makecache

# yum -y update


参考(http://blog.sina.com.cn/s/blog_6e0c0fdf01019onq.html)

------------ ----------
2.2
,配置heartbeat

Heartbeat
的主要配置文件有ha.cfharesourcesauthkeys,需要放在/etc/ha.d目录下,
在通过yum安装Heartbeat后,默认并没有这三个文件,
yum
安装后可以从/usr/share/doc/heartbeat-3.0.4找到,拷贝到/etc/ha.d并编辑
cp /usr/share/doc/heartbeat-3.0.4 /ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.4 /haresources /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.4 /authkeys /etc/ha.d/

2.3,
主配置文件: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 60

udpport 694

bcast eth1

auto_failback off

watchdog /dev/watchdog

node v207m

node v208m

参考的配置:

1. debugfile/var/log/ha-debug #用于记录heartbeat的调试信息

2. logfile/var/log/ha-log #用于记录heartbeat的日志信息

3. logfacilitylocal0 #系统日志级别

4. keepalive2 #设定心跳(监测)间隔时间,默认单位为秒

5. warntime10 ##警告时间,通常为deadtime时间的一半

6. deadtime30 #超出30秒未收到对方节点的心跳,则认为对方已经死亡

7. initdead120 #网络启动时间,至少为deadtime的两倍。

8. hopfudge1 #可选项:用于环状拓扑结构,在集群中总共跳跃节点的数量

9. udpport694 #使用udp端口694进行心跳监测

10.ucasteth1 192.168.9.6 #采用单播,进行心跳监测,IP为对方主机IP

11.auto_failbackon #on表示当拥有该资源的属主恢复之后,资源迁移到属主上

12.nodesrv5.localdomain #设置集群中的节点,节点名须与uname –n相匹配

13.nodesrv6.localdomain #节点2

14.ping192.168.8.2 192.168.9.7 #ping集群以外的节点,这里是网关和另一台机器,用于检测网络的连接性

15.respawnroot /usr/lib/heartbeat/ipfail

16.apiauthipfail gid=root uid=root #设置所指定的启动进程的权限


2.4,资源文件haresources两台机器一样)
ha.cf文件设置了heartbeat检验机制,没有执行机制。

Haresources用来设置当主服务器出现问题时heartbeat执行机制。其内容为:当主服务器宕机后,该怎样进行切换操作。切换内容通常有IP地址的切换(本例使用)、服务的切换、共享存储的切换,从而使从服务器具有和主服务器同样的IPSERVICESHARESTORAGE,从而使client没有察觉。在两个HA节点上该文件必须完全一致。
vi /etc/ha.d/haresources
v207m  
IPaddr::192.0.0.200/32 httpd  

//两台v207m,则其是主

//192.0.0.200为虚拟viphb会自动配置到设备

//httpd启动hb时会启动apache服务

2.5,
认证文件authkeys
用于配置心跳的加密方式,该文件主要是用于集群中两个节点的认证,采用的算法和密钥在集群中节点上必须相同,目前提供了3种算法:md5,sha1crc。其中crc不能够提供认证,它只能够用于校验数据包是否损坏,而sha1,md5需要一个密钥来进行认证。
本次实例中,内容设置如下:
-----------------------------------------------
vi /etc/ha.d/authkeys
auth 1
1 crc
-----------------------------------------------
注:需要更改该文件的属性为600,否则heartbeat启动将失败
[iyunv@v207m ~]#chmod 600 /etc/ha.d/authkeys

2.6
,配置从节点的heartbeat
将主节点上的heartbeat配置文件拷贝到从节点,并确保两个节点上的配置文件权限相同:
-----------------------------------------------
scp /etc/ha.d/ha.cf root@v208m:/etc/ha.d/
scp /etc/ha.d/haresources root@v208m:/etc/ha.d/
scp /etc/ha.d/authkeys root@v208m:/etc/ha.d/
-----------------------------------------------
ha.cf
文件需修改bcast的内容,将其指向主节点:
bcast eth1 192.168.9.5 #
指定对方IP //lg注:本例中直接用bcasteth1,而没有后面的ip
其他文件内容无需修改。在主备节点上haresourcesauthkeys文件必须是相同的

三,测试
测试heartbeatip飘移

两台机器启动heartbeat

# service heartbeat start

使用ip ad查看207208网络ip现状


看到vip 200v207meht0

此时挂起主机v207m,再ip adv208mvip200已飘移到从机v208m


从新运行v207m后,vip 200又会自动漂移到主机v207m(图略)

  --------------
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141726-1-1.html 上篇帖子: heartbeat: ha.cf配置文件中文详解 下篇帖子: centos 编译安装 heartbeat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表