一种分布式元数据管理方法及系统与流程

文档序号:19799505发布日期:2020-01-31 14:49阅读:182来源:国知局
一种分布式元数据管理方法及系统与流程

本发明涉及元数据管理技术领域,尤其涉及一种分布式元数据管理方法及系统。



背景技术:

目前,面对越来越多的海量数据,因为性能和价格的限制,现有的存储方式已经越来越不能满足需求,市场需要的是具有大存储量、可扩展、安全和高可用的数据存储系统,从而,分布式存储在这种需求下应运而生。

为了有效的管理分布式存储系统中的各个存储节点,根据文件系统中元数据和数据的存储和访问特点,分布式文件系统一般把元数据和数据分开存储。元数据存储系统是连接用户和数据存储服务器的桥梁。因此高效的元数据管理对实现分布式存储系统的高性能和可扩展性至关重要,元数据的分布式管理成为一个重要的研究热点。现有的元数据管理策略存在负载不均衡,重命名操作会导致大量的元数据移动以及元数据管理系统的可扩展性不好等问题。



技术实现要素:

本发明的目的在于提供一种分布式元数据管理方法及系统,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种分布式元数据管理方法,包括:元数据的静态负载均衡方法和元数据的动态负载均衡方法;

所述元数据的静态负载均衡方法为:采用虚拟节点的一致性哈希函数和元数据服务器列表,将所述元数据分配到元数据服务器节点上;其中,所述元数据服务器列表是记录所有虚拟节点到元数据服务器之间的映射关系的表,每个所述元数据服务器节点上存储一个该节点上存储的虚拟节点的列表;

所述元数据的动态负载均衡方法为:采用元数据迁移的方式,将部分元数据从过载节点迁移到过轻节点上。

优选地,所述元数据的静态负载均衡方法,包括如下步骤:

a1,系统在启动之后,元数据服务器管理者根据各元数据服务器信息及列表项配置信息生成元数据服务器列表;

a2,根据文件的完整路径,使用一致性哈希函数,找到所述元数据服务器列表中的项,并找到对应的目标元数据服务器;

a3,根据所述元数据服务器节点上存储的虚拟节点的列表,在所述目标元数据服务器的虚拟节点内添加元数据信息。

优选地,每个所述元数据服务器出现在所述元数据服务器列表内的项数,采用如下函数计算:

其中,ui表示的是第i台元数据服务器在列表内所出现的次数,c表示列表的项数,n表示所述元数据服务器的总数。

优选地,所述一致性哈希函数为:

namenode_locator=hash(f)modnnt_length,

其中,namenode_locator表示选择的元数据服务器列表中的项,f为文件的完整路径名称,nnt_length为元数据服务器列表中的总项数。

优选地,所述元数据的动态负载均衡方法,包括如下步骤:

b1,所述元数据服务器定期采集负载信息,并发送给元数据服务器管理者;

b2,所述元数据服务器管理者定期计算所述元数据服务器的负载均衡度,如果所述元数据服务器的负载均衡度超过了设定的阈值,则所述元数据服务器为过载节点,如果所述元数据服务器的负载均衡度未达到设定的阈值,则所述元数据服务器为过轻节点;

b3,所述元数据服务器管理者将部分元数据从所述过载节点迁移到所述过轻节点上;

b4,所述过载节点和所述过轻节点更新负载信息,并发送给所述元数据服务器管理者。

优选地,所述元数据服务器的负载均衡度采用如下公式进行计算:

ti=η1di+η2mi,

式中,

ji是i节点在时间t内负载均衡指标;

wi是t时刻内第i个元数据服务器节点的负载指标;

n为元数据服务器的台数;

η1+η2=1,

ti是在t时刻内元数据服务器列表中i项的负载指标,共n项;

di是t时刻内元数据服务器列表中i项的操作响应延迟;

mi是t时刻元数据服务器列表中i项元数据服务器的数目。

