首页 / 专利库 / 软件 / 后台任务 / 一种元数据模块及元数据模块处理方法

一种元数据模及元数据模块处理方法

阅读:399发布:2020-05-08

专利汇可以提供一种元数据模及元数据模块处理方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种元数据模 块 ,包括:元数据对象模块:用于管理元数据对象,包括LUN信息、B+树的rootNode;实现ROOT区数据结构的初始化、更新和恢复;事务模块:用于保证 请求 的 原子 性;写缓存模块:用于将I/O业务的请求在内存中缓存;B+树模块:用于实现元数据模块的B+树操作 算法 ;读缓存模块:用于提高元数据模块的读性能;查询模块:用于进行查询操作。还公开了一种用于处理存储系统下层离线情况的元数据模块处理方法,保证了下层离线时元数据请求的原子性,确保数据的完整性和一致性,有利于提高元数据模块开发的可靠性。,下面是一种元数据模及元数据模块处理方法专利的具体信息内容。

1.一种元数据模,其特征是,包括:
元数据对象模块:用于管理元数据对象,包括LUN信息、B+树的rootNode;实现ROOT区数据结构的初始化、更新和恢复;
事务模块:用于保证请求原子性;
写缓存模块:用于将I/O业务的请求在内存中缓存;
B+树模块:用于实现元数据模块的B+树操作算法
读缓存模块:用于提高元数据模块的读性能;
查询模块:用于进行查询操作。
2.根据权利要求1所述的元数据模块,其特征是,所述保证请求的原子性,包括:
若一个请求内的若干子请求全部完成,则请求完成;
若任意一个子请求未完成,则请求回滚,已完成的子请求取消。
3.根据权利要求1所述的元数据模块,其特征是,所述写缓存模块包括WRITE_BACK模式和WRITE_THROUGH模式,其中:
WRITE_BACK模式:写缓存模块被划分一定的内存空间,用于将事务模块发送的请求进行缓存,在达到设定条件时请求进行下刷;
WRITE_THROUGH模式:直接将事务模块发送的请求进行下刷。
4.一种元数据模块处理方法,用于处理存储系统下层离线的情况,其特征是,基于权利要求1-3所述的元数据模块,具体步骤包括:
离线处理:停止后台任务,取消元数据请求,建立事务重做链表;
重新上线处理:写缓存下刷任务开启,根据事务重做链表重做请求,重启后台任务。
5.根据权利要求4所述的元数据模块处理方法,其特征是,所述后台任务包括卷删除和写缓存定时下刷。
6.根据权利要求4所述的元数据模块处理方法,其特征是,所述取消元数据请求,包括:
若元数据模块内存空间请求尚未处理,则主动取消元数据请求,向上层返回FAILED_OFFLINE;
若元数据模块已申请到内存空间,则通过模块入口判断当前是否为下层离线状态,若为非离线状态,则正常处理;若为离线状态,则取消请求,向上层返回FAILED_OFFLINE。
7.根据权利要求6所述的元数据模块处理方法,其特征是,所述元数据请求通过事务模块、写缓存模块、查询模块处理,其中,事务模块取消的请求写入事务重做链表。
8.根据权利要求4所述的元数据模块处理方法,其特征是,所述根据事务重做链表重做请求,重启后台任务,包括:
事务重做结束后,通知上层处理结束,重启元数据后台任务。

说明书全文

一种元数据模及元数据模块处理方法

技术领域

[0001] 本发明涉及存储系统领域,具体涉及一种元数据模块及元数据模块处理方法。

背景技术

