一 DRBD介绍

DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地 
文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中. 
本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会 
保留有一份相同的数据,可以继续使用.

在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,
切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了.
DRBD的工作原理如下图: 

DRBD简介_职场

二. DRBD的安装

从官方网站下载源码包:

www.drbd.org

我们在Turbolinux10.5上使用drbd-8.0.4版.分别在两台主机上安装DRBD

# tar jxf drbd-8.0.4.tar.gz

# cd drbd-8.0.4

# make

# make install

make install执行之后: 
drbd.ko被安装到/lib/modules/$KernelVersion/kernel/drivers/block下. 
drbd相关工具(drbdadm,drbdsetup)被安装到/sbin下. 
并会在/etc/init.d/下建立drbd启动脚本.

三. DRBD的配置

 

1.DRBD使用的硬盘分区

你需要为本地主机和远程主机,指定一个DRBD使用的硬盘分区.这两个分区的大小必须相同. 
我们指定两台主机的/dev/hdb1分区作为DRBD的使用的分区.这两个分区大小都为300MB. 

2.drbd.conf配置文件

DRBD运行时,会读取一个配置文件/etc/drbd.conf.这个文件里描述了DRBD设备与硬盘分区的映射关系,
DRBD的一些配置参数. 
下面是一个drbd.conf文件的简单示例: 
<主机>Turbolinux 10.5操作系统,主机名为g105-1,IP地址为 10.0.1.2,DRBD分区为/dev/hdb1. 
<备机>Turbolinux 10.5操作系统,主机名为g105-2,IP地址为 10.0.2.2,DRBD分区为/dev/hdb1. 

DRBD简介_drbd_02

然后将这个drbd.conf文件分别复制到两台主机的/etc目录下. 

3.DRBD的启动

在启动DRBD之前,你需要分别在两台主机的hdb1分区上,创建供DRBD记录信息的数据块.分别在
两台主机上执行: 

[root@g105-1 /]# drbdadm create-md r0

[root@g105-2 /]# drbdadm create-md r0

“r0”是我们在drbd.conf里定义的资源名称. 
现在我们可以启动DRBD了,分别在两台主机上执行: 

[root@g105-1 /]# /etc/init.d/drbd start

[root@g105-2 /]# /etc/init.d/drbd start

现在可以查看DRBD的状态,然后在g105-1主机上执行: 

DRBD简介_职场_03

”/proc/drbd”中显示了drbd当前的状态.第一行的st表示两台主机的状态,都是”备机”状态.
ds是磁盘状态,都是”不一致”状态. 
这是由于,DRBD无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据.所以,我们需要初始化 
一个主机.在g105-1上执行: 

[root@g105-1 /]# drbdsetup /dev/drbd1 primary -o

现在再看一个g105-1上的DRBD状态: 

DRBD简介_linux_04

主备机状态分别是”主/备”,主机磁盘状态是”实时”,备机状态是”不一致”. 
在第3行,可以看到数据正在同步中,即主机正在将磁盘上的数据,传递到备机上.现在的进度是14.7%.
现在看一下g105-2上面的DRBD状态. 

DRBD简介_linux_05

稍等一会,在数据同步完后,再查看一下g105-1的DRBD状态: 

DRBD简介_职场_06

磁盘状态都是”实时”,表示数据同步完成了.

4.使用DRBD

你现在可以把主机上的DRBD设备挂载到一个目录上进行使用.备机的DRBD设备无法被挂载,因为它是
用来接收主机数据的,由DRBD负责操作. 
在g105-1上执行: 

DRBD简介_drbd_07

现在,我们在drbd1目录里建立一个200M的文件: 

[root@g105-1 /]# dd if=/dev/zero of=/mnt/drbd1/tempfile1.tmp \ >bs=104857600 count=2

操作完成后,在g105-2(备机)上执行: 
我们先停止DRBD 

[root@g105-2 /]# /etc/init.d/drbd stop

现在,我们可以将hdb1进行挂载 

DRBD简介_linux_08

可以看到,在主机g105-1上产生的文件tmpfile1.tmp,也完整的保存在备机g105-2的DRBD分区上. 
这就是DRBD的网络RAID-1功能. 在主机上的任何操作,都会被同步到备机的相应磁盘分区上,达到数据备份的效果.

5.DRBD的主备机切换

有时,你需要将DRBD的主备机互换一下.可以执行下面的操作: 
在主机上,先要卸载掉DRBD设备. 

[root@g105-1 /]# umount /mnt/drbd1

将主机降级为”备机”. 

DRBD简介_职场_09

现在,两台主机都是”备机”. 
在备机g105-2上,将它升级为”主机”. 

 

DRBD简介_linux_10

现在,g105-2成为了”主机”.你可以把它的/dev/drbd1进行挂载和使用了.同样,数据会被同步到
g105-1上面. 

本文转自:/www/httpd/html/turbo/wiki/data/pages/系统管理/drbd的使用.txt