一种元数据服务器动态负载均衡的方法及系统与流程

文档序号:13094664阅读:138来源:国知局
一种元数据服务器动态负载均衡的方法及系统与流程

本发明涉及分布式集群元数据服务器领域,特别是涉及一种元数据服务器动态负载均衡的方法及系统。



背景技术:

随着互联网的发展以及互联网用户的增加,互联网中的数据也急剧膨胀。每天产生的数据量数以万计,单个计算机受内存和cpu等硬件的限制,已无法满足存储和计算要求。

海量数据存储应运而生,其中,分布式文件系统是海量存储的重要技术。分布式文件系统将数据存储在物理分散的多个存储节点上,对这些节点的资源进行统一的管理与分配,并提供用户访问文件系统的接口。通过分布式文件系统,海量数据存储系统可以轻松地存储pb级数据。分布式集群充分利用分布式的优越性,解决大数据的存储和分析问题。

分布式集群采用主从式结构,由控制节点(元数据服务器)和节点组成,它们分别具有存储元数据和数据的功能。元数据服务器管理数据的位置,以及何处存储新数据。

请参考图1,图1为现有技术中分布式集群存储系统的结构示意图。

其中,用户通过客户端发送访问数据请求,通过元数据管理模块获得数据存储的实际位置等信息,并且通过返回的元数据信息获得实际数据信息。

当存储系统中出现某个热点文件时,客户端会频繁访问该文件,从而导致被访问的元数据所在的元数据服务器负载不均衡。因此,该元数据服务器的可用性就不高。由于未能很好地处理元数据服务器的负载均衡问题,目前,现有的分布式集群存储系统的元数据存储架构上一直存在读写延迟高及可用性等性能问题。

因此,如何提供一种元数据服务器的负载均衡方案,能够使元数据服务器负载均衡,从而保证元数据服务器的性能,是本领域的技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种元数据服务器动态负载均衡的方法及系统,能够使元数据服务器实现动态的负载均衡,从而保证元数据服务器的性能。

为解决上述技术问题,本发明提供了如下技术方案:

一种元数据服务器动态负载均衡的方法,包括:

检测元数据服务器集群中各元数据服务器的资源利用率;

判断各所述元数据服务器对应的所述资源利用率是否大于第一阈值;

若是,则向元数据管理模块发送迁移请求,将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的元数据迁移至第二元数据服务器集群中;

其中,所述第一阈值为所述资源利用率的最大允许值;所述第二元数据服务器集群为所述元数据服务器集群中所述资源利用率小于所述第一阈值对应的所述元数据服务器的集群。

优选地,所述检测元数据服务器集群中各元数据服务器的资源利用率包括:

获取各所述元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率;

由所述cpu利用率、所述内存利用率、所述io吞吐量以及所述磁盘利用率和所述cpu利用率的权重、所述内存利用率的权重、所述io吞吐量的权重以及所述磁盘利用率的权重计算得出所述资源利用率。

优选地,所述将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的元数据迁移至第二元数据服务器集群中包括:

将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的热点元数据迁移至第二元数据服务器集群中;其中,所述热点元数据为访问次数大于第二阈值的所述元数据。

优选地,所述将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的热点元数据迁移至第二元数据服务器集群中包括:

将所述资源利用率大于所述第一阈值对应的所述元数据服务器中超出第三阈值相应数量的所述热点元数据迁移至所述第二元数据服务器集群中;其中,所述第三阈值为当所述资源利用率小于所述第一阈值时,所述资源利用率对应的所述元数据服务器中的所述热点元数据的数量的最大允许值。

优选地,所述方法还包括:

所述元数据管理模块将所述元数据进行缓存。

一种元数据服务器动态负载均衡的系统,包括:

检测单元,用于检测元数据服务器集群中各元数据服务器的资源利用率;

判断单元,用于判断各所述元数据服务器对应的所述资源利用率是否大于第一阈值;

发送单元,用于在判断单元判断所述元数据服务器对应的所述资源利用率大于所述第一阈值时,向元数据管理模块发送迁移请求;

迁移单元,用于将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的元数据迁移至第二元数据服务器集群中;

其中,所述第一阈值为所述资源利用率的最大允许值;所述第二元数据服务器集群为所述元数据服务器集群中所述资源利用率小于所述第一阈值对应的所述元数据服务器的集群。

