一种元数据服务器热点均衡方法转让专利

申请号 : CN201110444485.X

文献号 : CN102571772B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王芳冯丹陈碧砚张泉明亮苏楠

申请人 : 华中科技大学

摘要 :

本发明公开了一种元数据服务器热点均衡方法,应用于元数据服务器集群中,包括:(1)将元数据服务器集群划分为若干个组,每个组中包含若干个主元数据服务器和若干个备份元数据服务器;(2)客户端挂载到主元数据服务器上时,在该客户端上构建热点迁移表,以记载该主元数据服务器和其备份元数据服务器的信息;(3)监测每台元数据服务器上的负载状况,判断元数据服务器是否为访问的热点;(4)如果监测的元数据服务器为热点,则进行元数据服务器热点迁移,即修改热点迁移表,调整其中的热点迁移参数,使得客户端将请求负载重新分配。本发明能够有效解决元数据服务器集群中出现的热点问题,实现元数据服务器集群整体的热点均衡。

权利要求 :

1.一种元数据服务器热点均衡方法,用于实现元数据服务器集群中各元数据服务器的热点均衡,该方法包括如下步骤:(1)元数据服务器集群分组步骤:将元数据服务器集群划分为多组,每组中包括主元数据服务器和备份元数据服务器,其中,所述主元数据服务器用于处理客户端发送的读写请求,所述备份元数据服务器存储有相应组中的所有主元数据服务器上的数据和状态信息,用于作为相应组中各主元数据服务器的备份;

(2)热点迁移表构建步骤:

客户端挂载到主元数据服务器上时,在该客户端上构建热点迁移表,以记载该主元数据服务器和其备份元数据服务器的信息,包括该主元数据服务器和其备份元数据服务器的地址信息、该备份元数据服务器的性能参数和热点迁移参数;

其中,所述热点迁移参数标识客户端将读请求发给相应元数据服务器的概率;

(3)元数据服务器热点监测步骤:监测每台元数据服务器上的负载状况,判断元数据服务器是否为访问的热点;

(4)如果监测的元数据服务器为热点,则进行元数据服务器热点迁移,具体为:该成为热点的元数据服务器通知对应的客户端修改热点迁移表,调整其中的热点迁移参数,使得客户端将请求负载重新分配,从而实现热点迁移。

2.根据权利要求1所述的元数据服务器热点均衡方法,其特征在于,所述的步骤(3)中,判断元数据服务器是否为访问的热点的具体过程为:在每台元数据服务器上运行请求处理进程和热点监测进程,其中,

所述请求处理进程用来处理客户端发送的请求,并根据请求历史信息判断收到的请求是否是重传的请求,如果发现请求是重传的,则将重传标识置位;

所述热点监测进程用于监测重传标识,如果重传标识被置位,该热点监测进程将所述重传标识清零并等待一段时间,然后再次监测该时间段内重传标识是否被置位,如果是,则确定当前元数据服务器为热点。

3.根据权利要求1或2所述的元数据服务器热点均衡方法,其特征在于,所述步骤(4)中,如果热点为主元数据服务器,则进行热点迁移的具体步骤为:主元数据服务器通知其对应的客户端修改热点迁移表,将该主元数据服务器的热点迁移参数设置为0,同时,根据热点迁移表中记录的各个备份服务器的性能参数值,重新设置各备份服务器的热点迁移参数,客户端根据热点迁移表上更新后的热点迁移参数值,重新分配读请求到各元数据服务器,从而实现热点迁移。

4.根据权利要求1或2所述的元数据服务器热点均衡方法,其特征在于,所述步骤(4)中,如果热点为备份元数据服务器,则进行热点迁移的具体步骤为:该备份元数据服务器通知客户端修改热点迁移表,将该备份元数据服务器的热点迁移参数值减小,同时增加与其相应的主元数据服务器的热点迁移参数值,客户端根据热点迁移表上更新后的各元数据服务器的热点迁移参数值重新分配读请求,从而实现热点迁移。

