一、What's the DRBD:
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不能应用到共享设备上,昨天我在做 测试的时候使用的是共享磁盘,结果导致在另外一个节点挂载时报错,提示只读文件系统。
1、安装:
这里使用的是centos,所以直接使用yum安装drbd82以及kmod-drbd82:
DRBD的默认配置是/etc/drbd.conf:
它的启动脚本是/etc/init.d/drbd:
2、配置:
复制/usr/share/doc/drbd82/drbd.conf为/etc/drbd.conf。完了之后稍作编辑即可使用,下面是编辑后的drbd.conf内容:
这里的repdata是资源名称,7788和7799是drbd默认使用的TCP端口。还有就是net选项中指定了加密方式为sha1以及共享密码为abc123。完成之后,将drbd.conf传到另外一台centos01上面。
3、启用刚才配置的资源repdata:
(1)、create device metadata:
这步必须在两个节点都要执行:
(2)、两个节点启动drbd服务:
启动之后,可以通过查看/proc/drbd文件,或许相关信息:
从以上信息可以得知,当前两个节点的角色是secondary,接着就要确定那个节点为主角色了。
(3)、确定主角色并且执行设备初始化同步:
这里将centos01设置为主角色并且执行设备初始化同步,在一个节点执行即可。
接着查看/proc/drbd文件:
在centos02节点上也可以看到设备正在执行初始化同步操作:
4、在drbd设备上创建文件系统:
这里使用的设备文件是/dev/drbd0,也就是在drbd.conf文件中设置的,在一个节点上操作即可:
在centos01上创建几个文件,测试下同步效果:
在centos01上卸载/u02目录并设置将centos01的角色设置为secondary,在centos02上挂载并将centos02设置为primary角色:
到此,数据已完全同步过来了。
查看/proc/drbd文件,注意观察角色的变化:
接着在centos02节点上添加删除文件,测试下同步效果:
切换到centos01上查看同步效果:
OK,到此DRBD已经正常工作了。
三、DRBD的日常管理:
管理DRBD常用的一个管理命令是drbdadm,它又包含了好多子命令,如下图所示:
1、检查DRBD状态:
以上的state是查看角色状态,cstate查看连接状态,dstate查看磁盘状态。drbd的状态信息存放于/proc/drbd中:
以上各个字段的含义请参考drbd users guide。
2、启用与禁用资源:
当前两个节点已经启用了资源repdata,现在在任意节点禁用资源:
启用repdata:
还有好多管理方面的内容,请参考官方文档。
四、DRBD与LVM、Heartbeat的结合:
1、整合DRBD与LVM:
当前系统中存在以下两个卷组vg和vg1,vg1用于与drbd整合。
两个节点分别创建一个逻辑卷vg1-1:
完了之后,编辑drbd.conf文件,加入以下内容,如图所示:
完了之后,创建r0资源:
在这里,由于drbd服务已经处于启动状态,所以使用service drbd reload重新载入配置文件即可。
然后设置primary角色:
完了之后,就可以在/dev/drbd1上面创建文件系统、读写数据了。
2、DRBD与Heartbeat的结合:
首先要安装heartbeat软件,在centos上直接使用yum在线安装heartbeat软件即可,两个节点都要安装的。安装完成之后,需创建ha.cf和authkeys文件,内容如下:
创建完成之后,复制ha.cf和authkeys之另外一个节点,注意authkeys的属性必须是600!两台节点启动heartbeat服务。启动之后,可以使用crm_mon检验两节点的状态:
接着创建一个包含IP为192.168.219.3、drbd设备和文件系统挂载点的资源组,这里使用图形界面hb_gui进行设置。此图形界面默认只能通过127.0.0.1访问,并且必须对hacluster用户设置密码,初次是如下界面:
点击+号添加资源操作,最后结果如图所示:
后续增加更多DRBD、Heartbeat和第三方应用的博文,敬请期待!!!
参考文献:
1、DRBD用户指南
本文出自 “candon123” 博客,谢绝转载!