DRBD 数据镜像软件介绍
简介:
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 数据镜像软件介绍的更多相关文章
- DRBD 数据镜像软件
1>DRBD介绍 1>数据镜像软件DRBD介绍 分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络的块复制存储解 ...
- DRBD数据镜像与搭建
一.数据安全工具DRDB 1. 数据镜像软件DRDB介绍 分布式块设备复制,是基于软件.基于网络的块复制存储解决方案 作用:用于服务器之间的磁盘.分区.逻辑卷等进行数据镜像. 例如:当用户将数据写入本 ...
- DRBD(数据镜像)+hearbeat(自动切换)
DRBD 数据镜像软件 一.DRBD介绍 1.1.数据镜像软件DRBD介绍 分布式块设备复制(Distributed Relicated Block Deivce,DRBD),是一种基于软件.基于网络 ...
- Visual paradigm软件介绍
Visual paradigm软件介绍 说起Visual Paradigm你可能并不陌生,因为此前有一款功能强大的UML软件叫Visual Paradigm for UML,在这款软件在v11.1的时 ...
- R软件导入数据_r语言怎么导入数据_R软件导入数据
R软件导入数据_r语言怎么导入数据_R软件导入数据 R软件导入数据 1.Rcmdr安装包导入数据: 1.安装Rcmdr包,输入: install.packages("Rcmdr") ...
- Java机器学习软件介绍
Java机器学习软件介绍 编写程序是最好的学习机器学习的方法.你可以从头开始编写算法,但是如果你要取得更多的进展,建议你采用现有的开源库.在这篇文章中你会发现有关Java中机器学习的主要平台和开放源码 ...
- 【电子取证:FTK Imager篇】FTK Imager制作镜像详细介绍
FTK Imager制作镜像详细介绍 以DD镜像制造为例,详细介绍了FTK Imager创建镜像的过程,记得大学的时候学习这些没什么教程,找到的资料也是语焉不详,故在此啰嗦一番---[suy] 一.磁 ...
- 软件介绍(apache lighttpd nginx)
一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点.lighttpd是众多 ...
- 数据搬运工DSS~介绍
DSS介绍 DSS是为了实现异地数据同步而开发的一套.net平台的应用程序,它寄宿到windows服务上,由多个客户端和一个服务端组成,其中客户端用来收集数据(数据源端),服务端用来将数据写入指定数据 ...
随机推荐
- atom的设置
1.隐藏Keybinding Resolver Packages->Keybinding Resolver->Toggle.
- turtle海龟作图
个人心得:python这么火是有他的原因的,突然发现他的语言很有趣,库函数也很多. 这次是第一步,简单了解了一下turtle函数 import turtle import time def drawS ...
- win32窗口样式GWL_EXSTYLE
Private Const GWL_STYLE = (-16) '窗口样式 '窗口风格Private Const WS_CAPTION = &HC00000 ...
- hessian+spring集成应用
注意事项 ▲JAVA服务器端必须具备以下几点:---->包含Hessian的jar包---->设计一个接口,用来给客户端调用---->实现该接口的功能---->配置web.xm ...
- [LeetCode系列]爬梯问题的递归解法转换为迭代解法
有一个n阶的梯子, 你每次只能爬1阶或2阶, 请问共有多少种登顶的爬法?(正好爬完n阶, 不能多也不能少) 本题最优解是直接套用菲波那切数列即可(因为菲波那切数列的第n个元素正好等于第n-1个元素和第 ...
- jstl_core标签库
先导入这个 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 1 & ...
- 关于CSS单位:rem vh vw vmin vmax
rem(root em) 如果你给body设置了font-size字体大小,那么body的任何子元素的1em就是等于body设置的font-size demo: body { font-size: ...
- 登录MySQL非默认3306端口号的语句
这里登陆的是mysql3308端口号的数据库 mysql -P3308 -p用户名 -u密码
- m'ybatis 一对一 一对多 配置详解
javabean: package com.me.model; import java.io.Serializable; import java.util.Date; import java.util ...
- Clustershell集群管理
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...