Drdb 介绍: 基于高可用服务器之 间的数据同步解决 |
Distributed Replicated Block Divice(Drdb) 基于块设备在不同的高可用服务器之间同步和和镜像数据的软件,通过它可以实现在网络中的两台服务器之间基于块设备级别的实时或异步镜像或同步复制。 类似于rsync+inotify (sersync)。 区别:是drdb是基于文件系统底层,即block级别的,而inotify是在文件系统之上的实际物理文件,因此drdb效率更高! |
提示: 上边提到的块设备可以是磁盘分区、LVM逻辑卷、或整块磁盘,drdb的同步不能基于目录 | |
官方网站: | http://www.drdb.org |
drdb 工作原理: |
官网阐述: refers to block devices designed as a building block to form high availability (HA) clusters. This is done by mirroring a whole block device via an assigned network. DRBD can be understood as network based raid-1. In the illustration above, the two orange boxes represent two servers that form an HA cluster. The boxes contain the usual components of a Linux kernel: file system, buffer cache, disk scheduler, disk drivers, TCP/IP stack and network interface card (NIC) driver. The black arrows illustrate the flow of data between these components. The orange arrows show the flow of data, as DRBD mirrors the data of a highly available service from the active node of the HA cluster to the standby node of the HA cluster. |
百度翻译: 指设计为一个建筑块,以形成高可用性(公顷)集群的块设备。这是通过一个完整的块设备通过一个分配的网络。DRBD可以理解为基于网络的RAID-1。 在上面的插图中,这两个橙色框表示一个群集的服务器。盒子里有一个Linux内核常用组件:文件系统,高速缓存,磁盘调度,磁盘驱动器,TCP / IP协议栈和网络接口卡(NIC)的驱动程序。黑箭头说明了这些组件之间的数据流。 橙色箭头表示数据流,如DRBD镜的高可用服务的数据从HA群集的主动节点的HA集群的备用节点。 |
DRDB的同步模式 | |
实时同步模式 | 仅当数据写入到本地磁盘和远端服务器磁盘都成功后才会反悔成功写入。drdb服务的协议c级别就是这种同步模式,可以防止本地和远端数据丢失和不一致,此种模式是在生产环节中最常用的模式. |
异步同步模式 |
当数据写入到本地服务器成功后就会反回成功写入,不管远端服务器是否写入成功; 例如当数据写入到本地服务器以及发送到本地的tcp buufer后成功写入,这是drdb的 A级别工作模式,当数据写入到本地服务器以及发送到远端节点后,返回成功写入,这是drdb服务协议的B级别工作模式 |
提示: 1、nfs网络文件系统也有类似的功能和参数。例如nfs服务端的配置参数sync和async,mount挂载参数sync和async2、使用drdb无特殊需求时,下边直接分区,不要使用LVM或其它设备,会影响性能。 3、高并发的业务,数据比较大。使用A B协议模式同步时要考虑数据丢失的风险。可以使用带电池的硬盘控制器,在保证性能的前提下来提高数据写入的安全性。 |
DRDB的访问情况: 官网地址:http://drbd.linbit.com/home/mirroring |
drdb双节点,一般仅主节点提供业务访问,备节点不能提供数据访问,但是备节点的drdb服务是正常的,数据也会保持实时同步,但是不能挂载对应的设备及分区,也就是说没法同时提供服务。 |
提示: 1、这不是drdb本身的缺点,是由于文件系统ext3、ext4....文件系统的特性决定的,drdb无法改变。 2、可以使用LVM 的快照或GFS,OCFS2 共享文件系统(多点挂载)来使drdb的备节点提供服务。 |
DRDB的生产应用模式 | |
单主模式(常用) | 即主备模式,为典型的带数据同步的高可用集群方案 |
复主模式 | 需要使用共享cluster文件系统,如GFS \OCFS2.用于需要从2个节点并发访问的数据场合,需要特别配置。 |
DRDB 裂脑split brain: 简述:当心跳链路出现暂时性故障时,会导致两端都各自提升为primary。 |
|
自动处理方式:/etc/drdb.conf |
net{ #net:网络配置相关内容,可以设置是否允许双主节点(allow-two-primaries)等。 after-sb-0pri disconnect; after-sb-1pri disconnect ; after-sb-2pri disconnect; IT-conflict disconnect } |
手动方式 |
从服务器操作: drdbadm secondary data drdbadm --discard-my-data connect data 放弃本地更新数据连接 主服务器操作: 通过cat /proc/drdb查看状态,如果不是WFConnection 状态,需要手动连接 drdb connect data #此处的data为drdb的一个resource资源,可以理解为一个同步的实例。 |
其它资料 |
http://drbd.linbit.com/home/feature-list/ http://drbd.linbit.com/home/roadmap/ |
The DRBD User’s Guide |
http://drbd.linbit.com/users-guide-8.4/ |