当前位置:首页 > 作文大全 >

基于DRBD的数据热备程序的分析与部署

发布时间: 2022-03-24 09:08:37 浏览:

摘要:中小企业信息系统的建设日渐完善,对应用程序数据的热备要求也更加强烈,但其信息化资金有限,很难采用大型的集成商的数据热备软件。文章采用最少的资金投入实现数据热备的方法,通过对开源的分布式块设备复制系统进行分析和部署,实现小投资大回报。

关键词:开源软件;DRBD;数据热备

中图分类号:TP311     文献标识码:A     文章编号:1009-2374(2012)23-0084-03

1 概述

开源软件是描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。DRBD(Distributed Replicated Block Device)是就运行在Linux上开源的分布式块设备复制脚本。它通过块设备构建高可用的集群。通过系统内核模块和相关脚本实现。通过网络将整个块设备进行镜像实现数据存储的高可用性。可以看成是网络版的RAID1。该软件通过通用公共许可证(GNU GPL)发布,用户在许可协议允许的范围内自由分发和修改,使低成本的数据热备成为可能。在中小企业的信息化中,DRBD的优势得到体现。本文重点介绍了DRBD的原理和部署,通过对DRBD的原理的分析,以最小的投资完成高可用的服务器集群建设,保障数据安全、稳定。

2 DRBD简介

DRBD其实是介于文件系统和磁盘硬件之间的中间件。DRBD负责接收要写入文件系统的数据,并把数据写到本地磁盘,然后通过网络发送给另一台主机。另一台主机在DRBD守护进程的作用下再将接收到的数据存到自己的磁盘中。如图1所示为DRBD在Linux的I/O栈中的位置。

图1 DRBD在Linux的I/O栈中的位置

2.1 DRBD的工作流程

在图1中,从结构的底层开始,两台主机的网卡通过互联网或线缆相连,实现物理上和逻辑上的通信链路,该链路是基于TCP/IP协议的;它使两个DRBD守护进程进行通讯,实现同步;DRBD通过磁盘缓存对磁盘进行操作,而文件系统及其他祼设备会将DRBD认定为块设备,通过对块设备进行操作,实现对磁盘的操作,为了提高处理的效率,文件系统在操作块设备的过程中,引入缓存机制达到高效的写入效果。

2.2 DRBD的运行状态

运行DRBD的设备设定有一种状态类型,可能是“主”状态或“次”状态。节点处于“主”状态时,设备(/dev/drbdX)是可以访问的。在运行数据写入的过程中,数据被写入到本地的磁盘的同时,被发送到设备状态设定为“次”的主机上,并被写入其相对应的磁盘中。“次”设备只是简单地把接收到的数据写入到自己的磁盘中。而数据的读取同样也只有在标识状态为“主”的一端进行。在DRBD的8.0及以后的版本中,支持两种的主从关系模式,主要有单主模式和双主模式。上面已经介绍过的就是单主模式,DRBD的双主模式是8.0及以后的版本才支持的,而且需要特别配置,它主要是用于负载均衡集群中,两个节点并发访问数据而设

计的。

2.3 DRBD的复制模式

DRBD有三种复制同步方式,分别是异步复制协议、内存同步复制协议(也称半同步复制协议)以及同步复制协议。异步复制协议配置协议为A,它是在主节点将数据写入到本地TCP发送缓存区的时候就将同步数据发送到次节点上。如此一来同步的速度较快,但是在发生故障的时候,就会引起数据丢失。造成故障发生前的数据是一致的,而处于缓存的数据完全丢失。内存同步复制协议配置协议为B,为了尽快完成数据的同步,在主节点上进行写操作时,就认为本地磁盘的写入和次节点的数据写入已经同步完成,而事实是数据还在内存中等待实际的写入。如此一来,在没有实际完成写入的时候故障就会造成内存数据丢失。正常情况下,停电或故障都会造成两边的数据同步被破坏。同步复制协议配置协议为C,在主节点上的写操作是在主次磁盘写入已被证实后才确认同步完成。这就保证了数据同步在两端完成,不会因为故障而造成同步失效,引起数据的不一致。即使有数据丢失,主次两端的数据还是一致的。因此,在DRBD技术设置最常用的复制协议是协议C。

