阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用HeartBeat实现高可用HA的配置过程详解

435次阅读
没有评论

共计 3379 个字符,预计需要花费 9 分钟才能阅读完成。

一、写在前面

    HA 即 (high available) 高可用,又被叫做双机热备,用于关键性业务。简单理解就是,有 2 台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 B 机器继续提供服务。常见的实现高可用的开源软件有 heartbeat 和 keepalived。

    这样,一台 web 服务器一天 24 小时提供 web 服务,难免会存在 web 服务挂掉或服务器宕机宕机的情况,那么用户就访问不了服务了,这当然不是我们期望的。如果这样,有 2 台服务器,A 对外提供 web 服务,B 作为备用,如果 A 挂掉,那么 B 立刻替代 A 的位置去提供 web 服务,这样对用户来说是透明的。但是有个问题,服务器 A 的 ip 是 10.0.0.100,服务器 B 的 ip 是 10.0.0.101,显然向用户提供 A 或 B 的 ip 地址是不可行的,因为用户总不能去切换 ip 来访问的吧。这时 heartbeat 或 keepalived 可以提供一个虚拟 IP:10.0.0.102,用户只需要访问 10.0.0.102,当 A 提供服务时,VIP 会设置在 A 服务器上,当 B 提供服务时,VIP 会设置在 B 服务器上,这样就可以让用户通过访问 10.0.0.102 来获取 web 服务,即使 A 或 B 服务器切换也不影响用户的正常访问。

下面我们使用 heartbeat 来做 HA 集群,并且把 nginx 服务作为 HA 对应的服务。

Heartbeat(v1、v2、pacemaker)集群组件概述 http://www.linuxidc.com/Linux/2015-12/126364.htm

Linux-HA 开源软件 Heartbeat  http://www.linuxidc.com/Linux/2016-11/137436.htm

Linux 集群的 Heartbeat 与 DRBD 服务  http://www.linuxidc.com/Linux/2017-04/142914.htm

CentOS 6.7 下 DRBD+Heartbeat 实时镜像和角色自动切换  http://www.linuxidc.com/Linux/2016-06/132264.htm

二、准备实验环境

服务器 A:
主机名:master
操作系统:CentOS6.8 64 位
eth0 网卡地址:192.168.0.18
eth1 网卡地址:172.16.254.18

服务器 B:
主机名:slave
操作系统:CentOS6.8 64 位
eth0 网卡地址:192.168.0.28
eth1 网卡地址:172.16.254.28

虚拟 VIP:
VIP:192.168.0.38

 

三、设置主机名

master 节点设置 hostname

hostname master
vim /etc/sysconfig/network
编辑配置文件:
HOSTNAME=master

slave 节点设置 hostname

# hostname slave
# vim /etc/sysconfig/network
编辑配置文件:
HOSTNAME=slave

四、关闭防火墙和 selinux(2 台节点都要操作)

关闭 iptables

# iptables -F
# service iptables save
# service iptables stop

关闭 selinux:

# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

五、配置 hosts 文件(2 台节点都操作)

# vim /etc/hosts
增加内容如下:192.168.0.18 master
192.168.0.28 slave

六、安装 epel 扩展源 (2 台都操作)

# yum install -y epel-release

七、安装 heartbeat (2 台都操作)

# yum install -y heartbeat* libnet nginx

八、主 master 节点配置

1、拷贝配置文件:

# cd /usr/share/doc/heartbeat-3.0.4/
# cp authkeys ha.cf haresources /etc/ha.d/
# cd /etc/ha.d

2、修改 authkeys

# vim authkeys
更改或增加如下内容:
auth 3
3 md5 Hello!
然后修改其权限
# chmod 600 authkeys

3、编辑 haresources 文件

# vim haresources
加入下面一行:
master 192.168.0.38/24/eth0:0 nginx

说明:master 为主节点 hostname,192.168.0.38 为 vip,/24 为掩码为 24 的网段,eth0: 0 为 vip 的设备名,nginx 为 heartbeat 监控的服务,也是两台机器对外提供的核心服务。

4、编辑 ha.cf

使用 HeartBeat 实现高可用 HA 的配置过程详解
# vim ha.cf
修改为如下内容:
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth1 172.16.254.28
auto_failback on
node master
node slave
ping 172.16.254.1
respawn hacluster /usr/lib64/heartbeat/ipfail
使用 HeartBeat 实现高可用 HA 的配置过程详解

5、配置说明:

debugfile /var/log/ha-debug该文件保存 heartbeat 的调试信息。
logfile /var/log/ha-logheartbeat 的日志文件。
keepalive 2:心跳的时间间隔,默认时间单位为秒 s。
deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead 60:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为 deadtime 的 2 倍。
udpport 694:设置广播通信使用的端口,694 为默认使用的端口号。
ucast eth1 172.16.254.28:设置对方机器心跳检测的网卡和 IP。
auto_failback on:heartbeat 的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为 on 的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定与 heartbeat 一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是 ipfail,该进程用于检测和处理网络故障,需要配合 ping 语句指定的 ping node 来检测网络连接。如果你的系统是 64bit,请注意该文件的路径。

 

九、把主节点上的三个配置文件拷贝到从节点

# cd /etc/ha.d
# scp authkeys ha.cf haresources slave:/etc/ha.d

十、从节点 slave 编辑 ha.cf

# vim /etc/ha.d/ha.cf
只需要更改一个地方如下:
ucast eth1 172.16.254.28 改为 ucast eth1 172.16.254.18

十一、启动 heartbeat 服务

配置完毕后,先 master 启动,后 slave 启动。

# service heartbeat start

十二、检查测试

# ifconfig
看是否有接口 eth0:0

# ps aux | grep nginx
看是否有 nginx 进程

十三、测试方式 1

主节点上故意禁 ping

# iptables -I INPUT -p icmp -j DROP

十四、测试方式 2

主节点停止 heartbeat 服务

# service heartbeat stop

十五、测试脑裂

主节点 master 和从节点 slave 都 down 掉 eth1 网卡

# ifdown eth1
作者:liwei0526vip 出处:http://www.cnblogs.com/liwei0526vip 欢迎转载,也请保留这段声明。谢谢!
 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140554.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3379字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7828516
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件 130k 的 star 数!让电脑轻松管理安卓手机的神器 大家好,我是星哥。今天给大家安利一款宝...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...