heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

安装环境:Centos 6.4, httpd2.4,mysql5.5,heartbeat v2

提供两台机器node1和node2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样。

#   IP                         HOSTNAME             ALIAS

10.204.80.79     node1.mylinux.com     node1

10.204.80.80     node2.mylinux.com     node2

这两台服务器之间建立ssh互信

#ssh-kegen –t rsa –p””                          生成id_rsa.pub和id_rsa 公钥和私钥文件

#ssh-copy-id –i .ssh/id_rsa.pub [email protected]              把公钥文件拷到node2上,在node2中同样操作,然后把公钥文件拷到node1上,这样,两台主机之间就可以不通过密码进行互访。

安装httpd,并提供访问页面,为了显示效果,可以在两台机器上的网页文件上添加标记显示区别,我用的是web页面是phpinfo 加标识来识别,基础环境就已经安装好了。

安装heartbeat v2版本

因为heartbeat v2版本已经不支持在centos6版本上的rpm包,所以不能直接用yum安装,需要用src源码安装包编译后才能安装。我这里用的是已经编译好了的rpm包,安装过程要解决依赖关系,

yum -y install perl-MailTools net-snmp-libs pygtk2-libglade libnetsnmp net-snmp-libs

然后通过rpm –ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm

安装heartbeat v2.14版本完成

heartbeat v2的配置文件放的位置在 /etc/ha.d/目录下,有三个配置文件,authkeys  ha.cf   haresource,安装完成后默认是没有这三个文件的,可以手动创建,也可以在/usr/share/doc/heartbeat-2.1.4/ 目录下把这三个文件的示例文件拷到/etc/ha.d/ 目录下。

配置文件的作用:

authkeys  : 认证文件,里面有启用哪种加密方式及加密密钥,crc ,sha1 和md5三种认证机制。

如果要启用哪种认证方式,则在 auth 后面选择对应的数据,然后加指定验证密钥,密码是用openssl随机生成的一串16位字符

haresource :这是由heartbeat v1版本中自带的资源管理配制文件,定义依靠和资源情况 。

这点定义的时资源节点默认依靠在node1节点上,vip:10.204.80.89,默认绑定在eth0上,定义的服务为httpd24

ha.cf : 主配置文件, 定义节点,日志,传输心跳的方式等。

logfile /var/log/ha-log

node node1.mylinux.com

node node2.mylinux.com

mcast eth0 225.4.0.4 694 1 0

ping 10.204.80.3

配置就已经完成,启动heartbeat

在node1上启动heartbeat ,提示heartbeat启动成功,但资源是停止的。

查看启动日志

查看启用端口

组播端口694已经启动

在当前节点上启动node2

查看资源

vip和httpd都已经启动。web页面也正常显示

在node1上停止heartbeat服务

然后在node2上查看资源

Vip和httpd都已经成功转移到node2上,web访问页面也显示是node2上的页面

在node1上重新启动heartbeat

资源又重新回到node1上了,这是因为在haresource定义 资源的时候是默认在Node1上。heartbeat配置高可用web服务成功

配置基于nfs共享存储的mysql高可用集群

提供两台机器mysql1和mysql2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样。

#   IP                         HOSTNAME             ALIAS

10.204.80.86    mysql1.mylinux.com     mysql1

10.204.80.85    mysql2.mylinux.com     mysql2

nfs服务器 10.204.80.71

mysql1和mysql2建立互信关系,并且在三台服务器上添加指定同样uid和gid的mysql帐号

在mysql1和mysql2两台机器上挂载nfs,挂载目录为/mysqldata,并创建/mysqldata/data目录为mysql的数据目录

用二进制格式安装mysql5.5.38,并指定mysql的数据目录为/mysqldata/data

在mysql1节点上启动mysql服务成功,

然后在mysql1节点上停止mysql服务,然后在mysql2节点上同样启动mysql服务,注意在/etc/my.cnf文件中一定要添加  datadir = /mysqldata/data  这一条配置文件,

在mysql2结点上启动mysql服务成功

集群环境已经搭好,安装heartbeat v2版本过程参照上面web高可用集群过程。启用图型界面配置资源

在/etc/ha.d/ha.cf主配置中写入以下配置

node    mysql1.mylinux.com
node    mysql2.mylinux.com

mcast eth0 225.5.0.4 694 1 0

ping 10.204.80.3

crm on    # 启用图型界面配置资源

在/etc/ha.d/authkeys 启用验证功能

2 sha1 7cd37bc0d0fbc374

输入命令 crm_mon,可以查看两个节点的状态信息

两个节点都已经在线,但没有定义资源

在命令行输入启用图型界面

安装heartbeat以后会自动创建hacluster帐号,对这个帐号添加密码,启动heartbeat服务就可以登陆进去配置资源。

如图显示,两个节点都已经正常在线状态。就可以添加资源

因为启动mysql服务必须要有三个资源:VIP  NFS以及mysql服务,所以把这三个资源定义到同一个资源组中。

添加资源vip,ip地址,绑定在哪个网卡的别名上,指定netmask

同样添加filesystem资源nfs和mysqld服务,然后把资源启动

定义约束:

