corosync+pacemaker+drbd实现mysql高可用

实验环境:

虚拟机2台安装corosync+pacemaker,使用的操作系统为CentOS6.5。

虚拟机IP:172.16.103.2、172.16.103.3

实验步骤:

前提准备:两台虚拟机时间同步,能够使用/etc/hosts文件基于主机名进行通信。

一、安装corosync + pacemaker:

# yum install corosync
# yum install pacemaker

二、安装drbd软件包:

drbd软件包有两部分组成:内核模块和用户空间的管理工具,在内核版本号2.6.33之前的Linux系统中这两部分都需要安装,而之后的版本只需要安装管理工具。实际安装时,要注意程序包和对应的内核模块的版本要对应,实验过程中使用的是8.4版本。

# rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm

三、配置drbd

首先在两台虚拟机上创建两个容量相同的磁盘分区,假设为1G,同为/dev/sda3

编辑配置文件,在其中使用protocol C协议等。然后定义资源,资源文件在/etc/drbd.d/目录下,资源的定义如下:

resource web {
  on node1.cluster.com {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address   172.16.103.2:7789;
    meta-disk internal;
  }
 on node2.cluster.com {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address   172.16.103.3:7789;
    meta-disk internal;
  }
}

在定义好配置文件和资源文件以后将这两个文件复制到另外一个节点上,这些文件两个节点上要保持一致。

# scp /etc/drbd.d/* node2:/etc/drbd.d

初始化资源,在node1和node2上分别执行:

# drbdadm create-md web

启动服务,在两个节点上分别执行:

# /etc/init.d/drbd start

使用drbd-overview命令查看资源启动结果

# drbd-overview

初始化完成后的两个节点都处于Secondary状态,需要将一个节点提升为主节点,然后两个主机的drbd资源会进行同步。

# drbdadm primary --force web

同步完成后,创建文件系统并挂载:

# mke2fs -t ext4 /dev/drbd0
# mount /dev/drbd0 /mnt

挂载之后,为了测试drbd设备是否可以正常使用,先在该主节点复制文件到挂载目录中:

# cp /etc/fstab /mnt

卸载设备,之后将该主节点的drbd状态降级为Secondary,,由另外一个节点挂载,然后再测试:

# umount /mnt
# drbdadm secondary web
# drbd-overview #查看一下降级的效果,如果两个节点的状态都为secondary,另外一个节点才可以提升为master,

在另外一个节点操作:

# drbdadm primary web
# drbd-overview
# mkdir /mnt/drbd
# mount /dev/drbd0 /mnt
# ls /mnt  #验证之前复制操作的文件是否存在 。

四、在上述的验证操作完成后,drbd的安装及准备工作完成。进而配置集群操作,这里用的配置工具是crmsh,具体的配置操作如下:

crm(live)# property stonith-enabled=false   #由于是两个节点的高可用集群,而配置集群时会提供需要提供stonith设备,否则无法启动集群服务,所以需要设置stonith-enable这个参数为false
crm(live)# property no-quorum-policy=ignore #设置集群在不具备法定票数的情况下的默认操作
crm(live)# primitive mydrbd ocf:linbit:drbd params drbd_resource=mydata op monitor role=Master interval=10s timeout=20s op monitor role=Slave interval=20s timeout=30s op start timeout=240s op stop timeout=100s  #定义drbd设备的主资源
crm(live)# master ms_mydrbd mydrbd meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=True   #定义drbd主资源的克隆资源,该克隆资源有角色之分,只有主角色的克隆资源启动的高可用节点上,可以挂载drbd设备,同时定义克隆资源的数量以及在各节点上主、从克隆资源可以运行的个数
crm(live)# primitive myfs ocf:heartbeat:Filesystem params device=/dev/drbd1 directory=/mydata fstype=ext4 op monitor interval=20s timeout=60s op start timeout=60s op stop timeout=60s  #定义要使用的drbd资源要挂载的具体文件系统信息
crm(live)# primitive myip ocf:heartbeat:IPaddr params ip=172.16.103.10 op monitor interval=30s timeout=20s   #定义mysql高可用服务器使用的VIP信息,在两个节点间流转的IP地址
crm(live)# primitive myserver lsb:mysqld op monitor interval=30s timeout=20s  #定义mysql服务资源以及其使用的资源代理的方式
crm(live)# group myservice myfs myip myserver  #将mysql使用的ip,服务,文件系统这些资源定义为一个组,以便启动后这些资源会运行在一个节点上,而不是分散在不同节点。
crm(live)# colocation myfs_with_ms_mydrbd_master inf: myfs ms_mydrbd:Master  #mysql使用的文件系统drbd0要与克隆资源的主资源运行在一起,这是因为drbd的特性导致,只能是状态为主的drbd才能挂载drbd设备并执行读写操作
crm(live)# order myfs_after_ms_mydrbd_master mandatory: ms_mydrbd:promote myfs:start #同时文件系统资源与克隆的drbd角色为主的资源的启动顺序有先后之分,只有某节点上的drbd角色为主之后,文件系统才能被挂载,所以定义了顺序约束
crm(live)# colocation myserver_with_myfs inf: myserver myfs  #文件系统资源与mysql服务之间也有顺序约束,这两个资源要运行在一起。
时间: 2024-11-06 03:05:22

