首页> 中国专利> 一种优化对象存储系统中块设备数据访问性能的方法

一种优化对象存储系统中块设备数据访问性能的方法

摘要

本发明涉及一种优化对象存储系统中块设备数据访问性能的方法,通过增加能够快速定位OFS对象存储系统中保存的CDP模块的CDP数据位图模块,并将该CDP数据位图模块应用于数据保护过程和数据恢复过程。与现有技术相比,本发明具有效率高等优点。

著录项

  • 公开/公告号CN105302668A

    专利类型发明专利

  • 公开/公告日2016-02-03

    原文格式PDF

  • 申请/专利权人 上海爱数信息技术股份有限公司;

    申请/专利号CN201510688070.5

  • 发明设计人 曹丁科;

    申请日2015-10-21

  • 分类号G06F11/14(20060101);

  • 代理机构31225 上海科盛知识产权代理有限公司;

  • 代理人应小波

  • 地址 201112 上海市闵行区联航路1188号8幢第2层A-1单元

  • 入库时间 2023-12-18 13:57:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-25

    授权

    授权

  • 2016-03-02

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20151021

    实质审查的生效

  • 2016-02-03

    公开

    公开

说明书

技术领域

本发明涉及数据备份领域的块级CDP(ContinuousDataProtection)技术、计算机信息存储技术领域的面向对象存储技术和iSCSI(InternetSmallComputerSystemInterface)虚拟卷技术,尤其涉及一种优化对象存储系统中块设备数据访问性能的方法。

背景技术

块级CDP数据保护技术是目前比较流行的一种数据保护技术,它忽略上层应用,直接把焦点聚集在文件系统层和卷设备层,首先对待保护的卷设备数据做一次完整的初始化复制,生成一份初始化副本,然后捕获系统I/O,将目的地位于待保护卷设备区域的I/O重定向到存储介质,保存所有变化I/O,达到数据保护的目的。但是如何保存和组织CDP数据,使得关键时刻,能够迅速的将某个时间点的CDP数据立即可用,一直是一道难题。目前的做法一般有以下两种:

1、快照+I/O日志的方式:这种方式简单来说,首先要从存储介质上分配一块跟原卷(原卷即待待保护的主机端数据卷)一样大小的空间,用作原卷的异步镜像卷,然后再划分出一块空间,用于保存原卷的I/O过程数据,这种方式,要求存储介质一定要有快照功能,CDP过程中,将I/O过程数据按照特定格式组织起来,并按照一定的频率对镜像卷生成快照。恢复的时候,通过回滚快照和I/O日志记录的方式,能达到非常不错的恢复效果;

2、初始化副本+I/O日志的方式:这种方式一般用于当前备份系统的后台存储设备不具有快照功能的情况下,如专利号为CN201110134795的专利:一种面向对象的存储方法及系统,里面涉及的OFS(ObjectFileSystem)存储系统(如图4所示),由于对象存储系统按照对象分层级纵向索引,没有横向将多个对象下属子对象组合起来快速索引的机制,对数据随机访问支持极为有限,并不适合用作块级CDP数据存储介质,当通过iSCSI虚拟卷技术,将存储于OFS中的某个时间点的CDP备份数据集虚拟成卷,通过iSCSI挂载到恢复目标端主机,供恢复目标端主机使用时,主机端对iSCSI虚拟卷的访问主要是随机访问,性能不够理想,原因如下:假设TP1,TP2,...,TPN这N个时间点对象,用户选择挂载TPN时刻的CDP数据集,当iSCSIInitiator端请求数据块(offset,length)时,要从OFS存储系统中获取到该数据块,因为不知道该数据区域最近的变更状态,只能从时间点对象TPN开始从后往前遍历所有时间点对象下的数据对象,寻找偏移和长度落在(offset,length)区域内的数据块,直到填充满(offset,length)区域,或者搜寻完初始化副本时间点对象下的数据对象结束,这种查找数据块的算法效率为O(n),随n越大,效果越差,当时间点过多时,要经过多次的查找、数据块合并操作。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种优化对象存储系统中块设备数据访问性能的方法,通过优化对象存储系统中块设备数据访问性能,能显著提高对象存储系统中存储的块设备数据的检索效率,从而解决OFS对象存储系统作为CDP数据后台存储介质时,通过iSCSI虚拟卷技术挂载某一时间点的卷设备数据集时,iSCSI挂载卷的访问性能问题。

本发明的目的可以通过以下技术方案来实现:

一种优化对象存储系统中块设备数据访问性能的方法,其特征在于,通过增加能够快速定位OFS对象存储系统中保存的CDP模块的CDP数据位图模块,并将该CDP数据位图模块应用于数据保护过程和数据恢复过程。

