DRBD提供了以下的特性: web
容许单/双节点模式,其中单主节点模式是任何资源在任何特定时间,集群中只存在一个主节点操做数据,也最经常使用的基本模式。安全
此外还提供了双主节点模式,即集群中存在两个主节点均可以操做数据,此模式下,因为数据有并发的可能,须要采用分布式锁进行管理,如GFS和OCFS2。网络
提供了A、B和C三种数据备份复制协议。并发
协议A异步
协议B分布式
协议C.net
固然,就目前而言应用最多和应用最普遍的仍是协议C,能够确保数据的安全。接口
无论主节点失败、次节点失效仍是复制被中断等,只要是复制链接被中断,同步就是必须的。DRBD的数据同步服务在主节点上是不间断的之后台进程运行着。进程
复制(device replication)和同步(synchronization )是不一样的,复制发生于任何对主节点资源进行写操做时,而同步则每每伴随在写操做过程当中。ci
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)指两个节点都切换为主节点而断开链接,这是一个潜在的有害状态,由于这意味着不能复制数据到对等节点,且可能致使两个节点的数据不一致,从而产生不可合并的分裂。
产生裂脑常见缘由大体有,集群节点间的网络链接临时故障、集群软件管理干预或者人为错误等。
DRBD提供了裂脑自动修复的功能,不过能不能被接受取决于我的应用。若是是数据丢失零容忍状况下,必须须要手动修复裂脑问题。若是数据丢失容忍度较高如web应用下,可考虑丢弃修改比较少的主节点上作的修改。
过时数据( Outdated data)指在次节点上的数据是一致的,没法再与主节点进行同步(如长时间没有和主节点进行同步),常发生在备份过程被暂时或永久地中断。此时断开的次节点被认为是干净的(Clean),只是状态反映的是过去的某个时间而已。
例如当网络中断发生时,此时,DRBD调用外部应用程序(如Pacemaker集群中的Resource-Level Fencing机制),将次节点标记为过时状态,在此期间DRBD会拒绝该将次节点切换为主节点,从而保证了过时数据不被使用。当网络集群恢复可用时,过时节点的标记将被移除,而后同步数据过程在后台进行。
DRBD除了过时(outdated)数据,还有数据不一致(inconsistent)的状态。不一致的数据,指不该该被存取且使用的数据,如某个节点上正在进行同步的数据,此时在这个节点上的数据是部分陈旧或部分更新的,该数据就是不一致数据。此时,该设备没法经过自动文件系统检查或文件系统挂载。
DRBD版本8.3.0开始提供的特性。
三重备份,指在已有的双节点集群中增长一个节点,用来容灾备份数据,适合远程容灾备份的状况。异地容灾远程镜像能够采用异步方式或周期式同步的方式进行。能够确保数据的安全性,可是会下降存储空间的利用率。