5.根据权利要求4所述的元数据服务器热点均衡方法,其特征在于,若所述备份元数据服务器的热点迁移参数值小于最小阈值,则将该备份元数据服务器的热点迁移参数值与相应的主元数据服务器热点迁移参数值相加,作为相应的主元数据服务器新的热点迁移参数值,并将该备份元数据服务器的热点迁移参数值清0,从而将该备份元数据服务器上的请求全部迁移回相应的主元数据服务器上。

6.根据权利要求1或2或5所述的元数据服务器热点均衡方法,其特征在于,主元数据服务器的热点迁移参数初始值为1,备份元数据服务器的热点迁移参数初始值为0,即初始时所有的读请求都发送给主元数据服务器处理,备份元数据服务器不处理读请求。

说明书 :

一种元数据服务器热点均衡方法

技术领域

[0001] 本发明属于计算机存储技术领域,具体涉及一种针对对象存储文件系统中元数据服务器集群的元数据服务器热点均衡方法。

背景技术

[0002] 随着计算机技术的迅猛发展以及信息全球化的高速进展,传统的网络存储方式已经不能满足当今的应用需求了。通常,在分布式存储架构中,将文件的数据和元数据分开管理,提供专门的元数据服务器管理元数据信息。据统计,当前文件系统中,有50%-80%的访问是针对元数据的操作。另一方面,虽然与文件的数据相比,元数据所占用的存储空间是非常小的,但是对于海量存储系统,这些元数据所要占用的存储空间也是相当可观的,诸如Facebook此类的网站,需要维护的目录规模已经达到数十亿文件。单一的元数据服务器已经远远不能满足用户的需求了,因此非常有必要将元数据交给元数据服务器集群共同管理。系统运行过程中,不同的元数据在不同的时段访问热度有着明显的差异,在某个时段,可能有大量的请求需要访问同一个元数据服务器,甚至超出其服务能力,该元数据服务器就成为了系统性能的瓶颈,而此时其他的元数据服务器可能正处于空闲或者低负载运行状态。因此,需要提出一种方法,有效解决元数据服务器的热点问题,避免由于单个元数据服务器成为访问瓶颈而影响系统应用的性能。
[0003] 传统的热点解决方法是通过检测元数据服务器的机器状态,如通过对内存使用情况,CPU使用情况,网络占用情况等机器状态信息求加权值判断元数据服务器是否是集群中的热点,如果发现有元数据服务器过热,则将该元数据服务器上的热点元数据拷贝到其他元数据服务器节点上,让多个元数据服务器节点并发提供元数据服务。由于负载的定义是相当广泛的,仅仅通过对元数据服务器的设备状态求加权值判断节点是否过热通常是不合适的。针对该问题,也提出了一种改进措施,即通过文件元数据请求的响应时间来衡量服务器的负载状况,如王娟等提出的“一种元数据服务器的负载均衡算法”(小型微型计算机系统,2009年第30卷第4期),通过比较各个元数据服务器的请求响应时间与整个集群的响应时间来判断是否有元数据服务器负载过重,如果有,则将负载过重的元数据服务器上的部分元数据迁移到负载较轻的元数据服务器上。
[0004] 改进的热点监测算法需要统计各个元数据服务器的请求响应时间,这在实际系统中是难以操作的,并且算法的开销较大。实际上对热点监测并不需要精确计算出各个元数据服务器的请求响应时间,只要能够及时感知节点的负载状况,尽快发现集群中过热的节点即可。

发明内容

