简介:

DRBD (Distributed Replicated Block Device) 分布式块设备复制,是一种基于软件、网络的块复制存储解决方案。主要用于对服务器之间的磁盘、分区、逻辑卷等进行数据镜像。

数据在写入本地磁盘的同时还会发送一份到远程服务器磁盘,达到本地与远程数据实时同步,当本机发生故障不能访问时,远程主机还保存着一份数据可供使用。

DRBD 是 Linux 内核存储层中的一个分布式存储系统,由内核模块(主要用于虚拟一个块设备)、用户空间管理程序(主要用于和DRBD内核模块通信,以管理DRBD设备、磁盘配置、网络配置等)。

DRBD 设备在整个 DRBD 系统中位于物理设备之上,文件系统之下,在这两者之间形成一个中间层。

当用户在主节点的文件系统写入数据时,在入盘前会被 DRBD 系统拦截并通知用户空间管理程序把该数据复制一份写入到远程主机 DRBD 镜像,最终存入镜像所映射的磁盘。

一个 DRBD 系统有两个及以上节点构成,分为主、备节点。主、备节点可以通过手工的方式改变角色。

主节点上可以不受限制的对 DRBD 设备进行读写操作、初始化、创建、挂载文件系统。备节点上无法挂载 DRBD 设备,只能用来接收主节点发送的数据,即:不能用于读写访问(保证数据缓存区的一致性)。

特点:

1、实时性。当应用对磁盘数据有修改操作时,数据复制立即发生。
2、透明性。数据存储在镜像设备上是透明、独立的。数据可以存储在基于网络的不同主机上。
3、同步镜像。当本地应用申请写操作时,同时也在远程主机开始写操作。
4、异步镜像。当本地写操作已经完成时,才开始对远程主机进行写操作。

特性:

1、单主模式

使用最频繁的一种模式,主要用于高可用集群的存储方面,该模式下只有一个主节点可以进行读写操作。

2、双主模式

主要用于负载均衡集群中,解决数据共享、一致性问题。由于需要两个主节点同时写入,单一的文件系统无法满足,只能使用共享的集群文件系统来解决并发读写问题。

如:GFS、OCFS2 等,通过集群文件系统的分布式锁机制事解决集群中两个主节点同时操作数据的问题。

3、复制模式

协议 A:只要本地磁盘写入完成,数据包已经在发送队列中,则认为一个写操作过程完成。发生网络故障时可能数据还在发送队列中,会丢失数据。

协议 B:只要本地磁盘写入完成,数据包已经到达远程节点,则认为一个写操作过程完成。远程节点发生故障时会导致数据丢失。

协议 C:只有本地与远程节点的磁盘都确实写操作完成,才认为一个写操作过程完成。不会造成数据丢失,也是使用最多的协议 ( 磁盘的 IO 量依赖网络带宽,建议网络带宽较好的时候使用 )。

4、传输完整性校验

DRBD 使用 MD5、SHA-1 或 CRC-32C 等加密算法对信息进行终端到终端的完整性验证。对复制数据的信息摘要进行验证,如验证信息不对,则要求主节点重新了送,保证镜像的数据完整性、一致性。

5、脑裂通知与自动修复

由于集群节点间网络故障、集群软件管理干预或人为错误,导致 DRBD 两个节点都切换为主节点而断开连接,即称为脑裂。发生脑裂主备之间数据不能同步,导致数据不一致。

发生脑裂可以手工修复 (建议),也可以自动修复。

自动修复策略:

1、丢弃比较新的主节点所做的修改。当网络重新建立连接且发现脑裂后,DRBD 会丢弃自动切换到主节点上的主机所修改的数据。

2、丢弃老的主节点所做的修改。DRBD 会丢弃首先切换到主节点上的主机所修改的数据。

3、丢弃修改比较少的主节点的修改。DRBD 会首先检查两个节点的数据,然后丢弃修改比较少的主机上的数据。

4、一个节点数据没有发生变化的情况下完美修复脑裂。如果其中一台主机在发生脑裂时没有发生数据修改,那么就可以完美解决脑裂问题。

