数据差异日志查询方法、装置、设备和存储介质制造方法及图纸

技术编号:37785533 阅读:6 留言:0更新日期:2023-06-09 09:16
本发明专利技术提供了一种数据差异日志查询方法、装置、设备和存储介质,本发明专利技术通过活动日志为热点数据区间记录差异日志,在缓存命中活动日志后可直接返回,从而减少写I/O落盘次数,极大地提升写I/O的性能,特别是双活卷顺序写小I/O性能。此外,通过层级对象记录大块数据区间是否存在差异,能够加速数据差异查询,加速故障恢复,提高双活业务的可用性和可靠性。提高双活业务的可用性和可靠性。提高双活业务的可用性和可靠性。

【技术实现步骤摘要】
数据差异日志查询方法、装置、设备和存储介质


[0001]本专利技术涉及存储计算
,尤其涉及一种数据差异日志查询方法、装置、设备和存储介质。

技术介绍

[0002]分布式块存储系统的双活特性基于两套分布式块存储集群构建Active

Active读写访问能力,具有双活特性的两个逻辑存储卷构成双活卷,双活卷的数据在两个分布式块存储系统之间保持数据同步,如果构成双活卷的两个存储系统中的任意一个故障,故障系统上的业务可自动切换到另外一个存储集群上继续运行,基于双活特性可做到恢复点目标(Recovery Point Objective,RPO)等于零,恢复时间目标(Recovery Time Objective,RTO)趋近于0,从而保证上层业务连续性。
[0003]向双活卷写入数据称为双活写,在双活写过程中会记录数据差异日志(Data Change LOG,DCL),集群故障恢复时,使用DCL可使两端的存储逻辑卷(Logic Unit Number,LUN)数据恢复成一致状态。存储系统记录DCL的性能直接影响双活卷的写性能,为了支撑双活卷的RPO=0,RTO≈0,需要快速获取双活卷数据差异,并将双活卷数据恢复成一致的状态,特别地,当双活卷差异数据量较小时,数据差异的快速获取能力就显得尤为重要。如何最大化数据差异日志DCL的记录和查询性能,是提升数据差异日志系统性能的关键。
[0004]在一种分布式存储数据差异日志的记录方法中,使用双活元数据池来记录DCL,双活元数据块对象与数据块对象一一对应,双活卷写I/O之前,先记录DCL日志到对应的DCL对象中,双写成功(两个双活卷都成功将数据块对象写入持久性存储)后清除对应的DCL对象。在故障的分布式块存储系统恢复后,会查询双活卷的数据差异,基于DCL将两端逻辑卷的数据恢复成一致。
[0005]现有技术中,将日志打散存储到对应的DCL对象中,在一定程度上满足了DCL读写性能要求,但每个写I/O都至少有一倍的写放大,日志开销较大,影响双活卷的写性能。另外,故障恢复过程中,需逐一遍历双活卷所有DCL对象获取差异,当双活卷容量较大,即使故障过程中只有少量数据写入,获取数据差异时间也较长,数据差异日志读取效率较低,影响故障恢复速度。

技术实现思路