优选地,所述检测单元包括:

获取子单元,用于获取各所述元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率;

计算子单元,用于根据所述获取子单元获取的所述cpu利用率、所述内存利用率、所述io吞吐量以及所述磁盘利用率和所述cpu利用率的权重、所述内存利用率的权重、所述io吞吐量的权重以及所述磁盘利用率的权重计算得出所述资源利用率。

优选地,所述迁移单元包括:

热点元数据迁移子单元,用于将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的热点元数据迁移至第二元数据服务器集群中;其中,所述热点元数据为访问次数大于第二阈值的所述元数据。

优选地,所述热点元数据迁移子单元包括:

热点元数据迁移模块,用于将所述资源利用率大于所述第一阈值对应的所述元数据服务器中超出第三阈值相应数量的所述热点元数据迁移至所述第二元数据服务器集群中;其中,所述第三阈值为当所述资源利用率小于所述第一阈值时,所述资源利用率对应的所述元数据服务器中的所述热点元数据的数量的最大允许值。

优选地,所述系统还包括:

缓存单元,用于将所述元数据进行缓存。

与现有技术相比,上述技术方案具有以下优点:

本发明提供了一种元数据服务器动态负载均衡的方法,该方法通过检测元数据服务器集群中各元数据服务器的资源利用率,判断各所述元数据服务器对应的所述资源利用率是否大于第一阈值,若所述资源利用率大于所述第一阈值,则表明该元数据服务器的负载较高。此时,向元数据管理模块发送迁移请求,将所述资源利用率大于所述第一阈值对应的所述元数据服务器中的元数据迁移至所述资源利用率小于所述第一阈值对应的所述元数据服务器中,即第二元数据服务器集群中。其中,所述第一阈值为所述资源利用率的最大允许值。从而实现了元数据的动态分布,使资源利用率高于第一阈值的元数据服务器的负载降低,元数据服务器集群中各元数据服务器的负载较为均衡。采用该方法,使得分布式集群的元数据服务器实现了动态的负载均衡,提高了集群的元数据服务器性能。

本发明还提供了一种元数据服务器动态负载均衡的系统,包括上述方法所具有的优点,在此不再赘述。

附图说明

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

图1为现有技术中分布式集群存储系统的结构示意图;

图2为本发明具体实施方式一所提供的元数据服务器动态负载均衡的方法的流程图;

图3为本发明具体实施方式二所提供的元数据服务器动态负载均衡的方法的流程图;

图4为本发明具体实施方式三所提供的元数据服务器动态负载均衡的分布式集群存储系统示意图;

图5为本发明具体实施方式四所提供的元数据服务器动态负载均衡的系统的结构示意图;

图6为本发明具体实施方式五所提供的元数据服务器动态负载均衡的系统的结构示意图。

具体实施方式

本发明的核心是提供一种元数据服务器动态负载均衡的方法及系统,使得分布式集群的元数据服务器实现动态负载均衡,提高元数据服务器的性能。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。

请参考图2,图2为本发明具体实施方式一所提供的元数据服务器动态负载均衡的方法的流程图,该方法包括:

步骤101:检测元数据服务器集群中各元数据服务器的资源利用率;

元数据解析模块对于元数据服务器集群中的每个元数据服务器的资源利用率进行检测,根据元数据服务器的资源利用率数值的大小来对元数据服务器的负载状态进行判断。影响元数据服务器性能的一个重要原因是该元数据服务器的负载状态,当元数据服务器的负载过高时,其性能较差;元数据服务器负载较低时,其性能较好。

通过检测元数据服务器的资源利用率,来进行元数据服务器负载状态以及性能的分析,根据分析的结果可进行后续操作,从而使集群中元数据服务器的负载实现动态均衡。

具体地,元数据服务器的资源利用率可以为根据元数据服务器的各项参数及各项参数的权重计算得出的,例如,根据元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率和cpu利用率的权重、内存利用率的权重、io吞吐量的权重以及磁盘利用率的权重计算得出该元数据服务器的资源利用率。其中,各项参数的权重可以结合分布式文件系统的实际需求而设置。

步骤102:判断各元数据服务器对应的资源利用率是否大于第一阈值;

