DRBD特性介绍

DRBD提供了如下的特性:

  • 单/双主模式
  • 三种复制模式
  • 高效同步服务
  • 在线设备验证
  • 复制传输完整性验证
  • 裂脑(Split brain)
  • 对磁盘缓冲的支持
  • 过期数据处理策略
  • 三重备份

 

单/双主模式

允许单/双节点模式,其中单主节点模式是任何资源在任何特定时间,集群中只存在一个主节点操作数据,也最常用的基本模式。

此外还提供了双主节点模式,即集群中存在两个主节点都可以操作数据,此模式下,由于数据有并发的可能,需要采用分布式锁进行管理,如GFS和OCFS2。

 

三种复制模式

提供了A、B和C三种数据备份复制协议。

协议A

  • 数据一旦写入本地磁盘并发送到网络就认为完成了写入操作。
  • 节点发生故障时,就有可能发生数据丢失

协议B

  • 数据写入到本地磁盘并复制数据包到达了远程节点,本地节点收到接受确认。
  • 两个节点同时故障的情况下,传输的的数据可能不会被提交到磁盘。


协议C

  • 本地和远程节点都已经确认了写操作完成,本地节点收到了写入确认时。
  • 没有任何数据丢失,但I/O吞吐量依赖于网络带宽

当然,就目前而言应用最多和应用最广泛的还是协议C,可以确保数据的安全。

 

高效同步服务

不管主节点失败、次节点失效还是复制被中断等,只要是复制连接被中断,同步就是必须的。DRBD的数据同步服务在主节点上是不间断的以后台进程运行着。

复制(device replication)和同步(synchronization )是不同的,复制发生于任何对主节点资源进行写操作时,而同步则往往伴随在写操作过程中。

DRBD是按照线性顺序同步修改块,而不是按修改的块的顺序进行同步。这种方式有几个好处,首先同步速度很快,因为这几个连续的写操作发生一次块的同步;其次,有较少的磁盘寻址,为保持块同步在自然磁盘上的区块分布,同步也是伴随着磁盘磁道的寻找,线性顺序同步修改快可以减少磁盘寻址的时间。当然,这种方式可能导致数据不一致,因为同步中备用节点上数据可能部分过期或已部分更新,比如在同步的过程中,数据在备用节点上部分过时或者部分被更新,这种数据状态便称为数据不一致。

 

在线设备验证

这个特性在DRBD8.2.5及以后版本中可用的,用于节点之间逐块逐块的进行数据完整性检查。

使用了数据块这个概念,数据块是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位,也是数据的物理记录。数据块与数据的逻辑记录(逻辑上有联系,在存储器上占有一组邻接单元的数据单位)之间的对应关系有3种方式:

①一个块即为一个记录;

②一个块包含若干个逻辑记录;

③一个逻辑记录占有几个块。

数据块的大小可以是固定的或是可变的,块与块之间有间隙。

此外,Flash芯片中数据块的概念是逻辑概念,是特指数据ID号相同并且在物理位置上连续的相邻页所构成的。一个块中的所有页的数据ID号是相同的,并且这些页在芯片中的位置是相邻的。

在DRBD中,在线设备验证的过程如下图所示:

当然,这种方式也各有优缺点:

优点:
1. 提高了网络带宽的利用率,因为DRBD传输的只是摘要,而不是完整的块,因此对网络资源的要求比较低
2. 不会造成服务或系统的中断
3. 不影响后续同步——保证在任何情况下验证不破坏冗余

缺点:
1.是资源密集型的操作,会明显提升CPU利用率和负载。

 

复制传输完整性验证

DRBD8.2.0及以后版本提供的特性,用于避免在复制同步的过程产生脏数据。

在实际部署环境中,会由于各种原因导致脏数据产生,比如TCP校验丢弃、数据在没有通过TCP校验就被丢到网卡上,导致“位翻转”、数据从网络NIC接口传送到对等节点的主存储器中,发生“位翻转”、由于竞争、网络接口固件或者程序错误和节点之间由于网络组建组装导致的位翻转或随机脏数据的注入等。因此需要在复制传输过程中验证数据的完整性。DRBD复制传输完整性验证简要过程大致是,首先,对每一个复制到对等节点的数据块都生成信息摘要;然后,对等节点(peer)也采用同样的方式对复制的数据块生成信息摘要;最后,进行数据完整性验证。

 

裂脑(Split brain)恢复

裂脑(Split brain)指两个节点都切换为主节点而断开连接,这是一个潜在的有害状态,因为这意味着不能复制数据到对等节点,且可能导致两个节点的数据不一致,从而产生不可合并的分裂。
产生裂脑常见原因大致有,集群节点间的网络连接临时故障、集群软件管理干预或者人为错误等。

DRBD提供了裂脑自动修复的功能,不过能不能被接受取决于个人应用。如果是数据丢失零容忍情况下,必须需要手动修复裂脑问题。如果数据丢失容忍度较高如web应用下,可考虑丢弃修改比较少的主节点上做的修改。

 

过期数据处理策略

过期数据( Outdated data)指在次节点上的数据是一致的,无法再与主节点进行同步(如长时间没有和主节点进行同步),常发生在备份过程被暂时或永久地中断。此时断开的次节点被认为是干净的(Clean),只是状态反映的是过去的某个时间而已。

例如当网络中断发生时,此时,DRBD调用外部应用程序(如Pacemaker集群中的Resource-Level Fencing机制),将次节点标记为过期状态,在此期间DRBD会拒绝该将次节点切换为主节点,从而保证了过期数据不被使用。当网络集群恢复可用时,过期节点的标记将被移除,然后同步数据过程在后台进行。

DRBD除了过期(outdated)数据,还有数据不一致(inconsistent)的状态。不一致的数据,指不应该被存取且使用的数据,如某个节点上正在进行同步的数据,此时在这个节点上的数据是部分陈旧或部分更新的,该数据就是不一致数据。此时,该设备无法通过自动文件系统检查或文件系统挂载。

 

三重备份

DRBD版本8.3.0开始提供的特性。

三重备份,指在已有的双节点集群中增加一个节点,用来容灾备份数据,适合远程容灾备份的情况。异地容灾远程镜像可以采用异步方式或周期式同步的方式进行。可以确保数据的安全性,但是会降低存储空间的利用率。

DRBD特性介绍_第1张图片

你可能感兴趣的:(DRBD特性介绍)