DRBD+Corosync+Pacemaker+MySQL(上)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

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

 一、实验环境

Vmware-Redhat enterprise 5.4

node1node2上操作

1、修改主机名

#vim  /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=node1.a.com   /HOSTNAME=node2.a.com

2、hosts文件

# echo "192.168.3.1  node1.a.com  node1" >> /etc/hosts 

# echo "192.168.3.2  node2.a.com  node2" >> /etc/hosts

3、同步时间  

#hwclock -s    

4、yum源配置

[cdrom-server]

name=cdrom-server

baseurl=file:///media/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

#群集

[cdrom-Cluster]

name=cdrom-cluster

baseurl=file:///media/cdrom/Cluster

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

#群集存储

[cdrom-ClusterStorage]

name=cdrom-cluster

baseurl=file:///media/cdrom/ClusterStorage

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

5corosync群集节点要求无障碍通信

node1

[root@node1 ~]# ssh-keygen -t rsa   产生一个rsa的非对称的私钥对

[root@node1 ~]# cd .ssh/

[root@node1 .ssh]# ssh-copy-id  -i id_rsa.pub  node2  拷贝到node2节点

node2

[root@node2 ~]# ssh-keygen -t rsa   产生一个rsa的非对称的私钥对

[root@node2 ~]# cd .ssh/

[root@node2 .ssh]# ssh-copy-id  -i id_rsa.pub  node1  拷贝到node1节点

所需软件包

并将软件包上传到root主目录下

#由于drbd内核模块代码只在linux内核2.6.3.33以后的版本中才有,所以我们要同时安装

#内核模块和管理工具

drbd83-8.3.8-1.el5.CentOS.i386.rpm drbd的管理包

kmod-drbd83-8.3.8-1.el5.centos.i686.rpm drbd的内核模块

cluster-glue-1.0.6-1.6.el5.i386.rpm 为了在群集中增加对更多节点的支持

cluster-glue-libs-1.0.6-1.6.el5.i386.rpm

corosync-1.2.7-1.1.el5.i386.rpm corosync的主配置文件

corosynclib-1.2.7-1.1.el5.i386.rpm corosync的库文件

heartbeat-3.0.3-2.3.el5.i386.rpm 我们的heartbeat在这里是做四层的资源代理用的

heartbeat-libs-3.0.3-2.3.el5.i386.rpm heartbeat的库文件

libesmtp-1.0.4-5.el5.i386.rpm

openais-1.1.3-1.6.el5.i386.rpm做丰富pacemake的内容使用

openaislib-1.1.3-1.6.el5.i386.rpm openais 的库文件

pacemaker-1.1.5-1.1.el5.i386.rpm pacemake的主配置文档

pacemaker-libs-1.1.5-1.1.el5.i386.rpm pacemaker的库文件

pacemaker-cts-1.1.5-1.1.el5.i386.rpm

perl-TimeDate-1.16-5.el5.noarch.rpm

resource-agents-1.0.4-1.1.el5.i386.rpm 开启资源代理用的

二、drbd配置

注:两节点均做如下配置

1、添加磁盘/dev/sdb1

2、安装drbd

#rpm -ivh drbd83-8.3.8-1.el5.centos.i386.rpm

# rpm -ivh kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

# modprobe  drbd      //加载drbd模块

# lsmod  |grep drbd    //查看模块加载情况

3、修改配置文件

#vim /etc/drbd.conf

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

include "drbd.d/global_common.conf";

include "drbd.d/*.res";

~                                                                                               :r /usr/share/doc/drbd83-8.3.8/drbd.conf     //末行模式下执行读命令来加载

#cp /etc/drbd.d/global_common.conf   /etc/drbd.d/global_common.conf.bak

# vim /etc/drbd.d/global_common.conf    (替换掉原来的内容)

global {

        usage-count yes;

        # minor-count dialog-refresh disable-ip-verification

}

common {

        protocol C;  

        startup {    //启动延时配置

                wfc-timeout  120;      //等待连接的超时时间

                degr-wfc-timeout 120;    //等待降级的节点连接的超时时间

         }

        disk {

                  on-io-error detach;    //当出现I/O错误,节点要拆掉drbd设备

                  fencing resource-only; 

          }

        net {

                cram-hmac-alg "sha1";   //使用sha1加密算法实现节点认证

                shared-secret  "mydrbdlab";  //认证码,两个节点内容要相同

         }

        syncer {

                  rate  100M;     //定义同步数据时的速率

         }

     }