其中,第一阈值为元数据服务器的资源利用率的最大允许值。

检测到各元数据服务器的资源利用率后,判断资源利用率的数值是否大于第一阈值,若资源利用率大于第一阈值,则表明该资源利用率对应的元数据服务器负载较高,性能较差;若资源利用率小于第一阈值,则表明该资源利用率对应的元数据服务器的负载较低,性能较好。

步骤103:向元数据管理模块发送迁移请求,将资源利用率大于第一阈值对应的元数据服务器中的元数据迁移至第二元数据服务器集群中。

其中,第二元数据服务器集群为元数据服务器集群中资源利用率小于第一阈值对应的元数据服务器的集群。

当元数据服务器的资源利用率大于第一阈值时,表明该元数据服务器中的负载较高,为了使元数据服务器负载均衡,需要将该元数据服务器中的元数据迁出,以达到降低该元数据服务器的负载的目的。资源利用率低于第一阈值对应的元数据服务器可以作为负载较高的元数据服务器中的元数据迁出的对象。

元数据解析模块向元数据管理模块发送迁移请求,将资源利用率大于第一阈值对应的元数据服务器中的元数据迁移至第二元数据服务器中,使得集群中元数据服务器的负载均衡。

需要说明的是,负载较高的元数据服务器中的元数据可以迁出到多个负载较低的元数据服务器中。例如,负载较高的元数据服务器需要迁出五个元数据,则可以选择全部迁出到一个负载较低的元数据服务器中,或分别迁出到五个负载较低的元数据服务器中。当然,也可以选择迁出到两个、三个或四个负载较低的元数据服务器中。其中,负载较高的元数据服务器中的元数据迁出的数量可以根据该元数据服务器的资源利用率与第一阈值的大小关系而定,负载较低的元数据服务器对于迁入元数据的负荷能力也可以根据其对应的资源利用率与第一阈值的大小关系而定。

负载较高的元数据服务器中的元数据迁出之后,元数据服务器集群中的各元数据服务器的资源利用率都小于第一阈值,且较为均衡。在分布式集群存储系统的工作过程中,元数据解析模块一直对集群中的元数据服务器的资源利用率进行检测,当某个元数据服务器上的元数据被访问频繁而导致该元数据服务器的负载较高时,就将其上的元数据迁出至其他负载较低的元数据服务器中,从而实现集群中元数据服务器的动态负载均衡。

本具体实施方式提供了一种元数据服务器动态负载均衡的方法,通过检测元数据服务器集群中各元数据服务器的资源利用率,并判断各元数据服务器的资源利用率是否大于第一阈值,若资源利用率大于第一阈值,则说明该资源利用率对应的元数据服务器的负载较高,需要降低其负载。元数据解析模块向元数据管理模块发送迁移请求,将负载较高的元数据服务器上的元数据迁出至负载较低的元数据服务器中,从而实现集群中元数据服务器的动态负载均衡,提高了元数据服务器的性能,并充分利用空闲资源。

请参考图3,图3为本发明具体实施方式二所提供的元数据服务器动态负载均衡的方法的流程图,该方法包括:

步骤201:获取各元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率;

步骤202:由cpu利用率、内存利用率、io吞吐量以及磁盘利用率和cpu利用率的权重、内存利用率的权重、io吞吐量的权重以及磁盘利用率的权重计算得出资源利用率;

获取各元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率后,根据cpu利用率、内存利用率、io吞吐量以及磁盘利用率和各项的权重计算得出各元数据服务器的资源利用率。其中,各项参数的权重为根据系统的实际需求预先设置的。例如,某个元数据服务器的cpu利用率为a、内存利用率为b、io吞吐量为c以及磁盘利用率为d,cpu利用率的权重为0.3、内存利用率的权重为0.4、io吞吐量的权重为0.2以及磁盘利用率的权重为0.1,那么该元数据服务器的资源利用率=0.3*a+0.4*b+0.2*c+0.1*d。其中,元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率的数值会随着其工作状态的变化而变化,各项参数对应的权重一般为固定不变的,上述例子中的数值只是为了表明资源利用率的计算方式,并不一定为实际取值。

步骤203:判断各元数据服务器对应的资源利用率是否大于第一阈值;

