heartbeat配置资源切换操作笔记(原创)

标题:CentOS6.6安装heartbeat实现高可用

参考资料:http://www.centoscn.com/CentosServer/cluster/2015/0605/5604.html

使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务。master1为主,另一个是备。

准备:

master1: 192.168.42.12 10.1.1.1(心跳)

master2: 192.168.42.13 10.1.1.2(心跳)

以下是IP配置:

vip: 192.168.42.14

(上图可以看到,没有配置vip:两台机器都不必手动添加vip,交给heartbeat去自动添加即可)

1.以下操作在两台机器上操作:

1) /etc/init.d/iptables stop

2) setenforce 0

3) vi /etc/hosts //增加以下内容

192.168.42.12 master1

192.168.42.13 master2

保存退出

4) 安装epel扩展源:

yum -y install epel-release

5) 安装heartbeat和nginx

yum -y install heartbeat nginx

2.在master1上配置:

cd /usr/share/doc/heartbeat-3.0.4/

cp authkeys ha.cf haresources /etc/ha.d/

cd /etc/ha.d

vi authkeys

auth 3

md5 Hello!

保存退出。

chmod 600 authkeys

vi haresources //加入如下语句

master1 IPaddr::192.168.42.14/25/eth0:0 nginx //设定虚拟IP和对应的接口,并且指定启动虚拟IP时启动NGINX服务,这里的NGINX服务必须是能够直接在/etc/init.d/目录下启动的服务。

保存退出。如下图所示:

vi ha.cf //改为如下内容:

debugfile /var/log/ha-debug //设定debug文件目录

logfile /var/log/ha-log //设定日志文件目录

logfacility local0

keepalive 2 //设定检查时间间隔为2s

deadtime 30 //设定死亡时间为30s

warntime 10 //设定告警时间为10s(10s以上没有收到对方的回应就报警)

initdead 60 //设定初始化时间为60s

udpport 694 //启动udp694监听端口(该端口可以修改)

ucast eth1 10.1.1.2 //填写对方的心跳网卡及心跳IP

auto_failback on //启动抢占模式(主在挂了以后重新起来后备会自动切换成备)

node master1 //指定两个节点

node master2

ping 192.168.42.1 //指定一个第三方的仲裁节点

respawn hacluster /usr/lib64/heartbeat/ipfail //使用这个脚本去侦听对方是否还活着(使用的是ICMP报文检测)

保存退出。如下图所示:

3.把master1上的三个文件复制到master2上:

cd /etc/ha.d

scp authkeys ha.cf haresources [email protected]:/etc/ha.d

4.修改master2上的ha.cf文件:

vi /etc/ha.d/ha.cf

ucast eth1 10.1.1.2 ===》 ucast eth1 10.1.1.1 //只改一处即可

保存退出。如下图所示:

5.启动heartbeat:

先主后从。

/etc/init.d/heartbeat start

启动后master1会出现一个eth0:0,自动启动了nginx,而master2则不会启动eth0:0,没有启动eth0:0接口。如下图所示:

6.测试:当master1关机后,是否会切换nginx:

可以发现,当master1关机后,master2立即启动了自身的nginx来接管业务。

现在重启master1后,nginx自动被heartbeat开启,如下图所示:

VIP自动移到master1上:如下图所示:

而此时的master2上的nginx已经被关掉了,VIP也没了,如下图所示:

相关日志:

实验操作成功。

另外:当master1上的heartbeat关掉后,master2会自动接管master1上的应用和VIP,而master1的heartbeat恢复工作后,master2上的应用和VIP自动退出,交还给master1。



以手动方式完全释放master1的heartbeart对资源的管理权:

在master1上执行:/usr/share/heartbeat/hb_standby

执行后,master1上的资源被释放,master2会立即接管资源。

以手动方式让master1强行接管master2资源管理权:

在master1上执行:/usr/share/heartbeat/hb_takeover

执行后,master2上的资源被释放,master1会立即接管资源。



扩展:在主上面的心跳线接口给down掉之后,备上面因为检测不到主还活着,于是自己成为主,启动了虚拟IP接口,接替了主的工作。当把主的心跳线接口up起来之后备主动把虚拟IP交还给主,自己成为备。

然后我将主上面的对外接口给down之后,备因为检测到心跳接口还是正常的,还以为主还活着,于是高可用就失败了。当主把对外接口up之后需要重新启动heartbeat服务才能从备上面把工作接管过来。