优选地,所述元数据的动态负载均衡方法,还包括步骤:

计算系统的整体负载度,如果系统的整体负载度超过设定的阈值,则在系统中添加元数据服务器节点;其中,采用如下函数计算所述系统的整体负载度:

其中,

e为系统的负载指标,

n为元数据服务器节点个数;

wi是t时刻内第i个元数据服务器节点的负载指标。

优选地,还包括:采用目录重定向表格进行元数据延迟移动,解决元数据局部一致性问题的方法,具体为:

在每个元数据服务器上维护一张目录路径重定向表格,所述目录路径重定向表格用于存储不在当前元数据服务器上的元数据信息;

所述目录路径重定向表格中的每一项是一对键值<hash(目录路径),虚拟节点>,前者是重命名后的目录路径的哈希值,后者是需要移动的元数据当前的存储位置。

一种分布式元数据管理系统,包括:元数据服务器管理者和元数据服务器,所述元数据服务器管理者包括元数据服务器列表维护模块、元数据服务器的选择模块和负载均衡模块;所述元数据服务器包括元数据处理模块和负载测量模块;

所述元数据服务器列表维护模块负责维护虚拟节点与元数据服务器节点之间的正确的对应关系;

所述元数据服务器的选择模块用于完成元数据的随机分布,

所述负载均衡模块用于对各个元数据服务器负载信息进行接收,计算系统负载值并对各个元数据服务器的负载进行排序,在系统负载不均衡或者在元数据服务器集群需要调整时进行元数据的移动;

所述负载测量模块用于负责收集当前服务器上的负载信息,计算出每个虚拟节点的负载,由此再计算出当前服务器上的负载,并将负载信息发送给元数据服务器管理者;

所述元数据处理模块包括元数据的读模块、写模块和修改模块,所述读模块负责元数据的获取,所述写模块负责元数据的存储,所述修改模块负责重命名操作后对元数据的处理,维护一个目录重定向表格,所述目录路径重定向表格用于存储不在当前元数据服务器上的元数据信息。

优选地,还包括备份服务器,所述备份服务器包括元数据服务器管理者的备份服务器和元数据服务器的备份服务器,所述元数据服务器管理者的备份服务器,用于在元数据服务器管理者出现故障时负责代替其工作,并对其数据进行恢复;所述元数据服务器的备份服务器,负责在元数据服务器节点发生故障时对其进行数据的恢复。

本发明的有益效果是:本发明实施例提供的分布式元数据管理方法及系统,通过使用元数据分布时的静态负载均衡和系统运行中的动态负载均衡两种策略,提高了元数据服务资源的利用率,保证了系统的负载均衡,提高了系统的可扩展性;另外,通过使用基于目录重定向表格的元数据延迟移动方案解决了重命名操作会引起的元数据大量移动问题,保证了系统效率的稳定。

附图说明

图1是本发明含有元数据管理系统的分布式文件系统的架构图;

图2为本发明实施例提供的元数据管理系统中namenode列表示例图;

图3是本发明实施例提供的元数据的读流程;

图4是本发明实施例提供的元数据管理系统的可靠性保障策略图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

实施例一

本发明实施例提供了一种分布式元数据管理方法,包括:元数据的静态负载均衡方法和元数据的动态负载均衡方法;

所述元数据的静态负载均衡方法为:采用虚拟节点的一致性哈希函数和元数据服务器列表,将所述元数据分配到元数据服务器节点上;其中,所述元数据服务器列表是记录所有虚拟节点到元数据服务器之间的映射关系的表,每个所述元数据服务器节点上存储一个该节点上存储的虚拟节点的列表;

所述元数据的动态负载均衡方法为:采用元数据迁移的方式,将部分元数据从过载节点迁移到过轻节点上。

