CN104537112B - 一种安全云计算的方法 - Google Patents

一种安全云计算的方法 Download PDF

Info

Publication number
CN104537112B
CN104537112B CN201510028119.4A CN201510028119A CN104537112B CN 104537112 B CN104537112 B CN 104537112B CN 201510028119 A CN201510028119 A CN 201510028119A CN 104537112 B CN104537112 B CN 104537112B
Authority
CN
China
Prior art keywords
data
random sequence
seg
index
plaintext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510028119.4A
Other languages
English (en)
Other versions
CN104537112A (zh
Inventor
刘洋
敬皓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHENGDU SHINE TECHNOLOGY Co Ltd
Original Assignee
CHENGDU SHINE TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHENGDU SHINE TECHNOLOGY Co Ltd filed Critical CHENGDU SHINE TECHNOLOGY Co Ltd
Priority to CN201510028119.4A priority Critical patent/CN104537112B/zh
Publication of CN104537112A publication Critical patent/CN104537112A/zh
Application granted granted Critical
Publication of CN104537112B publication Critical patent/CN104537112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种安全云计算的方法,该方法包括:云平台通过数据去重处理进行备份数据的压缩,根据客户的数据恢复请求查询并读取数据对应的版本信息,将数据段进行合成之后,传输给客户系统供其写入。本发明使用各类云存储平台作为后端存储,通过全局数据去重,具有比传统数据备份系统更好的数据压缩效果和更短的数据恢复时间。

Description

一种安全云计算的方法
技术领域
本发明涉及基于云计算,特别涉及一种云存储系统安全备份的方法。
背景技术
云计算作为一种新型计算模式,其相对无限的计算和存储资源可以灵活配置、动态伸缩,并且以实际资源消耗量为依据进行计费。因此云存储资源比本地资源具有更高的性价比。在数据备份应用场景中,多数的恢复请求都是恢复到离当前时刻较近的某个时间点,很少需要读取较旧版本的数据。对于这类数据,如果采用本地存储资源容纳,将导致严重的资源浪费。云存储资源则非常适用于存储这类海量备份数据,可以达到很低廉的备份成本。然而,云计算的数据备份面临以下几个问题,(1)如何兼容各类云存储平台。对于云存储后端,由于云存储平台接口各不相同,很难实现最大的兼容性,在选择云存储提供商时受限。(2)在云存储模式下备份和恢复成本较高。然而云存储的计费模型比本地存储更加复杂。(3)云存储的低带宽高延迟缺陷将显著影响备份系统的恢复速度。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种安全云计算的方法,包括:
云平台通过数据去重处理进行备份数据的压缩,根据客户的数据恢复请求查询并读取数据对应的版本信息,将数据段进行合成之后,传输给客户系统供其写入。
优选地,所述备份数据的压缩进一步包括:
在数据保护模式下,所述云平台业务接口不断从客户系统接收写操作流数据段,客户将自身驱动层的所有段写入请求发送给业务接口;
把接收到的每一个请求都切分成若干个四元组<Client_ID,LA,Timestamp,Seg_Data>,每个元组表示对某个段的一次写操作;其中Client_ID表示客户的编号;LA表示目标段的逻辑段号;Timestamp表示写请求发生的时间戳;Seg_Data表示新写入的段数据;
将每个段的写操作的Seg_Data传递给云平台的数据去重模块,计算出Seg_Data_ID即Seg_Data的标识符进行去重;
将新段的写操作传递给云平台的版本索引模块,记录相应的版本信息,在索引更新粒度上采用定期更新策略,每次索引更新时,读取当前的一级索引,将内存cache内每个段的新版本记录追加到该段的一级索引记录区末尾,二级索引是一个固定长度的结构,在新的一级索引生成之后进行原地更新,在索引更新开始前,一个新的内存cache会被生成,以容纳新的记录,而已有的cache则在更新操作完成之后被释放;
根据数据去重模块的结果更新元数据信息,对新的Seg_Data建立新的元组并赋初始值,对重复的Seg_Data则更新其引用计数;
将每一个新段的写操作信息传递给云平台的磁盘缓存模块,仅将磁盘缓存内不存在的Seg_Data写入磁盘,同步更新所有Seg_Data在磁盘缓存中的位置和引用计数信息;
利用云平台中的数据归档模块,从去重得到所有的去重结果批量存储到云端,同时更新其云端位置信息。
优选地,所述数据恢复进一步包括:
当业务接口从客户系统接收到一个数据恢复请求时将启动数据恢复进程,首先启动工作线程,包括一个版本查询线程、多个数据读取线程和一个数据合成线程,上述工作线程并发工作,形成一个数据恢复流水线;
对于每个数据段,版本査询线程会从版本索引中査找到时间戳不晚于待恢复时间戳的最新的版本信息,对于第i号段,首先査询内存cache,如存在查询结果则直接返回,否则査询线程从二级索引中读取该段的信息<Ai,Ti,Bi>以及Ai+1,其中Ai表示第i号段的版本信息在一级索引中的起始位置,Ti,Bi则表示该段最新版本的时间戳和Seg_Data_ID,
如果Ti满足条件,则直接返回Bi,否则继续在一级索引中,根据Ai和Ai+1指明的起止位置,采用二分搜索算法査找到满足条件的结果;
将查找到的每个段的待恢复版本的Seg_Data_ID传递给数据读取线程和数据合成线程,数据合成线程在内存中维护一个队列结构作为滑动恢复窗口,每个队列元素依次表示一个连续待恢复区域内的某个段,对于某个需读取的Seg_Data_ID,合成线程首先检查内存缓存,如果缓存命中则直接读取,否则查找其元数据信息,如果其大于0,则根据该Seg_Data的存储位置从磁盘读取,否则根据该Seg_Data的存储位置从云端读取;
读取操作由数据读取线程并发执行,对于每个读取到的Seg_Data,合成线程将其数据复制到当前滑动恢复窗口内所有其出现的位置,随后,滑动恢复窗口前部已读取的段数据被批量传输给客户系统供其写入,恢复窗口则继续向后滑动,直至完成所有段的恢复操作。
优选地,所述云平台的版本索引模块为每个客户都维护独立的版本索引,保存该客户所有段的所有版本信息;版本索引在逻辑上存储的是从二元组〈LA,Timestamp>到Seg_Data的映射关系;版本索引由存储在磁盘上的两级索引和在内存cache组成;磁盘索引定期进行更新操作,而内存cache则存储上次磁盘索引更新之后直至当前的新增的段版本信息,磁盘索引分为一级索引和二级索引,一级索引由固定长度的二元组<Ti,j,Bi,j>顺序组成,Ti,j,Bi,j分别表示对第i号段的第j次写入操作的时间戳和Seg_Data_ID;二级索引由固定长度的三元组<Ai,Ti,Bi>顺序组成,其中Ai表示第i号段的版本信息在一级索引中的起始位置,Ti,Bi则表示该段最新版本的时间戳和Seg_Data_ID;内存cache使用一个散列表结构来存储若干对段号和指针,每个指针指向一个队列,指明上次磁盘索引更新后发生的对某个段的新写入信息,cache内的信息被同步写入到一个磁盘日志中,以便系统异常重启之后可以恢复这些信息。
优选地,所述云平台包括数据归档模块,用于将经过去重的所有Seg_Data存储到云端,并在数据恢复时从云端读取;
所述云平台包括数据恢复模块,用于根据客户传递的数据恢复请求,査询并获取相应的版本数据,进行合成之后批量传输给客户系统供其写入。
优选地,所述对备份数据存储到云端之前还包括对数据进行加密,其采用以下加密过程:
根据预置时间段内预期存储到云平台的备份数据量X,本地存储空间占用比例R以及数据安全级别Z计算出应生成随机种子的大小H;根据每次待加密明文数据量Y计算出对随机种子进行随机数据采集的次数t;所述H=X/R-8X/Z其中Z=Y/t,且Z>8R;生成并存储H大小的随机种子;按所述次数t从所述随机种子中多次采集数据,将每次采集的数据级联成不小于明文长度的0、1值随机序列;利用所述随机序列生成明文加密位标识数据串;利用所述明文加密位标识数据串选择一半以上明文数据加密,从首位数据起,将所述明文加密位标识随机序列及明文数据一一对应排列;选取与所述明文加密位标识随机序列中1对应的明文数据进行加密,将所述加密数据与未加密数据按所在明文位置排列形成密文。
优选地,所述加密过程按所述次数t从所述随机种子中多次随机采集数据每次采集的起始位置与采集长度都是随机的,当所述随机序列的长度大于明文长度时,对所述随机序列多次进行数据采集生成不小于明文长度的新随机序列;并且
所述利用所述随机序列生成明文加密位标识数据串的步骤具体包括:
当所述随机序列的长度等于明文长度时,判断所述随机序列中1的数量是否大于明文数据位数的一半,如果是,则选取所述随机序列作为明文加密位标识随机序列;如果否,则对所述随机序列逻辑取反运算,用取反后的随机序列作为明文加密位标识随机序列;
当所述随机序列的长度大于明文长度时,在所述随机序列的随机起始位置采集数据形成与明文等长的新随机序列;判断所述新随机序列中1的数量是否大于明文数据位数的一半,如果是,则选取所述新随机序列作为明文加密位标识随机序列;如果否,则对所述新随机序列逻辑取反运算,用取反后的随机序列作为明文加密位标识随机序列;
通过信息摘要运算生成所述明文加密位标识随机序列的信息摘要值;
判断所述信息摘要值与先前存储的明文加密位标识随机序列信息摘要值是否一致,如果是,则重新生成明文加密位标识随机序列;否则,输出并存储所述明文加密位标识随机序列,同时将其信息摘要值存储。
本发明相比现有技术,具有以下优点:
本发明的方法支持使用各类云存储平台作为后端存储,通过采用全局数据去重技术,本发明具有比传统数据备份系统更好的数据压缩效果和更短的数据恢复时间;通过采用两级缓存机制,进一步优化了云存储模式下的数据恢复速度。
附图说明
图1是根据本发明实施例的安全云计算的方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
数据备份系统能够备份所有数据段的改变,能够将磁盘恢复到过去任意时间点的状态。然而系统长时间运行将生成大量备份数据,存储成本髙昂,因此需要采用数据压缩技术以减少备份数据量。要在云存储模式下减少备份成本,必须减少备份数据量和数据请求次数。而要优化恢复速度,则必须降低云端数据读取量。
传统方案不能利用不同段间的数据相似性,丧失了一部分压缩机会,而且在恢复过程需要读取基础版本进行解码运算,在云存储模式下将造成较大的恢复延迟。因此本发明采用的云平台使用数据去重技术进行备份数据的压缩,以取得更高的压缩率。恢复过程只需要查询并读取对应的数据版本,不需要额外的数据读取和运算,因此在云存储模式下能够取得更低的备份成本和更快的恢复速度。由于不存在数据版本间的依赖关系,本发明还支持直接删除任意的数据版本而不会影响到其他的数据版本。针对云环境下的数据安全和隐私保护问题,本发明支持对备份数据加密之后再存储到云端。
本发明的一方面提供了一种安全云计算的方法。图1是根据本发明实施例的安全云计算的方法流程图。
本发明采用的云平台系统包含几个主要的模块,分别介绍如下:
⑴业务接口模块
若干个被保护系统即客户系统通过统一的业务接口与本发明云平台系统进行业务交互。在进行数据保护时,被保护系统将自身驱动层的所有段写入请求都拷贝一份发送给业务接口。把接收到的每一个请求都切分成若干个四元组<Client_ID,LA,Timestamp,Seg_Data>,每个元组表示对某个段的一次写操作。其中表示Client_ID客户的编号;LA表示目标段的逻辑段号;Timestamp表示写请求发生的时间戳;Seg_Data表示新写入的段数据。在进行数据恢复时,客户将恢复请求三元组〈Timestamp,Start_LA,End_LA>发送给本发明业务接口。其中Timestamp指明需要恢复的时间点;Start_LA和End_LA则表示需要进行恢复的逻辑段地址起止范围。如果客户需要删除部分版本数据,则将一个删除请求二元组<Start_Timestamp,End_Timestamp>发送给本发明业务接口,指明其需要删除的版本时间戳范围。
⑵版本索引模块
本发明为每个客户都维护一套版本索引,保存该客户所有段的所有版本信息,以便在恢复时快速查询。版本索引在逻辑上存储的是从二元组〈LA,Timestamp>到Seg_Data的映射关系。由于段数众多,因此采用专门设计的数据结构来实现版本信息的保存、更新和查询,版本索引由存储在磁盘上的两级索引和在内存cache组成。磁盘索引定期进行更新操作,而内存cache则存储上次磁盘索引更新之后直至当前的新增的段版本信息。磁盘索引分为一级索引和二级索引。一级索引由固定长度的二元组<Ti,j,Bi,j>顺序组成,Ti,j,Bi,j分别表示对第i号段的第j次写入操作的时间戳和Seg_Data_ID)(即Seg_Data的标识符)。二级索引由固定长度的三元组<Ai,Ti,Bi>顺序组成,其中Ai表示第i号段的版本信息在一级索引中的起始位置,Ti,Bi则表示该段最新版本的时间戳和Seg_Data_ID。
内存cache使用一个散列表结构来存储若干对段号和指针,每个指针指向一个队列,指明上次磁盘索引更新后发生的对某个段的新写入信息。为了增强本发明系统鲁棒性,cache内的信息被同步写入到一个磁盘日志中,以便系统异常重启之后可以恢复这些信息。
(3)数据去重模块
负责对每一个新的Seg_Data使用hash算法计算其Seg_Data_ID,通过比对该标识符,判断此Seg_Data是否与已有的Seg_Data重复,进而进行去重。重复的只会被保存一份。本发明云平台采用统一的后端存储池,因此其数据去重是针对所有客户的所有段版本数据进行的。
⑷元数据模块
该模块保存了所有Seg_Data的元数据信息,由五元组<Seg_Data_ID,Cloud_RC,Cloud_Location,Cache_RC,Cache_Location〉组成。其中Cloud_RC和Cache_RC分别表示该在云存储和本地磁盘缓存中的引用计数(即冗余度);Cloud_Location和Cache_Location分别表示该Seg_Data在云存储和本地磁盘缓存中的存储位置。
(5)数据归档模块
该模块负责将经过去重的所有Seg_Data存储到云端,并在数据恢复时从云端读取。为了降低请求数量,该模块将Seg_Data批量存储至云端,同时为了充分利用带宽资源,该模块使用多线程并发地存取云端数据。
(6)数据恢复模块
负责根据客户传递的数据恢复请求,査询并获取相应的版本数据,进行合成之后批量传输给客户系统供其写入。
(7)磁盘缓存模块
本发明对每个客户都在本地磁盘缓存两类数据以加速恢复过程。第一类数据是所有段的最新版本Seg_Data(逻辑上等效于被保护系统的实时镜像),第二类数据是客户系统内最近若干次段写入操作的Seg_Data。为了优化I/O性能,本发明使用具有较高随机读写性能的固态盘作为磁盘缓存,并且直接使用裸分区存储去重后的Seg_Data。磁盘缓存使用段分配位图来管理存储空间,其段大小被设置成所有客户系统段大小的最小值,每个Seg_Data在磁盘上连续存储,这样其存储位置就可用其起始段号来表示。
(8)内存缓存模块
该模块数据恢复过程中,采用LRU算法在内存中缓存一定数量的去重Seg_Data,从而进一步减少从云端或磁盘读取的需要,以加速恢复过程。
根据上述搭建的云平台,以下描述数据保护、数据恢复的业务流程。
1.数据保护
在数据保护模式下,本发明业务接口持续不断地从客户系统接收写操作流数据段,并分割成针对单个段的写操作。每个段的写操作的Seg_Data都被传递给数据去重模块计算出Seg_Data_ID进行去重。
新段的写操作都会被传递给版本索引模块,以记录相应的版本信息。由于版本索引体量巨大,且内部采用有序存储结构,其更新操作具有较大的复杂度,需要耗费较长时间。因此本发明在索引更新粒度上进行了妥协,采用定期更新策略。在每次索引更新时,本发明读取当前的一级索引,将内存cache内每个段的新版本记录追加到该段的一级索引记录区末尾,从而生成一个全新的一级索引。此过程是以旧的索引顺序读取数据,并顺序写出数据到新索引,可以达到很快的更新速度。二级索引是一个固定长度的结构,可以在新的一级索引生成之后进行原地更新,其更新操作也是从头至尾一次性顺序完成,同样具有极高的更新速度。在索引更新开始前,一个新的内存cache会被生成,以容纳新的记录,而已有的cache则在更新操作完成之后被释放。
根据数据去重模块的结果更新元数据信息,对新的Seg_Data建立新的元组并赋初始值,对重复的Seg_Data则更新其引用计数。
每一个新段的写操作信息还会被传递给磁盘缓存模块,只有磁盘缓存内不存在的Seg_Data才会被写入磁盘。根据缓存数据的定义,旧数据将被新数据逐步替换,各Seg_Data在磁盘缓存中的位置和引用计数信息则被同步更新。
数据归档模块则从去重模块得到所有的去重并批量存储到云端,同时更新其云端位置信息。至此完成了一次对新段的写操作的记录和备份过程。
3.2数据恢复
当本发明业务接口从客户系统接收到一个数据恢复请求时将启动数据恢复进程。首先启动一系列工作线程,包括一个版本查询线程、多个数据读取线程和一个数据合成线程。这些线程并发工作,形成一个数据恢复流水线。
对于每个数据段,版本査询线程会从版本索引中査找到时间戳不晚于待恢复时间戳的最新的版本信息。对于第i号段,该线程首先査询内存cache,如能查到结果则直接返回,否则査询线程从二级索引中读取该段的信息<Ai,Ti,Bi>以及Ai+1。如果Ti满足条件,则直接返回Bi,否则继续在一级索引中,根据Ai和Ai+1指明的起止位置,采用二分搜索算法査找到满足条件的结果。两级索引都是由定长元素构成的数组,因此对其元素的定位和查找速度较快。
查找到的每个段的待恢复版本的Seg_Data_ID都会被传递给数据读取线程和数据合成线程。数据合成线程在内存中维护一个队列结构作为滑动恢复窗口,每个队列元素依次表示一个连续待恢复区域内的某个段。对于某个需读取的Seg_Data_ID,合成线程首先检查内存缓存,如果缓存命中则直接读取,否则查找其元数据信息,如果其大于0,则根据Cache_Location从磁盘读取,否则根据Cache_Location从云端读取。读取操作由数据读取线程并发执行。对于每个读取到的Seg_Data,合成线程会将其数据复制到当前滑动恢复窗口内所有其出现的位置。随后,滑动恢复窗口前部已读取的段数据被批量传输给客户系统供其写入,恢复窗口则继续向后滑动,直至完成所有段的恢复操作。
在实际应用场景中,待恢复的时间点往往离当前时刻较近,因此大部分段都没有被改变过,其最新版本就是待恢复版本,只需要查询二级索引即可获得版本信息,其数据也被缓存在本地磁盘中。对于近期发生过改变的段,其待恢复版本也有很大概率存在于内存cache或二级索引中,其数据也很可能被缓存在本地磁盘中。恢复过程所需的较早段数据版本则也有可能与磁盘缓存中的段数据重复(即Seg_Data_ID相同)。因此对于这类恢复请求,大部分段数据都只需从本地磁盘缓存中读取。再加上内存cache进一步减少了本地磁盘和云端的读取量,本发明的本地缓存机制有效地优化了云环境下的数据恢复速度和成本。
进一步地,所述对备份数据存储到云端之前还包括对数据进行加密。所述加密采用以下加密过程:
根据预置时间段内预期存储到云平台的备份数据量X,本地存储空间占用比例R以及数据安全级别Z计算出应生成随机种子的大小H;根据每次待加密明文数据量Y计算出对随机种子进行随机数据采集的次数t;所述H=X/R-8X/Z其中Z=Y/t,且Z>8R;生成并存储H大小的随机种子;按所述次数t从所述随机种子中多次采集数据,将每次采集的数据级联成不小于明文长度的0、1值随机序列;利用所述随机序列生成明文加密位标识数据串;利用所述明文加密位标识数据串选择一半以上明文数据加密,从首位数据起,将所述明文加密位标识随机序列及明文数据一一对应排列;选取与所述明文加密位标识随机序列中1对应的明文数据进行加密,将所述加密数据与未加密数据按所在明文位置排列形成密文。
其中所述加密过程按所述次数t从所述随机种子中多次随机采集数据每次采集的起始位置与采集长度都是随机的,当所述随机序列的长度大于明文长度时,对所述随机序列多次进行数据采集生成不小于明文长度的新随机序列;并且
所述利用所述随机序列生成明文加密位标识数据串的步骤具体包括:
当所述随机序列的长度等于明文长度时,判断所述随机序列中1的数量是否大于明文数据位数的一半,如果是,则选取所述随机序列作为明文加密位标识随机序列;如果否,则对所述随机序列逻辑取反运算,用取反后的随机序列作为明文加密位标识随机序列;
当所述随机序列的长度大于明文长度时,在所述随机序列的随机起始位置采集数据形成与明文等长的新随机序列;判断所述新随机序列中1的数量是否大于明文数据位数的一半,如果是,则选取所述新随机序列作为明文加密位标识随机序列;如果否,则对所述新随机序列逻辑取反运算,用取反后的随机序列作为明文加密位标识随机序列;
通过信息摘要运算生成所述明文加密位标识随机序列的信息摘要值;
判断所述信息摘要值与先前存储的明文加密位标识随机序列信息摘要值是否一致,如果是,则重新生成明文加密位标识随机序列;否则,输出并存储所述明文加密位标识随机序列,同时将其信息摘要值存储。
综上所述,本发明提出了利用云资源存储备份数据,并且采用全局数据去重技术压缩数据量,从而取得了比传统CDP系统更低的备份成本;通过使用特殊的版本索引结构和本地磁盘/内存两级缓存机制,优化低带宽高延迟云环境下的数据恢复速度。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (5)

