DRBD使用指南

概念:

  • 分布式复制块设备(DRBD技术)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像。
  • DRBD的全称为:Distributed ReplicatedBlock Device(DRBD) 分布式块设备复制
  • DRBD由内核模块和相关脚本构成,用以构建高可用集群。其实现方式是通过网络镜像整个设备。可把它看作一种网络RAID。允许用户在远程机器上建立一个本地块设备的实时镜像
  • 工作流程:(DRBD Primary)负责接收数据,把数据写到本地磁盘并发送给另一台主机(DRBD Secondary)。另一个主机再将数据存到自己的磁盘
  • 一个DRBD系统由两个节点构成,与HA集群类似:也有主备节点之分,在带有主要设备的节点上,应用和系统可运行和访问DRBD设备(/dev/drbd*)


DRBD的三种复制模式:

协议A:异步复制协议。

一旦本地磁盘写入已完成且数据包已在发送队列中则写被认为是完成的。在一个节点发生故障时可能发生丢失,因为被写入到远程节点上的数据可能仍在发送队列。

尽管在故障转移节点上的数据是一致的但没有及时更新。通常用于地理上分开的节点(本地写成功后立即返回,数据放在发送buffer中,可能丢失)

协议B:内存同步(半同步)复制协议。

一旦本地磁盘写入完成且复制数据包达到了对等节点则认为写在主节点上被认为是完成的。

数据丢失可能发生在参加的两个节点同时故障的情况,因为在传输中的数据可能不会被提交到磁盘(本地写成功并将数据发送到对方后立即返回,如果双机掉电,数据可能丢失)

协议C:同步复制协议。

只有在本地和远程节点的磁盘均确认了写操作完成时写才被认为完成。没有任何数据丢失!所以这是一个群集节点的流行模式,但I/O吞吐量依赖于网络带宽

一般使用协议C,但选择C协议将影响流量,从而影响网络时延。为了数据可靠性在生产环境使用时须慎重使用一种协议(本地和对方写成功确认后返回。若双机掉电或磁盘同时损坏则数据可能丢失)

DRBD工作原理图:

DRBD是linux的内核的存储层中的一个分布式存储系统,可用使用DRBD在两台Linux服务器之间共享块设备,共享文件系统和数据。类似于一个网络RAID-1的功能,如图所示:

DRBD配置工具:

  • drbdadm:  高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令
  • drbdsetup: 配置装载进kernel的DRBD模块,平时很少用
  • drbdmeta: 管理META数据结构,平时很少用

DRBD配置文件:DRBD的主配置文件为/etc/drbd.conf

为了管理的便捷性通常会将些配置文件分多个部分,但都保存至/etc/drbd.d目录。主配置文件中仅使用"include"指令将这些配置文件片断整合。

通常/etc/drbd.d中的文件为global_common.conf和所有以.res结尾的文件。其中:

  1. global_common.conf中主要定义global段和common段
  2. 每个.res文件用于定义一个资源

global_common.conf:

  • global:

在配置文件中global段仅出现一次,且若所有配置信息都保存至同一个配置文件中而不分开为多个文件的话则global段必须位于配置文件最开始处

目前global段中可以定义的参数仅有minor-count, dialog-refresh, disable-ip-verification和usage-count。

  • common:

用于定义被每一个资源默认继承的参数,可在资源定义中使用的参数都可在common定义。实际应用中common段并非必须但建议将多个资源共享的参数定义在common段以降低配置复杂度

  • resource:

用于定义drbd资源,每个资源通常定义在一个单独的位于/etc/drbd.d目录中的以.res结尾的文件中。资源在定义时必须为其命名

每个资源段的定义中至少要包含两个host子段,以定义此资源关联至的节点,其它参数均可以从common段或drbd的默认中进行继承而无须定义

