heartbeat双机热备提升Web服务的高效率

1、概述
Heartbeat 名目是 Linux-HA 工程的一个组成部分,它完成了一个高可用集群体系。心跳办事和集群通讯是高可用集群的两个症结组件,在 Heartbeat 名目里,由 heartbeat 模块完成了这两个功效。
经由过程heartbeat,能够将资本从一台曾经毛病的计算机疾速转移到另一台运行的机械上继承供给办事。
官网:http://www.linux-ha.org/wiki/Main_Page
1.1 事情道理
主备形式:经由过程改动heartbeat软件的设置装备摆设文件,能够指定哪一台heartbeat办事器为主办事器,则另一台将自动成为热备办事器。而后在热备办事器上设置装备摆设heartbeat保卫过程来监听来自立办事器的心跳新闻。假如热备办事器在指准光阴内未监听到来自立办事器的心跳,就会启动毛病转移法式,并取得主办事器上的相干资本办事的所有权,代替主办事器继承不间断地供给办事,从而到达资本及办事高可用性的目标。
1.2 切换前提
触发heartbeat切换的罕见前提:
办事器宕机;
heartbeat办事本身毛病;
心跳衔接毛病;
注:应用办事毛病不会招致heartbeat切换。
1.3 heartbeat通讯的办法
两台heartbeat主机之间通讯的可行办法:
一条串行线直连,毛病是间隔不克不及太远,罕用;
一条网线直连,罕用;
用网线经由过程交换机等网络装备衔接,不保举用,增长了毛病点,容易受链路的其余数据传输影响,招致心跳报文发送成绩;
1.4 heartbeat目次与文件
/etc/ha.d/resource.d/:资本目次,用来寄存剧本,本身开辟的剧本也放这里,在haresource文件挪用这些剧本。
寄存设置装备摆设文件的目次:/etc/ha.d
设置装备摆设文件有3个,分离是:
设置装备摆设文件名
感化
阐明
ha.cf
heartbeat参数设置装备摆设文件
在这里设置装备摆设heartbeat的一些根本参数
authkey
heartbeat认证文件
高可用办事器之间,依据对方的authkey停止认证
haresource
heartbeat资本设置装备摆设文件
设置装备摆设IP资本及剧本法式等
1.5 对于裂脑
裂脑:因为两台高可用办事器之间在指准光阴内,无奈相互检测到对方心跳而各自启动毛病转移功效,取患了资本及办事的所有权,但此时这两台高可用办事器还活着,如许会招致同一个VIP在两头同时启用而产生数据抵触或丧失的成绩。
1.5.1 招致裂脑的缘故原由
一般来说,有以下缘故原由招致裂脑:
1. 高可用办事器之间的心跳线链路毛病,招致通讯非常,比方心跳线坏了、网卡或网卡驱动坏了、IP设置装备摆设抵触、仲裁的装备出成绩;
2. 高可用办事器上开启了防火墙,阻拦了心跳新闻传输;
3. 高可用办事器的心跳网卡地点等设置装备摆设不正确,招致发送心跳失败;
4. 软件BUG等
1.5.2 若何避免裂脑
现实临盆情况中,能够经由过程以下的办法避免裂脑:
同时应用串行线和网线衔接,一条路线坏了,另一条仍然能传送心跳新闻;
检测到裂脑时,强行封闭此中一台高可用办事器,这个功效必要特别装备支撑,如Stonish、Fence(IPMI,智能电源治理装备,简略的说便是远程治理卡,分歧办事器厂商的办事器能够分歧,但完成的功效相似)等;
做好对裂脑的监控报警;
启用磁盘锁,正在办事的一方锁住同享磁盘,避免在裂脑产生时,对方来抢同享磁盘的资本,但若占用同享盘的一方不自动解锁,则另一方永久得不到同享磁盘,以是正在办事的一方只在发明心跳线全体断开的时刻才启用磁盘时,日常平凡则不上锁;
增长仲裁机制:
小心跳线完整断开的时刻,2个节点都各自ping一个参考IP,若欠亨则表明断点在本端,不只心跳线另有对外办事的本地网络链路也终端,ping欠亨的一方能够设置自动重启以开释占用的资本;
经由过程第三方软件仲裁谁该得到资本;
2、heartbeat安排
主机名
体系
eth0
eth1
HA-M
CentOS release 6.9 (Final)
192.168.10.83
192.168.20.13
HA-S
CentOS release 6.9 (Final)
192.168.10.84
192.168.20.14
经由过程VMware WorkStation来模仿临盆情况,每台主机设置装备摆设双网卡。
heartbeat版本:3.0.4
nginx版本:1.12
eth0:对外办事接口
eth1:心跳线直连
VIP:192.168.10.80
注:需封闭iptables和SElinux

2.1 改动host
两台主机都设置装备摆设以下主机名:
cat >>/etc/hosts
192.168.10.83 HA-M
192.168.10.84 HA-S
eof
2.1.1 HA-M测试
[root@HA-M ~]#ping HA-S
PING HA-S (192.168.10.84) 56(84) bytes of data.
64 bytes from HA-S (192.168.10.84): icmp_seq=1 ttl=64 time=0.287 ms
64 bytes from HA-S (192.168.10.84): icmp_seq=2 ttl=64 time=0.420 ms
^C
— HA-S ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1367ms
rtt min/avg/max/mdev = 0.287/0.353/0.420/0.069 ms
2.1.2 HA-S测试
[root@HA-S ~]#ping HA-S
PING HA-S (192.168.10.84) 56(84) bytes of data.
64 bytes from HA-S (192.168.10.84): icmp_seq=1 ttl=64 time=0.014 ms
64 bytes from HA-S (192.168.10.84): icmp_seq=2 ttl=64 time=0.057 ms
^C
— HA-S ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1337ms
rtt min/avg/max/mdev = 0.014/0.035/0.057/0.022 ms
2.2 设置装备摆设路由
2.2.1 HA-M设置装备摆设路由
route add -host 192.168.20.14 dev eth1
echo ‘route add -host 192.168.20.14 dev eth1’>>/etc/rc.local
2.2.2 HA-S设置装备摆设路由
route add -host 192.168.10.13 dev eth1
echo ‘route add -host 192.168.10.13 dev eth1’>>/etc/rc.local

发表评论