判断元数据服务器的资源利用率大于第一阈值时,表明该元数据服务器的负载较高,性能较差,需要将该元数据服务器中的元数据迁出以降低负载,此时执行步骤204;判断元数据服务器的资源利用率小于第一阈值时,表明该元数据服务器的负载较低,性能较好,可以作为负载较高的元数据服务器中元数据迁出的对象。

步骤204:向元数据管理模块发送迁移请求,将资源利用率大于第一阈值对应的元数据服务器中的热点元数据迁移至第二元数据服务器群中。

其中,第二元数据服务器集群为元数据服务器集群中资源利用率小于第一阈值对应的元数据服务器的集群;所述热点元数据为访问次数大于第二阈值的元数据。

当存储系统中出现某个热点文件时,客户端频繁访问该文件,从而出现热点元数据,可能导致该元数据所在元数据服务器负载不均衡。具体地,热点元数据为访问次数大于第二阈值的元数据,第二阈值为根据元数据服务器集群中的所有元数据的访问次数设置的参考值。例如,元数据解析模块可以对元数据集合的访问次数进行排序,将处于前25%的元数据定义为热点元数据。

热点元数据是引起元数据服务器负载不均衡的一个重要因素,因此,当某个元数据服务器的负载较高时,元数据解析模块向元数据管理模块发送迁移请求,将该负载较高的元数据服务器中的热点元数据迁出至第二元数据服务器集群中,即可有效降低该负载较高的元数据服务器的负载。

其中,负载较高的元数据服务器中需要迁出的热点元数据的数目可以根据该元数据服务器的资源利用率与第一阈值的大小关系而定,第二元数据服务器集群中负载较低的元数据服务器接收热点元数据的负荷能力也可以根据其对应的资源利用率与第一阈值的大小关系而定。当负载较高的元数据服务器中需要迁出的热点元数据数量大于一个时,该元数据服务器中的热点元数据可以迁出到多个负载较低的元数据服务器中。具体的迁移过程可以根据负载较高的元数据服务器中需要迁出的热点元数据的数量以及负载较低的元数据服务器接收热点元数据的能力而定。

本申请具体实施方式提供了一种元数据服务器动态负载均衡的方法,当元数据服务器负载较高时,将元数据服务器上的热点元数据进行迁移,有效降低了负载较高的元数据服务器的负载,提高了集群的元数据服务器性能。

在本申请其他实施例中,可以将负载较高的元数据服务器中超出第三阈值相应数量的热点元数据迁移至负载较低的第二元数据服务器集群中。其中,第三阈值为该元数据服务器的资源利用率小于第一阈值时,该元数据服务器中的热点元数据的数量的最大允许值。例如,某一元数据服务器中热点元数据的数量的最大允许值为十个,当该元数据服务器中含有十个热点元数据时,其对应的资源利用率小于第一阈值;当该元数据服务器中含有十一个热点元数据时,其对应的资源利用率大于第一阈值。因此,当该元数据服务器中的热点元数据的数量大于十个时,该元数据服务器的负载会较高,将多出十个的那部分热点元数据迁出至负载较低的元数据服务器,即可有效降低该元数据服务器的负载。

采用该方法可以有效降低负载较高的元数据服务器的负载,使元数据在考虑节点性能及负载的情况下,实现了动态分布,使该集群中元数据服务器实现动态负载均衡,提高了集群的元数据服务器性能。

请参考图4,图4为本发明具体实施方式三所提供的元数据服务器动态负载均衡的分布式集群存储系统示意图。

集群由客户端、数据节点以及元数据服务器组成,同时在元数据管理模块增添了元数据缓存功能,即在元数据管理模块中加入元数据客户端缓存模块,并在元数据服务器模块加入元数据服务器解析模块实现元数据存储的动态负载均衡。

起始状态,客户端访问元数据时,首先通过元数据管理模块中的全局映射表寻找,找到即进行元数据操作,否则根据文件目录进行哈希运算得到元数据服务器地址,并将该映射存入全局映射表中。

根据局部性原理,如果访问了同一目录下的一个文件,那么该目录下的其他文件有很大的可能被访问到。因此,每次访问元数据服务器获取元数据信息时,可以同时获取同一目录下的其他文件数据,保存到缓存区中,若缓存区满,则覆盖缓存区原有数据,从而提高了客户端查询元数据的效率。