数据保护过程中,CDP数据位图模块的工作过程如下:

(101)根据监控数据源对应的卷设备信息创建主位图,并将主位图所有区域置零;

(102)初始化复制阶段:根据接收到的数据块信息,将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,初始化完成后,将当前内存中的主位图保存到指定的文件中;

(103)增量复制阶段:创建当前时间戳值对应的变化数据块链表,将数据块元数据保存到该链表中,同时,将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,并保存上一时间戳的元数据链表到指定文件;

(104)当生成下一个时间点对象时,将当前时间点对象对应的数据块元数据链表持久化到控制端上的数据块元数据链表文件中;定期将主位图持久化到控制端上的主位图文件。

数据恢复过程如下:

(201)CDP数据位图模块根据目标时间戳加载对应的主位图;

(202)CDP数据位图模块判断目标时间戳与主位图的时间戳是否相同,如果是,则加载主位图到内存,并执行步骤(203);否则,加载主位图到内存,按时间升序读取主位图时间戳到目标时间戳之前的时间点元数据链表,合成目标时间点对应的主位图,并执行步骤(203);

(203)iSCSI虚拟卷模块根据恢复数据集的原数据,虚拟一个卷,通过iSCSI挂载到目标机器,iSCSI虚拟卷模块接收到目标机器的iSCSIInitiator(iSCSI应用客户端)向iSCSITarget(iSCSI存储目标端)数据请求后,查询CDP数据位图模块提供的主位图,根据主位图中记录的数据块,定位数据块所属的时间点对象,然后从OFS对象存储系统中获取与该时间点对象对应的数据块,并组织数据块返回。

所述步骤(201)具体为:选择要恢复的CDP数据集对应的时间点对象,则该时间点对象的时间戳为目标时间戳,CDP数据位图模块根据目标时间戳从主位图文件中定位到最近的一份主位图。

所述步骤(202)中合成目标时间点对应的主位图具体为:根据元数据项中记录的数据块的偏移和长度计算出对应的主位图区域,然后将主位图的对应区域设置为元数据项所属时间点对象的时间戳值,合成目标时间点对应的主位图。

与现有技术相比,本发明通过在OFS对象存储系统之上组织一层CDP数据位图,能够帮助OFS对象存储系统快速定位某一数据区域的最新内容对应的时间点对象,从而极大的提升了OFS对象存储系统作为CDP数据后台存储介质时,通过iSCSI虚拟卷技术挂载某一时间点的卷设备数据集时,对应iSCSI挂载卷的访问性能。

附图说明

图1为本申请系统结构图;

图2为本申请数据保护过程中CDP数据位图模块的工作流程图;

图3为本申请数据恢复过程中CDP数据位图模块的工作流程图;

图4为本申请OFS对象存储系统数据组织结构图;

图5为本申请主位图的组织结构图;

图6为本申请时间戳元数据链表组织结构图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

本发明优化对象存储系统中块设备数据访问性能的方法,通过增加能够快速定位OFS对象存储系统中保存的CDP模块的CDP数据位图模块,在OFS对象存储模块之上做的一层CDP数据位图,并将该CDP数据位图模块应用于数据保护过程和数据恢复过程。

数据保护过程中,主位图结构请参考附图5,时间戳元数据链表请参考附图6,CDP数据位图模块的工作过程如图2所示:

(101)根据监控数据源对应的卷设备信息创建主位图,并将主位图所有区域置零;

(102)初始化复制阶段:初始化监控卷设备原始数据的过程中,根据接收到的数据块信息(偏移+长度),将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,初始化完成后,将当前内存中的主位图保存到指定的文件中;

(103)增量复制阶段:每生成一个备份集时间点对象,则先创建一个该备份时间点对象(当前时间戳值)对应的数据块元数据链表,将数据块元数据保存到该链表中,同时,根据接收到的数据块信息(偏移+长度),将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,然后将数据块元数据(偏移+长度)插入数据块元数据链表,并保存上一时间戳的元数据链表到指定文件;

(104)当生成下一个备份集时间点对象时,将当前时间点对象对应的数据块元数据链表持久化到控制端上的数据块元数据链表文件中;定期将主位图持久化到控制端上的主位图文件。

如图3所示,数据恢复过程如下:

(201)CDP数据位图模块根据目标时间戳加载对应的主位图,具体来说,选择要恢复的CDP数据集对应的时间点对象,则该时间点对象的时间戳为目标时间戳,CDP数据位图模块根据目标时间戳从主位图文件中定位到最近的一份主位图。;

