DRBD是Linux内核的存储层中的一个分布式存储系统,现在我们需要两台Linux服务器之间共享块设备做集群,这里我们选择了drbd。(iscsi也可以)

主机名   ip地址         系统环境          

node1   192.168.1.50   redhat 6.3

node2   192.168.1.51   redhat 6.3

配置之前的准备

1.安装包的下载

http://oss.linbit.com/drbd/

这里我下的版本是:drbd-8.4.3.tar.gz

2.设置hostname

vim /etc/hosts
node1 192.168.1.50
node2 192.168.1.51

3.磁盘规划

这里我们最好在2个节点上使用2个一样大小的分区(注:分好后不要格式化!)

一.下面我们就可以部署DRBD了:

在之前我下的包中由于内核和版本不匹配报了如下错误:

can not load the drbd module.

所以这里我们采用编译的方式生成rpm包然后安装:

tar xvf drbd-8.4.3.tar.gz
cd drbd-8.4.3
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
./configure
make rpm
make km-rpm

找到我们刚才生成的包,并安装:

cd ~/rpmbuild/RPMS/x86_64/
rpm -ivh drbd-*.rpm


二.查看DRBD是否安装成功

modprobe drbd
lsmode |grep drbd
drbd           XXXXX  X 即安装成功


三.drbd的配置

默认运行配置文件/etc/drbd.conf配置文件,这里我们的配置文件是在/etc/drbd.d/global_common.conf下,下面我们来进行配置:

vim /etc/drbd.d/global_common.conf
global {
        usage-count no;
}
common {
        syncer { rate 100M; }
}
        resource r0 {
                protocol        C;
        handlers {
               pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
                pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
                 local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
                 fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
                 out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
        }
        startup {
                wfc-timeout 120;
                degr-wfc-timeout 120;
        }
        options {
                # cpu-mask on-no-data-accessible
        }
        disk {
                on-io-error detach;
                fencing resource-only;
        }
  net {
                cram-hmac-alg "sha1";
                shared-secret "FooFunFactory";
        }
        device          /dev/drbd0;
        on node1 {
        disk    /dev/sdb1;
        address 192.168.1.50:7788;
        meta-disk       internal;
                }
        on node2 {
        disk    /dev/sdb1;
        address 192.168.1.51:7788;
        meta-disk       internal;
                }
}

这里参数我就不具体说明了。

同理把生成的配置文件scp到node2上。


四:DRBD的启动

1.这里我们在node1,和node2上执行如下命令:

drbdadm create-md all
or
drbdadm create-md r0

2.启动drbd

/etc/init.d/drbd start

3.设置node1为primary,并格式化drbd0设备

drbdadm -- --overwrite-data-of-peer primary all
drbdadm primary all
mkfs.ext4 /dev/drbd0

4.在node2上启动drbd,并查看其状态.

/etc/init.d/drbd start
cat /proc/drbd
[>.........]sync'ed: ...

上面为传输中,如果都为UpToDate表示数据同步完成

5.挂载DRBD分区到/webdata目录下

mount /dev/drbd0 /webdata


这样一个简单的drbd,类似于raid1的设备就搭建好了.