# vim /etc/drbd.d/mysql.res    //定义资源 

resource  mysql {               //资源名称

        on node1.a.com {

        device   /dev/drbd0;

        disk    /dev/sdb1;

        address  192.168.3.1:7789;

        meta-disk       internal;

        }  

        on node2.a.com {

        device   /dev/drbd0;

        disk    /dev/sdb1;

        address  192.168.3.2:7789;

        meta-disk       internal;

        }   

}

3、初始化,启动服务 

#drbdadm   create-md mysql

# service drbd start   &&chkconfig drbd on   //并设为开机启动

4、指定主节点 node1

#drbdadm -- --overwrite-data-of-peer primary mysql

#node1查看状态

[root@node11~]# drbd-overview 

  0:mysql  Connected Primary/Secondary UpToDate/UpToDate C r----

#node2查看状态

[root@node12~]# drbd-overview 

  0:mysql  Connected Secondary/Primary UpToDate/UpToDate C r----

5、仅在主节点上操作(node1

#格式化为ext3文件系统

# mkfs.ext3 /dev/drbd0

#挂载

# mount /dev/drbd0 /mysql/

#进入目录,创建mysql存放的目录

# cd /mysql/

# mkdir data

6、使node2变为主节点

node1操作

#先卸载

# umount /mysql/

#变为备份节点

# drbdadm secondary mysql

node2操作

#变为主节点,实现挂载

# drbdadm -- --overwrite-data-of-peer primary mysql

# mkdir /mysql

# mount /dev/drbd0 /mysql  

#不用再格式化了

# cd /mysql

[root@node2 mysql]# ll

总计 20

drwxr-xr-x 2 root root  4096 01-22 22:04 data

drwx------ 2 root root 16384 01-22 22:03 lost+found

#卸载

# umount  /mysql

#并设为备份节点

# drbdadm secondary mysql 

drbd测试成功,drbd已经安装完成

 

三、mysql配置

1安装mysqlnode1node2

# yum install mysql mysql-server

node1操作

1)由于主设备才能读写,挂载,故我们还要设置node1为主设备,node2为从设备

# drbdadm primary mysql

[root@node1 ~]# drbd-overview 

  0:mysql  Connected Primary/Secondary UpToDate/UpToDate C r---- 

2)、挂载drbd0设备

# mount /dev/drbd0 /mysql

3)、data目录为mysql的数据存放目录,故改变其属主属组:

# chown -R mysql.mysql /mysql/data/

4)、mysql配置文件

# vim /etc/my.cnf

datadir = /mysqldata/data  //数据存放路径

5)、启动服务测试

# service mysqld start

#查看启动数据目录文件

[root@node1 data]# pwd

/mysql/data

[root@node1 data]# ls

ibdata1  ib_logfile0  ib_logfile1  mysql  test

6)、关闭mysqld服务,并保证开机不自动启动

# service mysqld stop  && chkconfig mysqld off  

7)、卸载设备,并将节点设为备份节点

# umount /mysql

# drbdadm secondary mysql

node2操作

1)、拷贝node1mysql的配置文件

# scp node1:/etc/my.cnf  /etc/

2)、设为主节点,并挂载

# drbdadm primary mysql

# mount /dev/drbd0 /mysql

3)、启动服务测试

# service mysqld start

[root@node2 ~]# ls /mysql/data/

ibdata1  ib_logfile0  ib_logfile1  mysql  test

4)、测试正常,卸载设备,关闭mysql服务,并保证开机不自动启动

# umount /dev/drbd0

#service mysqld stop  && chkconfig mysqld off 

接下一篇……

 



本文转自 刘园  51CTO博客,原文链接:http://blog.51cto.com/colynn/1126467

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 监控 关系型数据库
MySQL高可用性之MySQL+DRBD+Heartbeat
MySQL高可用性之MySQL+DRBD+Heartbeat
|
Oracle 关系型数据库 MySQL
|
存储 监控 关系型数据库
|
关系型数据库 MySQL 网络安全
|
15天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
17天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4

热门文章

最新文章

下一篇
无影云桌面