简介:

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. CF1114F Please, another Queries on Array?

    CF1114F Please, another Queries on Array? 考虑用线段树维护取模后的区间积和真正的区间积所含有的质因子. 每次询问查得这两个值后,一乘一除,即可算出该区间积的欧 ...

  2. BZOJ3594: [Scoi2014]方伯伯的玉米田【二维树状数组优化DP】

    Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美. 这排玉米一共有N株,它们的高度参差不齐. 方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感 ...

  3. echarts tooltips宽度设置

    提示文本太长显示不全,设置宽度后:

  4. jasmine 使用

    1. 下载浏览器运行测试包 https://github.com/jasmine/jasmine/releases 2.  解压,运行包含的测试 SpecRunner.html 3. 测试结果     ...

  5. App测试工具

    1.App性能测试与安全测试工具 性能测试工具:Itest(众测平台) 安全测试:Utest

  6. yii2自定义500错误

    由于项目想加预警监控,有一块儿是涉及到程序内部错误的500,这样的错误级别比较高,所以就需要捕获这样的错误,顺便自定义了一把视图样式 看了这篇博客,知道了如何去自定义自己错误页面 : http://t ...

  7. JAVASE02-Unit012: Unit07: XML语法 、 XML解析

    Unit07: XML语法 . XML解析 emplist.xml <?xml version="1.0" encoding="UTF-8"?> & ...

  8. golang里面检测对象是否实现了接口的方法

    写法有点怪异,记一下吧 _, implemented := this.delegate.(IGenTcpServerDelegate) if implemented { this.delegate.G ...

  9. shell中date命令对month进行加减操作的bug

    shell脚本中如何取上个月的月份呢?很容易能想到下面的命令: date +%Y%m -d '-1 month' 或者 date +%Y%m -d 'last month'   在大部分情况下这个命令 ...

  10. IP 地址 与 DNS

    IP地址转化 192.168.10.1 十进制,点分十进制地址 32位二进制数字序列,四段,八位 十进制与二进制转换00000000 = 000000001 = 2 * 0 = 100000010 = ...