CN113901293B - 元数据管理方法、电子设备,及计算机可读存储介质 - Google Patents
元数据管理方法、电子设备,及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113901293B CN113901293B CN202111168622.1A CN202111168622A CN113901293B CN 113901293 B CN113901293 B CN 113901293B CN 202111168622 A CN202111168622 A CN 202111168622A CN 113901293 B CN113901293 B CN 113901293B
- Authority
- CN
- China
- Prior art keywords
- data block
- metadata
- tree
- node
- identification information
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 51
- 230000006870 function Effects 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 230000001680 brushing effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052573 porcelain Inorganic materials 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及一种元数据管理方法、电子设备,及计算机可读存储介质,该方法包括:当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域存在数据块标识信息时,获取数据块标识信息;根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据;根据第一B+树和元数据,在第二节点的内存中构建第二B+树。通过该方式,不仅可以避免因为现有技术中元数据镜像导致的性能衰减的问题,还能够保证在故障场景中,元数据不会丢失,另外一个节点可以接管该压缩卷,实现卷功能的有效性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种元数据管理方法、电子设备,及计算机可读存储介质。
背景技术
随着信息产业化的发展,信息数据量增速明显,需要存储的数据规模越来越大,对存储设备的容量提出了更高的要求,成本也在不断增加。数据缩减成为存储中重要的业务内容,压缩是数据缩减方案中的重要技术手段。数据的价值是无法估量的,保证数据的可靠性是存储的第一要务。由于压缩卷相较于普通数据卷更加复杂,需要复杂的元数据管理方案来保证数据的可靠性及性能。
目前现有的存储***中,采用双控的存储设计方案,一个存储器日志组IOGROUP包含两个存储节点,两个节点互为备份并同时工作,卷只能由其中的一个节点(称为owner节点)管理进行操作维护业务。当前的方案是采用元数据镜像的管理方案,owner节点更新后会通过镜像的方式同步到另外一个节点,保证在出现故障时非owner节点能尽快接管。但是由于镜像元数据需要消耗较大的资源,导致性能的损失,那么如何才能够尽量避免性能损失的前提下,在owner节点出现故障时,依然可以保证元数据的有效性成为本申请所要解决的技术问题。
发明内容
本申请提供了一种元数据管理方法、电子设备,及计算机可读存储介质,以解决现有技术中在尽量避免性能损失的前提下,在owner节点出现故障时,依然可以保证元数据的有效性的技术问题。
第一方面,本申请提供了一种元数据管理方法,该方法由第二节点执行,该方法包括:
当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;
扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域存在数据块标识信息时,获取数据块标识信息;
根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据;
根据第一B+树和元数据,在第二节点的内存中构建第二B+树,以便第二节点根据第二B+树完成后续的元数据管理。
第二方面,本申请提供了一种元数据管理方法,该方法由第一节点执行,该方法包括:
当检测到磁盘中被写入数据时,将被写入数据压缩成数据块后,生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息;
将数据块对应的标识信息刷写到磁盘中的未刷写标识区域;
将数据块和嵌入式元数据一起编码后,写入到磁盘中;
在第一节点的内存中,基于被写入数据,更新已存储的B+树。
第三方面,本申请提供了一种元数据管理装置,该装置包括:
提取单元,用于当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;
扫描单元,用于扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域存在数据块标识信息时,获取数据块标识信息;
获取单元,用于根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据;
构建单元,用于根据第一B+树和元数据,在第二节点的内存中构建第二B+树;
管理单元,用于根据第二B+树完成后续的元数据管理。
第四方面,本申请提供了一种元数据管理装置,该装置包括:
处理单元,当检测到磁盘中被写入数据时,将被写入数据压缩成数据块后,生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息;
刷写单元,用于将数据块对应的标识信息刷写到磁盘中的未刷写标识区域;
编码单元,用于将数据块和嵌入式元数据一起编码后,写入到磁盘中;
更新单元,用于在第一节点的内存中,基于被写入数据,更新已存储的B+树。
第五方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的元数据管理方法的步骤,或者实现第二方面任一项实施例的元数据管理方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项实施例的元数据管理方法的步骤,或者实现如第二方面任一项实施例的元数据管理方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;扫描磁盘中预构建的未刷写标识区域存在数据块标识信息时,则获取数据块标识信息,该数据块标识信息指示第一节点未发生故障之前,内存中有与数据块标识信息对应的元数据未刷写到磁盘中。因此,后续需要根据数据块标识信息,以及磁盘中预存储的数据,来获取到与数据块标识信息对应的元数据。最终根据第一B+树和所获取的元数据,共同构建第二节点的内存中构建第二B+树,也即是重构第一节点未出现故障之前的B+树。在此之后,第二节点内存中的B+树和磁盘中的数据具有完整的映射关系,使得第二节点具有应答主机的能力。通过该方式,不仅可以避免因为现有技术中元数据镜像导致的性能衰减的问题,还能够保证在故障场景中,元数据不会丢失,另外一个节点可以接管该压缩卷,实现卷功能的有效性。
附图说明
图1为本发明实施例提供的一种元数据管理方法流程示意图;
图2为本发明实施例提供的另一种元数据管理方法流程示意图;
图3为本发明提供的磁盘中不同数据所组成的数据结构示意图;
图4为本发明实施例提供的另一种元数据管理方法流程示意图;
图5为本发明实施例提供的另一种元数据管理方法流程示意图;
图6为本发明实施例提供的另一种元数据管理方法流程示意图;
图7为本发明实施例提供的一种元数据管理装置结构示意图;
图8为本发明实施例提供的另一种元数据管理装置结构示意图;
图9为本发明实施例提供一种电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
在介绍本发明实施例提供的元数据管理方法流程之前,为了更加方便读者理解本申请的技术方案,首先对本申请实施例中的部分内容进行概述说明,具体参见如下:
在本申请实施例中,将压缩卷的元数据设计为包括普通元数据和嵌入式元数据两种。其中,普通元数据描述的是卷的逻辑地址到物理地址的映射关系,采用B+树的数据结构存储。嵌入式元数据同样包含一份备用元数据用于元数据的重构。嵌入式元数据是和数据在编码在一起的,同时写入到磁盘中,因此嵌入式元数据相较于普通元数据而言,写入磁盘时更具有实时性(普通元数据是先写入内存,然后再根据情况,滞后刷写到磁盘中,所以普通元数据相对于嵌入式元数据而言,具有一定的滞后性),也正是因为嵌入式元数据是与数据同步写入磁盘的,所以嵌入式元数据相较于磁盘中的普通元数据,更加全面和准确。但是由于嵌入式元数据未采用B+树管理,因此后续在读写磁盘时,对元数据进行更新,依然是在内存中对B+树进行更新,即,元数据在内存中是实时更新的。
正常业务时,内存中的元数据是有效的。元数据会按照一定的规则刷写到磁盘中(也即是上文所提及的元数据刷写到磁盘中,相较于在内存中进行更新存在一定的滞后性),比如当达到一定能的容量水位时,或者一段时间该B+树未发生访问时。此种情况就会导致背景技术中所提及的,当owner节点发生故障时,内存中的元数据就会丢失,最终磁盘中的数据和元数据B+出现了不同步。
为了实现磁盘中的数据和元数据始终能够保持同步,在本申请实施例中,采用如下方式实现:
首先,在磁盘中额外申请一个区域,定义为未刷写标识区域。该区域用以标识哪些写入磁盘中的数据所对应的元数据未写入到磁盘中。以新被刷写到磁盘中的数据块(数据block)为例进行说明,当数据block刷写到磁盘中时,相应的嵌入式元数据也会被一并编码后写入到磁盘中。内存中的B+树也会因为新被写入的数据block而做出更新和调整。但是,此时如果内存中更新后的B+树还没有达到立即刷写到磁盘中的条件时,那么磁盘中就会缺少该部分数据block对应的普通元数据。为了记录该部分数据block的普通元数据还未被刷写到磁盘中,可以在未刷写标识区域刷写与该数据block对应的数据块标识信息,用以说明该种情况。当对应的内存的元数据写入到磁盘中后,未刷写标识区域就将数据block的数据块标识信息除去,表示该数据block对应的普通元数据已经在磁盘中刷写成功。
以上为对元数据进行管理的方法实例的整体思路,下文中则详细说明具体实现过程。具体参见图1所示,为本发明实施例提供的一种元数据管理方法流程示意图,如图1所示,该方法包括:
步骤110,当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树。
具体的,磁盘中提取的元数据块为第一节点在故障之前,已经写入到瓷盘中的元数据所形成的B+树,所生成的元数据块。所以,可以将其作为构建第二节点中最终的B+树的一个基础,也即是用其构建第二节点的内存中的第一B+树,这里的第一B+树实际就是构建最终B+树的基础。
步骤120,扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域存在数据块标识信息时,获取数据块标识信息。
具体的,磁盘中提取的元数据块可能是与内存中的B+树是不等价的。这种情况就是在第一节点发生故障之前,内存中的B+树在第一B+树的基础上做出过更新调整,但是更新调整后的B+树还没有来得及写入到磁盘中,所以内存中的B+树和第一B+树不等价。
在另一种情况中,如果在第一节点发生故障之前,如果已经将第一节点的内存中的B+树全部刷写到磁盘中,且内存中的B+树没有再发生更新调整,那么磁盘中的元数据块则是与第一节点发生故障之前的内存中的B+树是等价的。
因为存在以上两种情况,所以还需要通过步骤120来确定当前在磁盘中的B+树是否与第一节点发生故障之前的内存中所存储的B+树是否等价。
具体的,可以扫描磁盘中预构建的未刷写标识区域,查看在未刷写标识区域是否存在数据块标识信息。如果存在数据块标识信息,则说明第一节点发生故障之前,内存中仍然有元数据没有刷写到磁盘中,也即是磁盘中的元数据块与第一节点发生故障之前内存中的B+树不等价。
相反,如果未刷写标识区域不存在数据块标识信息,则说明磁盘中的元数据块与第一节点发生故障之前内存中的B+树等价。
可选的,在一种情况中,如果磁盘中的元数据块与第一节点发生故障之前内存中的B+树等价时,则可以直接根据第一B+树完成后续的元数据管理。
在另一种情况中,针对磁盘中的元数据块与第一节点发生故障之前内存中的B+树不等价的情况,在构建第二节点的内存中的最终B+树(为方便后续说明,也为了能够与第一B+树进行区分,将最终的B+树定义为第二B+树)时,不仅仅要利用第一B+树,还需要利用与数据块标识信息对应的元数据。因此,在执行步骤120之后,还需执行如下步骤:
步骤130,根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据。
步骤140,根据第一B+树和元数据,在第二节点的内存中构建第二B+树。
具体的,根据数据块标识信息,可以在磁盘中预存储的数据中查询与数据块标识信息对应的数据块,进而得到与数据块对应的元数据,也可以理解为与数据块标识信息对应的元数据。
然后,将与数据块标识信息对应的元数据加入到第一B+树中,则可以构建第二B+树。
当第二节点中的第二B+树构建完成后,等同于第二节点已经重构了第一节点在出现故障之前的内存中的B+树。即,第二节点内存中的B+树和磁盘中的数据具有完整的映射关系,使得第二节点具有应答主机的能力。此时,第二节点可以替代故障的第一节点,完成后续的数据管理工作,包括根据第二B+树完成后续的元数据管理。
本发明实施例提供的元数据管理方法,当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;扫描磁盘中预构建的未刷写标识区域存在数据块标识信息时,则获取数据块标识信息,该数据块标识信息指示第一节点未发生故障之前,内存中有与数据块标识信息对应的元数据未刷写到磁盘中。因此,后续需要根据数据块标识信息,以及磁盘中预存储的数据,来获取到与数据块标识信息对应的元数据。最终根据第一B+树和所获取的元数据,共同构建第二节点的内存中构建第二B+树,也即是重构第一节点未出现故障之前的B+树。在此之后,第二节点内存中的B+树和磁盘中的数据具有完整的映射关系,使得第二节点具有应答主机的能力。通过该方式,不仅可以避免因为现有技术中元数据镜像导致的性能衰减的问题,还能够保证在故障场景中,元数据不会丢失,另外一个节点可以接管该压缩卷,实现卷功能的有效性。
在上述实施例的基础上,本实施例还提供了另一种元数据管理方法。该方法实施例中与上述内容重复的部分将不再重复说明,本实施例中详细介绍根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据的详细过程。具体参见图2所示,包括:
步骤210,根据数据块标识信息,从磁盘的数据中提取与数据块标识信息对应的数据块。
具体的,用户在写入或者修改磁盘中的数据块时,都会生成相应的数据块标识信息。并且将数据块标识信息,以及新写入或者修改后的数据共同存储在磁盘中。
因此,后续可以根据数据块标识信息,从磁盘中的数据中提取与数据块标识信息对应的数据块。
步骤220,根据数据块,获取与数据块对应的嵌入式元数据,嵌入式元数据即为与数据块标识信息对应的元数据。
具体的,如上文前序部分所介绍的,当数据块被写入磁盘中时,与其同时写入的还包括与数据块对应的嵌入式元数据。嵌入式元数据是一份备用元数据。嵌入式元数据是和数据在编码在一起的,同时写入到磁盘中,因此嵌入式元数据相较于普通元数据而言,写入磁盘时没有滞后性,且其相对于磁盘中的普通元数据而言,是与数据同步的,元数据更加全面和准确,因此可以用于在后续第一故障节点出现故障,第一故障节点的内存中的元数据丢失时,实现元数据的重构。
既然,嵌入式元数据是与数据块一起编码后,写入到磁盘中的。那么,在获取到数据块后,自然也可以获取到与数据块对应的嵌入式元数据。嵌入式元数据即为与数据块标识信息对应的元数据。
具体参见图3所示,图3示意出了磁盘中不同数据所组成的数据结构示意图。该数据结构示意图中包括未刷写标识区域,元数据块(等价于磁盘中存储的B+树),嵌入式元数据,以及数据块。图中包括多个嵌入式元数据和数据块,是因为如上文所介绍的,嵌入式元数据和数据一起被编码后,同时写入到磁盘中。而多个数据块所对应的嵌入式元数据则构成了内存中的B+树。用户在磁盘中写入或修改数据时,是包括大量数据的,所以在数据结构示意图中,以多个数据加嵌入式元数据的数据结构来进行建简易说明。
通过上述实现方式,可以在内存中的B+树与磁盘中的元数据块不等价的情况下,重新恢复出磁盘中元数据块所欠缺的(内存中暂时没有写入到磁盘中的)元数据。进而恢复出第一节点在出现故障之前的内存中的B+树。该种方式替代采用镜像方式恢复内存中的第二B+树,由此可以避免镜像方式所带来的双控元数据镜像性能衰减的弊端,提高压缩卷性能。
可选的,根据数据块标识信息,从磁盘的数据中提取与数据块标识信息对应的数据块也可能存在异常情况,例如数据块中的数据存在缺失,数据长度小于预配置的数据长度。当存在这种情况时,很有可能是磁盘本身出现了问题。后续如果再继续写入数据或修改数据,依然有可能会存在故障,最终导致磁盘中的数据不可用。为验证磁盘的可用性,避免上述情况的发生,因此,在上一实施例的基础上,具体参见图4所示,该方法还可以包括如下步骤:
步骤410,验证数据块的有效性。
具体的,可以验证数据块的长度,数据块中存储有循环冗余校核(CyclicRedundancy Check,简称CRC)值,通过步骤210中获取的数据块后,读取该数据块的CRC值,若该CRC值与预存储的CRC值不同,则说明数据存在丢失情况,此时验证数据块为无效数据块。否则,可以确定数据块为有效数据块。
当然,也可以通过其他方式验证数据块的有效性。具体采用何种方式,这里不做过多限制。
步骤420,当确定数据块的有效性无效时,生成故障告警信息。
具体的,如上所介绍的,当数据块无效时,则说明磁盘本身发生了故障,严重时可能出现***脱机,停止访问等现象。那么,则需要生成故障告警信息。用以告知相关工作人员,及时处理。
可选的,在上述任一实施例的基础上,考虑到当第一节点功能恢复时,依然需要第一节点处理后续的元数据管理工作。第二节点需要与第一节点完成“交接工作”。因此,本申请还提供了另一种元数据管理方法,具体参见图5所示,该方法还可以包括:
步骤510,当确定第一节点功能恢复后,静默第二节点。
具体的,静默第二节点,实际上就是控制第二节点不再处理后续的元数据管理工作。即,当有新的数据刷写到磁盘,或者磁盘中的数据被改写时,第二节点的内存中的B+树不再进行更新。后续的操作都将在第一磁盘中执行。
步骤520,将第二B+树刷写到磁盘中。
步骤530,清空磁盘中的未刷写标识区域。
具体的,因为已经将第二B+刷写到磁盘中了,也即是说明磁盘中未刷写标识区域中的所有元数据标识信息对应的元数据均已刷写到磁盘中,所以此时可以清空磁盘中的未刷写标识区域了。而第一节点也可以从磁盘中获取到第二节点内存中所保存的第二B+树,并在此基础上完成对后续元数据的管理。
通过该方式,可以在第一节点恢复后,重新恢复第一节点的主动权,用以实现对元数据的管理。而且,通过该实施例,可以保证第一节点和第二节点之间灵活切换,操作更加方便,快捷。
图6为本发明实施例提供的另一种元数据管理方法,该方法由第一节点执行,该方法包括:
步骤610,当检测到磁盘中被写入数据时,将被写入数据压缩成数据块后,生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息。
步骤620,将数据块对应的标识信息刷写到磁盘中的未刷写标识区域。
步骤630,将数据块和嵌入式元数据一起编码后,写入到磁盘中。
步骤640,在第一节点的内存中,基于被写入数据,更新已存储的B+树。
具体的,如上文所介绍,当磁盘中被写入数据或者数据被修改时,都会生成与新的数据块所对应的数据块标识信息。该标识信息用以保证与该数据块对应的元数据已经在内存中更新,但是还没有同步到磁盘中。将数据块标识信息刷写到磁盘中的未刷写标识区域,就是为了用以记录还没有同步到磁盘中的元数据,方便后续在第一节点的内存中元数据丢失时,可以进行追溯,用以完成第一节点的内存中元数据的重构。
而将数据块和嵌入式元数据一起编码后写入到磁盘中的操作,以及在第一节点的内存中,基于被写入数据,更新已存储的B+树等操作,可以通过常规手段实现,其作用也已经在上文中做了详细说明,这里不再过多赘述。
本发明实施例提供的一种元数据管理方法,当检测到磁盘中被写入数据时,将被写入数据压缩成数据块,并生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息。将数据块对应的标识信息刷写到磁盘中的未刷写标识区域。用以标识该数据块对应的普通元数据还未被刷写到磁盘中。而将数据块和嵌入式元数据一起编码后,写入到磁盘中,是为了保证数据块和嵌入式元数据始终保持同步。嵌入式元数据可以在后续内存中的元数据因为某些原因丢失时,辅助重构内存中的元数据。而在第一节点的内存中,基于被写入数据,更新已存储的B+树,则是为了保证内存中的B+树实时更新,与磁盘中的数据能够保持同步。通过该实施例,不仅可以避免因为现有技术中元数据镜像导致的性能衰减的问题,还能够保证在故障场景中,元数据不会丢失,另外一个节点可以基于第一节点的上述操作,在后续轻易接管该压缩卷,实现卷功能的有效性。
图7为本发明实施例提供的一种元数据管理装置,该装置包括:提取单元710、扫描单元720、获取单元730、构建单元740,以及管理单元750。
提取单元710,用于当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;
扫描单元720,用于扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域存在数据块标识信息时,获取数据块标识信息;
获取单元730,用于根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据;
构建单元740,用于根据第一B+树和元数据,在第二节点的内存中构建第二B+树;
管理单元750,用于根据第二B+树完成后续的元数据管理。
可选的,获取单元730具体用于,根据数据块标识信息,从磁盘的数据中提取与数据块标识信息对应的数据块;
根据数据块,获取与数据块对应的嵌入式元数据,嵌入式元数据即为与数据块标识信息对应的元数据。
可选的,该装置还包括:验证单元760和报警单元770。
验证单元760,用于验证数据块的有效性;
报警单元770,用于当验证单元760确定数据块的有效性无效时,生成故障告警信息。
可选的,管理单元750还用于,当确定第一节点功能恢复后,静默第二节点,并将第二B+树刷写到磁盘中,以便第一节点从磁盘中加载第二B+树至第一节点的内存中;清空磁盘中的未刷写标识区域。
可选的,管理单元750还用于,扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域并不存在数据块标识信息时,根据第一B+树完成后续的元数据管理。
本发明实施例提供的一种元数据管理装置,当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;扫描磁盘中预构建的未刷写标识区域存在数据块标识信息时,则获取数据块标识信息,该数据块标识信息指示第一节点未发生故障之前,内存中有与数据块标识信息对应的元数据未刷写到磁盘中。因此,后续需要根据数据块标识信息,以及磁盘中预存储的数据,来获取到与数据块标识信息对应的元数据。最终根据第一B+树和所获取的元数据,共同构建第二节点的内存中构建第二B+树,也即是重构第一节点未出现故障之前的B+树。在此之后,第二节点内存中的B+树和磁盘中的数据具有完整的映射关系,使得第二节点具有应答主机的能力。通过该方式,不仅可以避免因为现有技术中元数据镜像导致的性能衰减的问题,还能够保证在故障场景中,元数据不会丢失,另外一个节点可以接管该压缩卷,实现卷功能的有效性。
图8为本发明实施例提供的一种元数据管理装置,该装置包括:处理单元810、刷写单元820、编码单元830以及更新单元840。
处理单元810,当检测到磁盘中被写入数据时,将被写入数据压缩成数据块后,生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息;
刷写单元820,用于将数据块对应的标识信息刷写到磁盘中的未刷写标识区域;
编码单元830,用于将数据块和嵌入式元数据一起编码后,写入到磁盘中;
更新单元840,用于在第一节点的内存中,基于被写入数据,更新已存储的B+树。
可选的,刷写单元820还用于,当第一节点的内存中与数据块对应的B+树符合预设刷写条件时,将B+树刷写到磁盘中,生成与B+树对应的元数据块;
处理单元810还用于,在磁盘中的未刷写标识区域中,清除所有元数据标识信息。
可选的,预设刷写条件包括:内存中的B+树的容量达到预设容量阈值,和/或内存中的B+树未被访问的持续时长大于或等于预设时长。
本发明实施例提供的一种元数据管理装置,当检测到磁盘中被写入数据时,将被写入数据压缩成数据块,并生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息。将数据块对应的标识信息刷写到磁盘中的未刷写标识区域。用以标识该数据块对应的普通元数据还未被刷写到磁盘中。而将数据块和嵌入式元数据一起编码后,写入到磁盘中,是为了保证数据块和嵌入式元数据始终保持同步。嵌入式元数据可以在后续内存中的元数据因为某些原因丢失时,辅助重构内存中的元数据。而在第一节点的内存中,基于被写入数据,更新已存储的B+树,则是为了保证内存中的B+树实时更新,与磁盘中的数据能够保持同步。通过该实施例,不仅可以避免因为现有技术中元数据镜像导致的性能衰减的问题,还能够保证在故障场景中,元数据不会丢失,另外一个节点可以基于第一节点的上述操作,在后续轻易接管该压缩卷,实现卷功能的有效性。
如图9所示,本申请实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
存储器113,用于存放计算机程序;
在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的元数据管理方法,包括:
当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建第二节点的内存中的第一B+树;
扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域存在数据块标识信息时,获取数据块标识信息;
根据数据块标识信息,以及磁盘中预存储的数据,获取与数据块标识信息对应的元数据;
根据第一B+树和元数据,在第二节点的内存中构建第二B+树,以便第二节点根据第二B+树完成后续的元数据管理。
可选的,根据数据块标识信息,从磁盘的数据中提取与数据块标识信息对应的数据块;
根据数据块,获取与数据块对应的嵌入式元数据,嵌入式元数据即为与数据块标识信息对应的元数据。
可选的,验证数据块的有效性;
当确定数据块的有效性无效时,生成故障告警信息。
可选的,当确定第一节点功能恢复后,静默第二节点,并将第二B+树刷写到磁盘中,以便第一节点从磁盘中加载第二B+树至第一节点的内存中;
清空磁盘中的未刷写标识区域。
可选的,扫描磁盘中预构建的未刷写标识区域,当未刷写标识区域并不存在数据块标识信息时,根据第一B+树完成后续的元数据管理。
或者,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的元数据管理方法,包括:
当检测到磁盘中被写入数据时,将被写入数据压缩成数据块后,生成与数据块对应的嵌入式元数据,以及生成与数据块对应的标识信息;
将数据块对应的标识信息刷写到磁盘中的未刷写标识区域;
将数据块和嵌入式元数据一起编码后,写入到磁盘中;
在第一节点的内存中,基于被写入数据,更新已存储的B+树。
可选的,当第一节点的内存中与数据块对应的B+树符合预设刷写条件时,将B+树刷写到磁盘中,生成与B+树对应的元数据块;
在磁盘中的未刷写标识区域中,清除所有元数据标识信息。
可选的,预设刷写条件包括:内存中的B+树的容量达到预设容量阈值,和/或内存中的B+树未被访问的持续时长大于或等于预设时长。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的元数据管理方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种元数据管理方法,其特征在于,所述方法由第二节点执行,所述方法包括:
当检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建所述第二节点的内存中的第一B+树;
扫描所述磁盘中预构建的未刷写标识区域,当所述未刷写标识区域存在数据块标识信息时,获取所述数据块标识信息;
根据所述数据块标识信息,从所述磁盘的数据中提取与所述数据块标识信息对应的数据块;
根据所述数据块,获取与所述数据块对应的嵌入式元数据,所述嵌入式元数据即为与所述数据块标识信息对应的元数据;
根据所述第一B+树和所述嵌入式元数据,在所述第二节点的内存中构建第二B+树,以便所述第二节点根据所述第二B+树完成后续的元数据管理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据块标识信息,从所述磁盘的数据中提取与所述数据块标识信息对应的数据块之后,所述方法还包括:
验证所述数据块的有效性;
当确定所述数据块的有效性无效时,生成故障告警信息。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:当确定所述第一节点功能恢复后,静默所述第二节点,并将所述第二B+树刷写到所述磁盘中,以便所述第一节点从所述磁盘中加载所述第二B+树至所述第一节点的内存中;
清空所述磁盘中的未刷写标识区域。
4.根据权利要求1所述的方法,其特征在于,扫描所述磁盘中预构建的未刷写标识区域,当所述未刷写标识区域并不存在所述数据块标识信息时,根据所述第一B+树完成后续的元数据管理。
5.一种元数据管理方法,其特征在于,所述方法由第一节点执行,所述方法包括:
当检测到磁盘中被写入数据时,将所述被写入数据压缩成数据块后,生成与所述数据块对应的嵌入式元数据,以及生成与所述数据块对应的标识信息;
将所述数据块对应的标识信息刷写到磁盘中的未刷写标识区域;
将所述数据块和所述嵌入式元数据一起编码后,写入到所述磁盘中;
在所述第一节点的内存中,基于所述被写入数据,更新已存储的B+树,以便后续第二节点检测到第一节点发生故障时,从磁盘中提取元数据块,用以构建所述第二节点的内存中的第一B+树;扫描所述磁盘中预构建的未刷写标识区域,当所述未刷写标识区域存在数据块标识信息时,获取所述数据块标识信息;根据所述数据块标识信息,从所述磁盘的数据中提取与所述数据块标识信息对应的数据块;根据所述数据块,获取与所述数据块对应的嵌入式元数据,所述嵌入式元数据即为与所述数据块标识信息对应的元数据;根据所述第一B+树和所述嵌入式元数据,在所述第二节点的内存中构建第二B+树,以及根据所述第二B+树完成后续的元数据管理。
6.根据权利要求5所述的方法,其特征在于,在所述第一节点的内存中,基于所述被写入数据,更新已存储的B+树之后,所述方法还包括:
当所述第一节点的内存中与所述数据块对应的B+树符合预设刷写条件时,将所述B+树刷写到所述磁盘中,生成与所述B+树对应的元数据块;
在所述磁盘中的未刷写标识区域中,清除所有元数据标识信息。
7.根据权利要求6所述的方法,其特征在于,预设刷写条件包括:所述内存中的B+树的容量达到预设容量阈值,和/或所述内存中的B+树未被访问的持续时长大于或等于预设时长。
8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一项所述的元数据管理方法的步骤,或者,实现权利要求5-7任一项所述的元数据管理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的元数据管理方法的步骤,或者实现如权利要求5-7任一项所述的元数据管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111168622.1A CN113901293B (zh) | 2021-09-30 | 2021-09-30 | 元数据管理方法、电子设备,及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111168622.1A CN113901293B (zh) | 2021-09-30 | 2021-09-30 | 元数据管理方法、电子设备,及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113901293A CN113901293A (zh) | 2022-01-07 |
CN113901293B true CN113901293B (zh) | 2024-01-16 |
Family
ID=79190425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111168622.1A Active CN113901293B (zh) | 2021-09-30 | 2021-09-30 | 元数据管理方法、电子设备,及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901293B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969449B (zh) * | 2022-08-01 | 2022-10-14 | 太极计算机股份有限公司 | 基于构建结构树的元数据管理方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN103207916A (zh) * | 2013-04-24 | 2013-07-17 | 曙光信息产业(北京)有限公司 | 元数据处理的方法和装置 |
CN105426271A (zh) * | 2015-12-22 | 2016-03-23 | 华为技术有限公司 | 对分布式存储***的锁管理的方法和装置 |
-
2021
- 2021-09-30 CN CN202111168622.1A patent/CN113901293B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN103207916A (zh) * | 2013-04-24 | 2013-07-17 | 曙光信息产业(北京)有限公司 | 元数据处理的方法和装置 |
CN105426271A (zh) * | 2015-12-22 | 2016-03-23 | 华为技术有限公司 | 对分布式存储***的锁管理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113901293A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795788B2 (en) | Remote data replication method and system | |
CN108319602B (zh) | 数据库管理方法及数据库*** | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN107193871B (zh) | 数据库修复方法及装置 | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
JP7215971B2 (ja) | 記憶機器のデータ位置の処理方法及び処理装置、コンピュータ機器並びにコンピュータ読み取り可能な記憶媒体 | |
CN113901293B (zh) | 元数据管理方法、电子设备,及计算机可读存储介质 | |
CN113886143B (zh) | 虚拟机持续数据保护方法、装置及数据恢复方法、装置 | |
CN114281591A (zh) | 存储节点故障处理方法、装置、设备及存储介质 | |
CN111046024A (zh) | 一种共享存储数据库的数据处理方法、装置、设备及介质 | |
CN105915595B (zh) | 一种集群存储***存取数据的方法以及集群存储*** | |
CN113821377B (zh) | 一种分布式存储集群的数据恢复方法、***及存储介质 | |
CN113886352B (zh) | 分布式文件***的元数据恢复方法、装置、设备及介质 | |
CN112346913B (zh) | 数据恢复方法、装置、设备及存储介质 | |
CN111381769B (zh) | 一种分布式数据存储方法及*** | |
CN112231150B (zh) | 数据库集群中故障数据库恢复方法和装置 | |
CN112307022A (zh) | 一种元数据修复方法及相关装置 | |
CN110427280B (zh) | 一种缓存管理方法、***、计算机设备及存储介质 | |
CN112650444A (zh) | 一种数据重构方法、***、设备以及介质 | |
JPH0981464A (ja) | 計算機システムのメモリ障害回復方法および回復システム | |
CN114138188B (zh) | 一种数据卷的缩容方法、***、装置及可读存储介质 | |
CN115454720B (zh) | 基于daos分布式存储***中数据增量重构***和方法 | |
CN110968446B (zh) | 一种元数据修复方法、装置、***及计算机可读存储介质 | |
CN105468474B (zh) | 来自故障场景的记录数据的时间相关元数据空间有效恢复 | |
US12013753B2 (en) | Proactive loss notification and handling in data storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |