1. 编译 drbd, 安装 drbd.ko
tar -zxvf drbd-8.3.6.tar.gz
cd drbd-8.3.6
./configure --prefix=/usr/local/drbd --with-km
make
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/drbd.conf /etc/drbd.conf
ln -s /usr/local/drbd/etc/drbd.conf /usr/local/etc/drbd.conf
ln -s /usr/local/drbd/etc/rc.d/init.d/drbd /etc/init.d/drbd
ln -s /usr/local/drbd/etc/rc.d/init.d/drbd /etc/init.d/drbd
chkconfig --add drbd
chkconfig --level 35 drbd on
chkconfig --level 35 drbd on
执行之后:
drbd.ko被安装到/lib/modules/$KernelVersion/kernel/drivers/block下.
drbd相关工具(drbdadm,drbdsetup)被安装到/sbin下.
并会在/etc/init.d/下建立drbd启动脚本.
drbd.ko被安装到/lib/modules/$KernelVersion/kernel/drivers/block下.
drbd相关工具(drbdadm,drbdsetup)被安装到/sbin下.
并会在/etc/init.d/下建立drbd启动脚本.
2. 修改主机名
/etc/hosts, /etc/sysconfig/network
重启网络生效
/etc/rc.d/init.d/network restart
3. 准备磁盘,划分分区
省略
创建 drbd 虚拟设备:
mknod /dev/drbd0 b 147 0
mknod /dev/drbd1 b 147 1
4. drbd.conf 配置文件
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
#include "drbd.d/global_common.conf";
#include "drbd.d/*.res";
# 是否参加DRBD使用者统计.默认是yes
global { usage-count yes; }
# 设置主备节点同步时的网络速率最大值,单位是字节.
common { syncer { rate 20M; } }
# 一个DRBD设备(即:/dev/drbdX),叫做一个"资源".里面包含一个DRBD设备的主备节点的
# 相关信息.
#
resource r0 {
# 使用协议C.表示收到远程主机的写入确认后,则认为写入完成.
protocol C;
net {
# 设置主备机之间通信使用的信息算法.
cram-hmac-alg sha1;
shared-secret "FooFunFactory";
}
# 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置.
on lzg {
# /dev/drbd1使用的磁盘分区是/dev/hdb1
device /dev/drbd1;
disk /dev/sdc5;
# 设置DRBD的监听端口,用于与另一台主机通信
address 192.168.1.116:7898;
meta-disk internal;
}
on linux-hanxin {
device /dev/drbd1;
disk /dev/sdc5;
address 192.168.1.102:7898;
meta-disk internal;
}
#include "drbd.d/global_common.conf";
#include "drbd.d/*.res";
# 是否参加DRBD使用者统计.默认是yes
global { usage-count yes; }
# 设置主备节点同步时的网络速率最大值,单位是字节.
common { syncer { rate 20M; } }
# 一个DRBD设备(即:/dev/drbdX),叫做一个"资源".里面包含一个DRBD设备的主备节点的
# 相关信息.
#
resource r0 {
# 使用协议C.表示收到远程主机的写入确认后,则认为写入完成.
protocol C;
net {
# 设置主备机之间通信使用的信息算法.
cram-hmac-alg sha1;
shared-secret "FooFunFactory";
}
# 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置.
on lzg {
# /dev/drbd1使用的磁盘分区是/dev/hdb1
device /dev/drbd1;
disk /dev/sdc5;
# 设置DRBD的监听端口,用于与另一台主机通信
address 192.168.1.116:7898;
meta-disk internal;
}
on linux-hanxin {
device /dev/drbd1;
disk /dev/sdc5;
address 192.168.1.102:7898;
meta-disk internal;
}
5. 定义资源
# drbdadm create-md r0 //r0为配置文件中定义的资源名
根据提示,输入yes即可,会往分区写入 metadata数据,如果原分区有数据,切忌小心, 先要将数据拷贝出来后再做其他操作
有必要时可以低格分区
dd if=/dev/zero bs=1M count=1 of=/dev/sda3
6. 资源配置成功后,可以启动 dbrd服务
/etc/init.d/drbd start
查看状态
cat /proc/drbd
cat /proc/drbd
or /etc/init.d/drbd status
1: 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:2007644
1: 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:2007644
7. 开始同步
drbdadm -- --overwrite-data-of-peer primary all
8. 测试
1) 在主机上执行
格式化块设备(只需要格式化主机上的drbd0)
# mkfs.ext3 /dev/drbd0
挂载
# mount /dev/drbd0 /test
2) 切换
在主机执行
# umount /test
# drbdadm secondary r0 (all)
在备机执行
#drbdadm primary r0 (all)
#mount /dev/drbd0 /test