1.一种安全云计算的方法,其特征在于,包括:
云平台通过数据去重处理进行备份数据的压缩,根据客户的数据恢复请求查询并读取数据对应的版本信息,将数据段进行合成之后,传输给客户系统供其写入;
所述备份数据的压缩进一步包括:
在数据保护模式下,所述云平台业务接口不断从客户系统接收写操作流数据段,客户将自身驱动层的所有段写入请求发送给业务接口;
把接收到的每一个请求都切分成若干个四元组<Client_ID,LA,Timestamp,Seg_Data>,每个元组表示对某个段的一次写操作;其中Client_ID表示客户的编号;LA表示目标段的逻辑段号;Timestamp表示写请求发生的时间戳;Seg_Data表示新写入的段数据;
将每个段的写操作的Seg_Data传递给云平台的数据去重模块,计算出Seg_Data_ID即Seg_Data的标识符进行去重;
将新段的写操作传递给云平台的版本索引模块,记录相应的版本信息,在索引更新粒度上采用定期更新策略,每次索引更新时,读取当前的一级索引,将内存cache内每个段的新版本记录追加到该段的一级索引记录区末尾,二级索引是一个固定长度的结构,在新的一级索引生成之后进行原地更新,在索引更新开始前,一个新的内存cache会被生成,以容纳新的记录,而已有的cache则在更新操作完成之后被释放;
根据数据去重模块的结果更新元数据信息,对新的Seg_Data建立新的元组并赋初始值,对重复的Seg_Data则更新其引用计数;
将每一个新段的写操作信息传递给云平台的磁盘缓存模块,仅将磁盘缓存内不存在的Seg_Data写入磁盘,同步更新所有Seg_Data在磁盘缓存中的位置和引用计数信息;
利用云平台中的数据归档模块,从去重得到所有的去重结果批量存储到云端,同时更新其云端位置信息。
2.根据权利要求1所述的方法,其特征在于,所述数据恢复进一步包括:
当业务接口从客户系统接收到一个数据恢复请求时将启动数据恢复进程,首先启动工作线程,包括一个版本查询线程、多个数据读取线程和一个数据合成线程,上述工作线程并发工作,形成一个数据恢复流水线;
对于每个数据段,版本査询线程会从版本索引中査找到时间戳不晚于待恢复时间戳的最新的版本信息,对于第i号段,首先査询内存cache,如存在查询结果则直接返回,否则査询线程从二级索引中读取该段的信息<Ai,Ti,Bi>以及Ai+1,其中Ai表示第i号段的版本信息在一级索引中的起始位置,Ti,Bi则表示该段最新版本的时间戳和Seg_Data_ID,
如果Ti满足条件,则直接返回Bi,否则继续在一级索引中,根据Ai和Ai+1指明的起止位置,采用二分搜索算法査找到满足条件的结果;
将查找到的每个段的待恢复版本的Seg_Data_ID传递给数据读取线程和数据合成线程,数据合成线程在内存中维护一个队列结构作为滑动恢复窗口,每个队列元素依次表示一个连续待恢复区域内的某个段,对于某个需读取的Seg_Data_ID,合成线程首先检查内存缓存,如果缓存命中则直接读取,否则查找其元数据信息,如果其大于0,则根据该Seg_Data的存储位置从磁盘读取,否则根据该Seg_Data的存储位置从云端读取;
读取操作由数据读取线程并发执行,对于每个读取到的Seg_Data,合成线程将其数据复制到当前滑动恢复窗口内所有其出现的位置,随后,滑动恢复窗口前部已读取的段数据被批量传输给客户系统供其写入,恢复窗口则继续向后滑动,直至完成所有段的恢复操作。
3.根据权利要求1所述的方法,其特征在于,所述云平台的版本索引模块为每个客户都维护独立的版本索引,保存该客户所有段的所有版本信息;版本索引在逻辑上存储的是从二元组〈LA,Timestamp>到Seg_Data的映射关系;版本索引由存储在磁盘上的两级索引和在内存cache组成;磁盘索引定期进行更新操作,而内存cache则存储上次磁盘索引更新之后直至当前的新增的段版本信息,磁盘索引分为一级索引和二级索引,一级索引由固定长度的二元组<Ti,j,Bi,j>顺序组成,Ti,j,Bi,j分别表示对第i号段的第j次写入操作的时间戳和Seg_Data_ID;二级索引由固定长度的三元组<Ai,Ti,Bi>顺序组成,其中Ai表示第i号段的版本信息在一级索引中的起始位置,Ti,Bi则表示该段最新版本的时间戳和Seg_Data_ID;内存cache使用一个散列表结构来存储若干对段号和指针,每个指针指向一个队列,指明上次磁盘索引更新后发生的对某个段的新写入信息,cache内的信息被同步写入到一个磁盘日志中,以便系统异常重启之后可以恢复这些信息。
4.根据权利要求1所述的方法,其特征在于,所述对备份数据存储到云端之前还包括对数据进行加密,其采用以下加密过程:
根据预置时间段内预期存储到云平台的备份数据量X,本地存储空间占用比例R以及数据安全级别Z计算出应生成随机种子的大小H;根据每次待加密明文数据量Y计算出对随机种子进行随机数据采集的次数t;所述H=X/R-8X/Z其中Z=Y/t,且Z>8R;生成并存储H大小的随机种子;按所述次数t从所述随机种子中多次采集数据,将每次采集的数据级联成不小于明文长度的0、1值随机序列;利用所述随机序列生成明文加密位标识数据串;利用所述明文加密位标识数据串选择一半以上明文数据加密,从首位数据起,将所述明文加密位标识随机序列及明文数据一一对应排列;选取与所述明文加密位标识随机序列中1对应的明文数据进行加密,将所述加密数据与未加密数据按所在明文位置排列形成密文。
5.根据权利要求4所述的方法,其特征在于,所述加密过程按所述次数t从所述随机种子中多次随机采集数据每次采集的起始位置与采集长度都是随机的,当所述随机序列的长度大于明文长度时,对所述随机序列多次进行数据采集生成不小于明文长度的新随机序列;并且
所述利用所述随机序列生成明文加密位标识数据串的步骤具体包括:
当所述随机序列的长度等于明文长度时,判断所述随机序列中1的数量是否大于明文数据位数的一半,如果是,则选取所述随机序列作为明文加密位标识随机序列;如果否,则对所述随机序列逻辑取反运算,用取反后的随机序列作为明文加密位标识随机序列;
当所述随机序列的长度大于明文长度时,在所述随机序列的随机起始位置采集数据形成与明文等长的新随机序列;判断所述新随机序列中1的数量是否大于明文数据位数的一半,如果是,则选取所述新随机序列作为明文加密位标识随机序列;如果否,则对所述新随机序列逻辑取反运算,用取反后的随机序列作为明文加密位标识随机序列;
通过信息摘要运算生成所述明文加密位标识随机序列的信息摘要值;
判断所述信息摘要值与先前存储的明文加密位标识随机序列信息摘要值是否一致,如果是,则重新生成明文加密位标识随机序列;否则,输出并存储所述明文加密位标识随机序列,同时将其信息摘要值存储。
CN201510028119.4A 2015-01-20 2015-01-20 一种安全云计算的方法 Active CN104537112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510028119.4A CN104537112B (zh) 2015-01-20 2015-01-20 一种安全云计算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510028119.4A CN104537112B (zh) 2015-01-20 2015-01-20 一种安全云计算的方法

