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

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

DRBD镜像数据的特点​1)实时​:当应用程序修改设备上的数据时,复制将连续进行。​2)透明​:应用程序不需要知道数据存储在多个主机上。​3)同步或异步​:     使用同步镜像,在所有主机上执行写操作后,将通知应用程序写完成。     使用异步镜像,当本地完成写入时(通常在它们传播到其他主机之前),会通知应用程序写入完成。分布式块设备复制技术DRBD的简单实践_应用程序_02


分布式块设备复制技术DRBD的简单实践_配置文件_03

结合上面的拓扑图,简单实践一下DRBDNode1:192.168.31.6Node2: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.rpmELRepo是CentOS十分有用的稳定的软件源,与其他软件源不一样的是,这个第三方源主要是提供硬件驱动、内核更新方面的支持,如显卡、无线网卡、内核等等

分布式块设备复制技术DRBD的简单实践_配置文件_042)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 且会自动更新内核版本

分布式块设备复制技术DRBD的简单实践_数据_05分布式块设备复制技术DRBD的简单实践_应用程序_062、在node1和node2分别添加一块磁盘分区,且不要格式化​如下图所示/dev/sda6 大小为10G分布式块设备复制技术DRBD的简单实践_配置文件_073、配置drbd的配置文件​cat /etc/drbd.conf可以看出drbd的配置文件分为两个

1)全局配置文件global_common.conf2)资源配置文件*.res(自行创建)首先cd /etc/drbd.d,备份一下全局配置文件cp global_common.conf global_common.conf_default_bak分布式块设备复制技术DRBD的简单实践_配置文件_08vi 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;        }}分布式块设备复制技术DRBD的简单实践_配置文件_09再配置res资源配置文件 vi disk_sda6_sync.res

分布式块设备复制技术DRBD的简单实践_数据_10resource 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/分布式块设备复制技术DRBD的简单实践_数据_11

5、加载drbd到内核​lsmod | grep drbdmodprobe drbd ssh node2 "lsmod | grep drbd"分布式块设备复制技术DRBD的简单实践_应用程序_12

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

1)初始化资源,在Node1和Node2上分别执行:drbdadm create-md disk_sda6_sync分布式块设备复制技术DRBD的简单实践_应用程序_132)启动服务,在Node1和Node2上分别执行:service drbd start

分布式块设备复制技术DRBD的简单实践_数据_14分布式块设备复制技术DRBD的简单实践_配置文件_153)查看启动状态cat /proc/drbd或者drbd-overview 分布式块设备复制技术DRBD的简单实践_数据_164)从上面的信息中可以看出此时两个节点均处于Secondary状态。于是接下来需要将其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令drbdadm -- --force primary disk_sda6_sync分布式块设备复制技术DRBD的简单实践_数据_17可以使用iftop查看同步时的网络流量iftop -i eth0  -N -n -m 1000M -P分布式块设备复制技术DRBD的简单实践_应用程序_18等待同步进度完成

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

文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化分布式块设备复制技术DRBD的简单实践_配置文件_19

8、测试高可用性

1)先在主节点上卸载并切换为Secondaryumount /dev/drbd0drbdadm secondary disk_sda6_syncdrbd-overview分布式块设备复制技术DRBD的简单实践_配置文件_202)在node2上将资源设置为主,直接挂载 drbdadm primary disk_sda6_sync mount /dev/drbd0 /home分布式块设备复制技术DRBD的简单实践_数据_21

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