DRBD+Heartbeat实现自动切换
1》HeartBeat介绍
Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里, 由 heartbeat 模块实现了这两个功能;
2》HeartBeat的组成
Heartbeat内部结构由三大部分组成:
(1)集群成员一致性管理模块(CCM)
CCM用于管理集群节点成员,同时管理成员之间的关系和节点间资源的分配。Heartbeat模块负责检测主次节点的运行状态,以决定节点是否失效。ha- logd模块用于记录集群中所有模块和服务的运行信息;
(2)本地资源管理器(LRM)
LRM负责本地资源的启动、停止和监控,一般由LRM守护进程lrmd和节点监控进程Stonith Daemon组成。lrmd守护进程负责节点间的通信;Stonith Daemon通常是一个Fence设备,主要用于监控节点状态,当一个节点出现问题时处于正常状态的节点会通过Fence设备将其重启或关机以释放IP、 磁盘等资 源,始终保持资源被一个节点拥有,防止资源争用的发生;
REDHAT的fence device有两种,内部fence设备(如IBM RSAII卡,HP的iLO卡,Dell的DRAC,还有IPMI的设备等)和外部fence 设备(如UPS,SAN SWITCH,NETWORK SWITCH等):
对于外部fence 设备,可以做拔电源的测试,因为备机可以接受到fence device返回的信号,备机可以正常接管服务;
对于内部fence 设备,不能做拔电源的测试,因为主机断电后,备机接受不到主板芯片做为fence device返备的信号,就不能接管服务,clustat会看到资源的 属主是unknow,查看日志会看到持续报fence failed的信息;
(3)集群资源管理模块(CRM)
CRM用于处理节点和资源之间的依赖关系,同时,管理节点对资源的使用,一般由CRM守护进程crmd、集群策略引擎和集群转移引擎3个部分组成。 集 群策略引擎(Cluster policy engine)具体实施这些管理和依赖;集群转移引擎(Cluster transition engine)监控CRM模块的状态,当一个节点出现故障时,负 责协调另一个节点上的进程进行合理的资源接管;
3》 原理:
heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支 持 冗 余链路(心跳一般会接2条跳线,1条冗余),它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对 方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务;
迷你机上安装时遇到问题解决方法:
4》HeartBeat的使用:
1>HeartBeat安装
首先将本地YUM源头配置。在安装外部YUM源头的RPM包,保持你的机器可以上网。
# rpm –vih epel-release-6-8.noarch.rpm
# yum –y install heartbeat*
2>复制heartbeat的配置文件
Heartbeat的配置主要涉及到ha.cf、haresources、authkeys这三个文件。其中ha.cf是主配置文件,haresource用来配置要让Heartbeat托管的服 务,authkey是用来指定Heartbeat的认证方式;
#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
# cp -R /usr/local/drbd/etc/ha.d/resource.d/* /etc/ha.d/resource.d
3>authkeys配置
· authkeys的配置方式:
# vim authkeys
auth 1 //认证序号1
1 crc //序号1 采用crc
auth 后面填写序号,可任意填写,但第二行开头必须为序号名,然后为验证方式,支持三种( crc md5 sha1 )方式验证,最后面是自定义密钥;
· 需要保证authkeys有相应的读写权限:
# chmod 600 /etc/heartbeat/ha.d/authkeys
4>ha.cf主配置文件
# vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug #调试日志文件
logfile /var/log/ha-log #系统运行日志文件
logfacility local0 #日志记录等级
keepalive 2 #心跳频率,2表示2秒;200ms则表示200毫秒
deadtime 10 #节点死亡时间,就是过了10秒后还没有收到心跳就认为主节点死亡
warntime 5 #告警时间
initdead 120 #初始化时间
udpport 694 #心跳信息传递的udp端口
#bcast eth1 #采用udp广播播来通知心跳,建议在备用节点不只一台时使用
#mcast eth1 225.0.0.1 694 1 0 #采用udp多播来通知心跳,建议在备用节点不只一台时使用
bcast eth2 #采用udp单播来通知心跳,注意:这一项在2个节点IP
auto_failback on
#如果主节点重新恢复过来,主节点将主动将资源抢占过来,如果为off,则只当备用节点当掉后,主节点才取回资源
watchdog /dev/watchdog
#看门狗。如果本节点在超过1分钟后还没有发出心跳,那么本节点自动重启
node master #主节点名称,与uname -n显示必须一致
node slave #备用节点名称
respawn hacluster /usr/lib64/heartbeat/ipfail #
apiauth ipfail gid=haclient uid=hacluster
5>haresources资源配置文件
# vim /etc/ha.d/haresources
master IPaddr::10.0.0.215/16/eth1:0 drbddisk::r1 Filesystem::/dev/drbd0::/data::ext4
master是HA集群的主节点的主机名字,
IPaddr为heartbeat自带的一个执行脚
10.0.0.215/16/eth1:0 指的VIP在主节点的eth1:0这个接口上运行。
drbddisk::r1 是drbd在编译的加参数—with-heartbeat所产生的资源切换脚本。r1代表资源名称为r1,跟drbd里面的*.res配置文件保持一致。
Filesystem::/dev/drbd0::/data::ext4 带表系统所挂在的设备和目录以及文件系统格式。
其它的格式写法举例子:
node1 IPaddr::192.168.60.200/24/eth0/ Filesystem:: /dev/sdb5::/webdata::ext3 httpd tomcat
其中,node1是HA集群的主节点,IPaddr为heartbeat自带的一个执行脚 步,Heartbeat首先将执行/etc/ha.d/resource.d/IPaddr 192.168.60.200/24 start的操作,也就是虚拟出一个子网掩码为255.255.255.0,IP为192.168.60.200的地址。此IP为Heartbeat对外 提供服务的网络地 址,同时指定此IP使用的网络接口为eth0。接着,Heartbeat将执行共享磁盘分区的挂载操 作,"Filesystem::/dev/sdb5::/webdata::ext3"相当于在命令行下 执行mount操作,即"mount -t ext3 /dev/sdb5 /webdata",最后依次启动httpd和Tomcat服务;
5》验证和测试:
启动主节点和从节点的heartbeat服务.
# /etc/init.d/heartbeat start
# ip add list 查看主节点是否有VIP?
# df –lh 查看/dev/drbd0 设备是否挂在成功?
验证是否可以资源接管?
在主上,将/etc/init.d/heatbeat 服务停止。然后看看从服务器是否可以快速接管?
# /etc/init.d/heartbeat stop
DRBD+Heartbeat实现自动切换的更多相关文章
- DRBD(数据镜像)+hearbeat(自动切换)
DRBD 数据镜像软件 一.DRBD介绍 1.1.数据镜像软件DRBD介绍 分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络 ...
- mysql高可用之DRBD + HEARTBEAT + MYSQL
1. 架构 Mysql: master<=slave 10.24.6.4:3306<=10.24.6.6:3306 VIP: 10.24.6.20 必须使得VIP和mysql处于同一网段, ...
- 1 NFS高可用解决方案之DRBD+heartbeat搭建
preface NFS作为业界常用的共享存储方案,被众多公司采用.我司也不列外,使用NFS作为共享存储,为前端WEB server提供服务,主要存储网页代码以及其他文件. 高可用方案 说道NFS,不得 ...
- CentOS6.6安装heartbeat配置资源切换操作笔记实现高可用(原创)
参考资料:http://www.centoscn.com/CentosServer/cluster/2015/0605/5604.html 背景需求: 使用heartbeat来做HA集群,并且把n ...
- Mycat主从模式下的读写分离与自动切换
1. 机器环境 192.168.2.136 mycat1 192.168.2.134 mydb1 192.168.2.135 mydb2 2在mysql1.mysql2上安装mysql 更改root用 ...
- 原生js+css3实现图片自动切换,图片轮播
运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...
- 获取bing.com的图片并在gnome3中设置自动切换
发现 bing.com 上的图片很好看,因此打算每天把 bing.com 的图片下载下来,用作桌面. 需要做的是两个部分,爬取图片到目录和设置目录图片为桌面背景并可以自动切换. 第一部分,下载图片,使 ...
- 在 Visual Studio 等编辑器/IDE中自动切换输入法,不需要手动的有没有?
使用Visual Studio写代码,经常遇到的一个问题就是切换中文输入法麻烦,输入完注释//,要切换到中文,输入完引号,要输入中文,然后还需要切换回来,有没有? 有时候中文输入法忽然失效有没有?明明 ...
- jquery背景自动切换特效
查看效果网址:http://keleyi.com/a/bjad/4kwkql05.htm 本特效的jquery版本只支持1.9.0以下. 代码如下: <!DOCTYPE html PUBLIC ...
随机推荐
- unity动画状态机的学习
简单贴一下步骤,备忘 添加多个动画到动画控制器 创建transition,添加转换条件 在代码里面获取animator组件,然后animator.setXXX即可
- Top Android App使用的组件(应用)
Top Android App使用的组件 唱吧_462 smack:de.measite.smack:??? ???:org.apache:??? smack:org.jivesoftware.s ...
- bzoj4558: [JLoi2016]方
Description 上帝说,不要圆,要方,于是便有了这道题.由于我们应该方,而且最好能够尽量方,所以上帝派我们来找正方形 上帝把我们派到了一个有N行M列的方格图上,图上一共有(N+1)×(M+1) ...
- Centos生成SSL证书的步骤
1.yum install openssl安装openssl组件2.生成KEY的流程步骤如下 1. 创建根证书密钥文件(自己做CA)root.key: openssl genrsa -out root ...
- Golang基础学习总结
转自:http://blog.csdn.net/yue7603835/article/details/44264925 1.不支持继承.重载 ,比如C++.Java的接口,接口的修改会影响整个实现改接 ...
- Sql Server 2016数据库生成带数据的脚本
步骤:右键点击对应数据库->任务->生成脚本 在弹出的会话框中选择需要的对象,点击下一步,在设置和编写脚本选项中,点开高级按钮(如图)选择架构和数据点击确定就可以了. 提醒:如果你在数据库 ...
- 软件测试——等价类划分(EditText * 3)
一.程序要求 EditBox 同时允许输入三个1到6个英文字符或数字,点击确定结束. 二.测试分析 编号 第一个输入框 第二个输入框 第三个输入框 输出 1 null null null 三个输入框均 ...
- 基于 Tornado 实现的 Web 站点反向代理
因为一个奇怪的需求,使用 Python 和 Tornado 框架实现了一个 Web 站点的反向代理.实现的功能是这样: 假设这个反向代理网站的地址是 http://www.example.com 访问 ...
- 关于rand 与 randn
rand:0-1均匀分布.均值m=(a+b)/2; 方差=(b-a).^2/12; randn:0均值,方差1. 只有当rand和randn生成较大的数据时,均值和方差才会成立.比如N&g ...
- oreilly 用户故事地图
这本书是完全买亏了,一点作用也没有. 整篇有用的字很少,还花了我¥16,总结如下: 用户故事模板: 作为用户角色(who),我想要某项功能(what),这样我可以 XXX(原因,why)