2013年12月10日 星期二 10:35
DRBD全称是Distributed Replicated Block Device,是一种在线磁盘复制解决方案,可以为MySQL等应用提供高可用的存储服务。
我在之前的一篇文章中认为:对于中小型数据库集群,使用DRBD实现主库的高可用,是最为简单且可靠的方案。本篇文章我们通过一个示例来介绍此方案的安装和配置过程。后续文章会继续介绍使用Heartbeat实现资源的自动Failover。
更多DRBD相关信息请参考官方文档:
http://www.drbd.org/users-guide-8.4/
一、环境信息:
两台服务器的IP地址:172.16.88.89,172.16.88.94
操作系统:CentOS 6.5 X86_64
数据磁盘:/dev/sda3
二、安装软件(两台服务器均需配置和安装):
DRBD相关软件需要配置如下安装源(/etc/yum.repos.d/elrepo.repo ):
[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el6
baseurl=http://repos.lax-noc.com/elrepo/elrepo/el6/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://elrepo.org/RPM-GPG-KEY-elrepo.org
protect=0
执行安装:
yum install -y drbd84-utils kmod-drbd84
三、配置DRBD磁盘(两台服务器均需配置和安装):
DRBD资源文件(/etc/drbd.d/mysql.res ):
resource mysql {
options {
on-no-data-accessible suspend-io;
}
net {
cram-hmac-alg "sha1";
shared-secret "this_is_secret";
verify-alg sha1;
}
disk {
disk-flushes no;
disk-barrier no;
md-flushes no;
resync-rate 100M;
}
volume 1 {
device minor 1;
disk /dev/sda3;
meta-disk internal;
}
on db-89 {
address 172.16.88.89:7780;
}
on db-94 {
address 172.16.88.94:7780;
}
}
四、初始化DRBD磁盘(两台服务器均需配置和安装):
首先清除磁盘上的任何文件系统信息,否则DRBD会拒绝初始化。
dd if=/dev/zero of=/dev/sda3 bs=1M count=10
执行初始化:
drbdadm create-md mysql
启动drbd服务:
chkconfig drbd on
service drbd start
五、确定Primary、Secondary角色
我们将172.16.88.89设置为Primary角色,在此机器上执行:
drbdadm primary mysql --force
然后查看同步情况:
cat /proc/drbd
六、创建文件系统(只在Primary角色服务器配置和安装):
在资源配置文件中,我们设置了device minor 1,所以我们的DRBD磁盘设备为/dev/drbd1。
创建文件系统:
mkfs.ext4 /dev/drbd1
挂载文件系统:
mount -o noatime /dev/drbd1 /data/
七:安装MySQL软件(两台服务器均需配置和安装):
请参考我的文章:
http://www.zeuux.com/group/mysql/bbs/content/55133/
或者:
http://www.zeuux.com/group/mysql/bbs/content/55177/
或者:
http://www.zeuux.com/group/mysql/bbs/content/55181/
八、启动MySQL(只在Primary角色服务器执行):
执行:
service mysql start
然后确认MySQL可以正常启动并服务。
九、测试DRBD复制效果。
注意:此步骤必须等到DRBD同步完成后才可进行。
查看 /proc/drbd 文件,确认有如下信息:
Primary/Secondary ds:UpToDate/UpToDate C r-----
在Primary服务器执行:
service mysql stop
umount /data
drbd secondary mysql
在Secondary服务器执行:
drbd primary mysql
mount -o noatime /dev/drbd1 /data/
service mysql start
确认MySQL可以正常启动并服务。
2013年12月10日 星期二 10:38
好文章。BTW,孟叔,代码加亮啊。
2013年12月10日 星期二 10:40
夏老师,这个富文本编辑器稍微有点简陋,代码高亮只能一点一点插入,不能选中加亮,有点费劲。
Zeuux © 2024
京ICP备05028076号