DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。

DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。你可以把它看作是一种网络RAID。它允许用户在远程机器上建立一个本地块设备的实时镜像。下面进行对其的详细配置。

系统环境:rhel 6.5 selinux&iptables disabled

主机环境: 192.168.122.101(server1)   /dev/vdb1 (添加磁盘)

192.168.122.102(server2)   /dev/vdb1(添加磁盘)

使用drbd-8.4.3.tar.gz包。

首先,我要在虚拟机中进行添加磁盘的操作

Drbd配置_第1张图片

可以看到,我的虚拟机已经有了一块虚拟磁盘,而添加的方法就是点击添加设备

Drbd配置_第2张图片

选择VirtIO,然后自定义其大小并确定即可添加。

首先,我们在server1上进行操作。

进行安装drbd所必要的依赖环境安装

yum install gccflex rpm-build kernel-devel -y

[root@server1mnt]# tar zxvf drbd-8.4.3.tar.gz

[root@server1mnt]# cd drbd-8.4.3

[[email protected]]# ./configure --enable-spec --with-km (进行编译前环境配置)

[root@server1mnt]# cp -r drbd-8.4.3/ /root/rpmbuild/SOURCES/(drbd目录复制到rpmbuild/sources)

[root@server1mnt]# cd /root/rpmbuild/SOURCES/drbd-8.4.3/

[[email protected]]# rpmbuild -bb drbd.spec (编译生成drbdrpm)

wKiom1jL627wQBYQAAArCqA3ZuU936.png

 

这里,系统提示错误,找不到drbd-8.4.3.tar.gz,我们复制过去就行了。

#cp/mnt/drbd-8.4.3.tar.gz   /root/rpmbuild/SOURCES/

再次执行rpmbuild

Drbd配置_第3张图片

这次就能正常执行了

[[email protected]]# rpmbuild -bb drbd-km.spec(编译drbd内核模块)

[[email protected]]# cd ~/rpmbuild/RPMS/x86_64

[root@server1x86_64]# ls

Drbd配置_第4张图片

我们可以看到这里就是我们生成的rpm包了,不少呢!都安装上把!

[root@server1x86_64]# rpm -ivh *

安装好以后就把这些包传给server2里面再次安装吧!

[root@server1x86_64]# scp ./* [email protected]:/mnt/

Drbd配置_第5张图片

然后在server2里面安装所有的rpm

 

Drbd配置_第6张图片

以下配置在server1.server2一起完成:

#vim/etc/drbd.d/mj_example.res

resourceexample {

meta-diskinternal;

device/dev/drbd1;

syncer {

verify-algsha1;

}

net {

allow-two-primaries;

}

onserver1.example.com {

disk/dev/vda;

address192.168.122.101:7789;

}

onserver2.example.com {

disk/dev/vda;

address192.168.122.102:7789;

}

}

Drbd配置_第7张图片

在两台主机上分别执行以下命令:

drbdadmcreate-md example(初始化)

/etc/init.d/drbdstart

[root@server1x86_64]# drbdadm primary example --force

[root@server2mnt]# drbdadm secondary example

(server1 primary节点server2 secondary节点)

在两台主机上查看同步状态:

执行watch cat /proc/drbd 命令

Drbd配置_第8张图片

可以看到它们正在同步,可以来杯咖啡等待一小会。

完成数据同步后创建文件系统:

mkfs.ext4/dev/drbd1(只在primary处格式化创建)

之后在primary挂载文件系统:(只有primary可以挂载)

mount/dev/drbd1 /var/www/html

Drbd配置_第9张图片

向里面写入文件

 

Drbd配置_第10张图片

之后取消其挂载,并将server1 设置为 secondary server2 设置为 primary

server2 mount /dev/drbd1 /var/www/html进入查看之前在server1上创建的文件是否同步了过来

Drbd配置_第11张图片

完美,数据确实做到了同步,那么drbd设置基本就完成了。

 

注意点:

  1server1server2需要同时初始化 drbdadm create-md example

  2server1server2均需要安装内核模块,启动的同时server1会等待server2启动,启动之后两端同时做数据同步。

  3:只需要在Primary端格式化即可。

  4:只有Primary端可作挂载使用。两端不可同时挂载。

  5.不可以直接挂载/dev/vda,只可以挂载/dev/drbd1