-->
DRBD的功能
DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。他是有内核模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID的功能。也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之 上,并以完全相同的形式记录在一个文件系统中(实际上文件系统的创建也是由DRBD的同步来实现的)。本地节点(主机)与远程节点(主机)的数据可以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的。
安装DRBD
1、通过源码安装:
下载源码包:
解压后编译安装:
make clean
make all
make install
make install-tools
2、通过RPM包安装:
下载RPM软件包:
http://mirror.centos.org/centos/4/extras/x86_64/RPMS/
drbd82-
kmod-drbd82-smp-
第一个为工具包,第二个为内核模块。
配置DRBD
试验用配置文件:
global {
usage-count yes;
}
common {
}
resource r0 {
protocol C;
startup {
become-primary-on both;
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
allow-two-primaries;
}
syncer {
rate
}
on host1 {
device /dev/drbd0;
disk /dev/sda3;
address 10.167.33.11:7788;
flexible-meta-disk internal;
}
on host2 {
device /dev/drbd0;
disk /dev/sda3;
address 10.167.33.12:7788;
meta-disk internal;
}
}
配置选项描述:
protocol
C;为数据同步时的传输模式
become-primary-on
both;服务启动时为primary状态
degr-wfc-timeout
120;如果2分钟后还能能建立连接则进入standby状态
allow-two-primaries;
双primary模式
rate
on
host1 定义分区
管理DRBD
1、启动服务:
Service drbd start
2、关闭服务:
Service drbd stop
3、块设备初始化:
创建meta data:
drbdadm create-md r0
对于装有文件系统的块设备,需要破坏原文件系统:
dd if=/dev/zero of=/dev/sda3 bs=1k
初始化同步:
drbdadm -- --overwrite-data-of-peer primary r0
暂停同步:
drbdadm pause-sync all
恢复同步:
drbdadm resume-syncall
4、节点中主机crash后的处理:
Dual-primary mode:
crash主机上的操作:
A、断开链接
drbdadm disconnect r0
B、将主机状态改为secondary状态
drbdadm secondary r0
C、从远端同步数据
drbdadm -- --discard-my-data connect r0
D、登入primary主机,再次发起连接:
drbdadm connect r0
E、完成同步后,将secondary主机改回primary模式。
drbdadm primary r0
5、查看drbd的状态
cat /proc/drbd
相关资料:
1、 DRBD笔记(阿里巴巴数据库团队博客)
http://www.alidba.net/index.php/archives/65
2、 DRBD用户使用手册
http://www.drbd.org/users-guide-emb/users-guide.html

发表评论