heartbeat高可用安装和配置图文干货
liebian365 2024-11-10 11:56 6 浏览 0 评论
1.部署Heartbeat高可用需求
1.1 操作系统
CentOS-6.8-x86_64
1.2 Heartbeat服务主机资源准备
主服务器A:
主机名:heartbeat-1-130
eth0网卡地址:192.168.1.130(管理IP)
eth1网卡地址:10.0.10.4 (心跳IP)
从服务器B:
主机名:heartbeat-1-129
eth0网卡地址:192.168.1.129(管理IP)
eth1网卡地址:10.0.10.5(心跳IP)
虚拟VIP:
虚拟VIP在主服务器heartbeat-1-130上
VIP:192.168.1.131
2.Heartbeat高可用实施准备
2.1 搭建虚拟真实环境
克隆两台虚拟机
2.2 给虚拟机配置IP和主机名
配置IP和主机名就省略了设置两台机器的主机的主机名分别为heartbeat-1-130和heartbeat-1-129。分别编译两台机器的/etc/sysconfig/network配置文件,设置HOSTNAME=heartbeat-1-130和HOSTNAME=heartbeat-1-129。然后在命令行下执行hostname heartbeat-1-130和hostname heartbeat-1-129使设置马上生效。提示:可以执行setup命令然后选network configuration-->Edit configuration即可配置机器名,然后logout退出重新登录后生效。
2.3 配置hosts文件(两个节点都要做)
在heartbeat-1-130主机上配置hosts文件
[root@heartbeat-1-130 ~]# cat >>/etc/hosts<<eof
> 192.168.1.129 heartbeat-1-129
> 192.168.1.130 heartbeat-1-130
> eof
在heartbeat-1-129主机上配置hosts文件
[root@heartbeat-1-129 ~]# cat >>/etc/hosts<<eof
> 192.168.1.129 heartbeat-1-129
> 192.168.1.130 heartbeat-1-130
> eof
通过ping ip地址的方法检查测试,看其返回的IP是不是和/etc/hosts中配置的内容一致。
特别强调:机器名必须是uname –n返回的结果
[root@heartbeat-1-130 ~]# uname -n
heartbeat-1-130
提示:hosts的配置在heartbeat服务中会用到,后文的drbd及存储高可用也会用到,在生产环境中会把所有的机器名对应上所有的机器IP地址,然后通过cfengine或puppet或sshkey+rsync工具分发到所有机器上。网内增加机器时,就会通过分发工具统一分发到所有机器的/etc/hosts中。
2.4 配置服务间的心跳连接
eth1 10.0.10.5和eth1 10.0.10.4两块网卡之间通过普通网线连接的,即不通过交换机,直接用网线将两块网卡连在一起,用于做心跳检测或传数据等。
提示:高可用服务器对上的heartbeat软件会利用这条心跳线来检查对端的机器是否存活,进而决定是否做故障转移,资源切换,来保证业务的连续性。如果条件允许,以上连接可同时使用,来加大保险系数防止裂脑问题的发生。
本次案例:选用以太网电缆两网卡直连。
选用原因:简单,容易部署、效果也不错。
在两台机器上分别增加一条主机路由,来实现两台机器检查对端时通过这个心跳线线路检查。
(1)heartbeat-1-130 Server上增加如下主机路由:
/sbin/route route add -host 10.0.10.4 dev eth1
同样,这个命令使得从heartbeat-1-130 Server 上访问的10.0.10.4,走eth1网卡出去,即使用心跳线路。
echo '/sbin/route route add -host 10.0.10.4 dev eth1'>>/etc/rc.local
加入开机自启动配置里,这样下去启动后会自动加载这个路由的配置。
(2)heartbeat-1-129 Server上增加如下主机路由:
/sbin/route route add -host 10.0.10.5 dev eth1
同样,这个命令使得从heartbeat-1-129 Server 上访问的10.0.10.5,走eth1网卡出去,即使用心跳线路。
echo '/sbin/route route add -host 10.0.10.5 dev eth1'>>/etc/rc.local
加入开机自启动配置里,这样下去启动后会自动加载这个路由的配置。可以用route –n查看配置的路由状态
2.5 配置虚拟VIP
在主服务器上heartbeat-1-130上配置虚拟VIP
[root@heartbeat-1-130 ~]# echo 'ifconfig eth0:1 192.168.1.131 netmask 255.255.255.0 up' >>/etc/rc.local
[root@heartbeat-1-130 ~]# echo 'route add -host 192.168.1.131 dev eth0:1' >>/etc/rc.local
2.6 关闭防火墙和selinux(两台节点都要操作)
关闭iptables
iptables -F
service iptables save
service iptables stop
关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2.7 安装CentOS-6.8-x86_64 heartbeat3.0软件
CentOS-6.8-x86_64的rpm包没有heartbeat软件,所以要下载epel包
[root@heartbeat-1-130 ~]# yum search heartbeat
已加载插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel-local | 4.1 kB 00:00 ...
警告:没有匹配 heartbeat 的软件包
没有找到匹配的软件包
2.8 下载并安装epel扩展源(两台都要操作)
mkdir -p /home/linzhongniao/tools
cd /home/linzhongniao/tools
wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
rpm -qa|grep epel
2.9 安装heartbeat(两台都要操作)
yum install heartbeat* -y
2.10 主节点配置heartbeat服务
Centos5.8机器上,分别执行yum install heartbeat* –y 两遍后,不出意外就可以安装好heartbeat软件了。前面已经提到了,heartbeat的默认配置文件目录为/etc/ha.d。heartbeat常用的配置文件有三个,ha.cf、authkey、haresource,各自的作用见下面的表格。
提示:如果yum安装后想保留rpm包,用下面的方法。
[root@heartbeat-1-130 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@heartbeat-1-130 ~]# grep keepcache /etc/yum.conf
keepcache=1
2.10.1 配置ha.cf文件及文件说明
(1)先把ha.cf haresources authkeys这三个文件拷到/etc/ha.d/目录下
[root@heartbeat-1-130 ~]# ll /usr/share/doc/heartbeat-3.0.4/
总用量 144
-rw-r--r-- 1 root root 1873 12月 3 2013 apphbd.cf
-rw-r--r-- 1 root root 645 12月 3 2013 authkeys
-rw-r--r-- 1 root root 3701 12月 3 2013 AUTHORS
-rw-r--r-- 1 root root 58752 12月 3 2013 ChangeLog
-rw-r--r-- 1 root root 17989 12月 3 2013 COPYING
-rw-r--r-- 1 root root 26532 12月 3 2013 COPYING.LGPL
-rw-r--r-- 1 root root 10502 12月 3 2013 ha.cf
-rw-r--r-- 1 root root 5905 12月 3 2013 haresources
-rw-r--r-- 1 root root 2935 12月 3 2013 README
[root@heartbeat-1-130 ~]# cd /usr/share/doc/heartbeat-3.0.4/
[root@heartbeat-1-130 heartbeat-3.0.4]# ls
apphbd.cf authkeys AUTHORS ChangeLog COPYING COPYING.LGPL ha.cf haresources README
[root@heartbeat-1-130 heartbeat-3.0.4]# cp ha.cf haresources authkeys /etc/ha.d/
(2)配置ha.cf配置文件
[root@heartbeat-1-130 ~]# cat /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile/var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
#bcast eth1
mcast eth1 225.0.0.130 694 1 0
#udpport 694
#ucast eth1 10.0.10.4
auto_failback on
node heartbeat-1-130
node heartbeat-1-129
ping 10.0.10.8
respawn hacluster /usr/lib64/heartbeat/ipfail
#crm on
(3)Ha.cf文件详细说明
debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息。
logfile /var/log/ha-log:heartbeat的日志文件。
keepalive 2:心跳的时间间隔,默认时间单位为秒s。
deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead 60:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍。
mcast eth1 225.0.0.130 694 1 0 :设置广播通信使用的端口,225.0.0.130为多播ip地址在一个局域网内这个ip地址不能一样,694为默认使用的端口号。
注意:一个局域网内有多组heartbeat服务同时正常使用的前提是多播地址不同(可选多播地址段为224.0.0.0-239.255.255.255),一般路由器,交换机等应该都是多播的方式,建议IP的最后八位作为多播地址的最后8位。当然不用多播也能解决心跳问题。
udpport 694:设置广播通信使用的端口,694为默认使用的端口号。
ucast eth1 10.0.10.4:设置广播通信对方机器心跳检测的网卡和IP和udpport一起用。
auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。如果你的系统是64bit,请注意该文件的路径。
crm on 是否开启Cluster Resource Manager(集群资源管理功能)
提示:我们可以查看/usr/share/doc/heartbeat-3.0.4/下的ha.cf来详细了解参数信息。
2.10.2 配置authkey文件及文件说明
(1)配置authkey文件
[root@heartbeat-1-129 ~]# cat /etc/ha.d/authkeys
auth 3
3 md5 Hello!
将authkey权限修改为600
[root@heartbeat-1-130 ~]# chmod 600 /etc/ha.d/authkeys
[root@heartbeat-1-130 ~]# ll /etc/ha.d/authkeys
-rw------- 1 root root 20 3月 3 07:39 /etc/ha.d/authkeys
(2)参数说明
此处提到authkey权限必须为600
# Authentication file. Must be mode 600
# Must have exactly one auth directive at the front.
# authsend authentication using this method-id
#
# Then, list the method and key that go with that method-id
此处提到可以设置认证方法
# Available methods: crc sha1, md5. Crc doesn't need/want a key.
# You normally only have one authentication method-id listed in this file
# Put more than one to make a smooth transition when changing auth
# methods and/or keys.
这里说明sha1是最好的认证方法,其次md5是最好的
# sha1 is believed to be the "best", md5 next best.
# crc adds no security, except from packet corruption.
# Use only on physically secure networks.
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!
默认的配置使用crc方法这是不加密的最不安全的,下面为authkey生产配置
##########
注意authkeys需要的权限默认为600否则heartbeat服务会报错不发打开,两台机器都需要操作
2.10.3 配置haresource文件
[root@heartbeat-1-120 ~]# cat /etc/ha.d/haresources
heartbeat-1-130 IPaddr::192.168.1.131/24/eth0:1
配置参数说明 :heartbeat-1-130为主节点hostname,192.168.0.131为vip,24为掩码为24的网段,eth0:1为vip的设备名。IPaddr为heartbeat配置IP的默认脚本,其后的IP等都是脚本参数。
[root@heartbeat-1-130 ~]# ll /etc/ha.d/resource.d/IPaddr
-rwxr-xr-x 1 root root 2273 12月 3 2013 /etc/ha.d/resource.d/IPaddr
实际上这里相当于一个脚本传参,相当于执行:
/etc/ha.d/resource.d/IPaddr 192.168.1.131/24/eth0:1 start
2.11 从节点配置heartbeat服务
2.11.1 把主节点上的三个配置文件拷贝到从节点
cd /etc/ha.d
scp authkeys ha.cf haresources heartbeat-1-129:/etc/ha.d
生产中所有的配置文件是svn变更比对然后同时发布到两台机器上去的,也可以用scp同步。
2.11.2 配置ha.cf文件
从节点只需要修改ha.cf文件的下面地方
mcast eth1 225.0.0.129 694 1 0
将255.0.0.130改成255.0.0.129
上面是多播的方式,如果用广播的方式需要修改下面的地方。
ucast eth1 10.0.10.4
将ucast eth1 10.0.10.4修改成ucast eth1 10.0.10.5
3.启动heartbeat服务
先启动主节点后启动从节点
[root@heartbeat-1-130 ~]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
Done.
4.测试heartbeat高可用服务
有两种方法
(1)主节点停止heartbeat服务
/etc/init.d/heartbeat stop
(2)将主节点的eth1网卡down掉
ifdown eth1
我们就会发现虚拟VIP切换到从节点上了,来达到heartbeat高可用功能继续为用户提供服务。
5.测试列脑
两节点都down掉eth1网卡
ifdown eth1
6.查看heartbeat启动及接管资源的过程
可以查看heartbeat日志和系统日志查看heartbeat启动及接管资源的过程
tail -f /var/log/ha-log
tail -f /var/log/messages
相关推荐
- 快递查询教程,批量查询物流,一键管理快递
-
作为商家,每天需要查询许许多多的快递单号,面对不同的快递公司,有没有简单一点的物流查询方法呢?小编的回答当然是有的,下面随小编一起来试试这个新技巧。需要哪些工具?安装一个快递批量查询高手快递单号怎么快...
- 一键自动查询所有快递的物流信息 支持圆通、韵达等多家快递
-
对于各位商家来说拥有一个好的快递软件,能够有效的提高自己的工作效率,在管理快递单号的时候都需要对单号进行表格整理,那怎么样能够快速的查询所有单号信息,并自动生成表格呢?1、其实方法很简单,我们不需要一...
- 快递查询单号查询,怎么查物流到哪了
-
输入单号怎么查快递到哪里去了呢?今天小编给大家分享一个新的技巧,它支持多家快递,一次能查询多个单号物流,还可对查询到的物流进行分析、筛选以及导出,下面一起来试试。需要哪些工具?安装一个快递批量查询高手...
- 3分钟查询物流,教你一键批量查询全部物流信息
-
很多朋友在问,如何在短时间内把单号的物流信息查询出来,查询完成后筛选已签收件、筛选未签收件,今天小编就分享一款物流查询神器,感兴趣的朋友接着往下看。第一步,运行【快递批量查询高手】在主界面中点击【添...
- 快递单号查询,一次性查询全部物流信息
-
现在各种快递的查询方式,各有各的好,各有各的劣,总的来说,还是有比较方便的。今天小编就给大家分享一个新的技巧,支持多家快递,一次能查询多个单号的物流,还能对查询到的物流进行分析、筛选以及导出,下面一起...
- 快递查询工具,批量查询多个快递快递单号的物流状态、签收时间
-
最近有朋友在问,怎么快速查询单号的物流信息呢?除了官网,还有没有更简单的方法呢?小编的回答当然是有的,下面一起来看看。需要哪些工具?安装一个快递批量查询高手多个京东的快递单号怎么快速查询?进入快递批量...
- 快递查询软件,自动识别查询快递单号查询方法
-
当你拥有多个快递单号的时候,该如何快速查询物流信息?比如单号没有快递公司时,又该如何自动识别再去查询呢?不知道如何操作的宝贝们,下面随小编一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号若干...
- 教你怎样查询快递查询单号并保存物流信息
-
商家发货,快递揽收后,一般会直接手动复制到官网上一个个查询物流,那么久而久之,就会觉得查询变得特别繁琐,今天小编给大家分享一个新的技巧,下面一起来试试。教程之前,我们来预览一下用快递批量查询高手...
- 简单几步骤查询所有快递物流信息
-
在高峰期订单量大的时候,可能需要一双手当十双手去查询快递物流,但是由于逐一去查询,效率极低,追踪困难。那么今天小编给大家分享一个新的技巧,一次能查询多个快递单号的物流,下面一起来学习一下,希望能给大家...
- 物流单号查询,如何查询快递信息,按最后更新时间搜索需要的单号
-
最近有很多朋友在问,如何通过快递单号查询物流信息,并按最后更新时间搜索出需要的单号呢?下面随小编一起来试试吧。需要哪些工具?安装一个快递批量查询高手快递单号若干怎么快速查询?运行【快递批量查询高手】...
- 连续保存新单号功能解析,导入单号查询并自动识别批量查快递信息
-
快递查询已经成为我们日常生活中不可或缺的一部分。然而,面对海量的快递单号,如何高效、准确地查询每一个快递的物流信息,成为了许多人头疼的问题。幸运的是,随着科技的进步,一款名为“快递批量查询高手”的软件...
- 快递查询教程,快递单号查询,筛选更新量为1的单号
-
最近有很多朋友在问,怎么快速查询快递单号的物流,并筛选出更新量为1的单号呢?今天小编给大家分享一个新方法,一起来试试吧。需要哪些工具?安装一个快递批量查询高手多个快递单号怎么快速查询?运行【快递批量查...
- 掌握批量查询快递动态的技巧,一键查找无信息记录的两种方法解析
-
在快节奏的商业环境中,高效的物流查询是确保业务顺畅运行的关键。作为快递查询达人,我深知时间的宝贵,因此,今天我将向大家介绍一款强大的工具——快递批量查询高手软件。这款软件能够帮助你批量查询快递动态,一...
- 从复杂到简单的单号查询,一键清除单号中的符号并批量查快递信息
-
在繁忙的商务与日常生活中,快递查询已成为不可或缺的一环。然而,面对海量的单号,逐一查询不仅耗时费力,还容易出错。现在,有了快递批量查询高手软件,一切变得简单明了。只需一键,即可搞定单号查询,一键处理单...
- 物流单号查询,在哪里查询快递
-
如果在快递单号多的情况,你还在一个个复制粘贴到官网上手动查询,是一件非常麻烦的事情。于是乎今天小编给大家分享一个新的技巧,下面一起来试试。需要哪些工具?安装一个快递批量查询高手快递单号怎么快速查询?...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)