drbd安装

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(安装推荐文档)

你可能感兴趣的:(drbd)