首页> 中国专利> 一种元数据管理方法、元数据管理系统及存储介质

一种元数据管理方法、元数据管理系统及存储介质

摘要

本申请公开了一种元数据管理方法、元数据管理系统及存储介质,该元数据管理系统包括:元数据服务器与至少一个存储池,元数据服务器包括多个与存储池一一对应的管理模块,管理模块用于对文件对应的元数据信息进行管理;存储池与管理模块连接,存储池包括存储文件的数据节点服务器。通过上述方式,本申请能够提高元数据服务器的并发能力和承载数据节点服务器的数量。

著录项

  • 公开/公告号CN112667577A

    专利类型发明专利

  • 公开/公告日2021-04-16

    原文格式PDF

  • 申请/专利权人 浙江大华技术股份有限公司;

    申请/专利号CN202011565566.0

  • 发明设计人 王志豪;罗心;

    申请日2020-12-25

  • 分类号G06F16/17(20190101);G06F16/11(20190101);G06F16/182(20190101);

  • 代理机构44280 深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人黎坚怡

  • 地址 310051 浙江省杭州市滨江区滨安路1187号

  • 入库时间 2023-06-19 10:38:35

说明书

技术领域

本申请涉及分布式技术领域,具体涉及一种元数据管理方法、元数据管理系统及存储介质。

背景技术

随着分布式存储系统规模越来越大,如果出现数据恢复,则可能需要所有节点都参与,从而导致流量混乱,某些节点可能出现流量瓶颈。另一方面,随着节点规模的增加,在冗余度相同时可能更容易出现文件损坏的状况,例如:预写入3份数据,6台节点服务器损坏3台的概率和100台节点服务器损坏3台的概率是不一样的,100台节点服务器更容易出现3台都损坏的状况,导致数据丢失,因此出现了存储池的概念,即将大规模的节点服务器划分为不同的存储池,每个存储池是单独的故障域,同一个文件数据不跨池读写,满足独立的冗余策略;可以做到隔离故障域,并有利于大规模节点文件恢复和数据迁移。

然而传统的存储池只是将节点服务器划分到不同存储池内,存储池只是作为一种故障域划分方式,在节点规模持续扩大,数据量持续增加的情况下,元数据更新、元数据持久化以及服务启动时元数据的加载时间都会大大增加,致使处理速度较慢,造成元数据整体性能低下。

发明内容

本申请提供一种元数据管理系统,能够提高元数据服务器的并发能力和承载数据节点服务器的数量。

为解决上述技术问题,本申请采用的技术方案是:提供一种元数据管理系统,该元数据管理系统包括:元数据服务器与至少一个存储池,元数据服务器包括多个与存储池一一对应的管理模块,管理模块用于对文件对应的元数据信息进行管理;存储池与管理模块连接,存储池包括存储文件的数据节点服务器。

为解决上述技术问题,本申请采用的技术方案是:提供一种基于元数据管理系统的元数据管理方法,应用于元数据管理系统中元数据服务器中的管理模块,元数据管理系统为上述技术方案中的元数据管理系统,该方法包括:从至少一个存储池中选择一个存储池作为目的存储池;基于目的存储池生成数据节点列表;其中,数据节点列表包括目的存储池中用来存储待写入数据的数据节点服务器;基于数据节点列表生成地址端口列表,将地址端口列表发送给客户端,以使得客户端向与地址端口列表对应的数据节点服务器写入待写入数据,其中,地址端口列表包括据节点列表中每个数据节点服务器对应的网际互连协议地址信息与端口信息。

为解决上述技术问题,本申请采用的技术方案是:提供一种计算机可读存储介质,用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案的基于元数据管理系统的元数据管理方法。

