文档章节

DRBD概要介绍

dhb_oschina
 dhb_oschina
发布于 2016/04/01 09:58
字数 1993
阅读 67
收藏 1

 

DRBD简要介绍

DRBD,Distributed Replicated Block Device

分布式冗余复制块设备,由相关Linux内核模块和脚本组成,用以构建高可用性集群(HA, High Availability clusters)。

基于软件的,无共享架构的,冗余复制的存储解决方案,可在服务器之间的对块设备(磁盘,磁盘的某个分区,LVM逻辑卷等块设备)进行远程实时镜像(mirror)。

其实现方式是通过网络来镜像整个块设备,因此,可以把DRBD看作是一种基于网络的RAID-1。

 

========

高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组计算机系统内部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断。

==========

无共享架构(shared-nothing architecture)

Shared nothing架构(shared-nothing architecture)是一种分布式计算架构。架构中的每一个节点( node)都是独立、自给的,而且整个系统中没有单点竞争。

Shared Nothing在Web应用开发中尤其受到欢迎,究其原因是这种方案提供的scalability。在一个纯Shared Nothing系统中,通过简单地增加一些廉价的计算机做为系统的节点却可以获取几乎无限的扩展。正是由于Shared Nothing架构中不存在单一瓶颈而降低系统运行速度。Google 称之为sharding。

Shared nothing系统通常需要将他的数据分布在多个节点的不同数据库中(不同的计算机处理不同的用户和查询)或者要求每个节点通过使用某些协调协议来保留它自己的应用程序数据备份,这通常被成为数据库Sharding。

 

DRBD的基本特性

  1. 实时性:当应用对磁盘的数据进行修改或修改完成时,复制立即发生。
  2. 透明性:应用程序的数据存储在镜像设备上是独立和透明的,数据可存储在不同的服务器上。
  3. 同步镜像和异步镜像
  • 同步镜像,当本地发申请进行写操作进行时,同步写到两台服务器上
  • 异步镜像,当本地写申请已经完成对本地的写操作时,开始对对应的服务器进行写操作。

 

DRBD架构概要

 

image

Heartbeat的作用

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

failover:失效转移。通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换。

image

 

DRBD与RAID-1的异同

相同点

  • 都是做镜像(Mirroring),全冗余。
  • 都具有高可靠性和安全性。
  • 高可用性。支持"热替换",即不断电的情况下对故障磁盘进行更换。
  • 磁盘的利用率都只有50%

 

不同点

  • 实现机制不同。DRBD通过网络进行Mirror镜像备份。
  • DRBD会感知设备底层的组成部分。而RAID-1虽然有两个存储设备,但是对于使用RAID-1系统的应用来说,并不会感知到底层的组成部分,甚至如果有一块存储设备读/写失效时,也不会被应用感知。

image

 

DRBD组件

分为内核模块和用户空间管理工具.

DRBD技术的核心功能是Linux内核模块实现的。具体来说,DRBD包含一个虚拟的块设备。

DRBD技术,是由Linux内核架构所支撑的,它建立在不可知的架构层上面。

因此,DRBD不可能添加了上层所具备的一些新特性。例如,DRBD技术不能自动检测文件系统损坏或添加双主动群集能力,像Ext3或者XFS文件系统。

 

DRBD的另外一个重要组件是用户空间管理工具User space tools,管理和配置DRBD的资源(resource),与DRBD内核模块进行通信。

安装了该工具后,主要有如下命令:

  • drbdadm:高层的DRBD程序管理套件工具。它从配置文件/etc/drbd.conf 中获取所有配置参数
  • drbd-overview
  • drbdsetup
  • drbdmeta

DRBD的角色

在DRBD中,所有资源都有自己的角色,包括主(Primary)或者次(Secondary)。

Primary设备,可以进行不受限制的读/写操作,可创建和挂载文件系统、初始化或者是直接I/O 的块设备等等。

Secondary设备,可以接收所有来自对等设备(Peer)的更新,但是,完全拒绝访问也就是不能被使用(挂载)也不能被读/写访问,原因是为了保持缓存的一致性。

 

在实际集群中,主和备的概念是根据存储的可用性的而确定,通常情况下在高可用环境中主节点也往往是活动的节点,但是这不是必须的,也就是资源角色之间可以转换。

转换的方式主要有人工干预(manual intervention)或者用集群管理工具进行自动转换。其中资源从Secondary变为Primary,叫做升级(promotion),反之,资源从Primary变为Secondary,叫做降级(demotion)

 

人工干预: http://drbd.linbit.com/users-guide-9.0/s-switch-resource-roles.html

自动转换: http://drbd.linbit.com/users-guide-9.0/s-automatic-promotion.html

