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包。
首先,我要在虚拟机中进行添加磁盘的操作
可以看到,我的虚拟机已经有了一块虚拟磁盘,而添加的方法就是点击添加设备
选择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
[root@server1drbd-8.4.3]# ./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/
[root@server1drbd-8.4.3]# rpmbuild -bb drbd.spec (编译生成drbdrpm包)
这里,系统提示错误,找不到drbd-8.4.3.tar.gz,我们复制过去就行了。
#cp/mnt/drbd-8.4.3.tar.gz /root/rpmbuild/SOURCES/
再次执行rpmbuild
这次就能正常执行了
[root@server1drbd-8.4.3]# rpmbuild -bb drbd-km.spec(编译drbd内核模块)
[root@server1drbd-8.4.3]# cd ~/rpmbuild/RPMS/x86_64
[root@server1x86_64]# ls
我们可以看到这里就是我们生成的rpm包了,不少呢!都安装上把!
[root@server1x86_64]# rpm -ivh *
安装好以后就把这些包传给server2里面再次安装吧!
[root@server1x86_64]# scp ./* root@192.168.122.102:/mnt/
然后在server2里面安装所有的rpm包
以下配置在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;
}
}
在两台主机上分别执行以下命令:
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 命令
可以看到它们正在同步,可以来杯咖啡等待一小会。
完成数据同步后创建文件系统:
mkfs.ext4/dev/drbd1(只在primary处格式化创建)
之后在primary挂载文件系统:(只有primary可以挂载)
mount/dev/drbd1 /var/www/html
向里面写入文件
之后取消其挂载,并将server1 设置为 secondary 将server2 设置为 primary
在server2 上 mount /dev/drbd1 /var/www/html进入查看之前在server1上创建的文件是否同步了过来
完美,数据确实做到了同步,那么drbd设置基本就完成了。
注意点:
1:server1和server2需要同时初始化 (drbdadm create-md example)
2:server1和server2均需要安装内核模块,启动的同时server1会等待server2启动,启动之后两端同时做数据同步。
3:只需要在Primary端格式化即可。
4:只有Primary端可作挂载使用。两端不可同时挂载。
5.不可以直接挂载/dev/vda,只可以挂载/dev/drbd1
本文出自 “11827782” 博客,请务必保留此出处http://11837782.blog.51cto.com/11827782/1907850
原文地址:http://11837782.blog.51cto.com/11827782/1907850