本申请具体实施方式提供了一种元数据服务器动态负载均衡的方法,通过元数据服务器解析模块和客户端缓存模块,使得分布式集群的元数据服务器实现了动态负载均衡,提高了集群的元数据服务器性能以及存储系统的读写能力。

请参考图5,图5为本发明具体实施方式四所提供的元数据服务器动态负载均衡的系统的结构示意图,该系统包括:

检测单元301,用于检测元数据服务器集群中各元数据服务器的资源利用率;

判断单元302,用于判断各元数据服务器的资源利用率是否大于第一阈值;

其中,第一阈值为元数据服务器中资源利用率的最大允许值。

发送单元303,用于在判断单元302判断元数据服务器的资源利用率大于第一阈值时,向元数据管理模块发送迁移请求;

迁移单元304,用于将资源利用率大于第一阈值对应的元数据服务器中的元数据迁移至第二元数据服务器集群中。

其中,第二元数据服务器集群为资源利用率小于第一阈值的元数据服务器的集群。

本申请具体实施方式提供了一种元数据服务器动态负载均衡的系统,判断单元302对检测单元301检测到的各元数据服务器的资源利用率是否大于第一阈值进行判断,判断资源利用率大于第一阈值时,发送单元303向元数据管理模块发送迁移请求,迁移单元304将资源利用率大于第一阈值对应的元数据服务器中的元数据迁移至第二元数据服务器集群中。该系统实现了元数据服务器的动态负载均衡,提高了元数据服务器的性能。

需要说明的是,本具体实施方式中的元数据服务器动态负载均衡的系统中的各个单元,其工作过程请参考图2对应的具体实施方式,在此不再赘述。

请参考图6,图6为本发明具体实施方式五所提供的元数据服务器动态负载均衡的系统的结构示意图,该系统包括:

检测单元301、判断单元302、发送单元303和迁移单元304;

其中,检测单元301包括:

获取子单元3011,用于获取各元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率;

计算子单元3012,用于根据获取子单元3011获取的cpu利用率、内存利用率、io吞吐量以及磁盘利用率和cpu利用率的权重、内存利用率的权重、io吞吐量的权重以及磁盘利用率的权重计算得出资源利用率。

迁移单元304包括:

热点元数据迁移子单元3041,用于将资源利用率大于第一阈值对应的元数据服务器中的热点元数据迁移至第二元数据服务器集群中。

可选地,热点元数据迁移子单元3041包括:

热点元数据迁移模块30411,用于将资源利用率大于第一阈值对应的元数据服务器中超出第三阈值相应数量的热点元数据迁移至第二元数据服务器集群中。

本申请具体实施方式提供了一种元数据服务器动态负载均衡的系统,获取子单元3011获取元数据服务器的cpu利用率、内存利用率、io吞吐量以及磁盘利用率,计算子单元3012根据获取子单元3011获取的各项参数及各项参数的权重计算得出资源利用率,判断单元302判断资源利用率大于第一阈值时,发送单元303向元数据管理模块发送迁移请求,热点元数据迁移子单元3041将资源利用率大于第一阈值对应的元数据服务器中的热点元数据迁移至第二元数据服务器集群中。从而有效降低了负载较高的元数据服务器的负载,实现了元数据服务器的动态负载均衡,提高了元数据服务器的性能。

需要说明的是,本具体实施方式中的元数据服务器动态负载均衡的系统中的各个单元,其工作过程请参考图3对应的具体实施方式,在此不再赘述。

本发明的另一具体实施方式提供了一种元数据服务器动态负载均衡的系统,除了上述具体实施方式中提到的单元外,还包括:

缓存单元,用于缓存元数据信息。

根据局部性原理,如果访问了同一目录下的一个文件,那么该目录下的其他文件有很大的可能被访问到。因此,每次访问元数据服务器获取元数据信息时,可以同时获取同一目录下的其他文件数据,保存到缓存区中,若缓存区满,则覆盖缓存区原有数据,从而提高了客户端查询元数据的效率以及存储系统的读写能力。

需要说明的是,本具体实施方式中的元数据服务器动态负载均衡的系统中的各个单元,其工作过程请参考图4对应的具体实施方式,在此不再赘述。

以上对本发明所提供的一种元数据服务器动态负载均衡的方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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