通过上述方案,本申请的有益效果是:本申请中元数据服务器包括多个管理模块,每个存储池可包含多个数据节点服务器,数据节点服务器可用来缓存文件以及文件对应的元数据信息,管理模块可分别对文件对应的元数据信息进行管理,实现了按照存储池进行元数据划分的方法,由于元数据信息都进行相对独立的管理,元数据信息更新以及持久化可以独立进行,互相不影响,能够显著提升数据节点服务器的数量较多时元数据服务器的承载能力;在元数据信息的数据量较大时,加载数据时可以多个存储池进行并发加载,显著提高元数据信息的加载速度;由于对元数据信息进行独立处理和存储,在后续进行元数据服务器的扩展时,数据裂变非常简单,能够直接将存储池对应的元数据信息迁移到其他服务器上,可以快速实现元数据裂变迁移,而不需要重新对数据进行导出和导入操作;而且数据节点服务器可以按照存储池进行并发上报,有效提升上报效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的元数据管理系统一实施例的结构示意图;

图2是本申请提供的元数据管理系统另一实施例的结构示意图;

图3是本申请提供的基于元数据管理系统的元数据管理方法一实施例的流程示意图;

图4是本申请提供的管理模块、客户端以及数据节点服务器的交互示意图;

图5是本申请提供的计算机可读存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请提供了一种按照存储池对元数据服务器进行分区管理的方法,存储池不仅作为故障域划分方式,而且作为元数据服务器的管理划分的方式,每个存储池内节点服务器的管理、文件对应的元数据信息管理、实时日志持久化以及内存镜像文件持久化都进行分区,可以显著提高元数据服务器的并发能力和承载数据节点服务器的数量。

请参阅图1,图1是本申请提供的元数据管理系统一实施例的结构示意图,该元数据管理系统包括:至少一个存储池10与元数据服务器20。

存储池10包括数据节点服务器11,数据节点服务器11用于存储文件。

元数据服务器20包括多个管理模块21,每个管理模块21用于对文件对应的元数据信息进行管理,管理模块21与存储池10一一对应,即管理模块21的数量与存储池10的数量相同。

进一步地,文件对应的元数据信息包括管理文件的状态信息、文件的属性信息、文件内数据块的分布信息或元数据信息的持久化信息,比如:持久化的周期;即元数据服务器20主要负责文件元数据信息管理与对数据节点服务器11的管理,文件元数据信息管理主要分为文件状态信息管理、文件属性信息管理、文件内数据块分布信息管理以及元数据信息持久化管理等;数据节点服务器11的管理主要分为数据节点服务器11上线/下线、数据分布负载均衡以及对数据节点服务器11上报的数据块进行管理等。

在一具体的实施例中,如图2所示,元数据服务器包括n个管理模块(图中未标识),每个管理模块与一个存储池(图中未标识)相连接,以对该存储池进行管理,每个存储池包括Mi个数据节点服务器(i为存储池的编号,1≤i≤n);客户端在创建文件时,生成一文件创建请求,并将该文件创建请求发送给元数据服务器中的管理模块;管理模块在接收到客户端发送的文件创建请求后,从至少一个存储池中选择一个存储池作为目的存储池,并创建一个新文件,将新文件对应的元数据信息写入实时日志,发送新文件的身份标识号(ID,Identity document)给客户端。

进一步地,元数据服务器可获取存储池的个数,如果存储池的数量为一个,直接将该存储池作为目的存储池,以存储客户端预写入的数据;如果存储池的数量大于一个,元数据服务器可以根据客户端的类型或者负载等,从多个存储池中选择一个存储池作为目的存储池,将新创建的文件的元数据信息写入目的存储池对应的实时日志内,并返回新文件的ID到客户端,以便客户端向该文件写入数据。

客户端在向新文件写入数据时,可生成分配请求,并将该分配请求发送管理模块;管理模块在接收到客户端发送的分配请求后,确定与新文件对应的目的存储池,基于目的存储池为新文件分配相应的数据节点服务器,即管理模块在目的存储池中挑选出适合客户端存储数据的若干个数据节点服务器,生成数据节点列表,该数据节点列表包括目的存储池中用来存储客户端写入的待写入数据的数据节点服务器。