[0005] 本发明提供了一种元数据服务器热点均衡方法,目的是针对元数据服务器集群中有大量访问集中到某个元数据服务器上时,系统服务质量严重下降的问题,提出了一种有效的解决方法,同时该方法对元数据服务器集群的可靠性也有一定的提高。
[0006] 本发明的一种元数据服务器热点均衡方法,包括如下步骤:
[0007] (1)元数据服务器集群分组步骤:该步骤的主要工作是将一个元数据服务器集群划分为若干个组,每个组中包含若干个主元数据服务器和若各干备份元数据服务器。
[0008] 主元数据服务器处理客户端发送的所有请求,同时将元数据服务器上的所有数据和状态信息同步到备份元数据服务器上;备份元数据服务器有该组内所有主元数据服务器的副本信息,当主元数据服务器失效后,备份元数据服务器能够升级为主元数据服务器,接替失效的主元数据服务器对外提供元数据服务;
[0009] (2)热点迁移表构建步骤:该步骤的主要工作是在客户端上构建一张热点迁移表。
[0010] 当客户端挂载到主元数据服务器上时,主元数据服务器将自身以及相应的备份元数据服务器的信息发送给客户端,客户端在本地构建一张热点迁移表。热点迁移表上记录了主元数据服务器和相应的备份元数据服务器的信息,每个元数据服务器的信息中有一个热点迁移参数,该参数标识客户端将读请求发给相应元数据服务器的概率;
[0011] 构建热点迁移表时,将主元数据服务器的热点迁移参数初始化为1,将备份元数据服务器的热点迁移参数初始化为0,表明所有的读请求都发送给主元数据服务器,备份元数据服务器不对外提供服务;
[0012] (3)元数据服务器热点监测步骤:该步骤的主要工作是监测每台元数据服务器上的负载状况,判断是否有元数据服务器成为访问的热点。
[0013] 每台元数据服务器上运行着一个请求处理进程,用来处理客户端发送的请求;请求处理进程根据记录的请求历史信息判断收到的请求是否是重传的请求,如果发现请求是重传的,则会将重传标识置位;此外,元数据服务器上还会运行一个热点监测进程,该进程会定期检查重传标识是否被置位,如果热点监测进程发现重传标识被置位了,则认为当前元数据服务器可能负载过重,热点监测进程将重传标识清零并等待一小段时间,然后再次检查该时间段内此元数据服务器上是否有请求重传,如果发现在这段时间内,仍然有请求重传,则确定当前元数据服务器负载过重,服务器进入热点迁移步骤,并将重传标识清零;
[0014] 如果监测进程发现重传标识未被置位,则认为之前的请求重传是由于短暂的网络不稳定导致的,无需特别处理;
[0015] (4)元数据服务器热点迁移步骤:该步骤的主要工作是元数据服务器通知客户端调节热点迁移表,从而使得客户端将请求负载重新分配,实现热点迁移。
[0016] 该步骤又分为两类,一类是主元数据服务器上的热点迁移步骤,另一类是备份元数据服务器上的热点迁移步骤:
[0017] 在主元数据服务器上的热点迁移步骤中,主元数据服务器将自身负载过重的消息通知给客户端,客户端修改热点迁移表,将相应的主元数据服务器的热点迁移参数设置为0,同时根据各个备份元数据服务器的性能参数重新设置他们的热点迁移参数;客户端根据热点迁移表上各元数据服务器的热点迁移参数值重新分配读请求,从而实现热点迁移。
[0018] 在备份元数据服务器上的热点迁移步骤中,备份元数据服务器将自身负载过重的信息通知给客户端,客户端修改热点迁移表,将相应的备份服务器的热点迁移参数值减小,同时增加相应的主元数据服务器的热点迁移参数,从而将负载过重的备份元数据服务器上的部分读请求迁移回主元数据服务器;如果在热点迁移表中,某台备份元数据服务器的热点迁移参数值小于最小阈值,则将该备份元数据服务器的热点迁移参数值清0,客户端将该备份元数据服务器上的请求全部迁移回主元数据服务器上。
[0019] 本发明所述的元数据服务器集群分组步骤中,主元数据服务器对外提供元数据查询、创建、删除、更新等服务,而备份元数据服务器并不对外提供服务。
[0020] 本发明所述的元数据服务器集群分组步骤中,主元数据服务器需要定时将自身的更新操作同步到备份元数据服务器上,保证主元数据服务器和备份元数据服务器上的数据和状态的一致,而备份元数据服务器上有小组内所有其他主元数据服务器的副本信息;
[0021] 本发明所述的热点迁移表构建步骤中,客户端从主元数据服务器上获取主元数据服务器和相应的备份元数据服务器的信息,并将这些信息保存在本地的热点迁移表中,将主元数据服务器的热点迁移参数设置为1,其他备份元数据服务器的热点迁移参数设置为0;
[0022] 本发明在所有的元数据服务器上运行着一个请求处理进程,该进程将元数据服务器最近收到的请求记录到本元数据服务器上,当元数据服务器收到新的请求后,需要与元数据服务器处理请求的历史记录比较,判断新收到的请求是否是重传的请求。
[0023] 本发明所述的元数据服务器热点监测步骤中,热点监测进程需要定期轮询服务器上的请求重传标识,如果发现重传标识置位,则认为当前元数据服务器上的负载过重,可能需要实施热点迁移。
[0024] 本发明所述的元数据服务器热点监测步骤中,热点监测进程发现当前元数据服务器上有请求重传后,需要将重传标识清零,并且等待一段时间后,再次检查当前元数据服务器上是否仍然有请求重传,如果仍然有请求重传,才认为当前元数据服务器负载过重,需要实施热点迁移,否则并不启动元数据服务器的热点迁移步骤。
[0025] 本发明所述的主元数据服务器热点迁移步骤中,主元数据服务器将自身负载过重的信息通知给客户端,客户端收到通知后调节热点迁移表中相关元数据服务器的热点迁移参数,将负载过重的主元数据服务器的热点迁移参数设置为0,根据相应的备份元数据服务器的处理能力重新分配热点迁移参数,客户端根据各个元数据服务器的热点迁移参数,决定将读请求发送给哪台元数据服务器,热点迁移参数越大的元数据服务器,收到客户端读请求的概率越大。
[0026] 本发明所述的备份元数据服务器热点迁移步骤中,备份元数据服务器通知客户端自身的负载过重,客户端将该备份元数据服务器的热点迁移参数减小,同时增大主元数据服务器的热点迁移参数,表明将负载过重的备份元数据服务器上的部分读请求迁移到主元数据服务器上。
[0027] 本发明所述的备份元数据服务器热点迁移步骤中,如果客户端检测到某台备份元数据服务器的热点迁移参数小于设定的最小阈值,则将相应的备份元数据服务器的热点迁移参数设置为0,并不再向该备份元数据服务器发送读请求。
[0028] 通过使用本本发明的方法,能够有效解决元数据服务器集群中出现的热点问题。当元数据服务器集群中某台元数据服务器成为访问的热点时,本方法会将热点元数据服务器上的部分读请求迁移到其他的元数据服务器上,从而实现元数据服务器集群整体的热点均衡。该方法能够有效地避免由于某台元数据服务器成为访问的热点,而导致整个系统响应超时甚至是系统瘫痪的问题。
[0029] 另外,由于本发明方法的实现使用了备份机制,即为一台元数据服务器提供了多个备份元数据服务器,当主元数据服务器失效时,备份元数据服务器能够接替失效元数据服务器的工作,继续对外提供服务,从而在一定程度上提升了系统的可用性。

