设为首页 收藏本站
查看: 561|回复: 0

[经验分享] 分布式块设备复制(DRBD)基本环境搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-1 09:13:41 | 显示全部楼层 |阅读模式
实验环境:
192.168.0.202   主机名S202
192.168.0.203    主机名S203
分区使用逻辑卷lvdrbd
操作系统为centos6.6

概念理解:

DRBD:分布式块设备复制(Distributed Replicated Block Device)

DRBD:主从
primary:可执行读、写操作
secondary:文件系统不能挂在
DRBD:dual primary 双主
磁盘调度器:合并读请求,合并写请求

procotol(协议类型):
A:Async ,异步
B:semi sync,半同步
C:sync,同步

DRBD Source :DRBD 资源
Resource name :    资源名称,可以是除了空白字符外的任意ACSII码字符

DRBD device  :      DRBD设备,在双方节点上,此DRBD设备的文件,一般为/dev/drbdN,其主设备号为147


实验开始:



安装:
rpm -Uvh  http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
1
yum install drbd84 kmod-drbd84



加载drbd模块
1
modprobe  drbd



查看是否加载drbd模块
1
lsmod |grep -i drbd





drbd的配置文件主要有:
/etc/drbd.conf
/etc/drbd.d/*
其中在drbd.d目录中已有一个全局配置文件global_common.conf,直接修改其中的参数如下:

global {
        usage-count no;
        # minor-count dialog-refresh disable-ip-verification
}
common {
        protocol C; #使用DRBD的三种协议之中的第三种C
        handlers {
                # These are EXAMPLE handlers only.
                # They may have severe implications,
                # like hard resetting the node under certain circumstances.
                # Be careful when chosing your poison.
                 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";
                # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
                # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
                # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
                # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
        }
        startup {
                # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
        }
        options {
                # cpu-mask on-no-data-accessible
        }
        disk {
                # size
                on-io-error detach; #使用DRBD功能(drbd outdata-peer daemon)保证数据不同步时不进行切换
                fencing disk-barrier disk-flushes
                # disk-drain md-flushes resync-rate resync-after al-extents
                # c-plan-ahead c-delay-target c-fill-target c-max-rate
                # c-min-rate disk-timeout
        }
        net {
                # protocol timeout max-epoch-size max-buffers unplug-watermark
                # connect-int ping-int sndbuf-size rcvbuf-size ko-count
                # allow-two-primaries
                cram-hmac-alg "sha1" ;  #DRBD使用加密方式进行传输
                shared-secret "vgdrbd";
                #after-sb-0pri
                # after-sb-1pri after-sb-2pri always-asbp rr-conflict
                # ping-timeout data-integrity-alg tcp-cork on-congestion
                # congestion-fill congestion-extents csums-alg verify-alg
                # use-rle
        }
        syncer { rate 200M; }  #主节点和备用节点同步时使用的带宽
}

定义资源使用:


vim vgdrbd.res

resource vgdrbd {   #rescource 资源名称(自己定义)
        device /dev/drbd0;  #节点上的设备名称
        disk /dev/mapper/VolGroup-lvdrbd; #节点上使用的磁盘分区
        meta-disk internal; #DRBD原数据放置的位置(设备的内部:internal)
        on S202 { #每个主机的说明以on开头 ,后面是hostname(uname -n),{}中的是主机的配置
                address 192.168.0.202:7789; #定义主机的地址 和端口
        }

        on S203 {
                address 192.168.0.203:7789;
        }

}



以上的资源定义可以分开写成:
resource vgdrbd {

        on S202 {
  
  device /dev/drbd0;  
         disk /dev/mapper/VolGroup-lvdrbd;
         meta-disk internal;
                address 192.168.0.202:7789;
        }


        on S203 {
  
  device /dev/drbd0;  
         disk /dev/mapper/VolGroup-lvdrbd;
         meta-disk internal;
                address 192.168.0.203:7789;
        }
}




将配置好的配置文件复制到另外一台主机上:
scp global_common.conf vgdrbd.res S203:/etc/drbd.d/

然后再每主机上执行以下命令创建DRBD信息(初始化资源):
drbdadm create-md vgdrbd  #drbdadm create-md 资源名称
ssh S203 "drbdadm create-md vgdrbd"

启动:
/etc/init.d/drbd start
ssh S203 "/etc/init.d/drbd start

查看节点信息:
cat /proc/drbd
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@S202 ~]# cat /proc/drbd

version: 8.4.5 (api:1/proto:86-101)

GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by
phil@Build64R6
, 2014-10-28 10:32:53

0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----

    ns:7769 nr:10 dw:7779 dr:2729 al:2 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

[iyunv@S202 ~]#



其中ro表示角色,ds表示磁盘状态;ns:表示网络发送的数据包;dw:表示磁盘的写信息;dr:表示磁盘的读信息

drbd-overview
1
2
3
[iyunv@S202 ~]# drbd-overview

0:vgdrbd/0  Connected Secondary/Secondary UpToDate/UpToDate




将DRBD设置为主从模式:

在想要成为主节点上执行命令:

drbdadm -- --overwrite-data-of-peer primary all

cat /proc/drbd
1
2
3
4
5
6
7
8
9
10
11
[iyunv@S202 drbd.d]# cat /proc/drbd

                                version: 8.4.5 (api:1/proto:86-101)

GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by
phil@Build64R6
, 2014-10-28 10:32:53

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----

    ns:7769 nr:10 dw:7779 dr:3417 al:2 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0







挂载:
mkfs.ext4 /dev/drbd0  #格式化资源

mount -t /dev/VolGroup/lvdrbd  /vgdrbd  #挂载到/lvdrbd目录下


主从切换命令:

drbdadmin secondary vgdrbd #将自己降级为从

drbdadmin primary vgdrdb #将自己升级为主

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-34191-1-1.html 上篇帖子: centos6.5 firefox升级 flash player安装 adblock plus广告屏蔽插件安装 下篇帖子: linux开机启动流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表