进一步地,管理模块可根据目的存储池中各个数据节点服务器的存储空间来进行分配,即统计该目的存储池中各个数据节点服务器的剩余存储空间,将剩余存储空间大于预设存储空间的数据节点服务器作为存储待写入数据的数据节点服务器,或者先利用预设存储空间进行筛选,然后再利用设定数量进行筛选,选择设定数量个剩余存储空间大于预设存储空间的数据节点服务器作为存储待写入数据的数据节点服务器,预设存储空间与设定数量可以根据具体应用需要进行设定。例如,假设有4个存储池,管理模块选择第2个存储池作为目的存储池,该目的存储池包括5个数据节点服务器A-E,它们对应的剩余存储空间如下表所示:

表一数据节点服务器的剩余存储空间

假设预设存储空间为2GB,设定数量为3个,则筛选出的数据节点服务器为B以及D-E,即数据节点列表如下所示:

表二数据节点列表

管理模块还可在为新文件分配相应的数据节点服务器后,生成分配节点信息,并将分配节点信息写入目的存储池对应的实时日志中,该分配节点信息用于表征将目的存储池中的哪些数据服务器分配给客户端。另外,管理模块还可基于数据节点列表生成地址端口列表,并将地址端口列表发送给客户端,以使得客户端向与地址端口列表对应的数据节点服务器写入待写入数据,该地址端口列表包括数据节点列表中每个数据节点服务器对应的网际互连协议(IP,Internet Protocol)地址信息与端口信息,该端口信息即为端口号;例如,地址端口列表如下所示:

表三数据节点列表

客户端在关闭新文件时,管理模块同样找到该新文件对应的目的存储池,将关闭新文件产生的元数据信息写入目的存储池对应的实时日志中。

进一步地,客户端在关闭新文件时,可以向管理模块发送关闭请求;管理模块在接收到客户端发送的关闭请求时,更新新文件的元数据信息,并持久化到实时日志中,更新的内容包括:更新新文件的修改时间、将新文件的状态由打开状态转变为关闭状态以及更新新文件的大小等。

为了方便管理模块对数据节点服务器进行管理,数据节点服务器可以按照预设时间间隔将自身的数据块信息汇报给管理模块,该预设时间间隔可以根据经验或者应用需要进行设置;管理模块在接收到数据节点服务器汇报的数据块信息时,根据数据块信息修改新文件的状态信息。

为了方便管理模块对实时日志进行管理,管理模块可以在超过预设时间阈值或实时日志的大小达到预设值后,对目的存储池对应的实时日志进行合并,生成内存镜像文件,并将内存镜像文件存储到元数据服务器的磁盘中;即当目的存储池内对应的实时日志达到空间阀值或者时间阀值时,针对该目的存储池的实时日志进行合并,产生新的内存镜像文件,此过程不影响其他存储池的正常读写,有效避免了日志合并对其他管理模块的影响。可以理解地,管理模块不仅对目的存储池对应的实时日志进行检测,还还对每个存储池对应的存储池进行检测,以便在实时日志占用较大空间或经历较长时间后,及时对实时日志进行合并,防止对其他存储池造成干扰。

本实施例实现的元数据服务器按照存储池进行分区的方案中,对数据节点服务器的管理不仅只是一个负载均衡模块内逻辑上的概念,数据节点服务器在元数据服务器上对应的元数据信息也按照存储池划分,元数据只存储在相应的存储池内;数据节点服务器需要上报数据块信息到元数据服务器上,当数据节点服务器的个数比较多时,每个管理模块可以处理其对应的数据节点服务器周期上报的数据块信息,不会互相影响,使得元数据服务器处理数据节点服务器上报信息的性能显著提升。此外,元数据服务器按照存储池划分后,后续进行数据扩容时,原来的数据可以不动,新扩容的数据节点服务器归属于新存储池,互相隔离,不影响。如果后续元数据服务器进行数据裂变迁移时,能够直接将存储池对应的元数据迁移到其他服务器上,可以快速实现元数据裂变迁移,而不需要重新对数据进行导出和导入,有利于后续大规模集群的扩展。

