在许多企业的应用中,MySQL高可用集群环境应用广泛,而mysql+corosync+pacemaker+DRBD是配置mysql服务器的一套成熟方案,此方案实现了mysql主节点写操作的高可用性,是一个非常优越并且廉价的解决方案。
本文主要介绍的就是这种集群环境平台的搭建:
一,DRBD的介绍及配置过程
二,mysql的安装
三,corosync+pacemaker的安装配置
四,集群服务及所需资源的定义配置
本文的实验平台为:
RedHat enterprise 5.4+mysql+DRBD+corosync+pacemaker
注意:
1,两个节点的系统,硬件时间要保持一致
2,凡是要定义为集群资源的服务都不能让他们启动,也不能开机自动启动,因为他们要被pacemaker管理
3,服务drbd,corosync,pacemaker都要依赖主机名进行定义,请一定要确保主机名配置正确
4,本文所用软件包都可以到互联网下载到
如下为本文的实验拓扑:
一,DRBD的介绍及配置过程:
DRBD:(distributed replication block device)即分布式复制块设备。它的工作原理是:在A主机上有对指定磁盘设备写请求时,数据发送给A主机的kernel,然后通过kernel中的一个模块,把相同的数据传送给B主机的kernel中一份,然后B主机再写入自己指定的磁盘设备,从而实现两主机数据的同步,也就实现了写操作高可用。
DRBD一般是一主一从,并且所有的读写操作,挂载只能在主节点服务器上进行,,但是主从DRBD服务器之间是可以进行调换的。
下面为DRBD的配置过程:
1、准备工作
node1和node2两个节点上各提供了一个大小相同的分区作为DRBD设备,我们这里两个节点上均为/dev/sda3,大小根据实际情况而定。
对磁盘分区:
# fdisk /dev/sda (分号区后不要格式化)
让kernel识别新建的分区:
# partprobe /dev/sda
每个节点的主机名称需要跟"uname -n“命令的结果保持一致。因此,需要保证两个节点上的/etc/hosts文件均为下面的内容(由于我们使用hosts文件来解析对方的FQDN,故也要把对方的ip和主机名对应关系写进来,当然也可以使用DNS):
# vim /etc/hosts
添加:
172.16.30.4 node1.magedu.com node1
172.16.30.6 node2.magedu.com node2
为了使得重新启动系统后仍能保持如上的主机名称,还分别需要在各节点执行类似如下的命令:
node1上操作:
# sed -i 's@\(HOSTNAME=\).*@\1node1.magedu.com@g' /etc/sysconfig/network
# hostname node1.magedu.com
node2上操作:
# sed -i 's@\(HOSTNAME=\).*@\1node2.magedu.com@g' /etc/sysconfig/network
# hostname node2.magedu.com
设定两个节点可以基于密钥进行ssh通信,这可以通过如下的命令实现:
node1上操作:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
node2山操作:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
2、安装软件包
DRBD共有两部分组成:内核模块和用户空间的管理工具。其中DRBD内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。
目前在用的DRBD版本主要有8.0、8.2和8.3三个版本,其对应的rpm包的名字分别为DRBD, DRBD82和DRBD83,对应的内核模块的名字分别为kmod-DRBD, kmod-DRBD82和kmod-DRBD83。各版本的功能和配置等略有差异;我们实验所用的平台为x86且系统为rhel5.4,因此需要同时安装内核模块和管理工具。我们这里选用最新的8.3的版本(DRBD83-8.3.8-1.el5.CentOS.i386.rpm和kmod-DRBD83-8.3.8-1.el5.centos.i686.rpm),下载地址为:。
实际使用中,您需要根据自己的系统平台等下载符合您需要的软件包版本,下载完成后在两个节点上直接安装即可:
# yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm kmod-drbd83-8.3.8-1.el5.centos.i686.rpm