标签:drbd 原理
DistributedReplicated Block Device (DRBD)
通过分布式复制块设备,可以为位于IP网络上的两个不同站点的两个块设备创建镜像。和corosync一起使用时,DRBD支持分布式高可用Linux集群,主节点和次节点通过TCP/IP协议保持同步,主节点故障,远程节点保持着相同的数据,可以接替主节点继续工作。两个节点使用heartbeat来检测对方是否存活。
DRBD确保数据的两个副本保持相同的方式将主设备上的数据复制到次设备上。可以将其视为联网的RAID1。实时对数据进行镜像,一遍连续复制。应用程序不需要直到实际上它们的数据存储在不同的磁盘上。
DRBD是Linux内核模块,位于下端的I/O调度程序和上端文件系统之间。要与DRBD通信,需要使用高级版命令drbdadm,为了提供最大灵活性,DRBD附带了低级别工具drbdsetup.
同步过程
1> 在node1上写操作被提交,然后通过内核传给DRBD模块
2> DRBD发送写操作到node2
3> 在node2上的DRBD发送写操作给本地磁盘
4> 在node2上的DRBD向node1发确认信息,确认已经接收到写操作并发送给本地磁盘
5> 在node1上的DRBD发送写操作给本地磁盘
6> node1的内核回应写操作完成
DRBD资源
Resource name:除了空白字符外的任一ACSII码字符
Volumes:在双方节点上,各自提供的存储设备
DRBD device:/dev/drbd_,主设备号为147,次设备号从0递增
Connect:双方数据同步时所使用的网络属性
Resource roles
在主节点上,DRBD device可不受限制读写、挂载。
在次节点上,DRBD device不可读写
同步过程依赖于DRBD的3种同步协议
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使用TCP的7788端口及更高端口进行DRBD节点间通信。DRBD会将原始设备的最后128M用于元数据。
本文出自 “在路上” 博客,请务必保留此出处http://mingxiao.blog.51cto.com/8124243/1655765
标签:drbd 原理
原文地址:http://mingxiao.blog.51cto.com/8124243/1655765