请参阅图3,图3是本申请提供的基于元数据管理系统的元数据管理方法一实施例的流程示意图,该方法应用于元数据管理系统中元数据服务器中的管理模块,元数据管理系统为上述实施例中的元数据管理系统,该方法包括:

步骤31:从至少一个存储池中选择一个存储池作为目的存储池。

如图4所示,管理模块可以在接收到客户端发送的文件创建请求后,从至少一个存储池中选择一个存储池作为目的存储池,并创建一个新文件,将新文件对应的元数据信息写入实时日志,发送新文件的ID给客户端。

步骤32:基于目的存储池生成数据节点列表。

客户端预向文件内写入数据时,请求元数据服务器为新文件分配可以写入的数据节点服务器;具体地,客户端向管理模块发送分配请求,管理模块在接收到客户端发送的分配请求后,确定与新文件对应的目的存储池,基于目的存储池为创建的新文件分配相应的数据节点服务器,生成数据节点列表,该数据节点列表包括目的存储池中用来存储待写入数据的数据节点服务器;而且管理模块可还在为新文件分配数据节点服务器后,将分配数据节点服务器所产生的信息(即分配节点信息)写入目的存储池对应的实时日志中。

步骤33:基于数据节点列表生成地址端口列表,将地址端口列表发送给客户端,以使得客户端向与地址端口列表对应的数据节点服务器写入待写入数据。

客户端在进行节点分配后,可向客户端反馈地址端口列表,地址端口列表包括据节点列表中每个数据节点服务器对应的IP地址信息与端口信息;客户端可以在获取到数据节点服务器的IP信息与端口信息后,向相应的数据节点服务器写入数据。

继续参阅图4,数据节点服务器可以定期将其存储的数据块信息汇报给管理模块,以保证数据节点服务器和元数据服务器之间的数据一致性;管理模块在接收到数据节点服务器汇报的数据块信息后,可以根据数据块信息修改新文件的状态信息,如果新文件需要恢复则触发文件恢复操作,并将所有操作写入实时日志中。

可以理解地,管理模块写入实时日志是顺序写入,在超过预设时间阈值或目的存储池对应的实时日志的大小达到预设值后,可以对目的存储池对应的实时日志进行合并,生成内存镜像文件,并将内存镜像文件存储到元数据服务器的磁盘中。每次元数据服务器启动时,都需要重新加载持久化内存镜像文件和未合并的实时日志文件,重新构建出内存态元数据信息。

在客户端想要关闭新文件时,向元数据服务器发送关闭文件请求;元数据服务器可在接收到该关闭文件请求后修改新文件的状态信息,并持久化到实时日志中。

本实施例所提供的方法,元数据信息、实时日志以及内存镜像文件可以按照存储池进行分区存储,通过对元数据信息进行分区存储,可以显著提升数据节点服务器的数量较多时元数据服务器的承载能力和性能;元数据服务器启动时能够按照存储池并发加载元数据;由于各个管理模块相互独立,元数据服务器可以按照存储池并发处理数据节点服务器上报的信息,加快处理的速度,防止任务积压;数据裂变迁移时可以按照存储池进行,能够直接将存储池对应的元数据信息迁移到其他服务器上,使得数据裂变非常简单。

请参阅图5,图5是本申请提供的计算机可读存储介质一实施例的结构示意图,计算机可读存储介质50用于存储计算机程序51,计算机程序51在被处理器执行时,用于实现上述实施例中的提高数据传输速率的方法。

计算机可读存储介质50可以是服务端、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号