本文不适合用在生产环境,关键在于简单理解drbd的配置和工作方式。本例中,只是将数据存放在2台服务器上,在其中一台出现故障时并不会自动切换(虽然某些情况下出现故障drbd会自动切换,比如一台主机的drbd磁盘故障,但这样的机制还不足以满足生产环境下对高可用性的需求),在生产环境中还要自动切换故障的软件的配合才能实现高可用性。
服务器搭建环境:
主(server1):eth0:192.168.10.10 CentOS 5.8 + drbd
从(server2):eth0:192.168.10.20 CentOS 5.8 + drbd
各添加一块新磁盘:/dev/sdb
以下软件包需要下载,并保存到/home/share/下并解压:
一、主服务器和从服务器配置(以下步骤1~7完全一样):
1、安装
cd /home/share/
rpm -ivh drbd83-8.3.13-2.el5.centos.i386.rpm
rpm -ivh kmod-drbd83-8.3.13-1.el5.centos.i686.rpm
2、加载并检查drbd模块是否被加载
modprobe drbd
lsmod | grep drbd
3、编辑配置文件
echo 'global {
usage-count yes;
}
common {
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer { rate 3M; }
}
resource db {
on server1.vicp.net {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.10.10:7788;
meta-disk internal;
}
on server2.vicp.net {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.10.20:7788;
meta-disk internal;
}
}' > /etc/drbd.conf
4、添加一个分区(本例直接添加了一块硬盘sdb,并在上面建立一个分区sdb1)。注意1
fdisk /dev/sdb
5、创建drbd分区
drbdadm create-md all
6、检查drbd配置
drbdadm adjust db
7、启动drbd服务。注意2
service drbd start
二、主服务器配置(务必在完成上面的步骤后执行):
1、设定成primary,默认为secondary。
drbdsetup /dev/drbd0 primary -o
2、格式化分区
mkfs.ext3 /dev/drbd0
3、创建目录并挂载分区
mkdir /mnt/drbd
mount /dev/drbd0 /mnt/drbd/
4、写入数据
cp /root/* /mnt/drbd/
三、从服务器配置:
从服务器在drbd启动后,分区默认为secondary,因此不需要做任何额外的配置,在主服务器配置完成后会自动与主服务器同步数据。
四、验证从服务器已经同步数据
1、执行service drbd status就能看到drbd的运行状态,当然还有其他方式,可以通过看日志文件。
或者
2、另外一种最直接的方法,看从服务器上的文件是不是真的和主服务器上完全一样。注意3
drbdadm disconnect db
drbdadm primary db
mount /dev/drbd0 /mnt/drbd/
ls /mnt/drbd/
注意1:这里只是分区,不要格式化!!
注意2:在2台主机上都完成以上步骤后,再在2台主机上同时启动drbd服务。
注意3:验证完成后,如何让从服务器重新与主服务器同步,不是降级和重新连接就能完成的。关于如何恢复,是要按照脑裂的步骤来完成修复的。关于如何修复脑裂,请参考我即将发布的关于drbd脑裂的实例。
关于脑裂的实例一,请参考http://blog.chinaunix.net/uid-20346344-id-3491494.html
关于脑裂的实例二,请参考http://blog.chinaunix.net/uid-20346344-id-3491500.html
以上2个例子基本可以保证DRBD在出现状况时,可以人工干预进行数据恢复了。
还有2篇关于DRBD的文章,一篇是DRBD配置文件详解(当然参考官方文档是最好的选择),另一篇是《heartbeat+DRBD构建高可用环境》我将陆续奉上。
阅读(1094) | 评论(0) | 转发(0) |