基于HDFS的云数据备份系统
来源:吉林大学学报 更新时间:2013-08-14

作为一种数据安全策略,备份是避免数据丢失的最基本方法,目前较常见的网络数据备份系统按架构不同可分为基于网络附加存储结构、基于局域网结构、基于sAN结构的LAN—Free结构和server—Free结构4类。
 
    云存储技术的出现为数据备份提供了一种新方法,云存储的特点如下:1)提供完整的数据存储服务,用户可得到智能的备份软件及管理完善的存储容量;2)云存储仅对数据进行备份,用户不必担心失去对原始数据的控制;3)云存储服务具有价格上的优势,备份相同规模的数据,云存储所需的费用比购置存储设备建立数据中心成本低很多。
 
    HadoopH是Apache下的一个开源云计算基础软件项目,目前已得到广泛应用.Hadoop的基础组件HDFs(hadoop distributed file system),是模仿Google的GFS设计思路开发的专门针对廉价硬件设计的分布式文件系统,在软件层内置数据容错能力,可应用于云存储系统的创建开发,与现有的分布式系统最大区别为高容错性和低成本。
 
    本文将HDFs技术运用于数据备份领域,设计并实现了基于HDFs的数据备份系统HB-CDBS(HDFS based cloud data backup system),该系统充分利用云存储技术的优势,应用已有的廉价计算机设备建立数据备份集群,满足用户数据备份/恢复业务的需要。
 
1 体系结构
 
    HB-CDBS系统设计的前提是不增加任何硬件投资及不改变现有网络,而HDFS具有良好的存储可扩展性和计算可扩展性,恰好满足上述要求.本文设计的基于HDFS的云数据备份系统HB—CDBS分为客户端、备份眼务器和HDFS集群三部分,系统体系结构如图1所示。
 
图1 HB-CDBS体系结构
 
    客户端是众多需要数据备份/恢复服务的计算机节点,按照地域、系统类别等分为若干个群,需要进行数据备份或恢复时,向负责本群的备份服务器提出请求,进行文件备份和恢复操作。
 
    备份服务器是客户端和HDFS集群间数据备份恢复的桥梁,每个服务器负责一个客户端群。他们接受客户端的数据备份恢复请求,缓存客户端的备份数据,根据备份数据的不同情况,分别对其进行合并、压缩后上传到HDFS集群备份,同时保存客户端备份文件的映像表,当客户端提出恢复请求时,从HDFS集群中读取备份文件,按文件映像表发送给客户端。
 
    HDFS集群由安装了HDFS软件的计算机组成,在HDFS软件的架构下,通过配置向多个备份服务器提供上传、下载服务,实现系统的核心功能。
 
    HB-CDBS系统应用备份服务器作为客户端与备份集群的桥梁具有如下优势:
 
    1)备份服务器可屏蔽客户端对备份集群的直接访问,从而提高备份集群的安全性,同时在备份服务器和客户端间通过防火墙、安全信道等技术实现数据安全,进而保证整个系统的安全;
 
    2)备份服务器可暂存数据,并根据备份集群的负载和网络状况决定在合适的时间上传数据,从而保证备份集群的负载平衡;
 
    3)虽然在特殊情况下,备份服务器由于大量客户端的备份/恢复请求可能成为系统的瓶颈,但通过应用高性能的服务器作为备份服务器及客户端的合理调度可最大限度地避免该情况发生;
 
    4)向HD玛集群上传、下载文件需要在计算机上安装Hadoop特定组件,这对数量众多、水平参差不齐的客户实现较难,通过在备份服务器上收集用户需备份的数据,并在其上安装Hadoop组件易于实现备份、恢复功能,可充分发挥HDFS的功能。

2 系统的设计与实现

2.1客户端模块的设计
 
    客户端模块用于实现系统数据备份恢复,包括文件打包、压缩策略、数据的备份和恢复。客户端模块备份数据前,应用tar,winrar等工具将所有数据文件打包成一个备份文件,按照“客户Id-备份日期-bak”的规则命名;同时进行压缩以节省存储空间、减少备份恢复时间。客户端节点中保存为本机提供服务的备份服务器信息,当需要备份或恢复时向备份服务器发出相应请求。客户端文件的备份恢复过程如图2和图3所示。
 
      
 
                                         图2客户端备份过程                                             图3客户端恢复过程
 
2.2备份服务器
 
    2.2.1 文件备份备份服务器接收到客户端的备份请求后,先对客户端进行识别认证,再接收客户端上传的备份文件。上传完备份文件,备份服务器将备份文件加上时间戳编号后暂存,并将备份文件的信息记入备份数据信息表,其字段内容列于表1,然后将文件名作为参数调用云数据上传算法CDUA(cloud data upload algorithm)上传数据。
 
表1备份数据信息表字段
 
 
 
    HDFS是专为大文件设计的存储系统,为保证备份效率,CADU算法采用阈值触发上传策略:首先设定上传阈值thsize,只有当客户端上传的备份文件大于thsize时,才进行上传;否则在本地暂存数据文件,等待其他客户端上传数据,当所有未上传数据大小大于阈值时再上传至HDFS集群。
 
 
 
 
