Heartbeat学习笔记--HA高可用集群实现

一、部署环境:

  • 服务器版本:CentOS6.5
  • 双主热备模式:

VIP:192.168.3.30(MASTER上)

VIP:192.168.3.32(BACKUP上)

  • 主机网络参数:
接口 MASTER BACKUP 说明
eth1 192.168.3.23 192.168.3.24 内网管理IP
eth2 192.168.5.23 192.168.5.24 心跳线
eth3 192.168.2.23 192.168.2.24 外网(临时下载文件用)
  • 网络拓扑:

二、需求分析:

通过Heartbeat的高可用功能保证双主VIP同时在线。MySQL01默认绑定VIP:192.168.3.30,MySQL02默认绑定192.168.3.32。任一主机宕机后自动切换。

三、相关配置:

  • 添加心跳线路由:

1)MySQL01端:

route add -host 192.168.5.24 dev eth2
echo "route add -host 192.168.5.24 dev eth2" >>/etc/rc.local    # 加入到rc.local开机自启,也可修改默认静态路由现实

2)MySQL02端:

route add -host 192.168.5.23 dev eth2
echo "route add -host 192.168.5.23 dev eth2" >>/etc/rc.local
  • 安装heartbeat:
[[email protected] ~]# mkdir tools
[[email protected] ~]# cd tools
[[email protected] tools]# wget 
[[email protected] tools]# rpm -ivh epel-release-6-8.noarch.rpm 
[[email protected] tools]# yum install heartbeat -y
  • 配置heartbeat:
[[email protected] tools]# cd /usr/share/doc/heartbeat-3.0.4/
[[email protected] heartbeat-3.0.4]# ls
[[email protected] heartbeat-3.0.4]# cp ha.cf haresources authkeys /etc/ha.d/
[[email protected] heartbeat-3.0.4]# ls -ls /etc/ha.d/
[[email protected] heartbeat-3.0.4]# cd /etc/ha.d/
  • 修改HOSTS文件或者配置DNS参数:

注:由于外网网段192.168.2.0中有DNS服务器,所以在这里就没配HOSTS文件:

如果没有DNS服务器的话需要手工添加HOST记录,主机名的查看方法:

[[email protected] resource.d]# uname -n
MySQL01.stephenzhou.net
[[email protected] ha.d]# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost.localdomain   localhost4      localhost4.localdomain4 localhost       MySQL01
::1     localhost.localdomain   localhost.localdomain   localhost6      localhost6.localdomain6 localhost       MySQL01
192.168.2.23 MySQL01.stpehenzhou.net
192.168.2.24 MySQL02.stpehenzhou.net
192.168.3.23 MySQL01.stpehenzhou.net
192.168.3.24 MySQL02.stpehenzhou.net
  • 查看epel是否已经安装好:
[[email protected] resource.d]# rpm -qa|grep epel
epel-release-6-8.noarch
  • 配置heartbeat的三个主要配置文件(ha.cf/haresources/authkeys),完了过后复制到MySQL01及MySQL02的/etc/ha.d/目录下:

1. ha.cf

#created by stephen#2014-07-07
debugfile /var/log/ha-debug
logfile	/var/log/ha-log
logfacility	local0

keepalive 2
deadtime 30
warntime 10
initdead 60

serial	/dev/ttyS0	# Linux

mcast eth2 225.0.0.1 694 1 0    # 使用组/多播形式,通过eth2走心跳线传送,端口为:udp--694

auto_failback on
node	MySQL01.stephenzhou.net    # 此处必须使用与‘uname -n’一致的名字
node	MySQL02.stephenzhou.net
crm no

2. haresources

# stephen services

# 192.168.2.23 www.stephenzhou.net
# MySQL01.stephenzhou.net IPaddr::192.168.2.30/24/eth3
#MySQL01.stephenzhou.net IPaddr::192.168.2.30/24/eth3 httpd

# 192.168.2.24 bbs.stephenzhou.net
# MySQL02.stephenzhou.net IPaddr::192.168.2.32/24/eth3

# MySQL master mysqlm.stephenzhou.net
#MySQL01.stephenzhou.net IPaddr::192.168.3.30/24/eth1 mysqld
MySQL01.stephenzhou.net IPaddr::192.168.3.30/24/eth1    # 此处也必须使用与‘uname -n’一致的名字

# MySQL slave mysqls.stephenzhou.net
MySQL02.stephenzhou.net IPaddr::192.168.3.32/24/eth1

3. authkeys

auth 1
1 sha1 47e9336850f1db6fa58bc470bc9b7810eb397f04
  • 配置防火墙规则已允许心跳流量(/etc/sysconfig/iptables):
[[email protected] ha.d]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp --dport 694 -j ACCEPT    # 允许端口UDP 694的流量进入
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
  • 测试heartbeat是否配置成功:

1)MySQL01端:

[[email protected] ha.d]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
INFO:  Resource is stopped
Done.

[[email protected] ha.d]# ip add|grep 192.168.3       # 发现VIP已经绑定
    inet 192.168.3.23/24 brd 192.168.3.255 scope global eth1
    inet 192.168.3.30/24 brd 192.168.3.255 scope global secondary eth1
[[email protected] ha.d]# iptables -vL    # 看到udp端口已经有心跳流量了
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   48 12296 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:ha-cluster 
   36  2376 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere            
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
    1   229 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited 
