你好,欢迎来南京云信达科技有限公司!

您当前位置: 首页 > 产品信息 > 白皮书白皮书

白皮书:DRBD(Distributed Replicated Block Device,分布式复制块设备)
发布日期:2017-10-13 23:11:19 发布人:ecloud

1.概述

DRBD软件(Distributed Replicated Block Device,分布式复制块设备)通过网络来复制存储数据,可以把它看作是一种跨节点RAID1,从而可以为任何运行在Linux上的应用程序实现高可用集群。

作为一个稳定的复制软件,DRBD从Linux发布内核2.6.33以后,就已融入了Linux代码主线。由于软件在块级别进行工作,其复制性能比较高。

DRBD可以在服务器之间的块设备(包括硬盘、分区、逻辑卷)进行镜像。也就是说当某一个应用程序完成写操作后,它提交的数据不仅仅会保存在本地块设备上,DRBD也会将这份数据复制一份,通过网络传输到另一个节点的块设备上,这样,两个节点上的块设备上的数据将会保存一致。


 

DRBD的工作机制如上图所示,数据经过buffer cache后有内核中的DRBD模块通过tcp/ip协议栈经过网卡和对方建立数据同步。

 

2.DRBD的特性

DRBD具有如下特性:

1) 实时性:当某个应用程序完成对数据的修改时,复制功能立即发生

 

2) 透明性:应用程序的数据存储在镜像块设备上是独立透明的,他们的数据在两个节点上都保存一份,因此,无论哪一台服务器宕机,都不会影响应用程序读取数据的操作,所以说是透明的。

 

3) 同步镜像和异步镜像:同步镜像表示当应用程序提交本地的写操作后,数据后会同步写到两个节点上去;异步镜像表示当应用程序提交写操作后,只有当本地的节点上完成写操作后,另一个节点才可以完成写操作。

 

4) 提供功能强大的用户管理工具。为了能够配置和管理DRBD的资源,DRBD提供了一些管理工具与内核模块进行通信。

 

3.DRBD的工作模式

DRBD有2中模式:一种是DRBD的主从模式,另一种是DRBD的双主模式。

 

1)DRBD的主从模式

这种模式下,其中一个节点作为主节点,另一个节点作为从节点。其中主节点可以执行读、写操作;从节点不可以挂载文件系统,因此,也不可以执行读写操作。在这种模式下,资源在任何时间只能存储在主节点上。这种模式可用在任何的文件系统上(EXT3、EXT4、XFS等等)。默认这种模式下,一旦主节点发生故障,从节点需要手工将资源进行转移,且主节点变成从节点和从节点变成主节点需要手动进行切换。

 

为了解决手动将资源和节点进行转移,可以将DRBD做成高可用集群的资源代理(RA),这样一旦其中的一个节点宕机,资源会自动转移到另一个节点,从而保证服务的连续性。

 

2) DRBD的双主模式

这是DRBD8.0之后的新特性在双主模式下,任何资源在任何特定的时间都存在两个主节点。可以同时访问。这种模式需要一个共享的集群文件系统,利用分布式的锁机制进行管理,如GFS和OCFS2。部署双主模式时,DRBD可以是负载均衡的集群,需要从两个并发的主节点中选取一个首选的访问数据。

 

4.DRBD的同步协议

DRBD的复制功能就是将应用程序提交的数据一份保存在本地节点,一份复制传输保存在另一个节点上。但是DRBD需要对传输的数据进行确认以便保证另一个节点的写操作完成,就需要用到DRBD的同步协议,DRBD同步协议有三种:

 

协议A:数据在本地完成写操作且数据已经发送到TCP/IP协议栈的队列中,则认为写操作完成。如果本地节点的写操作完成,此时本地节点发生故障,而数据还处在TCP/IP队列中,则数据不会发送到对端节点上。因此,两个节点的数据将不会保持一致。这种协议虽然高效,但是并不能保证数据的可靠性。

 

协议B:数据在本地完成写操作且数据已到达对端节点则认为写操作完成。如果两个节点同时发生故障,即使数据到达对端节点,这种方式同样也会导致在对端节点和本地节点的数据不一致现象,也不具有可靠性。

 

协议C:只有当本地节点的磁盘和对端节点的磁盘都完成了写操作,才认为写操作完成。这是集群流行的一种方式,应用也是最多的,这种方式虽然不高效,但是最可靠。

 

5.DRBD软件广泛的应用场景

1) MySQL,Oracle DB,PostgreSQL等数据库复制环境

2) KVM、Xen、VMWare 下的虚拟机复制(通过iSCSI)

3) Tier4 高可用场景

4) NFS、CIFS、Samba复制

5) iSCSI、FC:机械硬盘或SSD

6) Nagios XI 高可用

7) HPC文件服务:Lustre、GFS、GPFS等