一种优化对象存储系统中块设备数据访问性能的方法
【技术领域】
[0001]本发明涉及数据备份领域的块级⑶P(Continuous Data Protect1n)技术、计算机信息存储技术领域的面向对象存储技术和iSCSI (Internet Small Computer SystemInterface)虚拟卷技术,尤其涉及一种优化对象存储系统中块设备数据访问性能的方法。
【背景技术】
[0002]块级⑶P数据保护技术是目前比较流行的一种数据保护技术,它忽略上层应用,直接把焦点聚集在文件系统层和卷设备层,首先对待保护的卷设备数据做一次完整的初始化复制,生成一份初始化副本,然后捕获系统1/0,将目的地位于待保护卷设备区域的I/O重定向到存储介质,保存所有变化1/0,达到数据保护的目的。但是如何保存和组织rap数据,使得关键时刻,能够迅速的将某个时间点的CDP数据立即可用,一直是一道难题。目前的做法一般有以下两种:
[0003]1、快照+1/0日志的方式:这种方式简单来说,首先要从存储介质上分配一块跟原卷(原卷即待待保护的主机端数据卷)一样大小的空间,用作原卷的异步镜像卷,然后再划分出一块空间,用于保存原卷的I/o过程数据,这种方式,要求存储介质一定要有快照功能,rap过程中,将I/O过程数据按照特定格式组织起来,并按照一定的频率对镜像卷生成快照。恢复的时候,通过回滚快照和I/o日志记录的方式,能达到非常不错的恢复效果;
[0004]2、初始化副本+1/0日志的方式:这种方式一般用于当前备份系统的后台存储设备不具有快照功能的情况下,如专利号为CN201110134795的专利:一种面向对象的存储方法及系统,里面涉及的OFS(Object File System)存储系统(如图4所示),由于对象存储系统按照对象分层级纵向索引,没有横向将多个对象下属子对象组合起来快速索引的机制,对数据随机访问支持极为有限,并不适合用作块级CDP数据存储介质,当通过iSCSI虚拟卷技术,将存储于0FS中的某个时间点的CDP备份数据集虚拟成卷,通过iSCSI挂载到恢复目标端主机,供恢复目标端主机使用时,主机端对iSCSI虚拟卷的访问主要是随机访问,性能不够理想,原因如下:假设TP1,TP2,...,TPN这N个时间点对象,用户选择挂载TPN时刻的⑶P数据集,当iSCSI Initiator端请求数据块(offset,length)时,要从0FS存储系统中获取到该数据块,因为不知道该数据区域最近的变更状态,只能从时间点对象TPN开始从后往前遍历所有时间点对象下的数据对象,寻找偏移和长度落在(offset,length)区域内的数据块,直到填充满(offset,length)区域,或者搜寻完初始化副本时间点对象下的数据对象结束,这种查找数据块的算法效率为0 (η),随η越大,效果越差,当时间点过多时,要经过多次的查找、数据块合并操作。
【发明内容】
[0005]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种优化对象存储系统中块设备数据访问性能的方法,通过优化对象存储系统中块设备数据访问性能,能显著提高对象存储系统中存储的块设备数据的检索效率,从而解决0FS对象存储系统作为CDP数据后台存储介质时,通过iSCSI虚拟卷技术挂载某一时间点的卷设备数据集时,iSCSI挂载卷的访问性能问题。
[0006]本发明的目的可以通过以下技术方案来实现:
[0007]—种优化对象存储系统中块设备数据访问性能的方法,其特征在于,通过增加能够快速定位0FS对象存储系统中保存的CDP模块的CDP数据位图模块,并将该CDP数据位图模块应用于数据保护过程和数据恢复过程。
[0008]数据保护过程中,CDP数据位图模块的工作过程如下:
[0009](101)根据监控数据源对应的卷设备信息创建主位图,并将主位图所有区域置零;
[0010](102)初始化复制阶段:根据接收到的数据块信息,将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,初始化完成后,将当前内存中的主位图保存到指定的文件中;
[0011](103)增量复制阶段:创建当前时间戳值对应的变化数据块链表,将数据块元数据保存到该链表中,同时,将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,并保存上一时间戳的元数据链表到指定文件;
[0012](104)当生成下一个时间点对象时,将当前时间点对象对应的数据块元数据链表持久化到控制端上的数据块元数据链表文件中;定期将主位图持久化到控制端上的主位图文件。
[0013]数据恢复过程如下:
[0014](201) rap数据位图模块根据目标时间戳加载对应的主位图;
[0015](202)CDP数据位图模块判断目标时间戳与主位图的时间戳是否相同,如果是,则加载主位图到内存,并执行步骤(203);否则,加载主位图到内存,按时间升序读取主位图时间戳到目标时间戳之前的时间点元数据链表,合成目标时间点对应的主位图,并执行步骤(203);
[0016](203) iSCSI虚拟卷模块根据恢复数据集的原数据,虚拟一个卷,通过iSCSI挂载到目标机器,iSCSI虚拟卷模块接收到目标机器的iSCSI Initiator (iSCSI应用客户端)向iSCSI Target (iSCSI存储目标端)数据请求后,查询⑶P数据位图模块提供的主位图,根据主位图中记录的数据块,定位数据块所属的时间点对象,然后从0FS对象存储系统中获取与该时间点对象对应的数据块,并组织数据块返回。
[0017]所述步骤(201)具体为:选择要恢复的CDP数据集对应的时间点对象,则该时间点对象的时间戳为目标时间戳,CDP数据位图模块根据目标时间戳从主位图文件中定位到最近的一份主位图。
[0018]所述步骤(202)中合成目标时间点对应的主位图具体为:根据元数据项中记录的数据块的偏移和长度计算出对应的主位图区域,然后将主位图的对应区域设置为元数据项所属时间点对象的时间戳值,合成目标时间点对应的主位图。
[0019]与现有技术相比,本发明通过在0FS对象存储系统之上组织一层rap数据位图,能够帮助0FS对象存储系统快速定位某一数据区域的最新内容对应的时间点对象,从而极大的提升了 0FS对象存储系统作为CDP数据后台存储介质时,通过iSCSI虚拟卷技术挂载某一时间点的卷设备数据集时,对应iSCSI挂载卷的访问性能。
【附图说明】
[0020]图1为本申请系统结构图;
[0021]图2为本申请数据保护过程中CDP数据位图模块的工作流程图;
[0022]图3为本申请数据恢复过程中CDP数据位图模块的工作流程图;
[0023]图4为本申请0FS对象存储系统数据组织结构图;
[0024]图5为本申请主位图的组织结构图;
[0025]图6为本申请时间戳元数据链表组织结构图。
【具体实施方式】
[0026]下面结合附图和具体实施例对本发明进行详细说明。
[0027]本发明优化对象存储系统中块设备数据访问性能的方法,通过增加能够快速定位0FS对象存储系统中保存的CDP模块的CDP数据位图模块,在0FS对象存储模块之上做的一层CDP数据位图,并将该CDP数据位图模块应用于数据保护过程和数据恢复过程。
[0028]数据保护过程中,主位图结构请参考附图5,时间戳元数据链表请参考附图6,CDP数据位图模块的工作过程如图2所示:
[0029](101)根据监控数据源对应的卷设备信息创建主位图,并将主位图所有区域置零;
[0030](102)初始化复制阶段:初始化监控卷设备原始数据的过程中,根据接收到的数据块信息(偏移+长度),将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,初始化完成后,将当前内存中的主位图保存到指定的文件中;
[0031](103)增量复制阶段:每生成一个备份集时间点对象,则先创建一个该备份时间点对象(当前时间戳值)对应的数据块元数据链表,将数据块元数据保存到该链表中,同时,根据接收到的数据块信息(偏移+长度),将主位图中对应该数据块的区域设置为当前时间点对象的时间戳值,然后将数据块元数据(偏移+长度)插入数据块元数据链表,并保存上一时间戳的元数据链表到指定文件;
[0032](104)当生成下一个备份集时间点对象时,将当前时间点对象对应的数据块元数据链表持久化到控制端上的数据块元数据链表文件中;定期将主位图持久化到控制端上的主位图文件。
[0033]如图3所示,数据恢复过程如下:
[0034](201)CDP数据位图模块根据目标时间戳加载对应的主位图,具体来说,选择要恢复的CDP数据集对应的时间点对象,则该时间点对象的时间戳为目标时间戳,CDP数据位图模块根据目标时间戳从主位图文件中定位到最近的一份主位图。;
[0035](202)CDP数据位图模块