2.4 DRBD 的优点

目前现行的多数高可用性集群系统使用的是共享存储器(如HP的存储),存储器通过共享的SCSI总线或光纤通道连接多个节点。而DRBD作为一个类似共享的设备时,不需要特别的硬件支持。作为开源的软件,DRBD的使用不收取费用。在运行的过程中,DRBD运行时对处理器和内存资源的使用相对较小,能减少服务器负担。

3 DRBD的部署与应用

图2 DRBD部署图

为了保障数据存储的安全性和高可用性,通常用两台硬件配置一样的服务器作为硬件服务平台(如图2)。通过配置高可用集群(high availability clusters)进行主次状态和服务程序开关的切换。高可用集群简称为HA,它主要是守护进程Hearbeat监测系统服务的运行状态,当HA监测到DRBD主服务停止后,次状态服务器在HA的作用下自动转为主状态,通过运行脚本的起动,将/dev/drbdx进行挂载使用,并启动相应的服务进程,从而保证应用服务不间断。在Linux系统下安装DRBD相对简单,但也存在以下需要注意的

问题。

3.1 系统的准备

通常Linux操作系统安装后,要安装DRBD需要重新编译内核或增加块设备支持模块。重新编译内核的工作量较大,建议通过加载DRBD内核模块来实现,加载命令为:

#Modprobe drbd

同时还需要在hosts中添加主机名和IP信

息。如:

#vi/etc/hosts

增加以下两行:

10.1.1.4 drbd1

10.1.1.5 drbd2

完成这些准备工作后,可以开始配置DRBD的配置文件drbd.conf。

3.2 使用DRBD

通过查看proc文件系统的DRBD查看其运行状态,可以看到ro显示主次关系,ds显示同步状态。使用命令:

#drbdadm primary all

将其中一台服务器设置为主服务,这时两端的数据就会开始同步,当同步完成后,先要对DRBD建立的磁盘进行初始化,命令为:

dd if=/dev/zero of=/dev/drbdx bs=1M count=100。

初始化以后,建立可供系统使用的文件系统,然后加载使用。在DRBD运行正常的情况下,将文件服务应用程序部署在DRBD运行的两台服务器上,在配置的过程中,直接将已经加载的DRBD文件系统挂载到服务器上,使服务程序能够直接操作DRBD磁盘。当DRBD完全部署完成以后,任务的程序在使用DRBD“存储”的过程中,就跟使用原来的文件系统一样。

3.3 应用DRBD

DRBD启动后建立一个介于文件系统和磁盘之间的块设备,但用户在对DRBD的访问跟直接访问磁盘的感受是一样的。因此,任何需要保证高可用性的数据都可以存放在主状态的DRBD建立的块设备上,如网站、文件服务、数据库等。

4 结语

通过开源的软件DRBD部署使用,为企事业单位在信息化方面减少了资金投入,同时达到了保障数据的安全性、应用的连续性。该程序保证两台服务器之间磁盘数据的同步,在故障发生时,通过实时的服务转换,保障数据的安全性和高可用性,为企业的信息数据安全提供保障。

参考文献

[1] 魏永明,等.Cobet,Rubini,Kroah-Hartman.Linux设备驱动程序(第三版)[M].北京:中国电力出版社,2005.

[2] Wikipedia.Standard RAID levels [EB/LO]. http://en.wikipedia.org/wiki/RAID_1#RAID_1.

[3] 维基百科.GNU通用公共许可协议[EB/LO].http://zh.wikipedia.org/wiki/GNU%E9%80%9A%E7%94%A8%E5%85%AC%E5%85%B1%E8%AE%B8%E5%8F%AF%E8%AF%81.

[4] Florian Haas,Philipp Reisner,Lars Ellenberg.The DRBD User"s Guide[EB/LO]..cn/qkpdf/jsqy/jsqy201208/jsqy20120835-1.pdf" style="color:red" target="_blank">原版全文 相关热词搜索: 部署 程序 分析 数据 DRBD

版权所有:无忧范文网 2010-2024 未经授权禁止复制或建立镜像[无忧范文网]所有资源完全免费共享

Powered by 无忧范文网 © All Rights Reserved.。冀ICP备19022856号