因为前面定义的资源都在同一个组里面,所以这些资源必须运行在同一个节点上,于是要定义的约束是位置约束,默认资源依靠在节点mysql1上。顺序约束,必须先挂载nfs资源然后才能启用mysql服务,必须要先停止mysql服务,然后才能停止nfs服务,定义属性能如图

位置约束: 定义在mysql1上,也就是如果mysql1节点挂了会自动转移到节点mysql2,当mysql1节点重新在线后,资源又会自动转移到mysql1节点上来。

顺序约束:定义资源启动的先后顺序

划红圈的部份就已经说明了资源启动的顺序关系,至此集群已经定义完成。

把mysql1节点状态改为Standby,显示转换过程

资源转移完成,当把mysql1节点重新上线,资源又会自动转移 回去。

时间: 2024-10-13 10:44:02

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群的相关文章

基于heartbeat v2 crm实现基于nfs的mysql高可用集群

前言 因heartbeat v1内置的资源管理器haresource功能比较简单,且不支持图形化管理,所以heartbeat v2不再支持haresource,转而使用更加强大的资源管理器crm进行集群管理.本文将讲解如何基于heartbeat v2 crm实现基于nfs的mysql高可用集群. 高可用实现 实验拓扑 实验环境 node1:172.16.10.123 mariadb-5.5.36 CentOS6.6 node2:172.16.10.124 mariadb-5.5.36 CentO

heatbeat-gui实现基于nfs的mysql高可用集群

一.简述HA高可用集群 高可用集群就是当集群中的一个节点发生各种软硬件及人为故障时,集群中的其他节点能够自动接管故障节点的资源并向外提供服务.以实现减少业务中断时间,为用户提供更可靠,更高效的服务. 二.基于nfs实现mysql的高可用集群配置 环境准备接上文 heartbeat-gui部署 实验环境: nfs server准备 1.在nfs server准备LVM存储空间 [[email protected] ~]# fdisk /dev/sdb Device contains neither

基于keepalived搭建MySQL的高可用集群

http://www.cnblogs.com/ivictor/p/5522383.html 基于keepalived搭建MySQL的高可用集群 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,MHA和PXC. 对于小公司,一般推荐使用keepalived+双主,简单. 下面来部署一下 配置环境: 角色                          

MySQL集群之五大常见的MySQL高可用方案(转)

1. 概述 我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断. 用作备份.只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致. 当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务. 关于对高可用的分级在这里我们不做详细的讨论,这里只讨论常用高可用方案的优缺点以及高可用方案的选型. 2. 高可用方

【视频分享】基于MyCat的MySQL高可用读写分离集群

# [视频分享]基于MyCat的MySQL高可用读写分离集群 ## 获取方式 **方式一:****链接:**[百度网盘](https://pan.baidu.com/s/137KFcoCE-i75vA8FE_OYFQ)==关注公众号极客萧(xiaoyxyj),并且回复关键字:mycat 即可获取下载链接和提取码(注意大小写别错)====如果链接失效,请及时联系我== 原文地址:https://www.cnblogs.com/icefirebug/p/11784738.html

基于Keepalived实现Mysql高可用

前言 由于最近要使用Mysql数据库,而目前公司服务器与业务有限,于是只使用了一台Mysql.所以,问题很明显,如果这台Mysql坏了,那么将会影响整个公司的业务,所以考虑做Mysql的高可用方案.目前,Mysql的高可用方案很多,这里选择Keepalived+Mysql实现高可用. 环境介绍 ID OS IP Role node1 CentOS6.5_X64 192.168.1.159 Master node2 CentOS6.5_X64 192.168.1.160 Slave  Mysql

CentOS6.4 高可用集群之基于heartbeat(crm)和nfs的mysql高可用

CentOS6.4 高可用集群之基于heartbeat和nfs的高可用mysql CentOS版本: CentOS release 6.4(Final) 2.6.32-358.el6.i686 效果演示: 使用ssh连接(nod-1.magedu.com)192.168.3.7 并执行以下命令: [[email protected] ha.d]# hb_gui & 说明:hb_gui是heartbeat为了方便管理集群资源而提供的一个图形用户接口 安装heartbeat默认会在系统中创建一个名为

基于heartbeat v2 crm实现配置基于nfs的mysql HA集群

主机规划: 高可用服务器安装v2版本的heartbeat,同时这两个节点上安装有mysql,运行时只有一个节点可以运行mysql,另外一个节点备用,后端有一个nfs共享存储,用于提供共享目录,用于存储数据库的数据. IP地址设置为: HA1:172.16.103.1 HA2:172.16.103.2 NFS:172.16.103.3 实验过程: 一.准备NFS服务器 # mkdir -pv /nfs/shared # groupadd -g 3306 mysql # useradd -u 330

Linux集群之corosync+pacemaker实现MySQL高可用

一.实验拓扑 二.拓扑说明 分别在两个节点上实现部署MySQL,数据库文件存储在后端的NFS主机上,通过挂载至相应的节点上使用,在两个节点分别安装corosync和pacemaker用于实现MySQL的高可用,通过crmsh程序对pacemaker进行配置,当其中一个节点出现问题时用于前端访问的VIP地址将被移到另一个节点上,并挂载后端的NFS数据库存储文件,然后启动MySQL数据库程序,以实现在两个节点上实现MySQL高可用. 三.架构布置 服务器:CentOS 6.6 x86_64: 数据库