3.1.从官方下载最新的drbd包,最好按照官方给出的drbd version和linux kernel version对照表下载相应的tar.gz。
3.2.解压并安装
# ./configure --prefix=/usr/local/drbd --with-km
# make KDIR=/usr/src/kernels/2.6.32-279.el6.x86_64/
# make install
# mkdir -p /usr/local/drbd/var/run/drbd
添加系统服务并运行
# cp /usr/local/etc/rc.d/init.d/drbd /etc/rc.d/init.d
# chkconfig --add drbd
# chkconfig drbd on
若没使用--prefix=/usr/local/drbd选项,默认安装配置目录见此文档:
http://www.drbd.org/users-guide-8.4/s-build-from-source.html#s-build-prepare-kernel-tree
回到解压目录
# make clean
# make KDIR=/usr/src/kernels/2.6.32-279.el6.x86_64/ (使用uname -r 查看版本)
# cp drbd/drbd.ko /lib/modules/'uname -r'/kernel/lib/
检测模块的相依性,供modprobe在安装模块时使用
# depmod
加载DRBD模块:
# modprobe drbd
查看DRBD模块是否加载到内核:
# lsmod |grep drbd
查看模块信息
# modinfo drbd
3.3.修改drbd配置
默认在/usr/local/etc/目录下drbd.conf
修改/usr/local/etc/drbd.d/global_common.conf
global {
usage-count yes;
}
Common {
net {
protocol C;
}
syncer {
rate 2M;根据自己带宽来定
}
}
添加文件dbdata.res
resource r0 {
on master{#master和slave为2台主机名,是用uname -n查看
device /dev/drbd0;#块设备,使用mknod 创建
disk /dev/xvdb1;#对应物理硬盘分区名
address 192.168.10.22:7789;
meta-disk internal;
}
on slave{
device /dev/drbd0;
disk /dev/xvdb1;
address 192.168.10.23:7789;
meta-disk internal;
}
}
3.4.创建分区
从硬盘划一个分区,使用fdisk命名,分区名对应dbdata.res中的disk。分区不需要先格式化。
创建drbd的挂载目录/drbd
3.5.创建drbd块设备和matadata
名字对应dbdata.res中的device
# mknod /dev/drbd0 b 147 0
在/dev/xvdb1分区上,创建供DRBD记录信息的数据块
# drbdadm create-md r0
等待片刻,显示success表示drbd块创建成功
----------------
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
备注:
1) “r0”是在drbd.conf里定义的资源名称.
2) 当执行命令”drbdadm create-md r0”时,出现以下错误信息。
Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
You need to either
* use external meta data (recommended)
* shrink that filesystem first
* zero out the device (destroy the filesystem)
Operation refused.
Command 'drbdmeta 0 v08 /dev/xvdb internal create-md' terminated with exit code 40
drbdadm create-md r0: exited with code 40
解决办法:初始化磁盘文件格式, dd if=/dev/zero bs=1M count=1 of=/dev/xvdb1; sync
3.6.启动DRBD服务:(node1,node2)
# service drbd start
注:需要主从共同启动方能生效
查看状态
# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by
[email protected],
2013-05-27 20:45:19
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1060184
----------------
或
# service drbd status
----------------
drbd driver loaded OK; device status:
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by
[email protected],
2013-05-27 20:45:19
m:res cs ro ds p mounted fstype
0:r0 Connected Secondary/Secondary Inconsistent/Inconsistent C
----------------
这里ro:Secondary/Secondary表示两台主机的状态都是备机状态,ds是磁盘状态,显示的状态内容为“不一致”,这是因为DRBD无法判断哪一方为主机,应以哪一方的磁盘数据作为标准。
因此将master设置为主节点
# drbdsetup /dev/drbd0 primary --force
分别查看主从DRBD状态:
ro在主从服务器上分别显示 Primary/Secondary和Secondary/Primary
ds显示UpToDate/UpToDate
表示主从配置成功。
备注,如出现如下信息:
drbd driver loaded OK; device status:
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by resin@AY1402261545527894a7Z, 2014-02-28 12:46:17
m:res cs ro ds p mounted fstype
0:r0 SyncSource Primary/Secondary UpToDate/Inconsistent C
... sync'ed: 9.3% (43576/48008)M
“ds”状态为“UpToDate/Inconsistent”,也就是“实时/不一致”状态,现在数据正在主备两个主机的磁盘间进行同步,且同步进度为9.3%,使用cat /proc/drbd可以查看同步速度,也跟global-common.conf配置有关。
3.7.挂载DRBD(主借点)
从刚才的状态上看到mounted和fstype参数为空,所以我们这步开始挂载DRBD到系统目录
# mkfs.ext4 /dev/drbd0
# mount /dev/drbd0 /data
注:Secondary节点上不允许对DRBD设备进行任何操作,包括只读,所有的读写操作只能在Primary节点上进行,只有当Primary节点挂掉时,Secondary节点才能提升为Primary节点继续工作。
注意重启系统后:会变回Secondary/Secondary模式。同时,如果需要重启后/dev/drbd0自动挂载,需要修改/etc/fstab文件
添加:/dev/drbd0 /drbd ext4 default 0 0
第四列挂载参数:通过查看man mount来查看
第五列是否要备份:(0为不备份,1为要备份,一般情况下不用做备份)
第六列自检程序 (0为不自检,1或2为要自检,如果是根分区要设置1,其它分区只能是2)
相关文档:
http://bbs.linuxtone.org/thread-24207-1-1.html
http://88fly.blog.163.com/blog/static/12268039020131113452222/
http://showerlee.blog.51cto.com/2047005/1211963(安装推荐文档)