CN115328859A - 一种元数据访问方法、装置、设备及介质 - Google Patents

一种元数据访问方法、装置、设备及介质 Download PDF

Info

Publication number
CN115328859A
CN115328859A CN202211027088.7A CN202211027088A CN115328859A CN 115328859 A CN115328859 A CN 115328859A CN 202211027088 A CN202211027088 A CN 202211027088A CN 115328859 A CN115328859 A CN 115328859A
Authority
CN
China
Prior art keywords
target data
metadata access
node
metadata
requirement
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.)
Pending
Application number
CN202211027088.7A
Other languages
English (en)
Inventor
李宏伟
方浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202211027088.7A priority Critical patent/CN115328859A/zh
Publication of CN115328859A publication Critical patent/CN115328859A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种元数据访问方法、装置、设备及介质,涉及服务器虚拟化及超融合领域,包括:获取元数据访问请求,并基于元数据访问请求确定出目标数据节点和元数据访问需求;判断目标数据节点是否满足元数据访问需求,若满足,则判断目标数据节点与元数据访问需求是否匹配,若不匹配,则确定出与目标数据节点相对应的目标数据子节点;判断目标数据子节点是否满足元数据访问需求,若满足,则判断目标数据子节点与元数据访问需求是否匹配,若匹配,则对目标数据子节点中的元数据进行访问。通过本申请的上述技术方案,能够避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力。

Description

