centos实现heartbeat 双机热备


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

wKioL1jUs1-jFV7GAAAxc_xszBQ099.png-wh_50

两台服务器用来做高可用,虚拟vip192.168.100.249,通过心跳线来确定对方是否活着

下面看下我的heartbeat来做HA集群

环境描述

两个系统都是centos6.7,两个主机ip分别为
cs1.local 192.168.100.45

cs2.local 192.168.100.44

两个主机的心跳地址分别为:

cs1.local 192.168.10.20

cs2.local 192.168.10.10

一、设置主机名


  1. wKiom1jUtXLxhJ2qAAAMuu3UXuA132.png-wh_50

  2. wKioL1jUtXLggeyNAAAOZwlp6Nc380.png-wh_50

二、关闭防火墙活着打开所需端口,关闭SELinux

/etc/init.d/iptables stop

setenforce 0

三、设置解析

wKiom1jUtnujTdYcAAAPXeEeMPk304.png-wh_50

wKioL1jUtnvzjqqKAAARBe71iT8047.png-wh_50


四、安装epel扩展源

yum insall epel-release

五、安装heartbeat 和apache

yum -y install heartbeat-stonith heartbeat-pils heartbeat heartbeat-devel heartbeat-gui libnet

yum install -y httpd

六、主服务器上的操作

1.Heartbeat的主要配置文件有ha.cf、haresources、authkeys,需要放在/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.主配置文件ha.cf的内容设置如下:

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

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

logfacility local0 #系统日志级别

keepalive 2 #设定心跳(监测)间隔时间,默认单位为秒

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

warntime 10 #警告时间,通常为deadtime时间的一半

initdead 120 #网络启动时间,至少为deadtime的两倍

udpport 694 使用udp端口694进行心跳监测

ucast eth1 192.168.10.10 #采用单播,进行心跳监测,IP为对方主机IP

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

node cs1.local #设置集群中的节点,节点名须与uname�Cn相匹配
node cs2.local #节点2

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

respawn hacluster /usr/lib64/heartbeat/ipfail #此处lib64默认为lib,64位系统要改为lib64,否则启动时报错。

apiauth ipfail gid=root uid=root #设置所指定的启动进程的权限

3.ha.cf文件设置了heartbeat的检验机制,没有执行机制。Haresources用来设置当主服务器现 问题时heartbeat的执行机制。其内容为:当主服务器宕机后,该怎样进行切换操作。切换内容 通常有IP地址的切换、服务的切换、共享存储的切换,从而使从服务器具有和主服务器同样的IP、SERVICE、SHARESTORAGE,从而使client没有察觉。在两个HA节点上该文件必须完一 致。

cat /etc/ha.d/haresources

wKiom1jUvS7Ac_AKAAAMEiTJf1M768.png-wh_50


4.认证文件authkeys

用于配置心跳的加密方式,该文件主要是用于集群中两个节点的认证,采用的算法和密钥在集群中节点上必须相同,目前提供了3种算法:md5,sha1和crc。其中crc不能够提供认证,它只能够用于校验数据包是否损坏,而sha1,md5需要一个密钥来进行认证。
本次实例中,内容设置如下:

cat /etc/ha.d/authkeys

wKioL1jUvjew1MT8AAAJk5cc9Gw983.png-wh_50


注:需要更改该文件的属性为600,否则heartbeat启动将失败

chmod 600 /etc/ha.d/authkeys

5.配置从节点的heartbeat

将主节点上的heartbeat配置文件拷贝到从节点,并确保两个节点上的配置文件权限相同:

scp /etc/ha.d/ha.cf root@cs2.local:/etc/ha.d/
scp /etc/ha.d/haresources root@cs2.local:/etc/ha.d/
scp /etc/ha.d/authkeys root@cs2.local:/etc/ha.d/

ha.cf文件需修改ucast的内容,将其指向主节点:
ucast eth1 192.168.10.20 #指定对方IP

其他文件内容无需修改。在主备节点上haresources和authkeys文件必须是相同的

七、测试

将cs1.local 网页改为 this is webserver : cs1

将cs2.local 网页改为 this is webserver : cs2

/etc/init.d/httpd start

/etc/init.d/heartbeat start

wKioL1jUwYyzopG5AAA3w3XLXU8522.png-wh_50


断开cs1.local 的心跳ip 192.168.10.20

wKioL1jUwhqDidT_AAAaqY6PEo0678.png-wh_50


重新访问结果如下

wKiom1jUwlSzgA85AAArYLu5aIg606.png-wh_50


恢复主机心跳ip192.168.10.20 访问又回到原来界面

wKioL1jUwu2BCwQ3AAA3w3XLXU8717.png-wh_50

centos实现heartbeat 双机热备的更多相关文章

  1. iOS – 友好的NSDate格式

    我需要在我的应用程序中显示帖子的日期给用户,现在我用这种格式:“5月25日星期五”.如何格式化NSDate以阅读“2小时前”的内容?使其更加用户友好.解决方法NSDateFormatter不能做这样的事情;你将需要建立自己的规则.我想像:所以这是打印’x分钟前’或’x小时前’从日期起24小时,通常是一天.

  2. 记一次云计算测试实验-openstack-icehouse-安装swift

    -----------------------controller:---------------------------------sourceadmin-openrc.shkeystoneuser-create--name=swift--pass=000000--email=swift@localhostkeystoneuser-role-add--user=swift--tenant=ser

  3. 对象存储系统Swift技术详解:综述与概念

    通过阅读Swift的技术文档,我们可以理解其中的设计的原理和实现的方法。本人于9月底开始接触swift,刚开始看文档的时候一知半解,有幸阅读了zzcase等人的博客,才得以入门。随着对swift设计原理的理解和源码的深入,文档经过数次反复的修改,希望对各位学习swift的童鞋有所帮助,水平有限,若各位发现有错误之处,恳请指出。

  4. 让你真正明白cinder与swift、glance的区别

    Cinder——提供块存储,类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。Cinder包含以下三个主要组成部分APIservice:Cinder-api是主要服务接口,负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。Cinder目前提供VolumeAPIV2Schedulerservice:处理任务队列的任务,并根据预定策略选择合适的VolumeService节点来执行任务。目前版本的cinder仅仅提供了一个SimpleScheduler,该调度器选择卷数量

  5. android – 模拟器中hosts文件中的Url映射被忽略

    我正在使用genymotion仿真器,并使用它从主机文件中提取adbremountadbpull/system/etc/hostsC:\Users\Rkn09\Desktop\hosts我添加了新的映射192.168.0.115xxx.mydomain.com,我把它推回到模拟器使用adbpushC:\Users\Rkn09\Desktop\hosts/system/etc/hosts但是当我向x

  6. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    这篇文章主要介绍了centos+php+coreseek+sphinx+mysql之一coreseek安装篇的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

  8. Centos7 中 Node.js安装简单方法

    这篇文章主要介绍了Centos7 中 Node.js安装简单方法,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下

  9. nodejs脚本centos开机启动实操方法

    在本篇文章里小编给大家整理的是关于nodejs脚本centos开机启动实操方法,有兴趣的朋友们参考下。

  10. Centos PHP 扩展Xchche的安装教程

    这篇文章主要介绍了Centos PHP 扩展Xchche的安装教程的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部