peer:对等端,在两个NameNode的环境下,指另外一个NameNode

 

DRBD的资源

在DRBD中,资源是指所有特定的可复制数据集合的总称,包括:

  • 资源(resource)

image

  • DRBD设备,DRBD管理的虚拟块设备。它有一个主设备号为147的设备,默认的它的次要编号从0开始。相关的DRBD块设备命名为/dev/drbdX,其中X是设备的次要号码

  image

  • 配置文件。包括磁盘配置、网络配置。

 

Metadata 资源的两种存储方式:internally和externally。存储方式是在每个resource配置段中指定的。这两种存储方式各有优缺点。

Internal metadata:

一个resource被配置成使用internal metadata,意味着DRBD把它的metadata,和实际生产数据存储于相同的底层物理设备中。该存储方式是在设备的最后位置留出一个区域来存储metadata。

优点:因为metadata是和实际生产数据紧密联系在一起的,如果发生了硬盘损坏,不需要管理员做额外的工作,因为metadata会随实际生产数据的丢失而丢失,同样会随着生产数据的恢复而恢复。

缺点:如果底层设备只有一块物理硬盘(和RAID相反),这种存储方式可能产生写竞争,对写操作的吞吐量有负面影响,因为应用程序的写操作请求会触发DRBD的metadata的更新。如果metadata存储于硬盘的同一块盘片上,那么,写操作会导致额外的两次磁头读写移动。

External metadata:

该存储方式比较简单,就是把metadata存储于一个和生产数据分开的专门的设备块中。

优点:对某些写操作,提供某些潜在的改进。

缺点:因为metadata和生产数据是分开的,如果发生了硬盘损坏,在更换硬盘后,需要管理员进行人工干预,从其它存活的节点向刚替换的硬盘进行完全的数据同步。

什么时候应该使用Exteranl的存储方式:设备中已经存有数据,而该设备不支持扩展(如LVM),也不支持收缩(shrinking)。

© 著作权归作者所有

共有 人打赏支持
dhb_oschina
粉丝 9
博文 221
码字总数 190651
作品 0
程序员
私信 提问
Flashcache+DRBD环境搭建

Flashcache+DRBD环境搭建概要 准备环境 两台配置一样的虚拟机; 两台机器都安装了flashcache和DRBD,并且这两台机器都为DRBD的备用节点; flashcache搭建步骤参考:Flashcache开源混合存储方...

dhb_oschina
2016/04/01
46
0
Heartbeat+DRBD+MySQL高可用方案

Heartbeat+DRBD+MySQL高可用方案 =============================================================================== 概述: ==========================================================......

逐梦小涛
06/26
0
0
Heart+DRBD+MySQL高可用架构部署过程

前言 本文涉及到技术有Heartbeat、DRBD、MySQL。 Heartbeat介绍 详见官网http://linux-ha.org/wiki/MainPage或blog.51cto.com/lzhnb DRBD介绍 详见官网http://www.drbd.org/或blog.51cto.co......

北座城市
08/16
0
0
CentOS 6.4 & 6.5下DRBD的安装配置

基础: 磁盘镜像技术DRBD DRBD(Distributed Replicated Block Device)是由内核模块和相关脚本构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。它允许用户在远程机器上建立...

eui988
2015/01/31
0
0
Heartbeat+DRBD+MySQL高可用方案

1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证。默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自动切...

yanfeilai528
2017/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JVisualVM监控远程jar包运行情况

1.准备一个jar文件,需要放到服务器上有运行 tuyou-user-SNAPSHOT-0.0.1.jar 2.上传至服务器,启动jar文件: nohup java -Djava.rmi.server.hostname=192.168.104.135 -Dcom.sun.management...

日落北极
19分钟前
2
0
ReentrantReadWriteLock 源码

ReentrantReadWriteLock有五个内部类,五个内部类之间也是相互关联的。内部类的关系如下图所示。 如上图所示,Sync继承自AQS、NonfairSync继承自Sync类、FairSync继承自Sync类;ReadLock实现...

狼王黄师傅
21分钟前
3
0
详解netty原理分析

Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动...

小刀爱编程
27分钟前
2
0
Vue props用法小结

Vue props用法详解 组件接受的选项之一 props 是 Vue 中非常重要的一个选项。父子组件的关系可以总结为: props down, events up 父组件通过 props 向下传递数据给子组件;子组件通过 events...

peakedness丶
31分钟前
4
0
pycharm 教程(一)安装和首次使用

pycharm 教程(一)安装和首次使用 2017-12-05 09:19 by 菜鸟飞呀飞, 134207 阅读, 1 评论, 收藏, 编辑 PyCharm 是我用过的python编辑器中,比较顺手的一个。而且可以跨平台,在macos和windo...

linjin200
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部