Hearbeat 软件未来发展说明(2.1.4以后):
hearbeat 群集消息层 | 负责维护集群各节点间的相互通信及基本信息 |
cluster glue 中间层 | 负责调度,包括两个模块:本地资源管理和stonith |
resource agents 资源代理层 |
实现各种资源的启动、停止、监控等 |
(pacemaker)资料待补充!
生产场景(主要是为了解决单点):
1、四层:前端负载均衡器,配合lvs (keeplived有区别的)。
注意是:hearbeat +lvs + ldirectord(健康检查)
2、七层:配合haporxy、nginx,负载ip漂移!
3、配合数据库主库的高可用。
4、存储的高可用,比如nfs网络文件存储系统。
5、单点的分布式文件系统。
实验准备: 虚拟机两台;配置各自的vip ;(虚拟网卡模拟直连)
网卡三块:eth0 外网 eth1 内网管理ip eth2 用于服务器心跳 ;vip 应用程序挂载服务。
配置hosts,ping 测试;
添加心跳路由: route add -host 10.0.10.22 dev eth2
提示:防火墙一定要关闭,成败关键!
安装:
1、下载软件包: 提示:普通的yum源无此软件 |
使用epel源安装: 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 #注意epel源使用和系统相同版本 rpm -qa |grep epel 安装heartbeat 提示: yum 源跟新网址:http://mirrors.aliyun.com/help/centos wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum缓存保留修改设置: sed -i ‘s#keepcache=0#keepcache=1#g‘ /etc/yum.conf |
2、安装检查 | rpm -aq heartbeat |
3、启动文件 |
/etc/init.d/heartbeat #脚本文件 |
4、配置目录 |
/etc/ha.d/ |
5、服务资源 控制目录 |
/etc/ha.d/resource.d/ #可以放到init.d (脚本文件) |
6、 核心配置 文件 |
ha.cf (参数配置文件) :基本参数 |
authkey(认证文件) :高可用服务器之间根据对端的authkey,对对端认证 | |
harresource(资源配置文件):配置启动ip资源及脚本程序,服务等 | |
提示:配置文件模版 路径: /usr/share/doc/heartbeat-3.0.4/ # 文件包括:haresources、ha.cf、authkeys |
配置文件ha.cf配置 说明: |
生产配置范例(/etc/ha.d/ha.cf): #the start by kong 2015/7/5 debugfile /var/log/ha-debug logfile/var/log/ha-log logfacilitylocal1 keepalive 2 deadtime 30 warntime 10 initdead 60 #bcasteth1 mcast eth2 225.0.0.7 694 1 0 auto_failback on node A node B crmno #the end by kong #提示两台主机heartbaet 配置时相同的 |
|
debugfile /var/log/ha-debug |
heartbeat 调试日志存放位置 #24 行 |
logfile /var/log/ha-log | 普通log # 29 行 |
logfacility local0 | 在syslog服务中配置通过locall设备接收日志 #34 行 |
keepalive 2 (心跳间隔时间) |
指定心跳间隔时间为2秒(即每2秒在eth1上发一次广播) # 48 行 |
deadtime 30 (宣布死亡时间) |
指定若备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的资源服务 # 56 行 |
wamtime 10 (警告延迟时间) |
指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务 |
initdead 120 (初始化死亡时间) |
指定在 HEARTBEAT 首次运行后,需要等待120秒才启动主服务器的任何资源。该选项用于解决这种情况产生的时间间隔。取值至少 为deadtime的两倍。单机启动时会遇到vip绑定慢,为正常现象。该值设置长的原因。 |
#bcast eth1 (广播方式) |
指明心跳使用以太网广播方式在eth1接口上进行广播。如使用两个实际网络传送心跳则 #bcast eth0 eth1 |
mcast eth2 255.0.0.1 694 1 0 (多播) |
设置广播通信使用的端口,694 为默认使用端口 ; eth2 设备 255.0.0.1 地址 |
auto failback on | #用来定义当主节点回复后,是否将服务自动切回。 |建议人工 |
node hostname | #主节点主机名 。使用uname -n 查看 |
node hostname2 | #备用节点主机名。 |
crm no | 是否开启集群资源管理功能 |
配置文件/etc/ha.d/authkeys 配置说明: #如下为默认配置文件 |
|
# #Authentication file. Must be mode 600 # 提示:authkey权限必须为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 is believed to be the "best", md5 next best. # 提示:sha1的方式是最好的 #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方法,这是不加密的,不够安全 |
生成方法: |
[[email protected] ha.d]# echo kong|sha1sum # 用的sha1 5e1d19b4602d90f43ab23a1470bb3d3a8939799a - |
编辑配置文件: 提示:两台机器配置相同 |
[[email protected] ha.d]# cat authkeys auth 1 1 sha1 5e1d19b4602d90f43ab23a1470bb3d3a8939799a [[email protected] ha.d]# chmod 600 authkeys |
配置文件/etc/ha.d/haresource 配置说明(两台配置相同): | |
生产配置 范例: |
[[email protected] ha.d]# cat haresources #kong services A IPaddr::10.0.0.18/24/eth0 B IPaddr::10.0.0.19/24/eth0 |
#A | 为主机名,表示初始状态会在 A 绑定ip 10.0.0.17 |
#IPaddr | 为heartbeat 配置ip的默认脚本,其后的ip等都是脚本的参数 |
#10.0.0.17/24 eth0 |
#为集群对外服务的vip,初始启动在A 上; #24为子网掩码; #eth0为ip绑定的实际物理网卡,为heartbeat提供对外服务的通信接口 |
更多说明: |
来自 Mysql+drdb+Heartbeat 文档 |
文件分析 |
haresource: data-1-2 kong::test abc:test:ab shipeng 分析:data-1-2 优先启动脚本: /etc/ha.d/resource.d/kong test start /etc/ha.d/resource.d/abc test ab start /etc/ha.d/resource.d/shipeng start 放到haresource下面的内容都要支持 /etc/ha.d/resource.d/shipeng start/stop这样的控制模式。 |
启动服务
[[email protected] ha.d]# /etc/init.d/heartbeat strat Usage: /etc/init.d/heartbeat {start|stop|status|restart|reload|force-reload} [[email protected] ha.d]# /etc/init.d/heartbeat start Starting High-Availability services: INFO: Resource is stopped INFO: Resource is stopped Done.
服务器 A :
vip检查:
[[email protected] ha.d]# ip addr |grep -E "10.0.0.19|10.0.0.18" inet 10.0.0.18/24 brd 10.0.0.255 scope global secondary eth0
服务器 B :
[[email protected] ha.d]# ip a|grep -E "10.0.0.18|10.0.0.19" inet 10.0.0.19/24 brd 10.0.0.255 scope global secondary eth0
关停其中一台(B):
vip检查:
[[email protected] ha.d]# ip addr |grep -E "10.0.0.19|10.0.0.18" inet 10.0.0.18/24 brd 10.0.0.255 scope global secondary eth0 inet 10.0.0.19/24 brd 10.0.0.255 scope global secondary eth0
提示:防火墙切记关闭