DRBD资源:

  • Resource name:  除空白字符的任意的ACSII码字符
  • DRBD device:  在双方节点上,此DRBD设备的设备文件;一般为/dev/drbdN,其主设备号147
  • Disk configuration:  在双方节点上各自提供的存储设备
  • Nerwork configuration:  双方数据同步时所使用的网络属性

DRBD 配置步骤:

  1. 安装drbd
  2. 配置资源文件(定义资料名称,磁盘,节点信息,同步限制等)
  3. 将drbd加入到系统服务chkconfig --add drbd
  4. 初始化资源组 drbdadm create-md resource_name
  5. 启动服务 service drbd start
  6. 设置primary主机并同步数据
  7. 分区、格式化/dev/drbd*
  8. 一个节点进行挂载
  9. 查看状态

DRBD支持的底层设备:

DRBD需构建在底层设备之上,然后构建出块设备。对用户来说DRBD设备就像是物理磁盘,可在其内创建文件系统。DRBD所支持的底层设备有以下这些类:

  • 磁盘或是磁盘的分区
  • soft raid设备
  • LVM的逻辑卷
  • EVMS(Enterprise Volume Management System,企业卷管理系统)的卷。
  • 其他任何的块设备

单主模式:

在单主模式下任何资源在任何特定的时间,集群中只存在一个主节点。正因为这样在集群中只能有一个节点可随时操作数据,这种模式可用在任何的文件系统上(EXT3、EXT4、XFS等)

部署DRBD单主节点模式可保证集群的高可用性(fail-over遇故障转移的能力)

双主模式:这是DRBD8.0之后的新特性

在双主模式下任何资源在任何特定的时间,集群中都存在两个主节点。由于双方数据存在并发的可能性这种模式需一个共享的集群文件系统,利用分布式的锁机制进行管理,如GFS和OCFS2。

部署双主模式时,DRBD是负载均衡的集群,这就需要从两个并发的主节点中选取一个首选的访问数据。这种模式默认是禁用的,如果要是用的话必须在配置文件中进行声明。


部署:

关闭防火墙限制及软件安装:  

   service iptables stop && setenforce 0

   yum -y install gcc kernel-devel kernel-headers flex ; export LC_ALL=C

   wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz &&  tar xzf drbd-8.4.1.tar.gz

   cd drbd-8.4.1

./configure --prefix=/usr/local/drbd --with-km --with-heartbeat --sysconfdir=/etc/drbd     # --with-km 激活内核模块 --with-heartbeat 激活heartbeat相关配置

   make KDIR=/usr/src/kernels/$(uname -r)/    # KDIR=指定内核源码路径,依实际情况设置(查内核路径:ls -l /usr/src/kernels/$(uname -r)/)

   make install

  mkdir -p /usr/local/drbd/var/run/drbd

  cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d

  chkconfig --add drbd  && chkconfig drbd on

  cd drbd  #安装drbd模块

  make clean  &&  make KDIR=/usr/src/kernels/2.6.32-220.17.1.el6.x86_64/

  cp drbd.ko /lib/modules/`uname -r`/kernel/lib/

  depmod

  modprobe drbd && lsmod | grep -i drbd

在两台主机之间配置host文件将名字指向对方:

  vim /etc/hosts

  10.0.0.7 data-1.localdomain     #建议增加去往此网段的路由到指定出接口

  10.0.0.8 data-2.localdomain     #建议增加去往此网段的路由到指定出接口

在两端主机内创建分区:

  数据区:     parted /dev/sda mklabel gpt  && parted /dev/sda mkpart logical ext3 20GB 20GB

  重读分区:  partprobe && cat /proc/partions

时间: 2024-11-05 14:36:20

DRBD使用指南的相关文章

DRBD

一般我们的机房要实现前端服务的高可用性,就需要共享存储.就我现在学习过程中所了解到的有几种解决办法,如:NFS,CIFS,ISCSI,DRBD.这里我们就说说DRBD是怎么回事,又怎么使用. 一.介绍. 我们还是先来看下在存储方面有哪几种类型的存储设备. DAS:Direct Attached Storage(直接附加存储),表示直接连在主机主板上的存储方式,如:连到主机上的SATA存储,SCSI存储,IDE存储,USB存储.这些都是啦.可以说就是直接由主板供电的.服务与存储在一起使用.然后我们

