drbd原理详述

DistributedReplicated Block Device (DRBD)node

经过分布式复制块设备,能够为位于IP网络上的两个不一样站点的两个块设备建立镜像。和corosync一块儿使用时,DRBD支持分布式高可用Linux集群,主节点和次节点经过TCP/IP协议保持同步,主节点故障,远程节点保持着相同的数据,能够接替主节点继续工做。两个节点使用heartbeat来检测对方是否存活。网络

DRBD确保数据的两个副本保持相同的方式将主设备上的数据复制到次设备上。能够将其视为联网的RAID1。实时对数据进行镜像,一遍连续复制。应用程序不须要直到实际上它们的数据存储在不一样的磁盘上。并发


wKioL1Vlrc2SWBHXAAGG7peuIKY164.jpg


DRBDLinux内核模块,位于下端的I/O调度程序和上端文件系统之间。要与DRBD通讯,须要使用高级版命令drbdadm,为了提供最大灵活性,DRBD附带了低级别工具drbdsetup.分布式

 

同步过程ide

1> node1上写操做被提交,而后经过内核传给DRBD模块工具

2> DRBD发送写操做到node2spa

3> node2上的DRBD发送写操做给本地磁盘blog

4> node2上的DRBDnode1发确认信息,确认已经接收到写操做并发送给本地磁盘资源

5> node1上的DRBD发送写操做给本地磁盘get

6> node1的内核回应写操做完成


DRBD资源

Resource name:除了空白字符外的任一ACSII码字符

Volumes:在双方节点上,各自提供的存储设备

DRBD device/dev/drbd_,主设备号为147,次设备号从0递增

Connect:双方数据同步时所使用的网络属性


Resource roles

在主节点上,DRBD device可不受限制读写、挂载。

在次节点上,DRBD device不可读写

 

同步过程依赖于DRBD3种同步协议

Protocal A,Asynchronousreplication protocol,I/O到达本地磁盘和本地的TCP发送缓冲区后,返回操做成功

Protocal B,Memorysynchronous(semi-synchronous),I/O到达本地磁盘和远程节点的TCP/IP协议栈以后,返回操做成功

Protocal C,Synchronousreplication protocol,I/O到达本地磁盘和远程节点磁盘后,返回操做成功,单节点故障不会致使数据丢失。

DRBD支持使用Linux支持的任何块设备,一般以下:

硬盘分区或完整硬盘

RAID

LVM

一般DRBD使用TCP7788端口及更高端口进行DRBD节点间通讯。DRBD会将原始设备的最后128M用于元数据。

相关文章
相关标签/搜索