Publications (2)

Publication Number Publication Date
CN104537112A CN104537112A (zh) 2015-04-22
CN104537112B true CN104537112B (zh) 2017-07-14

Family

ID=52852640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510028119.4A Active CN104537112B (zh) 2015-01-20 2015-01-20 一种安全云计算的方法

Country Status (1)

Country Link
CN (1) CN104537112B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088720A (zh) * 2018-08-14 2018-12-25 广东工业大学 一种基于混合云存储的加密文件去重方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977697B2 (en) * 2016-04-15 2018-05-22 Google Llc Task management system for a modular electronic device
CN108694188B (zh) * 2017-04-07 2023-05-12 腾讯科技(深圳)有限公司 一种索引数据更新的方法以及相关装置
CN107678409A (zh) * 2017-09-12 2018-02-09 成都易慧家科技有限公司 一种基于云计算的智能家居系统及控制方法
WO2021195943A1 (zh) * 2020-03-31 2021-10-07 深圳市大疆创新科技有限公司 飞行记录数据存储方法、获取方法及无人飞行器
CN111782435B (zh) * 2020-07-02 2021-08-06 重庆紫光华山智安科技有限公司 一种视频监控管理平台级联异常恢复处理方法及系统
CN114625369A (zh) * 2020-12-08 2022-06-14 航天信息股份有限公司 采集c/s客户端软件数据的方法、装置、介质及电子设备
CN112650755B (zh) * 2020-12-25 2024-08-13 北京百度网讯科技有限公司 数据存储方法、查询数据的方法、数据库、以及可读介质
CN115361398B (zh) * 2022-10-19 2023-03-14 成都飞机工业(集团)有限责任公司 一种数据备份容灾方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814045A (zh) * 2010-04-22 2010-08-25 华中科技大学 一种用于备份服务的数据组织方法
CN102200936A (zh) * 2011-05-11 2011-09-28 杨钧 适用于云存储的智能配置存储备份方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843489B2 (en) * 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US8527472B2 (en) * 2011-03-29 2013-09-03 Kaseya International Limited Method and apparatus of securely processing data for file backup, de-duplication, and restoration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814045A (zh) * 2010-04-22 2010-08-25 华中科技大学 一种用于备份服务的数据组织方法
CN102200936A (zh) * 2011-05-11 2011-09-28 杨钧 适用于云存储的智能配置存储备份方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088720A (zh) * 2018-08-14 2018-12-25 广东工业大学 一种基于混合云存储的加密文件去重方法及装置
CN109088720B (zh) * 2018-08-14 2021-08-13 广东工业大学 一种基于混合云存储的加密文件去重方法及装置

