[发明专利]一种云计算平台下的数据备份方法有效

专利信息
申请号: 201610608671.5 申请日: 2016-07-28
公开(公告)号: CN106250270B 公开(公告)日: 2019-05-21
发明(设计)人: 张敬华;程映忠;王松 申请(专利权)人: 广东奥飞数据科技股份有限公司
主分类号: G06F11/14 分类号: G06F11/14
代理公司: 东莞市神州众达专利商标事务所(普通合伙) 44251 代理人: 陈世洪
地址: 511458 广东省*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提出了一种云计算平台下的数据备份方法,包括:1.基于客户端、备份服务器和Hadoop分布式文件系统集群构建云数据备份系统,所述系统的是基于Hadoop分布式文件系统的;2.当需要备份或恢复时客户端向备份服务器发出相应请求,所述客户端中保存着为本机提供服务的备份服务器的信息;3.接收到客户客户端的请求后,备份服务器进行文件的备份和恢复。本发明提出的所述方法提高了备份文件、更新文件的效率。
搜索关键词: 一种 计算 平台 数据 备份 方法
【主权项】:
1.一种云计算平台下的数据备份方法,包括:1.基于客户端、备份服务器和Hadoop分布式文件系统集群构建云数据备份系统,所述系统的是基于Hadoop分布式文件系统的;2.当需要备份或恢复时客户端向备份服务器发出相应请求,所述客户端中保存着为本机提供服务的备份服务器的信息;3.接收到客户客户端的请求后,备份服务器进行文件的备份和恢复;3.1备份服务器的备份操作具体包括:备份服务器接收到客户客户端的备份请求后,首先对客户端进行识别认证,认证通过后接收客户端上传的备份文件,备份文件上传完毕后,备份服务器将备份文件加上时间戳编号后暂存,并将备份文件的信息记入备份文件信息表,然后将文件名作为参数调用云数据上传算法上传数据到Hadoop分布式文件系统集群;云数据上传算法首先检测用户上传文件大小是否大于等于阈值th_size,如果大于等于则上传该文件到Hadoop分布式文件系统集群,上传成功后将文件备份数据信息表中对应的上传标志置为真,填写上传文件名,删除备份服务器上的文件;如果文件大小小于th_size,则读取备份文件信息表,得到所有未上传备份文件的信息,计算全部未上传文件的大小,如果大于等于th_size,则将所有未上传文件打包成一个文件,按照“文件名1‑文件2…‑文件名n”的方式对该文件命名后上传,上传成功后,将备份文件信息表中对应的上传标志位置为真,填写上传文件名后删除文件;如果全部为上传文件大小依然小于th_size,则暂时不将文件上传至Hadoop分布式文件系统集群;3.2备份服务器的恢复操作具体包括:备份服务器接收到客户端的恢复请求后,首先对客户端进行识别认证,认证通过后,检查备份文件信息表,如果备份文件暂存在本地,则从备份服务器上发送文件给客户端;如果备份文件存于Hadoop分布式文件系统集群中,则从Hadoop分布式文件系统集群中下载文件后,再发送给客户端,如果备份文件是由多个文件打包而成,则还需要对文件解包,再发送给客户端;备份服务器在进行下载和上传数据时遵从以下规则:备份服务器需要下载数据时,立即进行;而当需要上传数据时,如果没有其他备份服务器上传数据,立即上传,否则称之为产生冲突,等待一段时间再进行检测以决定是否上传,等待时间的长短由退避算法决定,退避算法具体包括:1)当第一次检测发生冲突时,设置参数L=2;2)退避间隔取1到L个时间片中的一个随机数;3)重复检测发生冲突时,将参数L加倍,L的最大值为256,当L增加到256时,L不再增加;4)一旦检测次数超过8,则立即无条件上传数据;文件的上传包含以下几个步骤:1.文件分割:将原始的用户文件分割成几个小的文件块,文件分割是将大文件的存储文件变为了多个小文件的存储问题,可以直接避免大文件存储需要应对的多个技术难题;2.文件块加密:文件块加密采用公钥加密的技术,文件块的公钥跟私钥都需用从Hadoop分布式文件系统集群获取;文件块加密是为了保证文件数据的包密性,对于任何云同步的应用,数据的保密性都是用户的必备需求,用户不会将数据存放在可能泄露的应用中;3.文件块压缩:对加密后的文件块进行压缩;4.文件块校验:文件块经过加密加压之后,通过hash算法算出文件块的hash值,文件的上传恢复都需要通过hash值校验,以确定文件块在传输过程中没有出现错误;同时,如果发现hash值已经存在,也就是已经有相同的文件块存放在服务器,那么文件块就不需要重复上传了;使用文件校验不仅仅可以保证数据的完整性,避免上传一样的文件内容可以节省服务器的存储空间,同时减少数据流量,提高文件同步的效率;5.文件块上传:文件块通过Hadoop分布式文件系统集群提供的远程接口进行同步,将文件块上传到Hadoop分布式文件系统集群,文件块上传结束之后,Hadoop分布式文件系统集群需要通过hash值来确定文件块无错误;文件的恢复包含以下几个步骤:1.获取文件块列表:通过文件ID获取文件对应的文件块列表,根据文件块的ID获取详细的文件块信息,下载文件块来间接完成文件下载功能;2.文件块下载:使用文件块的ID,到指定的位置查找文件块,将列表中的文件块下载到本地;3.文件块校验:文件块下载完成之后,通过文件块大小以及hash值来校验文件块是否成功下载;如果文件块校验失败,则此文件块无效,需要重新下载或者采用人工策略进行处理;4.文件块解压:采用文件块压缩时相对应的文件块解压缩算法,对文件块解压缩;5.文件块解密:从Hadoop分布式文件系统集群获取文件块解密的私钥,采用文件块加密对应的解密算法对文件块进行解密;6.文件块合并:文件块完成下载、校验、解压、解密之后,将分离的文件块重新合并,恢复用户的原始文件;当监测到客户端的文件发生改变时,使用以下方式同步更新Hadoop分布式文件系统集群上相应的文件:1.当监测到客户端的文件CFold变更为文件CFnew时,将发生改变的文件ID发送给Hadoop分布式文件系统集群;2.根据客户端发来的文件ID,Hadoop分布式文件系统集群将CFold对应的SFold划分为大小为B的块,SFold[(i‑1)B,iB‑1],表示文件从偏移地址(i‑1)B到iB‑1的内容,其中,i的取值为[1,2,3,……,N],N是文件SFold划分的块数;然后计算每个块Bi的的两个哈希值:qi=hq(Bi)和ri=hm(Bi),其中,hq(Bi)表示对块Bi进行alder‑32校验计算,hm(Bi)表示对块Bi进行MD5校验计算,然后将两个校验值发送给客户端;3.客户端接收Hadoop分布式文件系统集群发来的每个块的两个哈希值(qi,ri),建立哈希表;4.客户端遍历文件CFnew,从偏移地址j=0开始,重复执行以下步骤4.1‑4.44.1计算hq(CFnew[j,j+B‑1]);4.2从哈希表中查找是否具有匹配的哈希值;4.3如果找到匹配哈希值,计算hm(CFnew[j,j+B‑1]),如果hm也匹配,则发送该块的偏移地址j和该块的大小信息给分布式文件系统集群,并对j进行加B操作;4.4如果没有找到匹配哈希值,或者hm不匹配,则传输CFnew[j]给Hadoop分布式文件系统集群,CFnew[j]表示文件CFnew在偏移地址j处的内容,j=j+1;5.Hadoop分布式文件系统集群根据客户端传送的内容和SFold构建出与CFnew对应的文件SFnew;客户端读取文件的具体实现过程包括:1.客户端通过调用分布式文件系统的一个实例FileStream对象的open()方法来打开希望读取的文件;2.分布式文件系统通过RPC远程调用名称节点以获得文件开头部分的数据块的位置,对于每个块,名称节点返回该块所在的数据节点的地址,并且这些数据节点会根据其距离客户端的远近进行排序,如果客户端本身也是数据节点,则直接读取本地数据,分布式文件系统返回一个支持文件定位的输入流的FSDataInputStream对象给客户端,让客户端从FSDataInputStream中读取数据;3.客户端调用FSDataInputStream的read()方法;4.存储文件开头部分块的数据节点地址的DFSInputStream随即与这些块最近的数据节点相连接,通过在数据流中重复调用read(),读取数据从数据节点返回客户端;5.当第一个块读完,DFSInputStream关掉与这个数据节点的连接,然后开始第二个块的操作;6.客户端从流中读取数据时,块是按照DFSInputStream打开与数据节点的新连接的顺序读取的,DFSInputStream也会调用名称节点来检索下一组需要的块的数据节点的位置,客户端完成数据读取后,调用FSDataInputStream的close()方法关闭数据流;在文件读取过程中,如果客户端从一个数据节点上读取出错,则选择下一个离它最近的数据节点;同时记住这个失败的数据节点,在读取后面的块的时候不再选择这个数据节点;客户端写入文件的具体实现过程包括:1.客户端通过调用分布式文件系统的create()方法来创建文件;2.分布式文件系统通过RPC远程调用名称节点,在文件系统的名字空间里创建一个新文件,此时这个文件还没有任何块与之相联系;名称节点执行检查以确保这个文件不会已经存在,并且客户端拥有创建此文件的权限;如果上述检查通过,名称节点会生成一个新文件的记录;否则文件创建失败并向客户端抛出一个异常;分布式文件系统返回一个FSDataOutputStream,让客户端开始写入数据,FSDataOutputStream控制一个DFSOutputStream,DFSOutputStream负责处理数据节点和名称节点之间的通信;3.当客户端写入数据时,DFSDataOutputStream把要写入的数据分成很多包,并将它们写入内部的数据队列,数据队列中的数据由数据流来读取,数据流让名称节点找出一个合适的数据节点列表,并要求这些数据节点分配一些新的块以存储作为副本而复制的数据,这个数据节点列表组成了一个管线;4.FSDataInputStream将包分流给管线中第一个的数据节点,这个节点会对包进行存储并且发送给管线中的第二个数据节点,第二个数据节点存储包并且传给管线中第三个数据节点,直至将包传给管线中的最后一个数据节点;5.DFSOutputStream有一个内部的包队列来等待数据节点收到确认,称为确认队列,只有当管线中所有的数据节点都返回写入成功,这个包才算写成功,发送确认给DFSOutputStream,包被移出确认队列,然后开始下一个包的写入;如果在有数据写入期间,数据节点发生故障,则会执行下面的操作:首先管线被关闭,确认队列中的任何包都会被添加回数据队列的前面,以确保数据节点从失败的节点处是顺流的,不会漏掉任意一个包,当前的块在正常工作的数据节点中被给予一个新的身份并联系名称节点,以便能在故障数据节点后期恢复时其中的部分数据块会被删除;故障数据节点会从管线中删除并且余下块的数据会被写入管线中的两个好的数据节点;名称节点注意到块副本不足时,会在另一个节点上安排创建一个副本;随后,后续的块会继续正常处理;6.客户端完成数据的写入后,就会在FSDataInputStream中调用close();7.在块完成复制到最少的份数之后,名字节点将成功返回。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东奥飞数据科技股份有限公司,未经广东奥飞数据科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610608671.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

400-8765-105周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top