本发明实施例中,包括分布式元数据管理系统的分布式文件系统,其架构可参见图1所示,从图1可以看出,该分布式文件系统的整体架构包括四个部分:数据存储服务器dn(datanode),作为应用数据的存储节点,存储文件切分后的数据块;元数据服务器nn(namenode),作为元数据响应以及更新节点,负责维护全局命名空间,其中包含文件与文件夹属性,nn维护命名空间树并保存文件中数据块到dn的映射。nn在一个集群中有一个或多个;用户client,支持对文件系统的读、写、删除文件、创建删除目录等操作,client与nn交互控制信息(metadata),与dn交互数据流(applicationdata);namenode的管理节点nnmanager,负责周期性收集各个nn的状态信息,维护namenode列表;其中,namenode列表nnt,用于存储namenode;namenodepersonal(nnp),用于存储所在nn中的对应项信息;nnt与nnp均由nnmanger负责维护和更新;目录重定向表格dprt,用来存储元数据信息不在当前元数据服务器上的目录信息列表,每个nn上都会维护一个dprt。

上述方法中,当对元数据进行初始分布时,通过采用使用虚拟机点优化过的一致性哈希函数来将其分配到元数据服务器节点上,保证了元数据在静态分布时的负载均衡;

随着系统的运行,元数据服务器节点会出现负载不均衡的情况,通过采用元数据迁移的方式,将部分元数据从过载节点迁移到过轻节点上,从而实现多个元数据服务器节点之间的负载均衡;当系统存储的元数据足够大时,会出现系统的整体负载度超过阈值的现象,通过对系统添加元数据服务器节点的方法来降低系统负载;

所以,本发明实施例,通过使用元数据分布时的静态负载均衡和系统运行中的动态负载均衡两种策略,提高了元数据服务资源的利用率,保证了系统的负载均衡,提高了系统的可扩展性。

在本发明的一个优选实施例中,所述元数据的静态负载均衡方法,包括如下步骤:

a1,系统在启动之后,元数据服务器管理者根据各元数据服务器信息及列表项配置信息生成元数据服务器列表;

a2,根据文件的完整路径,使用一致性哈希函数,找到所述元数据服务器列表中的项,并找到对应的目标元数据服务器;

a3,根据所述元数据服务器节点上存储的虚拟节点的列表,在所述目标元数据服务器的虚拟节点内添加元数据信息。

元数据服务器管理者维护一个元数据服务器列表(表示为:namenode列表或nnt),namenode列表是记录所有虚拟节点到元数据服务器之间的映射关系的表。系统启动后,表内项数不变,即虚拟节点的个数不变。为使元数据服务器负载调整过程更为灵活,粒度更小,项数在一定范围内要足够大。

其中,每个所述元数据服务器出现在所述元数据服务器列表内的项数,采用如下函数计算:

其中,ui表示的是第i台元数据服务器在列表内所出现的次数,c表示列表的项数,n表示所述元数据服务器的总数。

图2示出了元数据服务器列表示例图。列表中共有7项,分别对应有a,b,c和d等4台元数据服务器。

实际使用时,上述方法可以采用如下方法进行实施:

客户端在第一次访问时会向元数据服务器管理者获取namenode列表,之后在系统运行的过程中,如果namenode列表发生变化,元数据服务器管理者会把最新的元数据服务器列表发送给客户端。客户端读取一个文件时,根据文件完整路径名的哈希值计算出存储的虚拟节点编号,然后根据namenode列表查找出元数据存储的服务器是哪个。

在本发明的一个优选实施例中,所述一致性哈希函数为:

namenode_locator=hash(f)modnnt_length,

其中,namenode_locator表示选择的元数据服务器列表中的项,f为文件的完整路径名称,nnt_length为元数据服务器列表中的总项数。

在本发明的一个优选实施例中,所述元数据的动态负载均衡方法,包括如下步骤:

b1,所述元数据服务器定期采集负载信息,并发送给元数据服务器管理者;

b2,所述元数据服务器管理者定期计算所述元数据服务器的负载均衡度,如果所述元数据服务器的负载均衡度超过了设定的阈值,则所述元数据服务器为过载节点,如果所述元数据服务器的负载均衡度未达到设定的阈值,则所述元数据服务器为过轻节点;