一种元数据访问方法、装置、设备及介质
技术领域
本发明涉及服务器虚拟化及超融合领域,特别涉及一种元数据访问方法、装置、设备及介质。
背景技术
目前,虚拟化是构建云计算基础架构的关键技术之一,而集群文件系统则在虚拟化中扮演者关键角色。集群文件系统能够提供文件并发访问控制,完整性保证,以及冗余性等,被虚拟化系统用于存储虚拟机镜像,共享存储池等,为虚拟机多活、负载均衡等提高了基础能力。典型的文件系统实现中,文件由inode(索引节点对象)和数据部分组成。大部分情形下,还有一个索引层、inode指向索引层以及索引层描述具体的数据分布。文件系统的典型数据索引方法有位图索引和extent索引两种方法。位图索引方式中,文件系统通过位图元数据描述数据的分布,位图中的每个位(bit)对应于文件的一个固定位置、固定大小的数据块;而extent索引方式中,文件系统过extent record方法来描述连续数据段,每个extent record(extent记录)主要由(phy_addr、file_offset、len)三元组组成,分别描述了数据段的盘上起始地址,数据段在文件中的偏移,以及数据段的长度。位图方式是一种比较古老的方式,在ext2(是Linux系统最常用的文件系统)及更老的文件系统中使用,该方法适合描述小的文件,不适合用于索引大文件。extent索引几乎已经取代了位图方法,适用于索引大文件,尤其对于地址空间连续的大文件,只需很少的记录即可索引到文件所有的地址空间。Ocfs2、ext3/4等文件系统的数据索引均基于extent实现。extent以b+tree(B+树)结构索引,具有很高的索引效率。然而在虚拟化应用场景中,会遇到大型虚拟磁盘的使用场景,单个虚拟磁盘文件可达数TB(太字节)甚至数十TB。同时常见的应用场景中,虚拟磁盘文件格式是精简置备,随着数据写入才逐步进行实际空间分配,也即“写是分配”。写时分配会导致文件的数据段在盘上不连续,会导致文件出现“碎片化”问题。碎片导致的问题中,元数据空间开销是可以接受的,但涉及到元数据遍历的一些操作开销会非常大。例如lseek操作中的SEEK_HOLE操作,如果文件空洞位于文件末尾,且碎片化严重,那么lseek操作就需要遍历所有元数据直到文件末尾。再例如获取reflink两个文件的差异数据,ocfs2的reflink数据段会有REFCOUNTED flags,保存在reflink record中,获取reflink差异也需要遍历文件所有的extent。而在服务器虚拟化中,reflink等技术常被用于快照等方案;lseek操作直接影响QEMU(模拟处理器的自由软件)的存储迁移、在线迁移等。而文件的碎片化问题会直接导致这些方案性能变差,甚至到达不可用的程度。
由上可见,在元数据访问的过程中,如何避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种元数据访问方法、装置、设备及介质,能够避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力。其具体方案如下:
第一方面,本申请公开了一种元数据访问方法,包括:
获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;
判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;
判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
可选的,所述获取元数据访问请求之前,还包括:
根据预设数据类型对本地的所有数据节点进行分类,以得到不同类型的各数据节点;
按照业务需求和所述预设数据类型建立父级数据节点以及子级数据节点之间的连接关系。
可选的,所述获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求,包括:
获取元数据访问请求,并从所述元数据访问请求中确定出元数据访问需求;
根据所述元数据访问请求中的目标数据类型从本地所有的所述父级数据节点中确定出目标数据节点。
可选的,所述若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点,包括:
若所述目标数据节点与元数据访问需求不匹配,则利用所述连接关系将所有的与所述目标数据节点相对应的所述子级数据节点作为目标数据子节点。
可选的,所述判断所述目标数据节点是否满足元数据访问需求,包括:
基于所述目标数据节点中的元数据信息,为所述目标数据节点添加数据属性信息;
判断所述目标数据节点中的所述数据属性信息是否满足元数据访问需求;
相应的,所述判断所述目标数据节点与元数据访问需求是否匹配,包括:
判断所述目标数据节点中的所述数据属性信息与元数据访问需求是否匹配;
相应的,所述判断所述目标数据子节点与元数据访问需求是否匹配,包括:
判断所述目标数据子节点中的所述数据属性信息与元数据访问需求是否匹配。
可选的,所述对所述目标数据子节点中的元数据进行访问之后,还包括:
建立所述目标数据节点中的所述数据属性信息与所述目标数据子节点中的所述数据属性信息之间的同步关联关系,以便在对所述目标数据子节点中的元数据进行访问并写入后,将所述目标数据子节点的所述数据属性信息中相应的信息进行删除操作。
可选的,所述判断所述目标数据子节点与元数据访问需求是否匹配之后,还包括:
若所述目标数据子节点与元数据访问需求不匹配,则所述目标数据子节点的所述数据属性信息中相应的属性信息进行删除,并利用所述同步关联关系进行数据属性信息的更新。
第二方面,本申请公开了一种元数据访问装置,包括:
访问请求获取模块,用于获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;
第一判断模块,用于判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;
第二判断模块,用于判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的元数据访问方法。
第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的元数据访问方法的步骤。
可见,本申请提供了一种元数据访问方法,包括获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。本申请是利用Ocfs2中采用的extent b+tree形式实现的,每个目标数据节点中均包括对元信息的描述,因此通过判断目标数据节点对元信息的描述是否与元数据访问需求相匹配,确定出匹配的节点,从而解决了集群文件系统OCFS2在服务器虚拟化中的应用的关键性能问题,拓展了Ocfs2在虚拟化领域的应用范围,避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种元数据访问方法流程图;
图2为本申请公开的一种元数据访问方法流程图;
图3为本申请公开的一种元数据访问方法具体流程图;
图4为本申请公开的一种元数据访问装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,虚拟化是构建云计算基础架构的关键技术之一,而集群文件系统则在虚拟化中扮演者关键角色。集群文件系统能够提供文件并发访问控制,完整性保证,以及冗余性等,被虚拟化系统用于存储虚拟机镜像,共享存储池等,为虚拟机多活、负载均衡等提高了基础能力。典型的文件系统实现中,文件由inode(索引节点对象)和数据部分组成。大部分情形下,还有一个索引层、inode指向索引层以及索引层描述具体的数据分布。文件系统的典型数据索引方法有位图索引和extent索引两种方法。位图索引方式中,文件系统通过位图元数据描述数据的分布,位图中的每个位(bit)对应于文件的一个固定位置、固定大小的数据块;而extent索引方式中,文件系统过extent record方法来描述连续数据段,每个extent record(extent记录)主要由(phy_addr、file_offset、len)三元组组成,分别描述了数据段的盘上起始地址,数据段在文件中的偏移,以及数据段的长度。位图方式是一种比较古老的方式,在ext2(是Linux系统最常用的文件系统)及更老的文件系统中使用,该方法适合描述小的文件,不适合用于索引大文件。extent索引几乎已经取代了位图方法,适用于索引大文件,尤其对于地址空间连续的大文件,只需很少的记录即可索引到文件所有的地址空间。Ocfs2、ext3/4等文件系统的数据索引均基于extent实现。extent以b+tree(B+树)结构索引,具有很高的索引效率。然而在虚拟化应用场景中,会遇到大型虚拟磁盘的使用场景,单个虚拟磁盘文件可达数TB(太字节)甚至数十TB。同时常见的应用场景中,虚拟磁盘文件格式是精简置备,随着数据写入才逐步进行实际空间分配,也即“写是分配”。写时分配会导致文件的数据段在盘上不连续,会导致文件出现“碎片化”问题。碎片导致的问题中,元数据空间开销是可以接受的,但涉及到元数据遍历的一些操作开销会非常大。例如lseek操作中的SEEK_HOLE操作,如果文件空洞位于文件末尾,且碎片化严重,那么lseek操作就需要遍历所有元数据直到文件末尾。再例如获取reflink两个文件的差异数据,ocfs2的reflink数据段会有REFCOUNTED flags,保存在reflink record中,获取reflink差异也需要遍历文件所有的extent。而在服务器虚拟化中,reflink等技术常被用于快照等方案;lseek操作直接影响QEMU(模拟处理器的自由软件)的存储迁移、在线迁移等。而文件的碎片化问题会直接导致这些方案性能变差,甚至到达不可用的程度。由上可见,在元数据访问的过程中,如何避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力是本领域有待解决的问题。
本申请利用Ocfs2(Oracle Cluster File System version 2)进行元数据访问,Ocfs2是第二代Oracle集群文件系统,相较于第一代OCFS仅用于Oracle RAC(新版数据库的实时应用集群),第二代是一个通用的Linux(是一种自由和开放源码的类Unix操作系统)集群文件系统,允许集群中所有节点通过标准的文件系统接口进行访问。相较于GFS(是一个可扩展的分布式文件系统)、Gluster FS(是一个可扩展的网络文件系统)等,Ocfs2性能更接近本地系统,具有更好的性能和通用性。Ocfs2的数据分配最小单位是cluster,常用的最小cluster单位是1M,那么极端碎片化场景下,文件会“分裂”成全是1M的离散数据块。碎片的一个主要问题是导致文件的元数据开销增大。对于大块的文件,一个extent record可以描述很大的数据段,因此只需要很少的元数据即可索引到整个文件;而碎片化严重情形下,一个extent record只能索引1M,空间开销及索引性能甚至要差于基于位图的索引方法。
参见图1所示,本发明实施例公开了一种元数据访问方法,具体可以包括:
步骤S11:获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求。
本实施例中,在获取元数据访问请求之前,还包括:根据预设数据类型对本地的所有数据节点进行分类,以得到不同类型的各数据节点;按照业务需求和所述预设数据类型建立父级数据节点以及子级数据节点之间的连接关系。
本实施例中,获取元数据访问请求,并从所述元数据访问请求中确定出元数据访问需求,然后根据所述元数据访问请求中的目标数据类型从本地所有的所述父级数据节点中确定出目标数据节点。
步骤S12:判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点。
本实施例中,若所述目标数据节点与元数据访问需求不匹配,则利用所述连接关系将所有的与所述目标数据节点相对应的所述子级数据节点作为目标数据子节点。
步骤S13:判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
本实施例中,获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。本申请是利用Ocfs2中采用的extent b+tree形式实现的,每个目标数据节点中均包括对元信息的描述,因此通过判断目标数据节点对元信息的描述是否与元数据访问需求相匹配,确定出匹配的节点,从而解决了集群文件系统OCFS2在服务器虚拟化中的应用的关键性能问题,拓展了Ocfs2在虚拟化领域的应用范围,避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力。
参见图2所示,本发明实施例公开了一种元数据访问方法,具体可以包括:
步骤S21:获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求。
步骤S22:判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点。
本实施例中,基于所述目标数据节点中的元数据信息,为所述目标数据节点添加数据属性信息,判断所述目标数据节点中的所述数据属性信息是否满足元数据访问需求若所述目标数据节点满足元数据访问需求,若满足,则判断所述目标数据节点中的所述数据属性信息与元数据访问需求是否匹配,若所述目标数据节点中的所述数据属性信息与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点。
步骤S23:判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
本实施例中,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点中的所述数据属性信息与元数据访问需求是否匹配,若所述目标数据子节点中的所述数据属性信息与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
本实施例中,判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求不匹配,则所述目标数据子节点的所述数据属性信息中相应的属性信息进行删除,并利用所述同步关联关系进行数据属性信息的更新。
步骤S24:建立所述目标数据节点中的所述数据属性信息与所述目标数据子节点中的所述数据属性信息之间的同步关联关系,以便在对所述目标数据子节点中的元数据进行访问并写入后,将所述目标数据子节点的所述数据属性信息中相应的信息进行删除操作。
本实施例中,Ocfs2中文件的数据组织方式如图3所示,Ocfs2数据段有extentrecord描述(图中rec),record由(e_cpos、e_blkno、e_leaf_clusters)三元组组成。多个extent record信息保存在extent block中,extent block是固定大小的元数据块,用于保存extent record。extent block之间则组织成extent b+tree,b+tree具有层级底搜索速度快等特性,特别适用于盘上存储需频繁搜索的数据。e_flags记录了数据段的属性,例如REFCOUNTED,UNWRITTEN等。Ocfs2原始实现中,只有最底层的extent record保存了e_flags。本方案会为extent b+tree中每个extent block增加e_flags信息。具体步骤如下:首先根据预设数据类型对本地的所有数据节点进行分类,以得到不同类型的各数据节点,按照业务需求和所述预设数据类型建立父级数据节点以及子级数据节点之间的连接关系,如根据业务需求和所述预设数据类型建立并确定出图中第一行的extent block与第二行的extent block以及第三行的extent block之间的连接关系,第一行的则为祖先级节点,第二行的则为父级节点,第三行的则为子级节点;然后在extent block中增加数据结构e_flags,e_flags中记录的属性信息在同层extent record中e_flags数据结构完全一致,并且extent block中的设置规则是:建立连接关系的extent block中的e_flags之间的关系为“相与”,以REFCOUNTED标志为例,如果extent block所覆盖的所有extent record中有一个record被写入,该record的REFCOUNTED标志被清除,即子级节点中只要有一个record被写入,那么该record的父节点及所有祖先节点全部会被清除REFCOUNTED标志,;只有当子级节点中所有extent record都是REFCOUNTED标志,那么父节点及所有祖先节点的REFCOUNTED标志才会置位;判断第一行祖父节点是否满足元数据访问需求,如果满足,则判断祖父节点与元数据访问需求是否匹配,如果不匹配,则找到第二行父级节点,然后判断第二行父级节点是否满足元数据访问需求,如果满足,则判断父级节点与元数据访问需求是否匹配,如果不匹配,则找到第三行的子级节点,判读子级节点是否满足元数据访问需求,如果满足,则判断子级节点与元数据访问需求是否匹配,如果左边第一个子级节点匹配,则访问该节点,此时如果写入,则第二行的父级节点与第一行的祖先级节点中的REFCOUNTED标志就会被清除,即随着数据写入、删除等操作,会对所有父节点上的extent block的状态同步刷新,使得extent block中e_flags始终反映其所有后代节点的状态;若第二行的父级节点与元数据访问需求匹配,则对该父级节点进行访问,无需进一步遍历其子节点及所有后代节点。该优化使得原先的遍历操作复杂度降低,大幅提高了元数据数据遍历及检索性能。
本实施例中,获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。本申请是利用Ocfs2中采用的extent b+tree形式实现的,每个目标数据节点中均包括对元信息的描述,因此通过判断目标数据节点对元信息的描述是否与元数据访问需求相匹配,确定出匹配的节点,从而解决了集群文件系统OCFS2在服务器虚拟化中的应用的关键性能问题,拓展了Ocfs2在虚拟化领域的应用范围,避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力。
参见图4所示,本发明实施例公开了一种元数据访问装置,具体可以包括:
访问请求获取模块11,用于获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;
第一判断模块12,用于判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;
第二判断模块13,用于判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
本实施例中,获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。本申请是利用Ocfs2中采用的extent b+tree形式实现的,每个目标数据节点中均包括对元信息的描述,因此通过判断目标数据节点对元信息的描述是否与元数据访问需求相匹配,确定出匹配的节点,从而解决了集群文件系统OCFS2在服务器虚拟化中的应用的关键性能问题,拓展了Ocfs2在虚拟化领域的应用范围,避免出现大文件碎片化的问题,降低元数据访问的线性复杂度,提高元数据访问的效率,增加虚拟化产品的性能与竞争力。
在一些具体实施例中,所述访问请求获取模块11,具体可以包括:
分类模块,用于根据预设数据类型对本地的所有数据节点进行分类,以得到不同类型的各数据节点;
建立连接关系模块,用于按照业务需求和所述预设数据类型建立父级数据节点以及子级数据节点之间的连接关系。
在一些具体实施例中,所述访问请求获取模块11,具体可以包括:
访问请求获取模块,用于获取元数据访问请求,并从所述元数据访问请求中确定出元数据访问需求;
目标数据节点确定模块,用于根据所述元数据访问请求中的目标数据类型从本地所有的所述父级数据节点中确定出目标数据节点。
在一些具体实施例中,所述第一判断模块12,具体可以包括:
目标数据子节点确定模块,用于若所述目标数据节点与元数据访问需求不匹配,则利用所述连接关系将所有的与所述目标数据节点相对应的所述子级数据节点作为目标数据子节点。
在一些具体实施例中,所述第一判断模块12,具体可以包括:
属性信息添加模块,用于基于所述目标数据节点中的元数据信息,为所述目标数据节点添加数据属性信息;
第一判断需求模块,用于判断所述目标数据节点中的所述数据属性信息是否满足元数据访问需求;
第一判断匹配模块,用于判断所述目标数据节点中的所述数据属性信息与元数据访问需求是否匹配。
在一些具体实施例中,所述第二判断模块13,具体可以包括:
第二判断需求模块,用于判断所述目标数据子节点中的所述数据属性信息与元数据访问需求是否匹配。
在一些具体实施例中,所述第二判断模块13,具体可以包括:
元数据访问模块,用于建立所述目标数据节点中的所述数据属性信息与所述目标数据子节点中的所述数据属性信息之间的同步关联关系,以便在对所述目标数据子节点中的元数据进行访问并写入后,将所述目标数据子节点的所述数据属性信息中相应的信息进行删除操作。
在一些具体实施例中,所述第二判断模块13,具体可以包括:
数据属性信息更新模块,用于若所述目标数据子节点与元数据访问需求不匹配,则所述目标数据子节点的所述数据属性信息中相应的属性信息进行删除,并利用所述同步关联关系进行数据属性信息的更新。
图5为本申请实施例提供的一种电子设备的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的元数据访问方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的元数据访问方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括元数据访问设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的元数据访问方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种元数据访问方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种元数据访问方法,其特征在于,包括:
获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;
判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;
判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
2.根据权利要求1所述的元数据访问方法,其特征在于,所述获取元数据访问请求之前,还包括:
根据预设数据类型对本地的所有数据节点进行分类,以得到不同类型的各数据节点;
按照业务需求和所述预设数据类型建立父级数据节点以及子级数据节点之间的连接关系。
3.根据权利要求2所述的元数据访问方法,其特征在于,所述获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求,包括:
获取元数据访问请求,并从所述元数据访问请求中确定出元数据访问需求;
根据所述元数据访问请求中的目标数据类型从本地所有的所述父级数据节点中确定出目标数据节点。
4.根据权利要求2所述的元数据访问方法,其特征在于,所述若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点,包括:
若所述目标数据节点与元数据访问需求不匹配,则利用所述连接关系将所有的与所述目标数据节点相对应的所述子级数据节点作为目标数据子节点。
5.根据权利要求1所述的元数据访问方法,其特征在于,所述判断所述目标数据节点是否满足元数据访问需求,包括:
基于所述目标数据节点中的元数据信息,为所述目标数据节点添加数据属性信息;
判断所述目标数据节点中的所述数据属性信息是否满足元数据访问需求;
相应的,所述判断所述目标数据节点与元数据访问需求是否匹配,包括:
判断所述目标数据节点中的所述数据属性信息与元数据访问需求是否匹配;
相应的,所述判断所述目标数据子节点与元数据访问需求是否匹配,包括:
判断所述目标数据子节点中的所述数据属性信息与元数据访问需求是否匹配。
6.根据权利要求1至5任一项所述的元数据访问方法,其特征在于,所述对所述目标数据子节点中的元数据进行访问之后,还包括:
建立所述目标数据节点中的所述数据属性信息与所述目标数据子节点中的所述数据属性信息之间的同步关联关系,以便在对所述目标数据子节点中的元数据进行访问并写入后,将所述目标数据子节点的所述数据属性信息中相应的信息进行删除操作。
7.根据权利要求6所述的元数据访问方法,其特征在于,所述判断所述目标数据子节点与元数据访问需求是否匹配之后,还包括:
若所述目标数据子节点与元数据访问需求不匹配,则所述目标数据子节点的所述数据属性信息中相应的属性信息进行删除,并利用所述同步关联关系进行数据属性信息的更新。
8.一种元数据访问装置,其特征在于,包括:
访问请求获取模块,用于获取元数据访问请求,并基于所述元数据访问请求确定出目标数据节点和元数据访问需求;
第一判断模块,用于判断所述目标数据节点是否满足元数据访问需求,若所述目标数据节点满足元数据访问需求,则判断所述目标数据节点与元数据访问需求是否匹配,若所述目标数据节点与元数据访问需求不匹配,则确定出与所述目标数据节点相对应的目标数据子节点;
第二判断模块,用于判断所述目标数据子节点是否满足元数据访问需求,若所述目标数据子节点满足元数据访问需求,则判断所述目标数据子节点与元数据访问需求是否匹配,若所述目标数据子节点与元数据访问需求匹配,则对所述目标数据子节点中的元数据进行访问。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的元数据访问方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的元数据访问方法。
CN202211027088.7A 2022-08-25 2022-08-25 一种元数据访问方法、装置、设备及介质 Pending CN115328859A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211027088.7A CN115328859A (zh) 2022-08-25 2022-08-25 一种元数据访问方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211027088.7A CN115328859A (zh) 2022-08-25 2022-08-25 一种元数据访问方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115328859A true CN115328859A (zh) 2022-11-11

Family

ID=83928401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211027088.7A Pending CN115328859A (zh) 2022-08-25 2022-08-25 一种元数据访问方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115328859A (zh)

Similar Documents

Publication Publication Date Title
CN110799960B (zh) 数据库租户迁移的系统和方法
US9043540B2 (en) Systems and methods for tracking block ownership
US10430398B2 (en) Data storage system having mutable objects incorporating time
AU2014415350B2 (en) Data processing method, apparatus and system
US7284041B2 (en) Method for accessing distributed file system
US20080005145A1 (en) Data processing
US8095678B2 (en) Data processing
EP3495964B1 (en) Apparatus and program for data processing
CN113535670B (zh) 一种虚拟化资源镜像存储系统及其实现方法
US10909091B1 (en) On-demand data schema modifications
US10719554B1 (en) Selective maintenance of a spatial index
US8176087B2 (en) Data processing
US10762050B2 (en) Distribution of global namespace to achieve performance and capacity linear scaling in cluster filesystems
US10762139B1 (en) Method and system for managing a document search index
CN115328859A (zh) 一种元数据访问方法、装置、设备及介质
CN115840662A (zh) 一种数据备份系统及装置
CN109918355A (zh) 实现基于对象存储服务的nas的虚拟元数据映射系统和方法
CN117873967B (zh) 分布式文件系统的数据管理方法、装置、设备及存储介质
CN117951094A (zh) 存储空间的回收方法、文件系统、介质和计算设备
CN101674332A (zh) 基于网络的存储空间管理方法及服务器
CN116737659A (zh) 文件系统的元数据管理方法、终端设备及计算机存储介质
CN117687970A (zh) 一种元数据检索方法、装置及电子设备和存储介质

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