一,什么是DRBD

DRBD(Distributed Replicated Block Device)分布式复制数据块设备:由linbit公司研发及开源,是一个由软件实现的、无共享的、服务器之间镜像块设备(同步的是数据块,不是文件,从英文就可以看出)内容的存储复制解决方案。可以被用于HA中,可以理解为网络上的网络RAID-1

二,实现原理简单描述

       使用DRBD,当用户将数据写到本地文件系统的同时,数据还会被发送到网络中的另一台主机上,以相同的形式记录在文件系统中,可以实现本地节点与远程主机的数据可以实现实时同步,本地主机故障时,远程主机上还会有一份相同的数据,保证了数据的不丢失。但是,有一个缺点,两个节点必须是主从关系,也就是说当前活动节点只能有一个能够读写,另一个只能处理于被动状态(接收数据或同步数据)且不能对外提供服务(不能同时读写的),只有当主节点故障了,从节点才能提供服务。

三,DRBD架设环境介绍及使用注意事项

       1)两台虚拟机,实现ssh免密码访问且计算机名称如下所示:

                   主机简称(主机名称)IP地址

                   node4(node4.mytest.com):172.16.251.24

node5(node5.mytest.com):172.16.251.25

DRBD介绍与安装配置_第1张图片

       2)两台主机分别新建一个1G大小的分区(建议分区名称一致,实际生产中,最好是一块硬盘)

DRBD介绍与安装配置_第2张图片

   3)所需要的软件包

drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm

drbd-8.4.3-33.el6.x86_64.rpm

      DRBD有两部分组成:内核模块工具和用户管理工具,分别为drbd 和drbd-kmdl,drbd内核模块已经整合到内核2.6.33以后的版本中,因此,对于内核版本高于2.6.33的系统,只安装用户管理工具即可;否则,您需要同时安装内核模块和用户管理工具两个软件包,且二者的版本号一定要保持对应。本实验环境中内核版本为CentOS 6.5 64bits(2.6.32-431.el6.x86_64),因此需要的DRBD内核模块工具版本为:drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm,用户管理工具:drbd-8.4.3-33.el6.x86_64.rpm

           4)软件包的安装及配置文件介绍(node4,5都要安装)

DRBD介绍与安装配置_第3张图片

   5)安装后的文件路径,服务,配置文件介绍

DRBD介绍与安装配置_第4张图片

       drbd的主配置文件为/etc/drbd.conf,为了管理的便捷性,目前通常会将些配置文件分成多个部分,且都保存至/etc/drbd.d/目录中,主配置文件中仅使用"include"指令将这些配置文件片断整合起来。通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源用由用户自行定义。

   配置文件global_common.conf介绍

grep -v '^[[:space:]].*#' global_common.conf
global {
    usage-count no;
}
common {
    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";
    }
    startup {
        wfc-timeout 120;
        degr-wfc-timeout 240;
    }
    options {
    }
    disk {
        on-io-error detach;
    }
    net {
        protocol C;
        cram-hmac-alg "sha1";
        shared-secret "shixinzheng521";
    }
    syncer {
        rate 1000M;
    }
}

DRBD介绍与安装配置_第5张图片

   配置文件/etc/drbd.d/web.res介绍(文件名自行定义,扩展名必须为res)

resource store {
    on node4.mytest.com {
        device /dev/drbd0;
        disk /dev/sda3;
        address 172.15.251.24:7789;
        meta-disk internal;
    }
    on node5.mytest.com {
        device /dev/drbd0;
        disk /dev/sda3;
        address 172.15.251.25:7789;
        meta-disk internal;
    }
}

DRBD介绍与安装配置_第6张图片

复制配置到节点node5(node5.mytest.com)

DRBD介绍与安装配置_第7张图片    启动drbd服务(node4,node5都要启动),

service drbd start

  查看同步的状态及设置主节点

drbd 8.4中第一次设置某节点成为主节点的命令

       # drbdadm primary --force store


DRBD介绍与安装配置_第8张图片   再次查看drbd状态

DRBD介绍与安装配置_第9张图片

   注:对主Primary/Secondary模型的drbd服务来讲,在某个时刻只能有一个节点为Primary,因此,要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary

   接着格式化drbd设备(在主节点上)

DRBD介绍与安装配置_第10张图片

挂载设备到/mnt

[root@node4 ~]#
[root@node4 ~]#
[root@node4 ~]# mount /dev/drbd0 /mnt
[root@node4 ~]# ls /mnt
lost+found
[root@node4 ~]# cp /etc/fstab /mnt/
[root@node4 ~]# ls /mnt
fstab  lost+found
[root@node4 ~]#

DRBD介绍与安装配置_第11张图片

主从节点的切换

注意:切换前切记先卸载再进行主从的切换

DRBD介绍与安装配置_第12张图片

至此drbd主从节点切换完成

实验过程主节点故障或重启服务,导致问题解决方案,问题特征如下图:

DRBD介绍与安装配置_第13张图片

       主节点提示正等待连接(WFConnection),而从节点显示(StandAline)的问题解决办法

要在从节点执行如下命令:

drbd-overview
drbdadm down store
drbdadm create-md store    #store为定义的资源名称
drbdadm up store   #store为定义的资源名称
drbd-overview   #数据同步一致成功

脑裂故障解决请看链接