heartbeat V2实现MySQL+NFS高可用

heartbeatV2实现MySQL+NFS高可用 

实验前准备



1.时间需要同步,建议使用NTP服务器同步时间并且创建时间同步计划

  #ntpdate 172.16.0.1  //第一个节点
  #ntpdate 172.16.0.1  //第二个节点
  crontab  -e 
   */3 * * * *  /usr/sbin/ntpdate 172.16.0.1 > /dev/null

2.root用户基于密钥认证的时候

ssh-keygen -t rsa -P ‘‘ //节点一
ssh-copy-id -i ~/.ssh/id_rsa.pub node3
ssh-keygen -t rsa -P ‘‘ //节点二
ssh-copy-id -i ~/.ssh/id_rsa.pub node2

3./etc/hosts文件作好IP对应的主机名的解析

172.16.249.122  node2 
172.16.249.141  node3

全部准备好了之后。

下载安装需要的包:

准备安装:我这里是FTP服务器存储的。

lftp172.16.0.1:/pub/Sources/6.x86_64> mirror heartbeat2/

解决依赖关系及包的安装:

 #yum -y installnet-snmp-libs libnet PyXML
 #rpm -ivh heartbeat-pils-2.1.4-12.el6.x86_64.rpm
 #rpm -ivhheartbeat-stonith-2.1.4-12.el6.x86_64.rpm
 #rpm -ivhheartbeat-gui-2.1.4-12.el6.x86_64.rpm
 #rpm -ivhheartbeat-2.1.4-12.el6.x86_64.rpm

思路:实现MySQL+NFS的高可用。将NFS作为MySQL的共享存储服务器。首先需要一台机,作为NFS服务器,然后创建两个节点为mysql。把mysql数据库分别初始化为NFS挂载的目录。通过heartbeatv2实现管理。

搭建NFS服务器


[[email protected] ~]# mkdir /mydata/data
[[email protected] ~]# cat/etc/passwd | cut -d: -f 3 | grep "400"
[[email protected] ~]#groupadd -r -g 400 mysql
[[email protected] ~]# useradd-r -g 400 -u 400 mysql
[[email protected] ~]# id mysql
uid=400(mysql)gid=400(mysql) groups=400(mysql)
[[email protected] ~]# chown -R mysql:mysql /mydata/data
[[email protected] ~]# ll -d /var/lib/mysql
drwxr-xr-x 4 mysql mysql4096 Jan  1 15:31 /mydata/data
[[email protected] ~]# vim/etc/exports
/data/mysql          172.16.0.0/16(rw,no_root_squash)
[[email protected]~]# exportfs -arv         //重新导出挂载所有的文件系统

到MySQL节点查看结果:

[[email protected] ntp]# showmount -e 172.16.249.239 //这个IP是我们NFS的IP,
Exportlist for 172.16.249.239:/mydata/data
/mydata172.16.11.1/16

各节点MySQL的创建



现在开始建立MySQL服务器

使用二进制版本安装mysql的过程就是一下几个步骤:

1.创建用于访问数据的库的用户。

2.创建由mysql数据存储的目录,属主数组都为mysql。

3.修改解压文件的所有属主为root属组为mysql

4.进行脚本初始化。

5.为服务添加配置文件和脚本

[[email protected] ~]# groupadd -r -g 400 mysql   //id号要保持一致不然没办法写操作
[[email protected] ~]# useradd -r -g 400 -u 400 mysql
# mkdir /var/lib/mysql            //创建一个单独文件,用于mysql作为数据库挂载nfs使用
chown -R mysql:mysql /var/lib/mysql    // 给予数据库权限
lftp172.16.0.1:/pub/Sources/6.x86_64/mariadb> mgetmariadb-5.5.36-linux-x86_64.tar.gz
lftp172.16.0.1:/pub/Sources/6.x86_64/mariadb> bye
[[email protected] tmp]# tar -zxf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local/
[[email protected] local]# ln-sv mariadb-5.5.36-linux-x86_64/ mariadb
#cd  mariadb         创建便于使用的软连接
#chown-R root:mysql ./*    把解压的mysql目录下的所有文件属主改为root ,属组改为mysql。
[[email protected] mariadb]#./scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql
#cd support-files
#cp mysql.server /etc/init.d/mysqld
#[[email protected]]# cp my-large.cnf /etc/mysql/my.cnf
#vim /etc/mysql/my.cnf
thread_concurrency = 8
datadir = /mydata 
Innodb_file_per_table= on 
skip_name_resolve = on
[[email protected] init.d]#chkconfig --list mysqld
service mysqld supportschkconfig, but is not referenced in any runlevel (run ‘chkconfig --add mysqld‘)
[[email protected]]# chkconfig --add mysqld  加入服务
[[email protected]]# chkconfig mysqld off      让集群内的服务不能卡机自动重启