b3,所述元数据服务器管理者将部分元数据从所述过载节点迁移到所述过轻节点上;

b4,所述过载节点和所述过轻节点更新负载信息,并发送给所述元数据服务器管理者。

其中,所述元数据服务器的负载均衡度采用如下公式进行计算:

ti=η1di+η2mi,

式中,

式中,

ji是i节点在时间t内负载均衡指标;

wi是t时刻内第i个元数据服务器节点的负载指标;

n为元数据服务器的台数;

η1+η2=1,

ti是在t时刻内元数据服务器列表中i项的负载指标,共n项;

di是t时刻内元数据服务器列表中i项的操作响应延迟;

mi是t时刻元数据服务器列表中i项元数据服务器的数目。

本发明实施例中,所述元数据的动态负载均衡方法,还包括步骤:

计算系统的整体负载度,如果系统的整体负载度超过设定的阈值,则在系统中添加元数据服务器节点;其中,采用如下函数计算所述系统的整体负载度:

其中,

e为系统的负载指标,

n为元数据服务器节点个数;

wi是t时刻内第i个元数据服务器节点的负载指标。

本发明实施例中,元数据的动态负载均衡方法包括两个方面:

一是当某个元数据服务器节点的负载超出系统设置的阈值时,则需要从负载最大的元数据服务器上选出负载最大的虚拟节点,将其上面的元数据信息移动到负载最小的元数据服务器上;二是当整个系统的负载超过了设定的阈值,说明当前规模的元数据服务器集群已经不能满足系统的需求,需要添加元数据服务器,然后再按照第一种情况的策略进行负载均衡的调整,调整完成后,元数据服务器管理者会对namenode列表进行调整,并将最新的namenode列表发送给客户端、元数据服务器和数据存储服务器。

本发明实施例提供的分布式元数据管理方法,还可以包括:采用目录重定向表格进行元数据延迟移动,解决元数据局部一致性问题的方法,具体为:

在每个元数据服务器上维护一张目录路径重定向表格,所述目录路径重定向表格用于存储不在当前元数据服务器上的元数据信息;

所述目录路径重定向表格中的每一项是一对键值<hash(目录路径),虚拟节点>,前者是重命名后的目录路径的哈希值,后者是需要移动的元数据当前的存储位置。

其中,目录重定向表格可以表示为dprt;

如图3所示,上述方法的具体实施过程可以为:

当客户端访问文件时,根据文件完整路径名的哈希值计算出存储的虚拟节点编号,根据元数据服务器列表查找出元数据存储的服务器是哪个,即目标元数据服务器,因为本文系统中采用的元数据延迟移动的方法,所以可能会出现访问的元数据不在当前目标服务器上的情况,所以,在查询目标元数据信息时,首先在目标元数据服务器上查找其上维护的dprt上有没有文件完整路径名对应的哈希值项,如果有,则说明要查询的元数据信息不在目标元数据服务器上,那么就到元数据所在的服务器上去查询目标元数据信息,并将元数据信息移动到目标元数据服务器上,删除其上维护的dprt上的对应项;如果没有,则在目标元数据服务器上查询目标元数据信息。

该方法中,不是在修改目录或文件名时就进行移动,而是在访问时才进行元数据的移动,这样,将元数据的移动推后,当发生大规模的元数据移动时,就可以保证系统吞吐量的稳定性。

实施例二

本发明实施例提供了一种分布式元数据管理系统,包括:元数据服务器管理者和元数据服务器,所述元数据服务器管理者包括元数据服务器列表维护模块、元数据服务器的选择模块和负载均衡模块;所述元数据服务器包括元数据处理模块和负载测量模块;

所述元数据服务器列表维护模块负责维护虚拟节点与元数据服务器节点之间的正确的对应关系;