DRBD 数据镜像软件介绍的更多相关文章

  1. DRBD 数据镜像软件

    1>DRBD介绍 1>数据镜像软件DRBD介绍  分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络的块复制存储解 ...

  2. DRBD数据镜像与搭建

    一.数据安全工具DRDB 1. 数据镜像软件DRDB介绍 分布式块设备复制,是基于软件.基于网络的块复制存储解决方案 作用:用于服务器之间的磁盘.分区.逻辑卷等进行数据镜像. 例如:当用户将数据写入本 ...

  3. DRBD(数据镜像)+hearbeat(自动切换)

    DRBD 数据镜像软件 一.DRBD介绍 1.1.数据镜像软件DRBD介绍 分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络 ...

  4. Visual paradigm软件介绍

    Visual paradigm软件介绍 说起Visual Paradigm你可能并不陌生,因为此前有一款功能强大的UML软件叫Visual Paradigm for UML,在这款软件在v11.1的时 ...

  5. R软件导入数据_r语言怎么导入数据_R软件导入数据

    R软件导入数据_r语言怎么导入数据_R软件导入数据 R软件导入数据 1.Rcmdr安装包导入数据: 1.安装Rcmdr包,输入: install.packages("Rcmdr") ...

  6. Java机器学习软件介绍

    Java机器学习软件介绍 编写程序是最好的学习机器学习的方法.你可以从头开始编写算法,但是如果你要取得更多的进展,建议你采用现有的开源库.在这篇文章中你会发现有关Java中机器学习的主要平台和开放源码 ...

  7. 【电子取证:FTK Imager篇】FTK Imager制作镜像详细介绍

    FTK Imager制作镜像详细介绍 以DD镜像制造为例,详细介绍了FTK Imager创建镜像的过程,记得大学的时候学习这些没什么教程,找到的资料也是语焉不详,故在此啰嗦一番---[suy] 一.磁 ...

  8. 软件介绍(apache lighttpd nginx)

    一.软件介绍(apache  lighttpd  nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...

  9. 数据搬运工DSS~介绍

    DSS介绍 DSS是为了实现异地数据同步而开发的一套.net平台的应用程序,它寄宿到windows服务上,由多个客户端和一个服务端组成,其中客户端用来收集数据(数据源端),服务端用来将数据写入指定数据 ...

随机推荐

  1. HttpClient通信

    1.背景 大多数系统功能和代码都是自己写的,自己用,但是在有些情况下,我们可以利用已经存在的系统,完成对自己实现相对很麻烦的功能,这些一般代价相对较大,自己不可能专门写一个系统或者太过很复杂的代码来完 ...

  2. JS 区分单击双击

    var timeout =null; $("#Btn").on("click",function(){ clearTimeout(timeout);//停止单击 ...

  3. Unrecoverable error: corrupted cluster config file.

    from: https://www.cnblogs.com/topicjie/p/7603227.html 缘起 正在欢乐的逗着孩子玩耍,突然间来了一通电话,值班人员告诉我误重启了一台服务器,是我负责 ...

  4. 【angularJS】Directive指令

    AngularJS 通过被称为 指令 的新属性来扩展 HTML.指令是扩展的 HTML 属性,带有前缀 ng-. 内置指令 1.ng-app 指令初始化一个 AngularJS 应用程序. 定义了 A ...

  5. 自定义vue全局组件use使用(解释vue.use()的原理)

    我们在前面学习到是用别人的组件:Vue.use(VueRouter).Vue.use(Mint)等等.其实使用的这些都是全剧组件,这里我们就来讲解一下怎么样定义一个全局组件,并解释vue.use()的 ...

  6. 记一次 FastAdmin CMS 内容提示空的问题

    记一次 FastAdmin CMS 内容提示空的问题 有小伙伴反馈 FastAdmin CMS 安装后出现内容有文字,但提示错误 的问题. 我在本地重新安装测试并没有发现这个问题,一切正常,编辑器也可 ...

  7. video4linux(v4l)使用摄像头的实例基础教程与体会(转)

    1. video4linux基础相关     1.1  v4l的介绍与一些基础知识的介绍   I.首先说明一下video4linux(v4l).           它是一些视频系统.视频软件.音频软 ...

  8. JDBC查询实例

    作为Java与数据库交互最古老的.最基础的规范,JDBC提供了访问底层数据库的接口,其他ORM框架都是在JDBC这块基石上构建的.下面我们看一个基本的JDBC查询例子: package com.ins ...

  9. Cannot read property 'setState' of undefined

    You're using function() in your Promise chain, this will change the scope for this. If you're using ...

  10. HotSpot Stop-and-Copy GC

    rednaxelafx的Cheney算法的伪代码.如果不用forwarding的话,维护一个旧地址到新地址的映射也可以. 其中重点部分: void Heap::collect() { // The f ...