21、部署heartbeat
21.1、heartbeat部署规划:
本文的实验环境是虚拟机设备;
名称 |
接口 |
ip |
用途 |
master-db(主) |
eth0 |
10.0.0.16/24 |
用于服务器之间的心跳连接(直连) |
eth1 |
172.16.1.16/24 |
管理ip用于数据转发 |
|
vip |
172.16.1.26/24 |
提供对外访问的ip |
|
slave-db(从) |
eth0 |
10.0.0.17/24 |
用于服务器之间的心跳连接(直连) |
eth1 |
172.16.1.17/24 |
管理ip用于数据转发 |
|
vip |
172.16.1.26/24 |
提供对外的访问的ip |
21.2、关闭selinux和防火墙:
master-db和slave-db的操作相同;
1、关闭selinux:
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
grep "SELINUX=disabled" /etc/selinux/config
setenforce 0
2、关闭防火墙:
/etc/init.d/iptables stop
chkconfig iptables off
21.3、修改主机名:
1、master-db:
[root@master-db ~]#sed -i "s#HOSTNAME=.*#HOSTNAME=master-db#g" /etc/sysconfig/network
[root@master-db ~]#hostname master-db
[root@master-db ~]#hostname
master-db
2、slave-db:
[root@slave-db ~]#sed -i "s#HOSTNAME=.*#HOSTNAME=slave-db#g" /etc/sysconfig/network
[root@slave-db ~]#hostname slave-db
[root@slave-db ~]#hostname
slave-db
21.4、配置master-db和slave-db之间的直连心跳线路由:
主从之间的关系全靠心跳线进行联系;
1、master-db:
[root@master-db ~]#route add -host 10.0.0.17 dev eth0
[root@master-db ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.17 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
[root@master-db ~]#echo '/sbin/route add -host 10.0.0.17 dev eth0' >>/etc/rc.local
2、slave-db:
[root@slave-db ~]#route add -host 10.0.0.16 dev eth0
[root@slave-db ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.16 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
[root@slave-db ~]#echo '/sbin/route add -host 10.0.0.16 dev eth0' >>/etc/rc.local
21.5、修改域名解析文件:
master-db和slave-db的操作相同;
vim /etc/hosts
10.0.0.16 master-db
10.0.0.17 slave-db
ping域名看是否可以ping通;
21.6、安装heartbeat:
master-db和slave-db的操作相同;
1、安装:
yum install heartbeat -y
rpm -qa heartbeat
heartbeat-3.0.4-2.el6.x86_64
2、heartbeat配置模板拷贝:
cd /usr/share/doc/heartbeat-3.0.4/
cp -a ha.cf haresources authkeys /etc/ha.d/
21.7、heartbeat配置文件配置:
master-db和slave-db的操作相同;
1、ha.cf配置文件:
vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
#heartbeat调试日志的存放位置;
logfile /var/log/ha-log
#heartbeat日志存放位置;
logfacility local0
#在syslog服务中配置通过local1设备接收日志;
keepalive 2
##############################################
#指定心跳间隔为2秒,即每2秒发送在监听的网
#卡上发送一次广播,单播或组播
##############################################
deadtime 30
##############################################
#指定备用节点在30秒内没有收到主节点的心跳信号,则
#立即接管主节点的服务资源;
##############################################
warntime 10
##############################################
#指定心跳延迟时间为10秒,当10秒钟内备份节点不能接收到
#主节点的心跳信号时,会网日志中写入一个警告日志,但此时
#不会切换服务;
##############################################
initdead 60
##############################################
#指定在heartbeat首次运行后,需要等待60秒才能启动主服务器
#的任何资源,取值至少为datatime时间的2倍;
##############################################
udpport 694
#heartbeat心跳通信端口;
mcast eth0 225.0.0.1 694 1 0
##############################################
#多播:直连网卡eth0,多播范围(224-239),udp通信端口,ttl值
#为1,关闭本地回环;
#单播:ucast eth0 10.0.0.17,包被发送到的对等的IP地址;
#广播:bcast eth0
##############################################
auto_failback on
#当主节点恢复后从备节点接管资源;
node master-db
#主节点主机名,通过命令uname -n进行查看;
node slave-db
#备用节点主机名,通过命令uname -n进行查看;
crm no
#不开启集群资源管理功能;
2、authkeys配置文件:
(1)生成sha1字符串;
echo heartbeat|sha1sum
1c81b56e0878d42e95064acfe07613edd5c6c29d
(2)修改参数:
vim /etc/ha.d/authkeys
auth 1
1 sha1 1c81b56e0878d42e95064acfe07613edd5c6c29d
(3)设置权限:
chmod 600 /etc/ha.d/authkeys
3、haresources配置文件:
vim /etc/ha.d/haresources
master-db IPaddr::172.16.1.26/24/eth1
#slave-db IPaddr::172.16.1.27/24/eth1
#master-db #表示主节点的主机名
#IPaddr::172.16.1.26/24/eth1#表示使用IPaddr脚本创建浮动ip在eth1网卡上;
21.8、测试:
[root@master-db ~]#/etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
Done.
[root@slave-db ~]#/etc/init.d/heartbeat start
[root@master-db ~]#ip addr
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:5c:f0:d0 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.16/24 brd 172.16.1.255 scope global eth1
inet 172.16.1.26/24 brd 172.16.1.255 scope global secondary eth1
inet6 fe80::20c:29ff:fe5c:f0d0/64 scope link
valid_lft forever preferred_lft forever
[root@slave-db ~]#ip addr
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4a:99:4c brd ff:ff:ff:ff:ff:ff
inet 172.16.1.17/24 brd 172.16.1.255 scope global eth1
inet6 fe80::20c:29ff:fe4a:994c/64 scope link
valid_lft forever preferred_lft forever
[root@master-db ~]#/etc/init.d/heartbeat stop
[root@slave-db ~]#ip addr
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4a:99:4c brd ff:ff:ff:ff:ff:ff
inet 172.16.1.17/24 brd 172.16.1.255 scope global eth1
inet 172.16.1.26/24 brd 172.16.1.255 scope global secondary eth1
inet6 fe80::20c:29ff:fe4a:994c/64 scope link
valid_lft forever preferred_lft forever
21.9、总结:
1、heartbeat安装后默认是自启动的;
chkconfig --list heartbeat
heartbeat 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
在生产环境中是不需要开机自启动的,进行手动启停,比较安全;
chkconfig heartbeat off
2、互为主备模式:
(1)配置参数;
cat /etc/ha.d/haresource
master-db IPaddr::172.16.1.26/24/eth1
slave-db IPaddr::172.16.1.27/24/eth1
(2)配置说明:
master-db和slave-db上的heartbeat启动后,各自都会配置一个vip地址,当其中一台宕机
后所有的vip都会漂移到一台服务器上;
个人认为实质是按照浮动ip前的主机名定义浮动ip的主从的;
(3)将本地置从的命令是(主):/usr/share/heartbeat/hb_standby
(4)接管自己的资源的命令是(主):/usr/share/heartbeat/hb_takeover local
21、部署heartbeat的更多相关文章
- (转)heartbeat原理及部署
原文:http://yjy724.blog.51cto.com/10897133/1840794---------------------------------------------------h ...
- Heartbeat部署
部署环境:CentOS 7 1.Heartbeat介绍 Heartbeat是Linux-HA项目中的一个组件,它实现了一个高可用集群系统.心跳检测和集群通信是高可用的两个关键组件,在Heartbeat ...
- Heartbeat使用梳理
在日常的集群系统架构中,一般用到Heartbeat的主要就2种:1)高可用(High Availability)HA集群, 使用Heartbeat实现,也称为"双机热备", &qu ...
- Heartbeat基础知识-运维小结
在日常的集群系统架构中,一般用到Heartbeat的主要就2种:1)高可用(High Availability)HA集群, 使用Heartbeat实现,也称为”双机热备”, “双机互备”, “双机”: ...
- LVS+Heartbeat 高可用集群方案操作记录
之前分别介绍了LVS基础知识和Heartbeat基础知识, 今天这里简单说下LVS+Heartbeat实现高可用web集群方案的操作说明. Heartbeat 项目是 Linux-HA 工程的一个组成 ...
- CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)
目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 htt ...
- Linux-HA实战(1)— Heartbeat安装
接触Heartbeat主要是因为之前项目中使用了TFS,最近想给nameserver做HA,因为TFS官方用的Heartbeat,所以刚好了解下,参考了网络上很多内容,这里简单记录下. 内容 环境和软 ...
- HeartBeat的一些介绍和功能上的一些总结
HeartBeat的作用: 通过HeartBeat,可以将资源(IP以及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用的服务.在实际的生产应用场景 ...
- 高可用集群heartbeat全攻略
heartbeat的概念 Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(r ...
随机推荐
- [Qt] Librecad 源码分析
libraries jwwlib libdxfrw:一个免费的C++库,用于读写文本格式或二进制格式的DXF文件(C++ library to read and write DXF/DWG files ...
- [bug] C++:[Error] name lookup of 'i' changed for ISO '
错误原因:变量i只在for循环中可见,若在循环外使用需要单独定义 1 #include <iostream> 2 using namespace std; 3 4 int main(){ ...
- [bug] Importing maven project 卡在%9不动
参考 Importing maven project 卡在%9不动 https://blog.csdn.net/weixin_43197380/article/details/89220337
- at在指定的时间执行命令+atq列出用户待处理作业(jobs)
按下crtl+d取消定时任务 # at now+1hourat> echo"a">aat> <EOF>at> <EOT>job 4 ...
- mysql默认值
1.创建表时添加默认值 语法: <字段名><类型><默认值> 实例: MySQL [wordpress]> create table ly_content( ...
- component: resolve => require(['../pages/home.vue'], resolve)-装载
import Vue from 'vue'import VueRouter from 'vue-router'// "@"相当于".."import Detai ...
- GNU Linux启动时文件系统mountall挂载出错问题的处理
/********************************************************************* * Author : Samson * Date ...
- mysql中的实例、数据库关系简介
MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系 统上表现就是一个服务进程,即进程(通过多种方法可以创建多实例,再安装一个端口号不同的mysql,或者通过workben ...
- 离散傅里叶变换的衍生,负频率、fftshift、实信号、共轭对称
封面是福州的福道,从高处往下看福道上的人在转圈圈.从傅里叶变换后的频域角度来看,我们的生活也是一直在转圈圈,转圈圈也是好事,说明生活有规律,而我们应该思考的是,如何更有效率地转圈圈--哦别误会,我真不 ...
- Python+Selenium学习笔记13 - 窗口截图及关闭
涉及方法 get_screenshot_as_file() 1 # coding = utf-8 2 3 from selenium import webdriver 4 from time impo ...