所述元数据服务器的选择模块用于完成元数据的随机分布,

所述负载均衡模块用于对各个元数据服务器负载信息进行接收,计算系统负载值并对各个元数据服务器的负载进行排序,在系统负载不均衡或者在元数据服务器集群需要调整时进行元数据的移动;

所述负载测量模块用于负责收集当前服务器上的负载信息,计算出每个虚拟节点的负载,由此再计算出当前服务器上的负载,并将负载信息发送给元数据服务器管理者;

所述元数据处理模块包括元数据的读模块、写模块和修改模块,所述读模块负责元数据的获取,所述写模块负责元数据的存储,所述修改模块负责重命名操作后对元数据的处理,维护一个目录重定向表格,所述目录路径重定向表格用于存储不在当前元数据服务器上的元数据信息。

上述结构的分布式元数据管理系统,其对元数据的管理方法在实施例一中已经进行了详述,在此不再详述。

该结构的分布式元数据管理系统,可以实现如下功能:在元数据分布时的静态负载均衡和系统运行中的动态负载均衡,提高了元数据服务资源的利用率,保证了系统的负载均衡,提高了系统的可扩展性;另外,可以通过使用基于目录重定向表格的元数据延迟移动方案解决重命名操作会引起的元数据大量移动的问题,保证了系统效率的稳定。

本发明实施例提供的分布式元数据管理系统,还可以包括备份服务器,所述备份服务器包括元数据服务器管理者的备份服务器和元数据服务器的备份服务器,所述元数据服务器管理者的备份服务器,用于在元数据服务器管理者出现故障时负责代替其工作,并对其数据进行恢复;所述元数据服务器的备份服务器,负责在元数据服务器节点发生故障时对其进行数据的恢复。

上述备份服务器作为元数据管理系统的可靠性保障,其实际的工作过程可以为:

元数据服务器管理者的备份服务器backnnm,采取的是冗余机制;元数据服务器的备份服务器backnn,采取的是日志机制。

主nnm和backnnm同时运行相同的程序,两者之间通过读写模块使用网络进行通信,backnnm平时主要负责监督主nnm,通过消息处理模块来分析主nnm的状态,主nnm会定期向backnnm发送心跳信息,告知其自身的状态,如果超过一个周期backnnm没有收到主nnm发来的心跳信息,则可以认为主nnm发生了故障,backnnm会自动接管主nnm上的所有工作,为系统提供服务,并对主nnm进行恢复。当主nnm恢复后,会向backnnm发送心跳信息,告知其已经恢复正常,并从backnnm中接管所有工作,backnnm则恢复到监听状态,该策略可以保证服务不中断;nn(元数据服务器)与backnn之间也是通过通信模块进行交互,nn与backnn建立连接后,接收和发送数据,其中数据主要包括日志文件和元数据镜像。然后backnn通过合成模块将日志文件和元数据镜像在内存中合成新的元数据镜像文件,该策略会引起服务的中断。具体可参见图4。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的分布式元数据管理方法及系统,通过使用元数据分布时的静态负载均衡和系统运行中的动态负载均衡两种策略,提高了元数据服务资源的利用率,保证了系统的负载均衡,提高了系统的可扩展性;另外,通过使用基于目录重定向表格的元数据延迟移动方案解决了重命名操作会引起的元数据大量移动问题,保证了系统效率的稳定。

具体地,通过采用使用虚拟节点进行优化的一致性哈希函数进行元数据分布,实现了元数据分布时的静态负载均衡;当元数据服务器节点的负载均衡度超过设定阈值时,通过采用元数据迁移的方式来实现元数据的动态负载均衡;当系统的整体负载超过设定阈值时,通过对元数据服务器节点的添加来降低系统的负载;当重命名操作引起元数据的大量移动时,通过采用基于目录重定向表的元数据延迟移动方案来保证系统效率的稳定。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。

上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:ram、rom、磁碟、磁带、光盘、闪存、u盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1