一种云平台数据管理方法

文档序号:8457194阅读:539来源:国知局
一种云平台数据管理方法
【技术领域】
[0001]本发明涉及基于云计算,特别涉及一种云平台数据管理方法。
【背景技术】
[0002]云计算作为一种新型计算模式,其相对无限的计算和存储资源可以灵活配置、动态伸缩,并且以实际资源消耗量为依据进行计费。因此云存储资源比本地资源具有更高的性价比。在数据备份应用场景中,多数的恢复请求都是恢复到离当前时刻较近的某个时间点,很少需要读取较旧版本的数据。对于这类数据,如果采用本地存储资源容纳,将导致严重的资源浪费。云存储资源则非常适用于存储这类海量备份数据,可以达到很低廉的备份成本。然而,云计算的数据备份面临以下几个问题,(I)如何兼容各类云存储平台。对于云存储后端,由于云存储平台接口各不相同,很难实现最大的兼容性,在选择云存储提供商时受限。(2)在云存储模式下备份和恢复成本较高。然而云存储的计费模型比本地存储更加复杂。(3)云存储的低带宽高延迟缺陷将显著影响备份系统的恢复速度。
[0003]因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。

【发明内容】

[0004]为解决上述现有技术所存在的问题,本发明提出了一种云平台数据管理方法,其特征在于,包括:
[0005]云平台通过数据去重处理进行备份数据的压缩,记录每个数据段写操作的版本信息,在数据恢复时查询并读取对应的版本信息进行数据恢复。
[0006]优选地,所述备份数据的压缩进一步包括:
[0007]在数据保护模式下,所述云平台业务接口不断从客户系统接收写操作流数据段,客户将自身驱动层的所有段写入请求发送给业务接口;
[0008]把接收到的每一个请求都切分成若干个四元组<Client_ID,LA,Timestamp, Seg_Data〉,每个元组表示对某个段的一次写操作;其中Client_ID表示客户的编号;LA表示目标段的逻辑段号;TimeStamp表示写请求发生的时间戳;Seg_Data表示新写入的段数据;
[0009]将每个段的写操作的Seg_Data传递给云平台的数据去重模块,计算出Seg_Data_ID即Seg_Data的标识符进行去重;
[0010]将新段的写操作传递给云平台的版本索引模块,记录相应的版本信息,在索引更新粒度上采用定期更新策略,每次索引更新时,读取当前的一级索引,将内存cache内每个段的新版本记录追加到该段的一级索引记录区末尾,二级索引是一个固定长度的结构,在新的一级索引生成之后进行原地更新,在索引更新开始前,一个新的内存cache会被生成,以容纳新的记录,而已有的cache则在更新操作完成之后被释放;
[0011]根据数据去重模块的结果更新元数据信息,对新的Seg_Data建立新的元组并赋初始值,对重复的Seg_Data则更新其引用计数;
[0012]将每一个新段的写操作信息传递给云平台的磁盘缓存模块,仅将磁盘缓存内不存在的Seg_Data写入磁盘,同步更新所有Seg_Data在磁盘缓存中的位置和引用计数信息;
[0013]利用云平台中的数据归档模块,从去重得到所有的去重结果批量存储到云端,同时更新其云端位置信息。
[0014]优选地,所述数据恢复进一步包括:
[0015]当业务接口从客户系统接收到一个数据恢复请求时将启动数据恢复进程,首先启动工作线程,包括一个版本查询线程、多个数据读取线程和一个数据合成线程,上述工作线程并发工作,形成一个数据恢复流水线;
[0016]对于每个数据段,版本查询线程会从版本索引中查找到时间戳不晚于待恢复时间戳的最新的版本信息,对于第i号段,首先查询内存cache,如存在查询结果则直接返回,否则查询线程从二级索引中读取该段的信息<A’ Ti, Bi)以及Ai+1,其中Ai表示第i号段的版本信息在一级索引中的起始位置,Ti, Bi则表示该段最新版本的时间戳和Seg_Data_ID,
[0017]如果Ti满足条件,则直接返回B i,否则继续在一级索引中,根据AjP A i+1指明的起止位置,采用二分搜索算法查找到满足条件的结果;
[0018]将查找到的每个段的待恢复版本的Seg_Data_ID传递给数据读取线程和数据合成线程,数据合成线程在内存中维护一个队列结构作为滑动恢复窗口,每个队列元素依次表示一个连续待恢复区域内的某个段,对于某个需读取的Seg_Data_ID,合成线程首先检查内存缓存,如果缓存命中则直接读取,否则查找其元数据信息,如果其大于0,则根据该Seg_Data的存储位置从磁盘读取,否则根据该Seg_Data的存储位置从云端读取;
[0019]读取操作由数据读取线程并发执行,对于每个读取到的Seg_Data,合成线程将其数据复制到当前滑动恢复窗口内所有其出现的位置,随后,滑动恢复窗口前部已读取的段数据被批量传输给客户系统供其写入,恢复窗口则继续向后滑动,直至完成所有段的恢复操作。
[0020]优选地,所述云平台的数据去重模块用于对每一个新的Seg_Data使用hash算法计算其Seg_Data_ID,通过比对该标识符,判断此Seg_Data是否与已有的Seg_Data重复,进而进行去重,云平台采用统一的后端存储池,其数据去重是针对所有客户的所有段的版本数据进行的。
[0021]优选地,所述云平台保存所有Seg_Data的元数据信息,由五元组<Seg_Data_ID,Cloud_RC,Cloud_Locat1n,Cache_RC,Cache_Locat1n〉组成;其中 Cloud_RC 和 Cache_RC分别表示该在云存储和本地磁盘缓存中的引用计数,即冗余度;Cloud_Locat1n和Cache_Locat1n分别表示该Seg_Data在云存储和本地磁盘缓存中的存储位置。
[0022]优选地,所述云平台的磁盘缓存模块用于对每个客户在磁盘存储两类数据以加速恢复过程,第一类数据是所有段的最新版本Seg_Data,其逻辑上等效于被保护系统的实时镜像,第二类数据是客户系统内最近若干次段写入操作的Seg_Data,使用具有较高随机读写性能的固态盘作为磁盘缓存,并且直接使用裸分区存储去重后的Seg_Data ;磁盘缓存使用段分配位图来管理存储空间,其段大小被设置成所有客户系统段大小的最小值,每个Seg_Data在磁盘上连续存储,其存储位置用其起始段号来表示。
[0023]优选地,所述云平台包括数据归档模块,用于将经过去重的所有Seg_Data存储到云端,并在数据恢复时从云端读取;
[0024]所述云平台包括数据恢复模块,用于根据客户传递的数据恢复请求,查询并获取相应的版本数据,进行合成之后批量传输给客户系统供其写入。
[0025]本发明相比现有技术,具有以下优点:
[0026]本发明的方法支持使用各类云存储平台作为后端存储,通过采用全局数据去重技术,本发明具有比传统数据备份系统更好的数据压缩效果和更短的数据恢复时间;通过采用两级缓存机制,进一步优化了云存储模式下的数据恢复速度。
【附图说明】
[0027]图1是根据本发明实施例的云平台数据管理方法的流程图。
【具体实施方式】
[0028]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0029]数据备份系统能够备份所有数据段的改变,能够将磁盘恢复到过去任意时间点的状态。然而系统长时间运行将生成大量备份数据,存储成本髙昂,因此需要采用数据压缩技术以减少备份数据量。要在云存储模式下减少备份成本,必须减少备份数据量和数据请求次数。而要优化恢复速度,则必须降低云端数据读取量。
[0030]传统方案不能利用不同段间的数据相似性,丧失了一部分压缩机会,而且在恢复过程需要读取基础版本进行解码运算,在云存储模式
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1