IT技术互动交流平台

DRBD+Corosync+Pacemaker配置MySQL高可用性群集(上)

作者:刘园  发布日期:2013-01-26 09:41:23
一、实验环境
Vmware-Redhat enterprise 5.4
在node1与node2上操作

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
5、corosync群集节点要求无障碍通信
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已经安装完成  www.it165.net
 
三、mysql配置

1、安装mysql(node1、node2)
# 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)、拷贝node1上mysql的配置文件
# 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 



Tag标签: DRBD   Corosync   Pacemaker   MySQL高可用性群集  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规