前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式块设备复制技术DRBD的简单实践

分布式块设备复制技术DRBD的简单实践

作者头像
yuanfan2012
发布2019-10-10 17:17:40
9780
发布2019-10-10 17:17:40
举报
文章被收录于专栏:WalkingCloudWalkingCloud

DRBD(Distributed Replicated Block Device)分布式复制块设备是基于软件的无共享复制存储解决方案,可镜像主机之间的块设备(硬盘,分区,逻辑卷等)的内容

DRBD镜像数据的特点

1)实时:当应用程序修改设备上的数据时,复制将连续进行。

2)透明:应用程序不需要知道数据存储在多个主机上。

3)同步或异步

使用同步镜像,在所有主机上执行写操作后,将通知应用程序写完成。

使用异步镜像,当本地完成写入时(通常在它们传播到其他主机之前),会通知应用程序写入完成。


结合上面的拓扑图,简单实践一下DRBD

Node1:192.168.31.6

Node2:192.168.31.7

已配置好了双机互信,可以参考之前的高可用集群Heartbeat配置实践中的配置

1、yum安装DRBD的相关安装包kmod-drbd84、drbd84-utils

1)先安装ELRepo yum源

yum install https://www.elrepo.org/elrepo-release-6-9.el6.elrepo.noarch.rpm

ELRepo是CentOS十分有用的稳定的软件源,与其他软件源不一样的是,这个第三方源主要是提供硬件驱动、内核更新方面的支持,如显卡、无线网卡、内核等等

2)yum install kmod-drbd84

会自动安装drbd84-utils

Installing : drbd84-utils-9.5.0-1.el6.elrepo.x86_64

Installing : kmod-drbd84-8.4.11-1.el6_10.elrepo.x86_64

且会自动更新内核版本

2、在node1和node2分别添加一块磁盘分区,且不要格式化

如下图所示/dev/sda6 大小为10G

3、配置drbd的配置文件

cat /etc/drbd.conf可以看出drbd的配置文件分为两个

1)全局配置文件global_common.conf

2)资源配置文件*.res(自行创建)

首先cd /etc/drbd.d,备份一下全局配置文件

cp global_common.conf global_common.conf_default_bak

vi global_common.conf

global {

usage-count yes;

}

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 {

}

options {

}

disk {

on-io-error detach;

}

net {

cram-hmac-alg "sha1";

shared-secret "www.walkingcloud.cn";

}

syncer {

rate 1000M;

}

}

再配置res资源配置文件 vi disk_sda6_sync.res

resource disk_sda6_sync {

on node1.walkingcloud.cn{

device /dev/drbd0;

disk /dev/sda6;

address 192.168.31.6:7789;

meta-disk internal;

}

on node2.walkingcloud.cn {

device /dev/drbd0;

disk /dev/sda6;

address 192.168.31.7:7789;

meta-disk internal;

}

}

4、配置文件同步到node2上

scp global_common.conf disk_sda6_sync.res node2:/etc/drbd.d/

5、加载drbd到内核

lsmod | grep drbd

modprobe drbd

ssh node2 "lsmod | grep drbd"

6、在两个节点上初始化已定义的资源并启动drbd服务

1)初始化资源,在Node1和Node2上分别执行:

drbdadm create-md disk_sda6_sync

2)启动服务,在Node1和Node2上分别执行:

service drbd start

3)查看启动状态

cat /proc/drbd

或者drbd-overview

4)从上面的信息中可以看出此时两个节点均处于Secondary状态。于是接下来需要将其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令

drbdadm -- --force primary disk_sda6_sync

可以使用iftop查看同步时的网络流量

iftop -i eth0 -N -n -m 1000M -P

等待同步进度完成

7、在node1主节点上格式化,并挂载,测试文件写入

文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化

8、测试高可用性

1)先在主节点上卸载并切换为Secondary

umount /dev/drbd0

drbdadm secondary disk_sda6_sync

drbd-overview

2)在node2上将资源设置为主,直接挂载

drbdadm primary disk_sda6_sync

mount /dev/drbd0 /home

可以正常读取,当然这是手动切换primary和secondary来实现,在实际生产环境可以drbd+corosync等方式实现自动化故障迁移,后期再进行实践测试

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WalkingCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档