1.安装内核开发环境(kernel-headers、kernel-devel)
yum install kernel-devel kernel-headers
2.安装drbd软件包
tar -zxvf drbd-8.3.6.tar.gz
cd drbd-8.3.6
./configure --prefix=/usr/local/drbd --with-km
make
make install
ln -s /usr/local/drbd/etc/drbd.conf /etc/drbd.conf
ln -s /usr/local/drbd/etc/rc.d/init.d/drbd /etc/init.d/drbd
chkconfig --add drbd
chkconfig --level 35 drbd on
执行之后:
drbd.ko被安装到/lib/modules/$KernelVersion/kernel/drivers/block下.
drbd相关工具(drbdadm,drbdsetup)被安装到/sbin下.
并会在/etc/init.d/下建立drbd启动脚本.
=================================================================
3.调整drbd服务脚本
vi /etc/init.d/drbd //在服务脚本的start)部分添加模块加载语句
……
case "$1" in
start)
insmod /lib/modules/2.6.18-164.el5/kernel/drivers/block/drbd.ko
……
cat > /etc/drbd.conf <<EOF
global { usage-count yes; }
common {
# 使用协议C.表示收到远程主机的写入确认后,则认为写入完成
protocol C;
syncer { rate 3M; }
startup {
wfc-timeout 10;
degr-wfc-timeout 120;
outdated-wfc-timeout 5;
}
}
resource r0 {
device minor 1;
meta-disk internal;
# 设置主备机之间通信使用的信息算法.
net {
cram-hmac-alg sha1;
shared-secret "secret string";
}
# 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置
on master {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.1.60:7801;
}
on slave {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.1.62:7801;
}
}
EOF
三.建立drbd设备,启动drbd服务(master,slave)
1.建立md设备
在启动DRBD之前,你需要分别在两台主机的sdc1分区上,创建供DRBD记录信息的数据块.
注意:如果你在这步之前已经给/dev/sda3格式化的话,这里会报错,并且无法继续,抱错内容如下:
md_offset ...........
al_offset ...........
bm_offset ...........
Found ext3 filesystem which uses
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
根据报错和官方描述的大概意思就是:有了文件系统,会被认为该设备已经被使用,不能被drbd所使用,最好的解决办法就是低格硬盘破坏该文件系统~
官方的方法如下: 破坏文件系统 :dd if=/dev/zero bs=1M count=1 of=/dev/sda3; sync
注:如果出现上面的情况要注意卸载文件系统,否则drbd不成功
# drbdadm create-md r0 // 配置文件中的resource名
--== Thank you for participating in the global usage survey ==--
The server's response is:
you are the 1889th user to install this version
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success
2.启动drbd服务程序
# /etc/init.d/drbd start
3. 确认drbd状态
# cat /proc/drbd
version: 8.3.6 (api:88/proto:86-91)
GIT-hash: f3606c47cc6fcf6b3f086e425cb34af8b7a81bbf build by root@master, 2010-07-12 15:36:10
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:b oos:10723020
--------Secondary/Secondary 表示两个节点都处于辅助(从)状态
四.初始化Primary机(master)
1. 设为主导状态(同步发起端)
# drbdsetup /dev/drbd0 primary -o
# cat /proc/drbd
version: 8.3.6 (api:88/proto:86-91)
GIT-hash: f3606c47cc6fcf6b3f086e425cb34af8b7a81bbf build by root@master, 2010-07-12 15:36:10
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
ns:54400 nr:0 dw:0 dr:54400 al:0 bm:3 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:10668620
[>....................] sync'ed: 0.6% (10416/10468)M
finish: 0:47:37 speed: 3,728 (3,200) K/sec
-------如需降级为备机,可执行
umount /dev/drbd0
drbdadm secondary r0
五.验证磁盘镜像结果
1. master主节点
mkfs.ext3 /dev/drbd0 //此操作只要主的上进行即可
mkdir /data
mount -o rw /dev/drbd0 /data
2.slave备节点
mkdir /data
测试:
方法1)
master主节点
mount /dev/drbd0 /data
ls /etc/ > /data/master
接下来你需要将DRBD的主从机互换一下.
可以执行下面的操作:
在主机上,先要卸载掉DRBD设备.
umount /data
drbdadm secondary r0
现在,两台主机都是"备机"需要把备节点升为主节点
drbdadm primary r0
mount /dev/drbd0 /data
ls /data
方法2)
master主节点
mount /dev/drbd0 /data
ls /etc/ > /data/master
slave备节点
service drbd stop
mount /dev/sda3 /data