[0002] 在全闪存储系统的集群结构下,元数据是最重要的部分,元数据模块通过读缓存和写缓存进行性能提高,流程十分复杂。针对一般I/O业务,需要管理逻辑地址到物理地址的映射关系;针对垃圾回收功能,需要管理物理地址到逻辑地址的映射关系;针对支持的崇山功能,需要管理I/O的指纹值到物理地址的映射关系。由此可见,针对一个I/O业务,需要进行多次映射关系的管理等操作,因此,在事务进行时要保证其原子性。
[0003] 当存储系统遇到硬盘故障、拔盘、存储池满等下层离线的情况时,需要进行硬盘更换或扩容,对于元数据模块来说需要进行较为复杂的操作,如果操作不当,将影响数据的可靠性和一致性。

发明内容

[0004] 为了解决上述技术问题,本发明提出了一种元数据模块及元数据模块处理方法,在下层离线的情况下,保证了数据的可靠性与一致性。
[0005] 为实现上述目的,本发明采用以下技术方案:
[0006] 一种元数据模块,包括:
[0007] 元数据对象模块:用于管理元数据对象,包括LUN信息、B+树的rootNode;实现ROOT区数据结构的初始化、更新和恢复;
[0008] 事务模块:用于保证请求的原子性;
[0009] 写缓存模块:用于将I/O业务的请求在内存中缓存;
[0010] B+树模块:用于实现元数据模块的B+树操作算法
[0011] 读缓存模块:用于提高元数据模块的读性能;
[0012] 查询模块:用于进行查询操作。
[0013] 进一步地,所述保证请求的原子性,包括:
[0014] 若一个请求内的若干子请求全部完成,则请求完成;
[0015] 若任意一个子请求未完成,则请求回滚,已完成的子请求取消。
[0016] 进一步地,所述写缓存模块包括WRITE_BACK模式和WRITE_THROUGH模式,其中:
[0017] WRITE_BACK模式:写缓存模块被划分一定的内存空间,用于将事务模块发送的请求进行缓存,在达到设定条件时请求进行下刷;
[0018] WRITE_THROUGH模式:直接将事务模块发送的请求进行下刷。
[0019] 本发明还提供了一种元数据模块处理方法,用于处理存储系统下层离线的情况,基于上述的元数据模块,具体步骤包括:
[0020] 离线处理:停止后台任务,取消元数据请求,建立事务重做链表;
[0021] 重新上线处理:写缓存下刷任务开启,根据事务重做链表重做请求,重启后台任务。
[0022] 进一步地,所述后台任务包括卷删除和写缓存定时下刷。
[0023] 进一步地,所述取消元数据请求,包括:
[0024] 若元数据模块内存空间请求尚未处理,则主动取消元数据请求,向上层返回FAILED_OFFLINE;
[0025] 若元数据模块已申请到内存空间,则通过模块入口判断当前是否为下层离线状态,若为非离线状态,则正常处理;若为离线状态,则取消请求,向上层返回FAILED_OFFLINE。
[0026] 进一步地,所述元数据请求通过事务模块、写缓存模块、查询模块处理,其中,事务模块取消的请求写入事务重做链表。
[0027] 进一步地,所述根据事务重做链表重做请求,重启后台任务,包括:
[0028] 事务重做结束后,通知上层处理结束,重启元数据后台任务。
[0029] 本发明的有益效果是:
[0030] 本发明通过提供一种元数据模块及元数据模块处理方法,解决了全闪存储系统中下层离线时元数据模块操作复杂的问题,通过事务模块保证元数据请求的原子性,从而确保数据的完整性和一致性,有利于提高元数据模块开发的可靠性,为全闪存储的元数据模块的高可用性开发起到一定的作用,能够有效减少实现的开发周期。附图说明
[0031] 图1是本发明实施例元数据模块结构示意图;
[0032] 图2是本发明元数据模块处理方法的离线处理流程示意图;
[0033] 图3是本发明元数据模块处理方法的重新上线处理流程示意图。

具体实施方式

