现在的位置: 主页 > 公司荣誉 > 文章列表

动手搭建centos下用heartbeat实现双机热备

作者:程力专用汽车股份有限公司 来源:www.chLiw.com 发布时间:2017-09-11 13:43:58
动手搭建centos下用heartbeat实现双机热备

  双机热备就是使用两台服务器共同执行同一服务,在运行过程中实时相互备份,当一台服务器出现故障时候,另一台可以立即发现故障并接管那天服务器的服务,从而在不需要人工干预的情况下自动保证系统能持续提供服务。常见的有两种情况:使用共同存储设备、使用不同存储设备(需要通过软件保持同步),在同一时间内主服务器保持激活状态,备份服务器处于监听状态,当主服务器出现故障无法启动时候,备份服务器会通过心跳诊断将备份服务器激活,保证服务正常使用。这里主要是用在提供web服务的服务器,目的是防止服务器宕机引起的服务间断。采用的是linux+heartbeat方案。下面把我的实现过程写一下:

  主服务器:

  系统:centos

  主机名称:sev1.example.com #和从服务器名称不能相同

  ip:10.0.0.211

  心跳地址:100.0.0.211 #提供给心跳服务使用的,用来检控服务器运行状态

  备份服务器:

  系统:centos

  主机名称:sev2.example.com #和主服务器名称不能相同

  ip:10.0.0.212

  心跳地址:100.0.0.212 #提供给心跳服务使用的,用来检控服务器运行状态

  注:每太服务器需要有两块网卡;心跳地址是心跳服务用来检控服务器运行状态使用的,心跳地址随意写,只要符合规范就行,网关、子网掩码不用写,用在两块网卡之间的通信只有ip就够了,并且和其它ip不会冲突。

  服务器配置完毕后需要设置以下文件:

  /etc/hosts

  /etc/resolv.conf

  /etc/sysconfig/network

  /etc/sysconfig/network-scripts/ifcfg-eth0 # 主网卡

  /etc/sysconfig/network-scripts/ifcfg-eth1 # 心跳检测的网卡

  sev1与sev2主机下/etc/hosts内容的配置相同:

  

1 # Do not remove the following line,orvarious programs

2 # thatrequirenetwork functionality will fail.

3 127.0.0.1 localhost.localdomain localhost

4

5 10.0.0.211 sev1.example.com sev1 # 主服务器对外ip -- 主服务器名称

6 10.0.0.212 sev2.example.com sev2 # 从服务器对外ip -- 从服务器名称

7 100.0.0.211 sev1 # 主服务器心跳ip 主服务器名称

8 100.0.0.212 sev2 # 从服务器心跳ip 从服务器名称

  分别在主服务器、从服务器安装httpd服务,用来测试,或者安装其它能提供web服务的程序:

  1#yum install httpd

  分别在主服务器、从服务器上编辑一个html文件用来做测试用,我安装的是WDCP整合包:

  

1 #vi /var/www/html/index.html

2 This is webserver : sev1/sev2

  关闭防火墙与selinux,这样可以避免心跳服务的端口被屏蔽:

 

1 #vi /etc/sysconfig/selinux

2 SELINUX=disabled

3 #chkconfig --level 3 iptables off

  安装ipvsadm和heartbeat:

  

1 #yum -y installipvsad

2 #yum -y install heartbeat

  到此,用到的服务就安装完了,接下来是非常非常重要的配置环节。

  配置主服务器(sev1)下的ha.cf、authkeys、haresources:

  只要是正确安装以上软件后,复制这个环节就问题不大了,把这三个文件复制到 /etc/ha.d/目录下:

  

1 #cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/

2 #cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/

3 #cp /usr/share/doc/heartbeat-2.1.3/hareources /etc/ha.d/

  修改 /etc/ha.d/ 下的 ha.cf 文件:

  

1 # vi /etc/ha.d/ha.cf

2 logfile /var/log/ha-log # 日志文件

3 logfacility local0 # 登陆/调试日子同时记录给syslog

4 keepalive 2 # 设定heartbeat之间的检测时间间隔

5 deadtime 30 # 在30秒后宣布接点死亡,专题系统,主服务器、从服务器切换

6 warntime 10 # 日志中发出"last hearbeat"警告之前等待的时间,单位秒

7 initdead 120 # 一些配置下,重启网络需要一些时间才能正常工作,就是这里设置,一般设置为deadtime的两倍

8 udpport 694 # 使用端口694进行bcast和ucast通信,这是默认的

9 bcast eth1 # 表示在eth1接口上使用来发送心跳信息

10 ucast eth1 100.0.0.211 # 采用网卡eth1的udp单薄来通知心跳,ip为对方ip

11 #baud 19200 # 波特率,串口通信的速度

12 node sev1.example.com # 必须配置的,急群众机器的主机名,与"uname -n"输出相同

13 node sev2.example.com # 同上

14 ping 10.0.0.1 # 用来验证外网线联通的ip,推荐为上级路由器

15 <div>

  以上需要修改的并不在一起,需要挨个去找

  配置/etc/ha.d/ 下的 authkeys 文件:

  

1 # vi /etc/ha.d/authkeys

2 auth 1 # 认证算法选择,只要前后对应即可

3 1 crc

4 #2 sha1 HI!

5 #3 md5 Hello!

  这个文件需要主从服务器一致,必须的,并且一定要把权限设置成 600 ,否则出错。

  配置/etc/ha.d/下的 haresources:

 

1 # vi /etc/ha.d/haresources

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站设计公司 https://www.feimao666.com

上一篇:Struts2中访问web元素 下一篇:最后一页