添加环境变量及其他文件


 #Vim /etc/profile.d/mysql.sh  //添加如下行
 #export  PATH=/usr/local/mysql/bin:$PATH

为mysql添加man文件

 cd/usr/local/mysql/man/man1
 gzip  ./*     
 cp  ./* /usr/share/man/man1/

Man mysql查看效果

导出库文件

  # cd /etc/ld.so.conf.d/
  vim /etc/ld.so.conf.d/mariadb.conf 写入lib的文件路径
  /usr/local/mysql/lib

启动MySQL

[[email protected] mysql]# service mysqld start
  mysql> showdatabases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | mysql              |
  | test               |
  +--------------------+
  3 rows in set (0.00sec)
  mysql> GRANT ALL ON *.* TO ‘root‘@‘172.16.%.%‘ IDENTIFIED BY ‘password‘;
  Query OK, 0 rowsaffected (0.00 sec)
  mysql> FLUSH PRIVILEGES;
  Query OK, 0 rowsaffected (0.00 sec)
   //我这里使用一个远程用户登陆:查看结果
  #service mysql restart
  [[email protected] local]# mysql -uroot-h172.16.11.3 -p
   Enter password: 
   Welcome to the MariaDB monitor.  Commands end with ; or \g.
   Your MariaDB connection id is 2
   Server version: 5.5.36-MariaDB-log MariaDBServer
   Copyright (c) 2000, 2014, Oracle, MontyProgram Ab and others.
   Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ toclear the current input statement.

至此,我们的第一个节点的mysql可用了。

那么现在就可以是创建第二个节点了。但是要注意的是:由于第一个节点在之前已经初始化过了。因此这里直接就可以挂载使用了。但是在使用前先把之前的最好卸载掉节点。

同样步骤添加节点二的MySQL的。这里不在描述。

验证MySQL可用

验证另一个节点MySQL可用

配置heartbeatV2可用



在node2节点执行如下操作:

cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,authkeys} /etc/ha.d/
# vim /etc/ha.d/ha.cf 修改以下内容:
mcast eth0 226.11.11.11 694 1 0 
auto_failback on
node   
node2
node   
node3
ping 172.16.0.1
# vim /etc/ha.d/authkeys 添加以下内容:
auth 2
2 sha1 8d64d1aeff0d
chmod 600 /etc/ha.d/authkeys
# scp ha.cf authkeys node node3:/ect/ha.d/
/etc/init.d/heartbeat start;ssh node3 ‘/etc/init.d/heartbeat start‘

开启图形化界面,进行资源配置:

service heartbeat start;ssh node3 ‘service heartbeat start‘

# hb_gui &

添加组资源

依次添加流动IP和MySQL和文件系统资源

前两比较简单只演示文件系统的添加方式:

添加资源的约束关系:order:

切换节点测试

登陆MySQL验证结果即可!

时间: 2024-10-01 07:59:50

heartbeat V2实现MySQL+NFS高可用的相关文章

heartbeat v2版CRM的高可用web集群的实现

上篇文章:heartbeat v1版CRM的高可用集群的实现 集群架构图 : 主节点(172.16.31.10) 客户端(172.16.31.12) Vitual IP(172.16.31.166)                            NFS IP(172.16.31.12) 从节点(172.16.31.11) 注:心跳信息传递借助eth0网卡实现 网络以及IP地址规划如下所示: 节点类型     IP地址规划          主机名      类型 主用节点     eth

基于heartbeat V2 crm 的lamp高可用

  实验环境: 虚拟机ha1:192.168.61.130 虚拟机ha2:192.168.61.132 虚拟机nfsserver:192.168.61.136 vip:192.168.61.100 目的: 使用heartbeat V2 crm(hb_gui)实现lamp+nfs+wordpress的高可用. 为了实验简便,lamp环境直接用yum配置,配置好的mysql数据库存放位置再重新挂载到nfs 注意事项: (a) .节点间时间必须同步:使用ntp协议实现: 服务端/etc/ntp.con

Heartbeat v2 + haresouce 实现WEB高可用

一.简介 heartbeat最后一个v2版本是2.1.4,可以使用v1版本的haresource和crm,本实验以haresource为crm来讲解WEB的HA,haresource是不支持资源的监控操作,因此当资源出现了挂起,异常问题时不会导致heartbeat资源的转移,就存在问题,因此需要切合其他方式来实现资源的健康控制,这边我使用自己写得脚本的SHELL脚本来实现. 二.拓扑 三.配置 0.  HA前提: 1.时间同步(心跳信息要时刻一致) utpdate  ..... 2.主机名通信(

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置http+msyql+nfs高可用集群

  基于crm+hb_gui接口配置http+mysql+nfs高可用集群    基于crm+hb_gui接口配置ipvs高可用集群    基于crm+hb_gui+ldirectored接口配置ipvs高可用集群 

(转)Heartbeat+DRBD+NFS高可用案例

原文:http://9861015.blog.51cto.com/9851015/1939521--------------------------------Heartbeat+DRBD+NFS高可用案例 9.4 部署DRBD 的需求描述 9.4.1业务需求描述 假设两台服务器Rserver-1/Lserver-1, 其实际IP分别为192.168.236.143(Rserver)和192.168.236.192(Lserver) 配置目标:两台服务器分别配置好DRBD服务后.实现在Rserv

Heartbeat+Drbd+NFS高可用实现

继续之前的操作,来完成heartbeat+drbd+nfs高可用的实现. heartbeat+drbd还是使用原来的环境即可,然而需要添加一台nfs客户端,客户端的信息如下: 主机名 IP地址 角色 server136.contoso.com 192.168.49.136 nfs客户端 一.环境准备 1)注意:因为我的客户端是192.168.49.0/24端,所以这里需要把VIP改为这个网段,所以先修改两个节点的haresources文件,将VIP修改为192.168.49.100.可以根据实际

drbd+heartbeat+nfs高可用架构搭建

一.客户需求 1.需求描述 有些客户有自己的存储设备,但是并没有集群文件系统服务,所以如果我们多个节点(计算节点)如果想同时使用其中的一个块且要保证高可用的话,就需要我们自己来完成类似集群文件系统的服务组合,在此我们使用的服务组合是:iscsi共享+drbd+heartbeat+nfs. 2.服务说明 Iscsi共享:这里通过iscsi共享服务将存储设备上的存储块共享出去,提供节点(NC1+NC2)使用,此处我们将在iscsi服务短创建两个镜像充当块设备. Drbd   :服务器之间镜像块设备内

Heartbeat+Drbd+Mysql主从高可用实现

在上一篇中已经实现了MySQL服务的高可用,MySQL的数据目录放在drbd的共享目录中,并且只有获取到heartbeat资源的VIP才能挂载共享目录,从而启动MySQL服务,但是两端的数据使用drbd同步,保证发生故障时,服务和资源能够从一个节点切换到另外一个节点,下面是一个简略的架构图: 对于MySQL服务,一般在生产环境中都要做主从结构,从而保证数据的完整性,所以这次要在这个架构的前提下,在两个heartbeat节点下再部署一台MySQL从库,而主库是heartbeat集群中的一台(主库的

DRBD项目实施之NFS高可用架构(NFS+Heartbeat+Drbd)

由于目前线上的两台NFS服务器,一台为主,一台为备.主到备的数据同步,靠rsync来做.由于数据偏重于图片业务,并且还是千万级的碎图片.在目前的业务框架下,NFS服务是存在单点的,并且数据的同步也不能做完全实时性,从而导致不能确保一致性.因此,出于对业务在线率和数据安全的保障,目前需要一套新的架构来解决 NFS 服务单点和数据实时同步的问题. 然后,就没有然后了. 下面是一个丑到爆的新方案架构图,已经在公司测试环境的部署,并且进行了不完全充分的测试. 架构拓扑: 简单描述: 两台 NFS 服务器