分布式块设备复制(Distributed Replicated Block Device,DRBD)是一种基于软件和网络的块复制存储解决方案,主要对服务器之间的磁盘、分区、逻辑卷等进行数据镜像。当用户将数据写入本地磁盘时,还会将数据发送到网络中另一台主机的磁盘上,这样就可以保证实时同步本地主机(主节点)与远程主机(备节点)的数据,当本地主机出现问题,远程主机上还保留着一份相同的数据,可以继续使用,保证了数据的安全。
1. DRBD 的基本功能
DRBD 的核心功能就是数据的镜像,其实现方式是通过网络来镜像整个磁盘设备或磁盘分区,将一个节点的数据通过网络实时地传送到另一个远程节点, 保证两个节点间数据的一致性,这有点类似于一个网络 RAID1 的功能。对于DRDB 数据镜像来说,它具有如下特点:
● 实时性。当应用对磁盘数据有修改操作时,数据复制立即发生。
● 透明性。应用程序的数据存储在镜像设备上是透明和独立的。数据可以存储在基于网络的不同服务器上。
● 同步镜像。当本地应用申请并开始进行写操作时,同时也在远程主机上开始进行写操作。
● 异步镜像。当本地写操作已经完成时,才开始对远程主机进行写操作。
2. DRBD 的构成
DRBD 是 Linux 内核存储层中的一个分布式存储系统,具体来说由两部分构成:一部分是内核模板,主要用于虚拟一个块设备;另一部分是用户空间管理程序,主要用于和 DRBD 内核模块通信,以管理 DRBD 资源,在 DRBD 中, 资源主要包含 DRBD 设备、磁盘配置、网络配置等。
DRBD 设备在整个 DRBD 系统中位于物理块设备之上、文件系统之下, 在文件系统和物理磁盘之间形成了一个中间层,当用户在主用节点的文件系统中写入数据时,数据在被正式写入磁盘前会被 DRBD 系统截获,同时,DRBD 在捕捉到有磁盘写入的操作时,就会通知用户空间管理程序把这些数据复制一份,写入远程主机的 DRBD 镜像,然后存入 DRBD 镜像所映射的远程主机磁盘。DRBD 运行结构如图 6-4 所示。

DRBD 负责接收数据,把数据写入本地磁盘,然后发送给另一个主机。另一个主机再将数据存储到自己的磁盘中。目前,DRBD 每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群来讲已经足够用了。以后的版本将支持两个节点进行读、写、存、取。
DRBD 负责接收数据,把数据写入本地磁盘,然后发送给另一个主机。另一个主机再将数据存储到自己的磁盘中。目前,DRBD 每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群来讲已经足够用了。以后的版本将支持两个节点进行读、写、存、取。