Also Published As

Publication number Publication date
CN104537112A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN104537112B (zh) 一种安全云计算的方法
CN104778095B (zh) 一种云平台数据管理方法
CN104536849B (zh) 一种基于云计算的数据备份方法
US11921684B2 (en) Systems and methods for database management using append-only storage devices
CN106233263B (zh) 缓存系统及方法
US10776315B2 (en) Efficient and flexible organization and management of file metadata
US11307765B2 (en) System and methods for storage data deduplication
CN102694828B (zh) 一种分布式缓存系统数据存取的方法及装置
CN110262922A (zh) 基于副本数据日志的纠删码更新方法及系统
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
CN104765575A (zh) 信息存储处理方法
CN102779180A (zh) 数据存储系统的操作处理方法,数据存储系统
CN111782612B (zh) 跨域虚拟数据空间中文件数据边缘缓存方法
CN110196847A (zh) 数据处理方法和装置、存储介质及电子装置
CN104765574A (zh) 数据云端存储方法
US11397706B2 (en) System and method for reducing read amplification of archival storage using proactive consolidation
CN106155934A (zh) 一种云环境下基于重复数据的缓存方法
CN107241444A (zh) 一种分布式缓存数据管理系统、方法及装置
JP2004524632A (ja) 記憶データを再編成するシステム及び方法
CN104778100A (zh) 一种安全备份数据的方法
US10372688B2 (en) Moving data within a distributed data storage system using virtual file links
US10416901B1 (en) Storage element cloning in presence of data storage pre-mapper with multiple simultaneous instances of volume address using virtual copies
US9575990B2 (en) Partitioning data within a distributed data storage system using virtual file links
US8694796B2 (en) Secure data deletion in a database
CN113127717A (zh) 一种密钥检索方法和系统

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method of secure cloud computing

Effective date of registration: 20210412

Granted publication date: 20170714

Pledgee: The Agricultural Bank of Chengdu branch of Limited by Share Ltd. Chinese Sichuan

Pledgor: SHINE TECHNOLOGY Co.,Ltd.

Registration number: Y2021980002529

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220424

Granted publication date: 20170714

Pledgee: The Agricultural Bank of Chengdu branch of Limited by Share Ltd. Chinese Sichuan

Pledgor: SHINE TECHNOLOGY Co.,Ltd.

Registration number: Y2021980002529

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method of secure cloud computing

Effective date of registration: 20220505

Granted publication date: 20170714

Pledgee: CHENGDU RURAL COMMERCIAL BANK CO.,LTD.

Pledgor: SHINE TECHNOLOGY Co.,Ltd.

Registration number: Y2022510000118