`
wb284551926
  • 浏览: 550496 次
文章分类
社区版块
存档分类
最新评论

Linux下DRBD配置(转载)

    博客分类:
  • DRBD
阅读更多

 

 一、drbd 工作原理

DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中。 本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会 保留有一份相同的数据,可以继续使用.在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。

 

 

 

二、环境配置:

 

 

1、操作系统:radhat 5.4

2、主服务器:

主机名:master

IP192.168.2.124

镜像的硬盘:/dev/hdb

3  备份服务器

主机名:slave

IP192.168.2.125

镜像的硬盘:/dev/hdb

 

 

 

三、安装drbd

 

 

1、下载源代码:http://oss.linbit.com/drbd/。此次安装的版本是drbd-8.3.5

2、把下载好的drbd-8.3.5.tar.gz解压

[root@master ] # tar zxvf drbd-8.3.5.tar.gz

[root@master ] # cd drbd-8.3.5

[root@master ] # make 

[root@master ] #  make install

[root@master ]# modprobe drbd            @加载安装drbd模块

[root@master ]# lsmod |grep drbd       

drbd         271736  0

@通过lsmod检查是否已经成功,如果有类似内容输出,则表示drbd安装成功了

[root@master ]# mknod /dev/drbd0 b 147 0    @创建硬件设备drbd

 

 

 

四、配置drbd

 

 

DRBD运行时,会读取一个配置文件/etc/drbd.conf.这个文件里描述了DRBD设备与硬盘分区的映射关系,数据一旦写入磁盘并发送到网络中就认为完成了写入操作。

1drbd.conf的配置参数说明

Protocol

Protocol  A         @数据一旦写入磁盘并发送到网络中就认为完成了写入操作

Protocol  B         @收到接收确认就认为完成了写入操作。

Protocol  C         @收到写入确认就认为完成了写入操作。

2global

global { usage-count yes; }         @是否参加DRBD使用者统计,默认是yes

3common

common { syncer { rate 1M; } }

@设置主备节点同步时的网络速率最大值,单位是字节.

4resource

一个DRBD设备(:/dev/drbdX),叫做一个"资源"。里面包含一个DRBD设备的主备节点的的ip信息,底层存储设备名称,设备大小,meta信息存放方式,drbd对外提供的设备名等等。

resource r0 {

protocol C;         @使用协议C.表示收到远程主机的写入确认后,则认为写入完成.

net {

     cram-hmac-alg sha1;            @设置主备机之间通信使用的信息算法.

     shared-secret "FooFunFactory";

   }

@每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置.

on master {

    device    /dev/drbd0;

    disk      /dev/ hdb;

    address   192.168.2.124:7898;    @设置DRBD的监听端口,用于与另一台主机通信

    meta-disk  internal;

   }

on slave{

    device    /dev/drbd0;

    disk      /dev/ hdb;

    address   192.168.2.124:7898;

     meta-disk  internal;

    }

 }

5、以下为测试时的完整配置

global {

  usage-count yes;

}

common {

  protocol C;

}

resource r0 {

  on master {

    device    /dev/drbd0;

    disk      /dev/hdb;

    address   192.168.2.124:7789;

    meta-disk  internal;

  }

  on slave {

    device    /dev/drbd0;

    disk      /dev/hdb;

    address   192.168.2.125:7789;

    meta-disk internal;

  }

}

6、双机两个节点的配置文件是一模一样的。DRBD源码目录下有个样本,里面说得比较详细。

五、启动drbd

1、创建matadata

在启动DRBD之前,需要分别在两台主机的hdb分区上,创建供DRBD记录信息的数据块.分别在两台主机上执行:

[root@master ]#drbdadm create-md r0

[root@slave ]#drbdadm create-md r0

备注:

1) r0是在drbd.conf里定义的资源名称.

2) 当执行命令”drbdadm create-md r0时,出现以下错误信息。

Device size would be truncated, which

would corrupt data and result in

'access beyond end of device' errors.

You need to either

 * use external meta data (recommended)

 * shrink that filesystem first

 * zero out the device (destroy the filesystem)

Operation refused.

Command 'drbdmeta 0 v08 /dev/xvdb internal create-md' terminated with exit code 40

drbdadm create-md r0: exited with code 40

解决办法:初始化磁盘文件格式, dd if=/dev/zero bs=1M count=1 of=/dev/sdXYZ; sync

[root@master ]#  dd if=/dev/zero bs=1M count=1 of=/dev/hda3; sync

2.启动DRBD,分别在两台主机上执行

[root@master ]# /etc/init.d/drbd start

[root@slave ]# /etc/init.d/drbd start

备注:

如果在启动过程中找不到node时,查看是/dev/hda3是否是处于挂载状态,如果是,umount命令取消挂载

3. 查看DRBD的状态,分别在两台主机上执行

[root@slave drbd]# cat /proc/drbd


 

对输出的含义解释如下:

ro表示角色信息,第一次启动drbd时,两个drbd节点默认都处于Secondary状态,

ds是磁盘状态信息,“Inconsistent/Inconsisten”,即为“不一致/不一致”状态,表示两个节点的磁盘数据处于不一致状态。

Ns表示网络发送的数据包信息。

Dw是磁盘写信息

Dr是磁盘读信息

4、设置主节点

由于默认没有主次节点之分,因而需要设置两个主机的主次节点,选择需要设置为主节点的主机,然后执行如下命令:

[root@master]#drbdsetup /dev/drbd0 primary o

或者执行下面命令也是可以的

[root@ master]#drbdadm -- --overwrite-data-of-peer primary all

第一次执行完此命令后,在后面如果需要设置哪个是主节点时,就可以使用另外一个命令:

[root@ master]#/sbin/drbdadm primary r0或者/sbin/drbdadm primary all

再次查看drbd状态,

 


 

可以看到现在状态已经是primary/secondary,而且磁盘信息是upTodat/Inconsistent(实时/不一致),而且已经开始同步两台机器对应磁盘的数据

过了一会,我们再次查看drbd状态,如下:


 

此时的状态信息就是primary/secondary,磁盘信息是UpToDate/UpToDate,说明已经同步完成了。

六、测试同步

把主机上的DRBD设备挂载到一个目录上进行使用。备机的DRBD设备无法被挂载,因为它是用来接收主机数据的,DRBD负责操作。

主备节点切换有两种方式,分别是停止drbd服务切换和正常切换,依次介绍:
1
、停止drbd服务切换
关闭主节点服务,此时挂载的drbd分区就自动在主节点卸载了,然后在备用节点执行切换命令:
[root@drbd2 ~]#drbdadm primary all
此时会报错:
2: State change failed: (-7) Refusing to be Primary while peer is not outdated
Command 'drbdsetup 2 primary' terminated with exit code 11
因此,必须在备用节点执行如下命令:
[root@drbd2 ~]#drbdsetup /dev/drbd0 primary –o
或者
[root@drbd2~]#drbdadm -- --overwrite-data-of-peer primary all
此时就可以正常切换了。
当在备用节点执行切换到主节点命令后,原来的主用节点自动变为备用节点。无需在主用节点再次执行切换到备用节点的命令。
2
、正常切换
在主节点卸载磁盘分区,然后执行
[root@drbd1 ~]#drbdadm secondary all
如果不执行这个命令,直接在备用节点执行切换到主节点的命令,会报错:
2: State change failed: (-1) Multiple primaries not allowed by config
Command 'drbdsetup 2 primary' terminated with exit code 11
接着,在备用节点执行
[root@drbd2 ~]#drbdadm primary all
最后在备用节点挂载磁盘分区即可:
[root@drbd2 ~]#mount /dev/drbd0 /mnt

3、注意点

1mount drbd设备以前必须把设备切换到primary状态。

2两个节点中,同一时刻只能有一台处于primary状态,另一台处于secondary状态。

3)处于secondary状态的服务器上不能加载drbd设备。

4)主备服务器同步的两个分区大小最好相同,这样不至于浪费磁盘空间,因为drbd磁盘镜像相当于网络raid 1

 

查阅相关文档:

http://www.cnblogs.com/feisky/archive/2011/12/25/2310346.html

http://lucklong.blog.51cto.com/23691/591804

http://blog.sina.com.cn/s/blog_68a062130100jk1k.html

http://www.ixdba.net/a/os/linux/2010/1011/795.html

 

 

 

 

分享至   一键收藏,随时查看,分享好友!
hnraysir
1人
了这篇文章
类别:应用┆阅读(12543)┆评论(2) ┆ 返回博主首页返回博客首页

文章评论

 
[1楼]      hnraysir 回复
2014-03-06 11:13:31
总结得相当不错,支持下。
by www.elesos.com 站长

[2楼]      hnraysir 回复
2014-03-06 11:13:41
总结得相当不错,支持下。
by www.elesos.com 站长

 
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容:
 
分享到:
评论

相关推荐

    linux 下 DRBD 基础

    【Linux下DRBD基础】 DRBD,全称为Distributed Replicated Block Device,是一种软件实现的分布式存储解决方案,它能够在无共享环境下实现服务器间块设备内容的实时、透明、同步或异步复制。DRBD的核心功能集成在...

    DRBD配置指南主从模式

    在主从模式下,DRBD配置通常分为两部分:主节点和从节点。下面我们将详细介绍DRBD在主从模式下的配置步骤。 ### 一、系统环境准备 在开始配置之前,确保你的系统是支持DRBD的,例如这里提到的是CentOS 5.4 i386。...

    drbd heartbeat 安装 linux centos

    标题中的“drbd heartbeat安装 Linux CentOS”涉及到的是在Linux CentOS操作系统上部署DRBD(Distributed Replicated Block Device)和Heartbeat的心跳同步服务。DRBD是一种分布式存储解决方案,用于实现磁盘镜像,...

    DRBD keepalived负载搭建配置

    在本配置中,DRBD 结合 heartbeat 和 keepalived 一起使用,构建了一个高可用的 MySQL 环境。 首先,让我们详细了解 DRBD 的安装和配置: 1. 安装 DRBD: 在 CentOS 或 RHEL 系统上,可以使用 `yum install` 命令...

    drbd安装配置[收集].pdf

    在单硬盘环境下,配置过程基本相同,但只需要将单一硬盘的分区信息添加到DRBD配置中。 配置完成后,启动DRBD服务,进行初始同步,并监控其状态以确保数据一致性。在主节点上,数据的写入会同时被复制到备节点,从而...

    LNH_MySQL 14-drbd配置文件参数讲解及实际配置.mp4

    LNH_MySQL 14-drbd配置文件参数讲解及实际配置.mp4

    drbd双机配置

    drbd双机配置 简单明了,适合初学者

    drbd9.0官方中文文档资料.zip

    DRBD(Distributed Replicated Block Device)是一种开源的分布式存储解决方案,主要用在Linux系统上,用于实现数据的高可用性和容错性。DRBD9是其最新的版本,提供了更高效的数据复制和更高的性能。本压缩包“drbd...

    基于DRBD的Linux高可用集群.pdf

    "基于DRBD的Linux高可用集群" Linux高可用集群的重要性 随着医院电子病历系统(E MR )和放射科信息系统 (RIS )在医疗信息化中的重要性日益增加,对这两套系统的依赖性也与日俱增。保证ftp服务器的7*27小时可用性与...

    利用DRBD实现不同单板上的磁盘数据备份

    一、DRBD 详解 DRBD,全称 Distributed Replicated Block Device,是一种分布式...正确安装和配置DRBD涉及内核模块的加载、源码编译、环境设定以及日常操作管理,确保系统在任何情况下都能保持数据安全和服务稳定。

    DRBD官方指南(中文)

    首先,DRBD的核心功能通过Linux内核模块实现,该内核模块负责创建一个虚拟的块设备,使得DRBD能够部署在Linux I/O堆栈的较低层次,从而达到高性能和高可用性。DRBD的灵活性使其成为一种通用的高可用块复制解决方案,...

    DRBD官方文档

    DRBD主要用在Linux环境下,确保数据的持续可用性和可靠性。DRBD官方文档是学习和参考DRBD相关知识的重要资料。 文档中提到的"DRBD User’s Guide"是由Brian Hellman, Florian Haas, Philipp Reisner和Lars ...

    drbd安装使用指南中文的

    DRBD是由Linux Kernel中的一个模块实现的,它通过网络将一个磁盘设备的数据实时镜像到另一个节点,形成主-备模式或双活模式。当主节点发生故障时,备节点可以立即接管服务,确保业务连续性。DRBD支持多种操作模式,...

    DRBD9和LINSTOR用户指南中文版.doc

    在集群系统上部署DRBD,需要了解如何配置和启动DRBD服务,以确保在多个节点间正常工作。 **LINSTOR** LINSTOR是针对大型集群的软件定义存储管理系统,它允许用户集中管理存储卷和DRBD资源。这对于简化管理和提高...

    drbd 原理图和依赖关系

    DRBD依赖于Linux内核的驱动程序来运行。在安装和配置DRBD时,需要确保内核版本支持DRBD模块,并将其加载到系统中。此外,通常还需要网络堆栈、网络协议(如TCP/IP)以及可能的加密库(如SSL/TLS)来安全地传输数据...

    Heartbeat DRBD MySQL 高可用方案搭建.docx

    3. 配置DRBD资源文件,指定主从节点、设备和同步参数。 4. 初始化DRBD设备,并将其挂载到MySQL的数据目录。 ### 安装MySQL 1. 上传并解压MySQL软件包。 2. 配置MySQL服务器,包括设置root密码、初始化数据库、修改...

Global site tag (gtag.js) - Google Analytics