附图说明

[0030] 图1为元数据服务器热点均衡方法整体模块示意图;
[0031] 图2为元数据服务器的状态转移图;
[0032] 图3为元数据服务器集群的分组示意图;
[0033] 图4为客户端维护热点迁移表的流程示意图;
[0034] 图5为热点监测进程的流程示意图。

具体实施方式

[0035] 下面结合附图和具体实施例对本发明作进一步详细说明。
[0036] 本发明提出的一种元数据服务器热点均衡方法,可以解决元数据服务器集群中某台元数据服务器成为访问的热点的问题。
[0037] 如图1所示,该方法主要由四大步骤实现,其中元数据服务器热点迁移步骤又分为主元数据服务器热点迁移步骤和备份元数据服务器热点迁移步骤。元数据服务器集群中各个元数据服务器的状态转移过程如图2所示。
[0038] 首先搭建元数据服务器集群,并将集群中的元数据服务器分为若干组,如图3所示,用九台元数据服务器构成一个元数据服务器集群,将元数据服务器集群分为两组:其中一组由五台服务器组成,有三台主元数据服务器,另外两台作为备份元数据服务器,备份元数据服务器上有组内所有主元数据服务器的全部元数据信息;另一组由四台元数据服务器组成,其中两台作为主元数据服务器,另外两台作为备份元数据服务器,备份元数据服务器有组内两台主元数据服务器的所有信息。当某台元数据服务器成为访问的热点时,可以将它上面的元数据查询请求迁移到备份元数据服务器上,从而减轻热点元数据服务器的访问热度。
[0039] 然后将客户端挂载到某台主元数据服务器上,这时,主元数据服务器会将自身的信息以及备份元数据服务器的信息一并返回给客户端;客户端在本地构建一个热点迁移表,将主元数据服务器和相应的备份元数据服务器都记录到热点迁移表中,主元数据服务器的热点迁移参数设置为1,备份元数据服务器的热点迁移参数设置为0,表明客户端将所有的读写请求全部发送给主元数据服务器,备份元数据服务器不对外提供服务;如图4所示,客户端通过维护本地的热点迁移表实现元数据服务器的热点均衡。
[0040] 主元数据服务器上运行了一个请求处理进程和一个热点监测进程,这两个进程协同工作,监测元数据服务器上的负载状况。请求处理进程负责处理客户端发送给元数据服务器的读写请求,并且将最近接收到的请求都记录在本地,当有新的请求到来时,请求处理进程会查看历史记录,判断新收到的请求是否是重传的请求,如果是,则将重传标识置位;如图5所示,热点监测进程定期地查询元数据服务器上的重传标识是否置位,如果发现重传标识被置位了,则认为当前元数据服务器可能负载过重;元数据服务器上的热点监测进程空闲一段时间,再将重传标识清零,热点监测进程继续空闲一段时间,之后再检查重传标识是否被重新置位;如果重传标识被重新置位,则认为当前元数据服务器的负载过重,需要实施热点迁移;否则,认为是网络抖动引起的请求重传,无需启动热点迁移。
[0041] 其中,空闲的时间可以根据具体应用环境进行选择和调节,例如可以为10秒至300秒之间的任一时间,网络环境较好时,可以选择较短的空闲时间,反之选用较长的空闲时间,本实施例中优选为30秒。
[0042] 如果主元数据服务器发现自身成为了访问的热点,则会主动通知客户端,请求客户端实施热点迁移;客户端收到主元数据服务器负载过重的信息后,会更改热点迁移表中的相应表项:将热点主元数据服务器的迁移参数调整为0,再根据各个备份元数据服务器的性能参数,重新设置相应的备份元数据服务器的热点迁移参数;从而实现,将负载过重的主元数据服务器上的读负载全部迁移到备份元数据服务器上。
[0043] 元数据服务器的性能参数指其负载能力,也就是其数据处理能力,一般元数据服务器的性能参数值越大,表明其负载能力越大,数据处理能力越强。在重新设置相应的备份元数据服务器的热点迁移参数时,各个备份元数据服务器的性能参数值越大,其在对应客户端上设置的热点迁移参数值就相应设置为较大的值。
[0044] 备份元数据服务器上也运行了一个请求处理进程和热点监测进程,这两个进程的处理流程和主元数据服务器上的请求处理进程以及热点监测进程基本一样;只是备份元数据服务器上的请求处理进程只处理客户端发送的读请求,并不会处理写请求。
[0045] 如果备份元数据服务器发现自身成为访问的热点,则会将自身负载过重的消息通知给客户端;客户端收到消息后,修改相应的热点迁移表:将负载过重的备份元数据服务器的热点迁移参数调小,同时增大相应的主元数据服务器的热点迁移参数;这意味着,客户端会将热点备份元数据服务器上的部分读请求迁移回主元数据服务器上,从而实现热点均衡;当某台备份元数据服务器的热点迁移参数值小于最小阈值时,将它的热点迁移参数设置为0,并且客户端将它上面的所有读请求全部迁移回主元数据服务器上。
[0046] 最小阈值可以根据具体应用环境进行设置,例如可以为0.01-0.2,本实施例中优选为0.1。
[0047] 本发明方法主要是针对读请求集中的应用环境,当主元数据服务器上请求负载过重时,会将其中的读请求迁移到备份元数据服务器上;而当备份元数据服务器负载过重时,会将读请求迁移到主元数据服务器上;本发明方法并不会迁移写请求,所有的写请求全部由主元数据服务器处理。