(202)CDP数据位图模块判断目标时间戳与主位图的时间戳是否相同,如果是,则加载主位图到内存,并执行步骤(203);否则,加载主位图到内存,按时间升序读取主位图时间戳到目标时间戳之前的时间点元数据链表,将时间戳元数据链表中的元数据项合并到主位图中,合并过程跟备份过程中更新主位图的方式一致(即根据元数据项中记录的数据块偏移和长度计算出对应的主位图区域,然后将主位图的对应区域设置为元数据项所属时间点对象的时间戳值),合成目标时间点对应的主位图,并执行步骤(203);

(203)控制端的iSCSI虚拟卷模块根据恢复数据集的原数据,虚拟一个卷,通过iSCSI挂载到目标机器,iSCSI虚拟卷模块接收到目标机器的iSCSIInitiator端向iSCSITarget数据请求后,查询CDP数据位图模块提供的主位图,根据主位图中记录的数据块,定位数据块所属的时间点对象,然后从OFS对象存储系统中获取与该时间点对象对应的数据块,并组织数据块返回。

根据上述理论,下面具体描述实施该方法的步骤。

如图1所示为系统结构图,Client端部署在受保护的计算机上,Console端部署在其他计算机上,但务必保证Console端部署的计算机稳定可靠,且与Client端受保护的计算机通过以太网连接在一起。

该方法的实施步骤如下:

1、安装客户端(Client)到主机A上,控制端(Console)部署在主机B上,主机A与主机B通过以太网络连接;

2、选择主机A上的数据卷D作为待保护卷并创建CDP任务,数据卷D的基本信息如下:文件系统为NTFS,卷大小为1TB,数据量为200GB,簇(块)大小为4KB;

3、Timestamp1时刻,CDP任务启动,根据NTFS文件系统Bitmap备份卷D的初始数据,并将初始数据块发送到Console端,OFS对象存储系统根据任务先分配一个唯一的GUID(GloballyUniqueIdentifier),然后在该GUID对象下创建时间戳为Timestamp1的时间点对象,Timestamp1下面在创建数据对象D,用于存储卷D的所有数据,而CDP数据位图模块根据待保护的卷设备信息,申请一块1GB的内存(1TB/4KB*4Byte),并将内存块置零。如接受到数据块Offset=0,Length=4MB,则将主位图MainBitmap[Offset/ClusterSize]起,Length/ClusterSize个位设置为Timestamp1,然后将数据发送给OFS对象存储模块,将数据保存在GUID/Timestamp1/D下,如此循环,直到卷D所有初始数据备份完成,将Timestamp1对应的主位图持久化到GUID/MainBitmap/Timestamp1。

4、Timestamp2时刻,进入增量备份阶段,CDP捕获到I/O变化数据块Block1,Offset=4096Byte,Length=4096Byte,数据被发送到Console端,CDP数据位图模块创建Timestamp2对应的时间点数据块元数据链表IncreBitmap,将Block1的元数据(Offset,Length)插入时间点数据块元数据链表IncreBitmap,然后将主位图MainBitmap[Offset/ClusterSize]起,Length/ClusterSize个位设置为Timestamp2,然后将数据发送给OFS对象存储模块,OFS对象存储模块穿件时间点对象Timestamp2,并在Timestamp2下面创建数据对象D,将数据保存在GUID/Timestamp2/D下;

5、Timestamp3时刻,生成时间点Timestamp3,则需要将Timestamp2对应的时间点数据块元数据链表IncreBitmap2持久化到GUID/IncreBitmap/Timestamp2;

6、按照任务计划时间点生成策略定期生成时间点,转步骤4;

7、某一时刻,用户想查看一下Timestamp2时刻的D卷的数据集,恢复目录机器为机器A。

8、找到离Timestamp2最近的主位图MainBitmap1,从GUID/MainBitmap/Timestamp1中加载MainBitmap1,然后从GUID/IncreBitmap/Timestamp2中加载Timestamp2时刻的时间点数据块元数据链表,合成MainBitmap2。

9、通过iSCSI虚拟卷模块挂载到机器A,则机器A上多出一块磁盘,磁盘上面有一个与D大小一致的分区,系统自动分配卷标为E,假设用户访问E上一个文件,该文件的数据存储相对卷E的区域为Offset(4096-24576),这iSCSIInitiator向iSCSITarget请求数据块blockOffset=4096,blockLength=20480,iSCSI虚拟卷模块查找主位图MainBitmap2,发现区域(4096,8192)在GUID/Timestamp2/D下,区域(8192,24576)GUID/Timestamp1/D,然后通知OFS对象存储模块将这两个子数据块取出来合并后返回给iSCSIInitiator。

通过上述步骤可以看出主位图的查找效率为O(1),远优于传统的查找算法O(n)。

请求其他块数据的查找过程与步骤9类似。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号