确定,其中:hdfssize,为HDFS集群存储空间大小;CCn为客户端集群个数;rpn。为HDFS集群中数据备份副本的个数;Cn为默认集群中客户节点个数;Cblock为可分配给客户端的存储块数;λ为调节系数。
 
    CADU算法先检测用户上传文件大小是否大于等于thsize,如果大于等于thsize则上传该文件到HDFS集群,上传成功后将文件备份数据信息表中对应的上传标志位置为真,填写上传文件名(此时文件名与客户端上传文件名称相同),删除备份服务器上的文件。如果文件大小小于thsize,则读取备份文件信息表,得到所有未上传备份文件的信息,计算全部未上传文件的大小,如果大于等于thsize,则将所有未上传文件打包成一个文件,按照“文件名1-文件2-文件名n”的方式对该文件命名,上传成功后,将文件备份文件信息表中对应的上传标志位置为真,填写上传文件名删除文件;如果全部为上传文件大小依然小于thsize,则退出。
 
    2.2.2 文件恢复  备份服务器接收到客户端的恢复请求后,先对客户端进行识别认证,认证通过后,再检查备份文件信息表,如果备份文件暂存在本地,则从备份服务器上发送文件给客户端;如果备份文件存于HDFS集群中,则从HDFS备份集群中下载文件后,再发送给客户端.如果备份文件是由多个文件打包而成,则还需对文件解包,再发送客户数据.
 
    2.2.3 备份服务器的上传/下载策略  HDFS集群处于24 h工作状态,因此备份服务器可随时进行数据的备份/恢复操作,为保证系统备份的性能,系统设计时采用恢复优先、冲突检测上传的策略进行备份恢复,即备份服务器需要下载数据时,立即进行;而当需要上传数据时,如果没有其他备份服务器上传数据,立即上传,否则称为产生冲突,等待一段时间再进行检测以决定是否上传,等待时间的长短由退避算法确定。
 
2.3 HDFS备份集群
 
    HDFS备份集群采用Master/slave结构,由一个Namenode和一定数量的Datanodes组成。Namenode作为中心服务器负责管理文件系统的名字空间(namespace)及客户对文件的访问。Namenode由云中具有较高性能的服务器配置而成,以实现高效的元数据管理,避免性能瓶颈。DataNode用于存储数据,由大量廉价计算机配置而成,并可根据备份数据的规模进行动态扩展.备份时文件被分成一个或多个数据块,这些块存储在一组Datanode上。Datanode负责对文件系统客户端的读写请求进行处理,并在Namenode统一调度下进行数据块的创建、删除和复制等操作。
 
3 性能评价
 
3.1 系统性能
 
    为检测本文所设计系统的性能,进行如下实验.实验中的云备份系统由7台计算机构成,其中一台Dell Optiplex380(配置为Intel双核3.0 GHz CPU,2G内存)为NameNode,其他6台Deu Optiplex360(配置为Intel双核2.5 GHz CPU,1G内存,300 G硬盘)为DataNode.实验从l 000个小文件(每个文件大小为5~7 M)中首次随机选取50个,分别进行单独上传下载和打包上传下载实验;再从这些小文件中随机选取100个重复上述实验。每项实验各进行3次,取平均值作为结果,所得数据列于表2。
 
表2  小文件分别上传下载与打包上传下载的比较
 
 
 
    由表2可见,无论是上传和下载,对小文件打包的策略都极大节约了相应操作的时间,充分应用了HDFS系统的特性.在安全方面,备份服务器通过认证、授权、安全信道传输等措施保证了客户端与备份服务器间的安全;通过Hadoop的安全机制实现了备份服务器和HDFS集群的安全。在可扩展方面,本系统借助Hadoop软件存储的可扩展和计算的可扩展能力,可根据需要随时扩展HDFS集群的规模,增加系统的备份能力。在经济方面,HDFS是专门针对廉价硬件设计的分布式文件系统,具有良好的兼容性,可充分利用已有的大量闲置廉价计算机资源,节省设备采购的开销。在可靠性方面,备份文件在HDFS集群中以多副本的形式进行保存,还可根据文件的重要程度,增加副本的份数,提高可靠性。
 
3.2与已有数据备份系统的比较
 
    本文所设计的云数据备份系统与网络附加存储系统(DAS—Base)相比,克服了DAS—Base可管理的存储设备少、不利于备份系统共享、不适于大型数据备份的缺点;与LAN—Based备份系统相比,由于采用多备份服务器对不同区域的客户进行服务,既具备和LAN—Based备份结构类似的投资经济、集中备份管理的优点,又克服了网络传输压力大,当备份数据量大或备份频率高时,局域网的性能下降快的缺点。与基于SAN的两种备份方案相比,本文所设计的系统应用已有的廉价设备进行构建,在保证数据高速高效备份的同时,无需采购昂贵的专用通讯与存储设备,极大降低了数据备份的成本;同时由于采用软件的方式构建备份集群,也降低了技术实施的复杂度,并且无需考虑不同厂商产品的兼容性。
 
    综上所述,本文将云存储技术引入数据备份领域,设计并实现了基于HDFS的云数据备份系统。该系统在不增加设备投资的前提下,充分应用用户已有的硬件基础设施和闲置资源,依托HDFS组件的强大性能构建数据备份集群.通过用户分群管理、小文件合并上传、恢复优先等策略进一步提高了系统性能。本文设计的基于HDFS的云备份系统在安全性、可扩展性、经济性及可靠性方面均具有一定的优势。