corosync+pacemaker+drbd实现mysql高可用的相关文章

基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以在未来的日子Corosync会逐渐取代Heartbeat.本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案. 相关介绍 Corosync Corosync是从OpenAIS中分支出来的一个项目,它在传递信息的时候可以通过一个简单的配置文件来定

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

一.drbd简介 drbd即Distributed Replicated Block Device(分布式磁盘块设备),drbd一个基于软件实现的,不共享任何东西,通过复制的方式在存储之间构建所谓镜像模式机制的磁盘,从而使得一个数据可以存储为多份, drbd的核心功能是在内核中实现. 二.drbd原理 每一个主机都提供一个块设备,块的大小是一模一样的,当主机上的进程需要存储数据时,需要向内核申请,任何用户空间的进程都没有直接操作硬件的权限,事实上驱动磁盘是在内核靠驱动程序来实现的,任何一个进程存

HA专题: Corosync+Pacemaker+drbd实现MySQL高可用

大纲 前言 实验拓扑 实验环境 实验步骤 安装前准备工作 配置DRBD 配置MySQL 配置Corosync+Pacemaker 测试 我遇到的问题 总结 前言 上篇文章我们介绍了drbd的相关原理.编译安装.简单的实现. drbd虽然可以保证数据的可靠性但是我们上次的实现还有很多的缺陷,这次我们将drbd定义为HA集群的一个资源,可以实现让多个节点自动切换drbd的主从模式并结合MySQL实现其数据的高可用 实验拓扑 实验环境 实验步骤 安装前准备工作 配置一个HA集群的前提需要配置时间同步,

corosync+pacemaker+nfs提供mysql高可用

corosync/openais+pacemaker+nfs提供mariadb高可用 节点一, one, 172.16.249.122/16, 172.16.0.1, CentOS6.6, mariadb节点二, two, 172.16.249.123/16, 172.16.0.1, CentOS6.6, mariadb节点三, three, 172.16.249.124/16, 172.16.0.1, CentOS6.6, NFSVIP: 172.16.249.121 节点一: one 172

HA集群之DRBD实现MySQL高可用

一.前言 本篇博文只是实现Corosync + Pacemaker + DRBD + MySQL,实现MySQL的高可用.更多的基础知识在前几篇博文中已有涉猎,故更多的理论细节将不再此篇中详述. 若想了解高可用基础知识,请参考:http://hoolee.blog.51cto.com/7934938/1406951 若想了解Corosync + Pacemaker,请参考:http://hoolee.blog.51cto.com/7934938/1409395 若想了解DRBD,请参考:http

corosync+pacemaker使用pcs构建高可用集群

一.corosync+pacemaker集群前提准备 集群前提准备 --> HA-web 承接上文 --> corosync+pacemaker使用crmsh构建高可用集群 二.准备pcs [[email protected] ~]# yum install pcs 禁用stonith设备 [[email protected] ~]# pcs property set stonith-enable=false [[email protected] ~]# pcs property set no

corosync+pacemaker and drbd实现mysql高可用集群

DRBD:Distributed Replicated Block Device 分布式复制块设备,原理图如下 DRBD 有主双架构和双主架构的,当处于主从架构时,这个设备一定只有一个节点是可以读写的,另外的节点是不可读的,连挂载都不可能,只有一个节点是主的,其它节 点都是从的.当做为主主架构时,需要达到几个条件,1.在高可用集群中启用DRBD;  2. 启用分布式文件锁功能,即需要把磁盘格式化为集群文件系统(如GFS2,OCFS2等):3. 把DRBD做成资源. 数据的存储过程: 当某个进程存

DRBD+Heartbeat+Mysql 高可用实战

实验环境:Centos 6.7_64位 服务器: Master节点:dm1 IP地址:10.0.0.61(eth0) 192.168.3.150(eth1,心跳) Slave节点:dm2  Ip地址:10.0.0.62(eth0) 192.168.3.160(eth1,心跳) VIP地址:192.168.0.180 一.DRBD环境搭建 DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的软件,用软件实现的.无共享的.服

corosync+pacemaker+drbd 实现mysql的高可用性

一.环境准备 1.操作系统 centos 6.4 (32位)系统要是双网卡 2.配置各节点互相解析 node1: [[email protected] ~]# uname -n node1.test.com [[email protected] ~]# cat /etc/hosts 127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1      localhost localhost.l