[0006]有鉴于此,本专利技术提供一种数据差异日志查询方法、装置、设备和存储介质,用于解决分布式块存储系统故障恢复性能较低的技术问题。
[0007]基于本专利技术实施例的一方面,本专利技术提供一种数据差异日志记录方法,该方法应用于配置双活特性的分布式块存储系统中,该方法包括:
[0008]接收双活卷数据差异日志DCL记录请求,根据请求中的逻辑块地址LBA和请求范围计算请求包括的数据块对象的数据块对象标识和数据块对象所在大块数据区间;
[0009]首先以活动日志方式在活动日志表中记录所述数据块对象的数据差异日志并进
行日志持久化;所述活动日志表用于缓存热点写入数据区域的数据块对象的数据差异日志,所述活动日志的个数有限;
[0010]若以活动日志方式记录失败,则通过单独记录方式记录所述数据块对象的数据差异日志并进行日志持久化;
[0011]在故障单写情况下,以日志位图方式记录所述数据块对象的数据差异日志并进行日志持久化;
[0012]在数据差异日志池DCLPool中以层级对象方式持久化数据差异日志;在所述进行日志持久化时,同步更新所述数据块对象所属大块数据区间的层级对象以标识所属大块数据区间有数据差异。
[0013]进一步地,所属以活动日志方式在活动日志表中记录所述数据块对象的数据差异日志的方法为:
[0014]根据数据块对象标识查询活动日志表是否记录有该数据块对象的活动日志,若是,则将对应的活动日志的引用计数加1后直接返回DCL记录请求的成功响应;若否,则为该数据块对象分配活动日志块,若分配成功则在分配的活动日志块中记录所述数据块对象的数据差异日志信息生成活动日志,将其引用计数增1后加入到活动日志表中并进行日志持久化。
[0015]进一步地,所述方法还包括以状态链表的方式来管理活动日志表中的活动日志的步骤:
[0016]空闲链表用于管理和维护未被分配的处于空闲状态的活动日志块AL

extent;已分配且写入数据块对象信息的活动日志块形成活动日志;
[0017]提交链表用于管理和维护已添加到活动日志表但还未完成日志持久化的活动日志;
[0018]使用链表用于管理和维护已完成日志持久化的活动日志,使用链表中的活动日志的引用计数不为0,当引用计数为0时,将活动日志迁移到LRU链表;
[0019]最近最少使用LRU链表用于管理和维护引用计数为0但还未被淘汰的活动日志;被淘汰的活动日志的AL

extent迁移到空闲链表。
[0020]进一步地,所述方法还包括数据差异日志删除步骤:
[0021]根据数据差异日志删除请求起始逻辑块地址和请求范围计算数据块对象标识和数据块对象所在大块数据区间;
[0022]根据数据块对象标识检查是否是以单独记录方式记录的数据差异日志,如果是则获取数据差异日志存放位置,然后删除该数据差异日志;
[0023]若未以单独记录方式记录的数据差异日志则到活动日志表中检查数据块对象活动日志是否存在,如果存在则将其引用计数减1;若不存在则基于日志位图方式记录的数据差异日志,则基于差异位图模块记录的日志位图从DCLPool中数据块对象对应的数据差异日志DCL对象中删除对应的数据差异日志;
[0024]在删除数据差异日志时,同步更新所述数据块对象所属大块数据区间的层级对象以标识所属大块数据区间是否有数据差异。
[0025]进一步地,所述方法还包括数据差异日志查询步骤:
[0026]根据数据差异日志查询请求的起始逻辑块地址和请求范围计算数据块对象标识
和数据块对象所在大块数据区间;
[0027]在DCLPool的层级对象中检查计算的大块数据区间是否存在差异,若不存在差异,则返回差异为空;
[0028]若存在差异,则计算该大块数据区间对应的DCL对象,然后查询DCL对象所有的数据差异日志、日志位图记录;
[0029]依次检查请求范围内存在的所有数据差异日志,将请求范围内数据差异汇总返回。
[0030]基于本专利技术实施例的另一方面,本专利技术还提供一种数据差异日志记录装置,该装置应用于配置双活特性的分布式块存储系统中。该装置可以软件、硬件或软硬结合的方式实现。当以软件模块方式实现时,当该软件模块的程序代码被加载到设备的存储介质中,由处理器读取存储介质中的程序代码进行执行,从而实现该装置中各组成模块的功能。该装置包括:
[0031]活动日志模块,用于接收双活卷数据差异日志DCL记录请求,根据请求中的逻辑块地址LBA和请求范围计算请求包括的数据块对象的数据块对象标识和数据块对象所在大块数据区间;首先本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据差异日志记录方法,其特征在于,该方法应用于配置双活特性的分布式块存储系统中,该方法包括:接收双活卷数据差异日志DCL记录请求,根据请求中的逻辑块地址LBA和请求范围计算请求包括的数据块对象的数据块对象标识和数据块对象所在大块数据区间;首先以活动日志方式在活动日志表中记录所述数据块对象的数据差异日志并进行日志持久化;所述活动日志表用于缓存热点写入数据区域的数据块对象的数据差异日志,所述活动日志的个数有限;若以活动日志方式记录失败,则通过单独记录方式记录所述数据块对象的数据差异日志并进行日志持久化;在故障单写情况下,以日志位图方式记录所述数据块对象的数据差异日志并进行日志持久化;在数据差异日志池DCLPool中以层级对象方式持久化数据差异日志;在所述进行日志持久化时,同步更新所述数据块对象所属大块数据区间的层级对象以标识所属大块数据区间有数据差异。2.根据权利要求1所述的方法,其特征在于,所属以活动日志方式在活动日志表中记录所述数据块对象的数据差异日志的方法为:根据数据块对象标识查询活动日志表是否记录有该数据块对象的活动日志,若是,则将对应的活动日志的引用计数加1后直接返回DCL记录请求的成功响应;若否,则为该数据块对象分配活动日志块,若分配成功则在分配的活动日志块中记录所述数据块对象的数据差异日志信息生成活动日志,将其引用计数增1后加入到活动日志表中并进行日志持久化。3.根据权利要求2所述的方法,其特征在于,所述方法还包括以状态链表的方式来管理活动日志表中的活动日志的步骤:空闲链表用于管理和维护未被分配的处于空闲状态的活动日志块AL

