一、What's the DRBD:

Let’s Learn DRBD_第1张图片

DRBD refers to block devices designed as a building block to form high availability (HA) clusters. This is done by mirroring a whole block device via an assigned network. DRBD can be understood as network based raid-1.

In the illustration above, the two orange boxes represent two servers that form an HA cluster. The boxes contain the usual components of a Linux? kernel: file system, buffer cache, disk scheduler, disk drivers, TCP/IP stack and network interface card (NIC) driver. The black arrows illustrate the flow of data between these components.

The orange arrows show the flow of data, as DRBD mirrors the data of a highly available service from the active node of the HA cluster to the standby node of the HA cluster.

二、DRBD的安装配置:

1、环境介绍:

两台虚拟机,centos01和centos02,对应的IP是192.168.219.7和192.168.219.8。各有两个虚拟磁盘sda和sdb,sda是系统盘而sdb供drbd使用。这里注意了,DRBD不能应用到共享设备上,昨天我在做 测试的时候使用的是共享磁盘,结果导致在另外一个节点挂载时报错,提示只读文件系统。

Let’s Learn DRBD_第2张图片

Let’s Learn DRBD_第3张图片

1、安装:

这里使用的是centos,所以直接使用yum安装drbd82以及kmod-drbd82:

p_w_picpath

p_w_picpath

DRBD的默认配置是/etc/drbd.conf:

Let’s Learn DRBD_第4张图片

它的启动脚本是/etc/init.d/drbd:

p_w_picpath

2、配置:

复制/usr/share/doc/drbd82/drbd.conf为/etc/drbd.conf。完了之后稍作编辑即可使用,下面是编辑后的drbd.conf内容:

Let’s Learn DRBD_第5张图片

Let’s Learn DRBD_第6张图片

这里的repdata是资源名称,7788和7799是drbd默认使用的TCP端口。还有就是net选项中指定了加密方式为sha1以及共享密码为abc123。完成之后,将drbd.conf传到另外一台centos01上面。

3、启用刚才配置的资源repdata:

(1)、create  device metadata:

这步必须在两个节点都要执行:

p_w_picpath

Let’s Learn DRBD_第7张图片

p_w_picpath

Let’s Learn DRBD_第8张图片

(2)、两个节点启动drbd服务:

p_w_picpath

p_w_picpath

启动之后,可以通过查看/proc/drbd文件,或许相关信息:

p_w_picpath

p_w_picpath

从以上信息可以得知,当前两个节点的角色是secondary,接着就要确定那个节点为主角色了。

(3)、确定主角色并且执行设备初始化同步:

这里将centos01设置为主角色并且执行设备初始化同步,在一个节点执行即可。

p_w_picpath

接着查看/proc/drbd文件:

Let’s Learn DRBD_第9张图片

在centos02节点上也可以看到设备正在执行初始化同步操作:

Let’s Learn DRBD_第10张图片

4、在drbd设备上创建文件系统:

这里使用的设备文件是/dev/drbd0,也就是在drbd.conf文件中设置的,在一个节点上操作即可:

Let’s Learn DRBD_第11张图片

在centos01上创建几个文件,测试下同步效果:

Let’s Learn DRBD_第12张图片

Let’s Learn DRBD_第13张图片

在centos01上卸载/u02目录并设置将centos01的角色设置为secondary,在centos02上挂载并将centos02设置为primary角色:

p_w_picpath

Let’s Learn DRBD_第14张图片

到此,数据已完全同步过来了。

查看/proc/drbd文件,注意观察角色的变化:

p_w_picpath

p_w_picpath

接着在centos02节点上添加删除文件,测试下同步效果:

Let’s Learn DRBD_第15张图片

切换到centos01上查看同步效果:

p_w_picpath

Let’s Learn DRBD_第16张图片

OK,到此DRBD已经正常工作了。

三、DRBD的日常管理:

管理DRBD常用的一个管理命令是drbdadm,它又包含了好多子命令,如下图所示:

Let’s Learn DRBD_第17张图片

1、检查DRBD状态:

Let’s Learn DRBD_第18张图片

以上的state是查看角色状态,cstate查看连接状态,dstate查看磁盘状态。drbd的状态信息存放于/proc/drbd中:

p_w_picpath

以上各个字段的含义请参考drbd users guide。

2、启用与禁用资源:

当前两个节点已经启用了资源repdata,现在在任意节点禁用资源:

Let’s Learn DRBD_第19张图片

启用repdata:

p_w_picpath

Let’s Learn DRBD_第20张图片

还有好多管理方面的内容,请参考官方文档。

四、DRBD与LVM、Heartbeat的结合:

1、整合DRBD与LVM:

当前系统中存在以下两个卷组vg和vg1,vg1用于与drbd整合。

Let’s Learn DRBD_第21张图片

Let’s Learn DRBD_第22张图片

两个节点分别创建一个逻辑卷vg1-1:

Let’s Learn DRBD_第23张图片

Let’s Learn DRBD_第24张图片

完了之后,编辑drbd.conf文件,加入以下内容,如图所示:

Let’s Learn DRBD_第25张图片

完了之后,创建r0资源:

Let’s Learn DRBD_第26张图片

在这里,由于drbd服务已经处于启动状态,所以使用service drbd reload重新载入配置文件即可。

p_w_picpath

Let’s Learn DRBD_第27张图片

然后设置primary角色:

Let’s Learn DRBD_第28张图片

Let’s Learn DRBD_第29张图片

完了之后,就可以在/dev/drbd1上面创建文件系统、读写数据了。

2、DRBD与Heartbeat的结合:

首先要安装heartbeat软件,在centos上直接使用yum在线安装heartbeat软件即可,两个节点都要安装的。安装完成之后,需创建ha.cf和authkeys文件,内容如下:

Let’s Learn DRBD_第30张图片

p_w_picpath

创建完成之后,复制ha.cf和authkeys之另外一个节点,注意authkeys的属性必须是600!两台节点启动heartbeat服务。启动之后,可以使用crm_mon检验两节点的状态:

Let’s Learn DRBD_第31张图片

接着创建一个包含IP为192.168.219.3、drbd设备和文件系统挂载点的资源组,这里使用图形界面hb_gui进行设置。此图形界面默认只能通过127.0.0.1访问,并且必须对hacluster用户设置密码,初次是如下界面:

Let’s Learn DRBD_第32张图片

点击+号添加资源操作,最后结果如图所示:

Let’s Learn DRBD_第33张图片

Let’s Learn DRBD_第34张图片 

后续增加更多DRBD、Heartbeat和第三方应用的博文,敬请期待!!!

参考文献:

1、DRBD用户指南