zoukankan      html  css  js  c++  java
  • DRBD(Distributed Replicated Block Device) 分布式块设备复制 进行集群高可用方案

    DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
    外文名
    DRBD
    drbdadm
    高级管理工具
    drbdsetup
    置装载进kernel的DRBD模块
    drbdmeta
    管理META数据结构

    目录

    DRBD基础

    编辑
    Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
    DRBD LogoDRBD Logo
    数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)
    DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。
    DRBD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。
    工具:
    drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令,
    drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用
    drbdmeta:管理META数据结构,平时很少直接用。
    在DRBD中,资源是特指某复制的存储设备的所有方面。包括资源名称、DRBD设备(/dev/drbdm,这里m是设备最小号,最大号可到147)、磁盘配置(使本地数据可以为DRBD所用)、网络配置(与对方通信)
    每个资源有个角色,是Primary或Secondary,下面简称“主”和“备”
    主角色的DRBD设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的raw或直接IO访问。
    备角色的DRBD设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。
    角色可以改变。

    DRBD功能

    编辑
    单主模式:典型的高可靠性集群方案。
    复主模式:需要采用共享cluster文件系统,如GFS和OCFS2。用于需要从2个节点并发访问数据的场合,需要特别配置。
    复制模式:3种模式:
    协议A:异步复制协议。本地写成功后立即返回,数据放在发送buffer中,可能丢失。
    协议B:内存同步(半同步)复制协议。本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失。
    协议C:同步复制协议。本地和对方写成功确认后返回。如果双机掉电或磁盘同时损坏,则数据可能丢失。
    一般用协议C。选择协议将影响流量,从而影响网络时延。
    有效的同步:按线性而不是当初写的顺序同步块。同步损坏时间内的不一致数据。
    在线的设备检验:一端顺序计算底层存储,得到一个数字,传给另一端,另一端也计算,如果不一致,则稍后进行同步。建议一周或一月一次。
    复制过程的一致性检验:加密后,对方若不一致则要求重传。防止网卡、缓冲等问题导致位丢失、覆盖等错误。
    Split brain:当网络出现暂时性故障,导致两端都自己提升为Primary。两端再次连通时,可以选择email通知,建议手工处理这种情况。
    当数据写在缓冲区里,没有真正写到磁盘上时,系统崩溃会导致数据丢失。而disk flush是指将数据真正写到磁盘上后才返回。
    有些带电池的硬盘控制器,如带电池的带点出Dell PERC Raid卡,不但自带缓存而且自带电池,会在系统意外断电或者崩溃后将最后的数据写入磁盘,对这类控制器,可以使用disk flush,从而在保证性能的前提下提高了数据的安全性。
    磁盘错误处理策略:
    传递给上层:可能造成文件系统remounting成只读,不推荐。
    对上层屏蔽:用另一端的相应块进行读写,应用不中断。可以在任何方便的时候再切换。
    不一致的(inconsistent)数据:不能以任何方式访问和使用的数据。如正在同步时的目标节点数据,这些数据不能识别,不能mount,甚至不能通过磁盘的自动检测。
    过期的(outdated)数据:在备机上的数据,与主机一致,但不需要同步。如主备机网络中断后,备机上的数据就是过期的。
    DRBD有接口允许应用程序在网络中断时将备机数据标识为过期的。DRBD拒绝将这个节点提升为主角色。这些管理接口在Heartbeat框架上得到完整实现。
    一旦过期资源的复制链接恢复,他的过期标志自动清除,接着进行后台同步。

    工作原理

    在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,
    切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了.
    DRBD的工作原理如下图:
    +--------+ | 文件系统 | +--------+
    |
    V
    +--------+| 块设备层 | | (/dev/drbd1) +--------+
    | |
    V V
    | 本地硬盘 | | (/dev/hdb1) | | 远程主机硬盘 | | (/dev/hdb1) |
    关于安装及配置 ,请看参考链接。[1] 

    版本

    2012年12月4日,DRBD 9 beta 发布,支持多节点高可用性。
  • 相关阅读:
    java基础>包、访问权限、命名规范 小强斋
    java基础>Static 和 Final 关键字 小强斋
    java基础>对象的创建过程(初始化、析构、清理) 小强斋
    iPhone 上少用三元操作符 ? :
    QQ群人满了
    面向对象C语言(ObjectiveC)编程简介
    java Integer.ValueOf(int)和new Integer(int)性能比较
    关于在iPhone上合并2个应用程序(App)成一个
    java Preferences持久化使用示例
    Memcache VS MySQL Query Cache.
  • 原文地址:https://www.cnblogs.com/rainy-shurun/p/5335799.html
Copyright © 2011-2022 走看看