extent;已分配且写入数据块对象信息的活动日志块形成活动日志;提交链表用于管理和维护已添加到活动日志表但还未完成日志持久化的活动日志;使用链表用于管理和维护已完成日志持久化的活动日志,使用链表中的活动日志的引用计数不为0,当引用计数为0时,将活动日志迁移到LRU链表;最近最少使用LRU链表用于管理和维护引用计数为0但还未被淘汰的活动日志;被淘汰的活动日志的AL

extent迁移到空闲链表。4.根据权利要求2所述的方法,其特征在于,所述方法还包括数据差异日志删除步骤:根据数据差异日志删除请求起始逻辑块地址和请求范围计算数据块对象标识和数据块对象所在大块数据区间;根据数据块对象标识检查是否是以单独记录方式记录的数据差异日志,如果是则获取数据差异日志存放位置,然后删除该数据差异日志;若未以单独记录方式记录的数据差异日志则到活动日志表中检查数据块对象活动日志是否存在,如果存在则将其引用计数减1;若不存在则基于日志位图方式记录的数据差异日志,则基于差异位图模块记录的日志位图从DCLPool中数据块对象对应的数据差异日志DCL对象中删除对应的数据差异日志;在删除数据差异日志时,同步更新所述数据块对象所属大块数据区间的层级对象以标
识所属大块数据区间是否有数据差异。5.根据权利要求2所述的方法,其特征在于,所述方法还包括数据差异日志查询步骤:根据数据差异日志查询请求的起始逻辑块地址和请求范围计算数据块对象标识和数据块对象所在大块数据区间;在DCLPool的层级对象中检查计算的大块数据区间是否存在差异,若不存在差异,则返回差异为空;若存在差异,则计算该大块数据区间对应的DCL对象,然后查询DCL对象所有的数据差异日志、日志位图记录;依次检查请求范围内存在的所有数据差异日志,将请求范围内数据差异汇总返回。6.一种数据差异日志记录装置,其特征在于,该装置应用于配置双活特性的分布式块存储系统中,该装置包括:活动日志模块,用于接收双活卷数据差异日志DCL记录请求,根据请求中的逻辑块地址LBA和请求范围计算请求包括的数据块对象的数据块对象标识和数据块对象所在大块数据区间;首先以活动日志方式在活动日志表中记录所述数据块对象的数据差异日志并进行日志持久化;所述活动日志表用于缓存热点写入数据区域的数据...

【专利技术属性】
技术研发人员:廖孝军
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1