由这里可以看出心跳线是至关重要的,心跳线挂了之后将有可能导致脑裂行为的发生(即主和备一起在抢占虚拟IP的控制权),实际环境中最好给心跳线做冗余,使用以太端口捆绑保障心跳线的健壮性。

同时,假如主的对外接口挂了,但是心跳线没有挂,备就无法检测到主挂了,也就无法实现高可用了。

时间: 2024-10-12 19:58:20

heartbeat配置资源切换操作笔记(原创)的相关文章

mysql主从复制配置我相关操作笔记

1.安装mysql yum install mysql-server mysql-devel 2.启动mysql service mysqld start //启动 service mysqld restart //重启 service mysqld stop //停止 service --status-all | grep mysqld //查看mysql服务状态 3.创建mysql账号 mysqladmin -u root password '123' 4.进入mysql mysql -ur

一个Exchange 数据中心配置和数据中心切换操作实例

一.环境信息 主数据中心 服务器名称 IP地址 角色 备注 AD01 172.19.34.21 AD域控   Exchange2010 172.19.34.22 CAS+HUB+MAILBOX   Exchange2010-01 172.19.34.26 Mailbox   备用数据中心 服务器名称 IP地址 角色 备注 AD02 192.168.1.2 AD域控   Exchange2010-02 192.168.1.3 CAS+HUB+MAILBOX   Exchange2010-03 19

MySQL主从同步、读写分离配置步骤、问题解决笔记

根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用.       为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master)           192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i6

【原】hive 操作笔记

1.建表: hive> CREATE TABLE pokes (foo INT, bar STRING);hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);由于很多数据在hadoop平台,当从hadoop平台的数据迁移到hive目录下时,由于hive默认的分隔符是/u0001,为了平滑迁移,需要在创建表格时指定数据的分割符号,语法如下:create table ooo(uid string,n

Spark+hadoop+mllib及相关概念与操作笔记

Spark+hadoop+mllib及相关概念与操作笔记 作者: lw 版本: 0.1 时间: 2016-07-18 1.调研相关注意事项 a) 理解调研 调研的意义在于了解当前情况,挖掘潜在的问题,解决存在的疑问,并得到相应的方案. b) 调研流程 首先明确和梳理现有的疑问是什么,要通过调研解决什么问题,然后再去做调研,发现问题,再解决问题. c) 调研成果 最终需要得到结论与方案,以及详尽的论证理由,让别人信服. d) 书写格式 版本与作者以及时间可以以表格的形式,整齐明了. 结论简洁明了,

k8s创建指定用户只对指定namesapce下的资源有操作权限

目标:devuser用户只对namespace是dev下的资源有操作权限 一.基础配置设置1.首先useradd创建一个devuser用户,并修改密码:使用devuser执行kubectl get pod命令不会成功,因为devuser现在对任何一个namespace下的资源都没有权限2.创建一个dev的namespace二.k8s config 文件生成1.创建用来生成密钥的json文件cat /k8s/cert/devuser.json { "CN": "devuser&

SharePoint管理中心配置资源限制(大型列表)

SharePoint管理中心配置资源限制(大型列表) 列表是SharePoint的核心.SharePoint中所有东西都是一个列表.可以说SharePoint内容就是列表驱动的. 之前版本的SharePoint有个缺点就是当列表项目超过2000项时,性能会降级.这并不意味着如果列表有2001项,性能降级就很明显.一个SharePoint列表可以有上百万的记录.让我们分解一下当用户请求列表信息时到底发生了什么吧. 当用户点击链接查看列表项的时候,它调用了查询返回到SQL抽取这些项目并呈现他们.查询

Python简单操作笔记

Python 类型转换 str(),repr()|format() : 将非字符类型转成子串 int() : 转为整形 float() : 转为浮点型 list(s) : 将字串s转成列表 tuple(s) : 将字串s转成元组 set(s) : 将字串s转成集合 frozenset(s) : 将字串s转成不可变集合 dict(s) : 创建字典 其d必须是(key,value)的元组序列; chr(x) : 将整形转成字符 ord(x) : 将字符转成整形 hex(x) : 将整形转换成16进

heartbeat 配置两台web服务器高可用集群案例

通过heartbeat 配置两台web服务器高可用集群案例: 拓扑: web1:192.168.0.101 hostname: web1.example.com web2:192.168.0.102 hostname:web2.example.com vip:192.168.0.254 nfs服务器:192.168.0.100(存放web页面) 注意: 1主机名要与uname -n 保持一致 2.web1与web2主机的date时间保持同步 3.web1与web2,ssh双机互信通信 4.关闭i