[[email protected] ha.d]# tcpdump -i eth2 udp -s 1500     # 对心跳线所在网卡udp端口抓包的话可以看到心跳流量
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 1500 bytes
16:55:16.399325 IP 192.168.5.23.35912 > 225.0.0.1.ha-cluster: UDP, length 226
16:55:17.216819 IP 192.168.5.24.53014 > 225.0.0.1.ha-cluster: UDP, length 226
16:55:17.371805 IP 192.168.5.23.35912 > 225.0.0.1.ha-cluster: UDP, length 239
16:55:18.399199 IP 192.168.5.23.35912 > 225.0.0.1.ha-cluster: UDP, length 226
16:55:19.222381 IP 192.168.5.24.53014 > 225.0.0.1.ha-cluster: UDP, length 226
...
^C
16 packets captured
16 packets received by filter
0 packets dropped by kernel

2)MySQL02端:

[[email protected] ha.d]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
INFO:  Resource is stopped
Done.

[[email protected] ha.d]# ip add|grep 192.168.3      
    inet 192.168.3.24/24 brd 192.168.3.255 scope global eth1
    inet 192.168.3.32/24 brd 192.168.3.255 scope global secondary eth1

四、参考博文:

CentOS 6.5 heartbeat高可用集群的详解实现以及工作流程

heartbeat mysql nfs 高可用mysql集群

Heartbeat学习笔记--HA高可用集群实现

时间: 2024-10-07 05:26:38

Heartbeat学习笔记--HA高可用集群实现的相关文章

学习笔记--HA高可用集群

实验环境:火墙 selinux关闭 实验机时间同步 各节点解析完整 配置好yum源: [source] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=http://172.25.60.250/rhel6 gpgcheck=0 [HighAvailability] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl

红帽436——HA高可用集群之概念

一.集群概念: 集群:提高性能,降低成本,提高可扩展性,增强可靠性,任务调度室集群中的核心技术. 集群作用:保证业务不断 集群三种网络:业务网络,集群网络,存储网络 二.集群三种类型: HA:高可用集群     -->正在学习的集群 LP:负载均衡集群 HPC:分布式集群 三.HA模型架构图:(图一.图二) (图一) (图二)

红帽436——HA高可用集群之概念篇

一.集群概念: 集群:提高性能,降低成本,提高可扩展性,增强可靠性,任务调度室集群中的核心技术. 集群作用:保证业务不断 集群三种网络:业务网络,集群网络,存储网络 二.集群三种类型: HA:高可用集群     -->正在学习的集群 LP:负载均衡集群 HPC:分布式集群 三.HA模型架构图:(图一.图二) (图一) (图二)

heartbeat+ldirector+lvs实现高可用集群

7.heartbeat+ldirector+lvs实现高可用集群 在lvs的DR模式基础下进行该实验. heartbeat工作原理: heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来 告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务. 两台 调度服务器 :    Heartbeat仅仅是个HA软件,它仅能完成

搭建HA高可用集群

搭建HA高可用集群 一.搭建集群的准备环境 有三台机器,两台上装ricci,另外一台装luci Luci管理机:172.25.47.6 Ricci节点:172.25.47.4   172.25.47.5 Yum仓库: Yum仓库中要指向其他的一些包 注意:yum仓库一般是从Server目录中下载包,但是也有一些其他的包在其他的目录下,因此此次yum 源的配置会和以往不一样 Yum源中配置的是这几个模块: 防火墙方面: 永久关闭防火墙 Selinux方面: 由于这些套件是redhat自带的,所以可

红帽436——HA高可用集群之安装篇

红帽436--HA高可用集群的安装 图释: 1-  su - :真实机切换至root用户 2-  virt-manager :打开KVM管理工具 3-  从Desktop开启虚拟机:classroom(充当服务器的作用)和三台节点机 图释:在每台节点中操作 1-  通过ssh以节点root远程登录三个节点进行操作: ssh [email protected] 2-  安装pcs服务 3-  关闭firewall,并永久启用pcs服务 4-  设置用户hacluster密码:redhat    -

HA 高可用集群概述及其原理解析

HA 高可用集群概述及其原理解析 1. 概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS 的HA和YARN的HA. 3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF). 4)NameNode主要在以下两个方面影响HDFS集群: ? NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 ? NameNode机器需要升级

高可用集群之Corosync+Pacemaker及用CRM命令和NFS-server构建一个HA高可用集群

红帽5.0使用的是OpenAIS作为内核中的信息通信API,然后借助CMAN作为Messager Layer,再使用ramanager作为CRM进行资源的管理 Corosync具有比heartbeat在设计上更好的信息通信机制 红帽6.0直接使用Corosync用来作为集群的Messager Layer 不同的公司的API机制所调用的库,函数类型,返回方式各不相同,这就必须使用一个标准,使不同公司的API保持最大的兼容 比如你买了华硕的主板使用其他公司的鼠标照样可以使用 应用接口规范(AIS)就

HA高可用集群配置

高可用集群 说明:关键业务节点,需做高可用 HA==high available heartbeat -->HA 结构图: 1. 准备:需要两台机器,一主一从,同一局域网 主:192.168.11.160 从:192.168.11.20 2. 修改下主从主机的hostname,并用bash切换 主:hostname master ; bash 从:hostname slave ; bash 3. 关闭主从机器的防火墙,配置文件/etc/selinux/config,修改SELINUX=disab