MySQL高可用配置

openstack高可用配置文档 介绍利用两台物理主机实现高可用的openstack云平台,这里主要说明mysql和rabbitmq的高可用配置. l  安装openstack云平台(两台主机上都部署openstack I版) 安装centos操作系统,由于以active-passive模式配置mysql等服务的高可用时,需要单独的硬盘分区来装载和同步mysql等服务的数据,所以安装系统时,在系统镜像配置文件里预留出2-3块20G左右单独的硬盘分区作为备用; Yum –y update &&

Pacemaker+Corosync+Drbd快速配置指南

1. 分布式块设备DRBD部署 1.1 基础环境初始化 1.2 部署DRBD环境 主备服务器都需要执行 # 更新系统内核,并重启服务器 [[email protected] ~]# yum install kernel-devel kernel -y [[email protected] ~]# reboot # 开始安装DRBD [[email protected] software]# tar zxf drbd-9.0.18-1.tar.gz [[email protected] drbd-

drbd主服务器ds状态变成了Diskless(磁盘IO错误引起)

heartbeat+drbd拓扑图 if 136网段=60网段   then 一.在拔掉60网段网线之前: drbd1主服务器负载很高,top的%wa达到60左右.cat /proc/drbd发现当前服务器同步状态变成了diskless(on-io-error detach;     #策略:发生I/O错误的节点将放弃底层设备,以diskless mode继续工作). 查message日志,发现15 号的时候磁盘同步状态就变成了Diskless,提示IO错误. Jun 15 08:56:06 d

最全解析如何正确学习JavaScript指南,必看!

划重点 鉴于时不时,有同学私信问我:怎么学前端的问题.这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了. "前端怎么学"应该因人而异,别人的方法未必适合自己.就说说我的学习方法吧:我把大部分时间放在学习js上了.因为这个js的学习曲线,先平后陡.项目实践和练习啥的,我不说了,主要说下工作之外的时间利用问题.我是怎么学的呢,看书,分析源码.个人这几天统计了一下,前端书籍目前看了50多本吧,大部分都是js的.市面上的书基本,差不多都看过. 第一个问题:看书有啥好处

微信Android接入指南

注:本文为微信Android终端开发工具的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉IDE的基本使用方法(本文以Eclipse为例),以及具有一定的编程知识基础等. 1.申请你的AppID 请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发. 2.下载微信终端开发工具包 开发工具包主要包含3部分内容:(其中,只有libammsdk.jar是必须的) - libammsdk.jar(每个第三方应用必须要导入该sdk库,

【资源共享】Rockchip I2C 开发指南 V1.0

2C设备的设备应用非常广泛,常见的包含重力传感器,触摸屏驱动芯片,音频解码等 这个文档是RK3399的I2C开发文档:<Rockchip I2C 开发指南 V1.0> 内容预览: 下载地址:http://developer.t-firefly.com/thread-12495-1-1.html

Spark性能优化指南——高级篇

Spark性能优化指南--高级篇 [TOC] 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题. 数据倾斜调优 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 绝大多数tas

&quot;WannaCry&quot;勒索病毒用户处置指南

"WannaCry"勒索病毒用户处置指南 原文: http://mp.weixin.qq.com/s/ExsribKum9-AN1ToT10Zog 前言:北京时间2017年5月12日晚,勒索软件"WannaCry"感染事件爆发,全球范围内99个国家遭到大规模网络攻击,被攻击者电脑中的文件被加密,被要求支付比特币以解密文件:众多行业受到影响,比如英国的NHS服务,导致至少40家医疗机构内网被攻陷,电脑被加密勒索:而我国众多行业也是如此,其中又以教育网最为显著,导致部分