[0034] 为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
[0035] 本发明实施例提供了一种元数据模块,如图1所示,其内部划分为以下几个子模块:
[0036] 元数据对象模块:用于管理元数据对象,包括LUN信息、B+树的rootNode;实现ROOT区数据结构的初始化、更新和恢复。
[0037] 事务模块:用于保证请求的原子性。由于一个请求可以被分为多个子请求,因此需要事务机制进行原子性保证:若所有子请求完成则全部完成,若其中一个子请求未完成则表示失败,请求需要进行回滚重做,已完成的子请求也需要进行取消操作。
[0038] 写缓存模块:用于将I/O业务的请求在内存中缓存。写缓存模块负责将I/O业务的处理在内存中进行缓存,根据业务需要,分为WRITE_BACK模式和WRITE_THROUGH模式。在WRITE_BACK模式中,写缓存被划分一定的内存空间,用于将事务模块发送的请求进行缓存,并在达到设定条件的情况下才进行下刷。而在WRITE_THROUGH模式下,则直接将事务模块发送的请求进行下刷。
[0039] B+树模块:用于实现元数据模块的B+树操作算法。B+树模块是整个元数据模块的交互核心。
[0040] 读缓存模块:用于提高元数据模块的读性能。
[0041] 查询模块:用于进行查询操作。
[0042] 本发明实施例还提供了一种元数据模块处理方法,用于处理存储系统下层离线的情况,所述下层离线情况包括硬盘故障、拔盘、存储池满等情况。具体步骤包括:
[0043] 离线处理:停止后台任务,取消元数据请求,建立事务重做链表;
[0044] 重新上线处理:写缓存下刷任务开启,根据事务重做链表重做请求,重启后台任务。
[0045] 所述后台任务包括卷删除和写缓存定时下刷等。
[0046] 对于下层RAID离线的情况,此时基于该RAID建立的存储池将不可进行读写操作,此时若进行I/O操作,需要元数据模块进行相应的离线处理,其基本原则是:等待元数据请求主动进行取消,若无法取消,则通过在I/O路径上的各个位置进行被动判断而取消,然后向上层返回FAILED_OFFLINE。
[0047] 如图2所示,本发明一种实施例的离线处理流程具体包括:
[0048] 11)停止后台任务。对于如卷删除、写缓存定时下刷等后台任务,该任务在处理过程中涉及到大量的元数据内部I/O操作,即会造成大量的读写请求,由于RAID离线时无法进行处理,因此第一步需要将这些后台任务停止。
[0049] 12)主动取消元数据请求。若元数据模块内事务模块、写缓存模块、查询模块等模块的内存空间请求尚未处理,则主动取消元数据请求,向上层返回FAILED_OFFLINE,而不下发到下层模块中。对于事务模块,将这些请求写入事务重做链表,等待onl ine之后取出重做。
[0050] 13)被动取消元数据请求。若元数据模块已申请到内存空间,各个模块的各个阶段已经开始处理请求,则通过模块入口判断当前是否为下层RAID离线状态,若当前不是离线状态,则正常处理;若当前是离线状态,则取消请求,向上层返回FAILED_OFFLINE。对于事务模块,将这些请求写入事务重做链表,等待onl ine之后取出重做。
[0051] 下层RAID重新上线后,需要在各模块都处理完成之前,保证上层不会下发新的I/O业务。因此,此时元数据模块需要处理RAID离线过程中可能出现的事务子请求失败,以及重新打开后台任务。
[0052] 如图3所示,重新上线处理流程如下:
[0053] 21)写缓存下刷任务开启。开启在RAID离线过程中停止的写缓存下刷任务,以保证事务请求可以正常下发。
[0054] 22)事务重做。在离线过程中,事务模块将取消的请求写入事务重做链表,在RAID上线后,需要首先将该重做链表中的请求重新下发,各模块开始正常处理请求。
[0055] 23)重启元数据后台任务。等待事务重做结束后,元数据模块便可以接收新的I/O业务下发,此时通知上层处理结束,重启元数据后台任务,准备处理新I/O业务。
[0056] 上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