CN113608876A - 基于负载类型感知的分布式文件系统元数据负载均衡方法 - Google Patents
基于负载类型感知的分布式文件系统元数据负载均衡方法 Download PDFInfo
- Publication number
- CN113608876A CN113608876A CN202110925781.5A CN202110925781A CN113608876A CN 113608876 A CN113608876 A CN 113608876A CN 202110925781 A CN202110925781 A CN 202110925781A CN 113608876 A CN113608876 A CN 113608876A
- Authority
- CN
- China
- Prior art keywords
- metadata
- load
- value
- cluster
- migration
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000008447 perception Effects 0.000 title claims abstract description 7
- 230000005012 migration Effects 0.000 claims abstract description 69
- 238000013508 migration Methods 0.000 claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims description 10
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims description 6
- 230000002238 attenuated effect Effects 0.000 claims 1
- 239000006185 dispersion Substances 0.000 claims 1
- 230000002776 aggregation Effects 0.000 abstract description 3
- 238000004220 aggregation Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- -1 carrier Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000005658 nuclear physics Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于负载类型感知的分布式文件系统元数据负载均衡方法,使用负载不均衡模型感知集群负载不均衡状态,在低负载时能有效避免无效迁移,在高负载时能够更敏锐地感知不均衡状态,提升了模型的精确性;并且,通过记录访问历史并预测元数据预期负载,能够在不同类型的工作负载下都能准确预测出未来时刻的预期负载,提升了负载迁移的有效性并提升了集群的聚合吞吐量与可扩展性。
Description
技术领域
本发明涉及计算机分布式存储系统技术领域,尤其涉及一种基于负载类型感知的分布式文件系统元数据负载均衡方法。
背景技术
近些年来,开源分布式文件系统CephFS在工业界和学术界都得到了广泛的研究与应用。由于CephFS能提供高可用、高吞吐量、POSIX兼容的海量数据存储服务,因此被应用在诸如高性能计算、人工智能训练、云服务等不同类型的场景中。与常见的分布式文件系统设计类似,CephFS主要由三部分组成:元数据服务器、数据服务器、客户端。元数据服务器负责在内存中缓存文件的元数据信息并提供一个共享的命名空间服务,数据服务器负载在持久化设备上存储数据并提供对文件数据的读写,客户端则负责与元数据和数据服务器进行交互。这种设计将元数据与数据解耦,便于元数据的管理与设计,也使得元数据与数据服务能够独立扩展。但由于访问数据之前也使得元数据服务器成为了潜在的瓶颈。
2016年出版的《USENIX文件和存储会议》、2011年出版的《并行数据存储研究展》、2012年出版的《ACM实用程序和云计算国际会议》都提到元数据请求在所有请求中的占比超过50%。而2013年出版的《大规模数据库国际会议》指出绝大多数的文件是小文件,这都说明了元数据请求的性能至关重要。2015年的《高性能计算、网络、存储和分析国际会议》指出CephFS中的元数据负载均衡器使用无法在不同类型工作负载下取得较好效果,2019年欧洲核子物理研究中心在CephFS社区的邮件列表中指出CephFS的元数据负载均衡器在面对动态变化的工作负载时性能十分糟糕。主要原因在于:1)CephFS中的负载均衡策略无法识别不同类型的工作负载,并做出针对性的调整策略;2)CephFS中使用线性负载模型,导致不同机器间负载差异大。
同理,其他的分布式文件系统也存在类似的问题,因此,有必要做深入研究以解决元数据负载不均衡的问题。
发明内容
本发明的目的是提供一种基于负载类型感知的分布式文件系统元数据负载均衡方法,在不对系统现有功能产生任何损害的情况下,针对不同类型的工作负载动态均衡元数据,以提高分布式文件系统的可扩展性,提升集群整体吞吐量。
本发明的目的是通过以下技术方案实现的:
一种基于负载类型感知的分布式文件系统元数据负载均衡方法,包括:
每一周期,集群中每一元数据服务器均向指定的元数据服务器发送包含自身瞬时请求数的网络消息;所述指定的元数据服务器根据所有元数据服务器的瞬时请求数,使用负载不均衡模型感知集群负载不均衡状态;
当判定集群处于负载不均衡状态时,将瞬时请求数最高与最低的元数据服务器,以及瞬时请求数与集群中瞬时请求数平均值的差值的绝对值超过阈值的元数据服务器,放入待决策队列,并根据待决策队列中元数据服务器瞬时请求数将元数据服务器划分为迁出者或者迁入者,并制定迁移决策,由所述指定的元数据服务器将迁移决策发送至各划分为迁出者的元数据服务器;
由划分为迁出者的元数据服务器根据各目录下各元数据被访问的历史记录,计算本地各目录的预期负载值,并结合迁移决策,匹配出待迁移的目录,再迁移至作为迁入者的相应元数据服务器。
由上述本发明提供的技术方案可以看出,使用负载不均衡模型感知集群负载不均衡状态,在低负载时能有效避免无效迁移,在高负载时能够更敏锐地感知不均衡状态,提升了模型的精确性;并且,通过记录访问历史并预测元数据预期负载,能够在不同类型的工作负载下都能准确预测出未来时刻的预期负载,提升了负载迁移的有效性并提升了集群的聚合吞吐量与可扩展性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种基于负载类型感知的分布式文件系统元数据负载均衡方法的流程图;
图2为本发明实施例提供的分布式文件系统架构示意图;
图3为本发明实施例提供的/imagenet/n01440764目录的历史访问信息示意图;
图4为本发明实施例提供的/imagenet/n01440764目录的负载计算示意图;
图5为本发明实施例提供的元数据服务器间信息交互图;
图6为本发明实施例提供的集群感知负载不均衡并制定迁移决策的流程图;
图7为本发明实施例提供的元数据服务器选择待迁移子目录的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
首先对本文中可能使用的术语进行如下说明:
术语“包括”、“包含”、“含有”、“具有”或其它类似语义的描述,应被解释为非排它性的包括。例如:包括某技术特征要素(如原料、组分、成分、载体、剂型、材料、尺寸、零件、部件、机构、装置、步骤、工序、方法、反应条件、加工条件、参数、算法、信号、数据、产品或制品等),应被解释为不仅包括明确列出的某技术特征要素,还可以包括未明确列出的本领域公知的其它技术特征要素。
下面对本发明所提供的一种基于负载类型感知的分布式文件系统元数据负载均衡方法进行详细描述。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本发明实施例中未注明具体条件者,按照本领域常规条件或制造商建议的条件进行。
如图1所示,一种基于负载类型感知的分布式文件系统元数据负载均衡方法,包括如下步骤:
步骤1、每一周期,集群中每一元数据服务器均向指定的元数据服务器发送包含自身瞬时请求数的网络消息;所述指定的元数据服务器根据所有元数据服务器的瞬时请求数,使用负载不均衡模型感知集群负载不均衡状态。
本发明实施例中,集群中每一元数据服务器都进行了编号,其中,所述指定的元数据服务器是编号为0的元数据服务器;每一元数据服务器向编号为0的元数据服务器发送的网络消息中还包含了元数据服务器自身的编号。
本发明实施例中,使用负载不均衡模型感知集群负载不均衡状态的优选实施方式包括:
1)通过瞬时请求数(IOPS)的最大值与预设的最大负载能力值计算出集群的迁移紧急程度U,公式为:
其中,max_ipos表示瞬时请求数的最大值,preset_max表示预设的最大负载能力值,u为中间值,e为自然对数;式子中的5为调整逻辑函数的参数。
2)基于所有元数据服务器的瞬时请求数与瞬时请求数平均值计算离散系数CoV,并结合集群的迁移紧急程度U,计算集群的不均衡指数IF,公式为:
3)根据集群的不均衡指数IF与设定值的大小关系,感知集群负载不均衡状态;当集群的不均衡指数IF大于设定值时,判定集群处于负载不均衡状态;否则,判定集群处于负载均衡状态。
示例性的,阈值可以设置为0.08,集群的不均衡指数IF超过0.08则需要后续步骤进行负载均衡;否则,本周期无需进行负载均衡。
步骤2、当判定集群处于负载不均衡状态时,将瞬时请求数最高与最低的元数据服务器,以及瞬时请求数与集群中瞬时请求数平均值的差值的绝对值超过阈值的元数据服务器,放入待决策队列,并根据待决策队列中元数据服务器瞬时请求数将元数据服务器划分为迁出者或者迁入者,并制定迁移决策,由所述指定的元数据服务器将迁移决策发送至各划分为迁出者的元数据服务器。
本发明实施例中,将瞬时请求数最高的元数据服务器划分为迁出者,瞬时请求数最低的元数据服务器划分为迁入者。瞬时请求数与集群中瞬时请求数平均值的差值的绝对值超过阈值的元数据服务器包含两类,其中,一类瞬时请求数与集群中瞬时请求数平均值的差值为正数,将相关元数据服务器划分为迁出者,另一类瞬时请求数与集群中瞬时请求数平均值的差值为负数,将相关元数据服务器划分为迁入者。
本发明实施例中,对于当前迁出者,依次为它匹配每个迁入者,对于当前匹配的迁入者,计算迁出者与迁入者瞬时请求数差距占迁出者瞬时请求数的百分比,并与迁移系数相乘得到所需迁移的负载百分比;其中,对于第一个匹配的迁入者,迁移系数使用初始设定值(例如,设为1/4),每匹配一个迁入者迁移系数减半,当匹配迁入者数量达到设定值(例如,5个),或者所有迁入者匹配完毕,则当前迁出者的迁移决策制定完毕,对下一个迁出者制定迁移决策。
当所有决策制定完成后,编号为0的元数据服务器会向所有的迁出者发送一条迁移决策消息,包含了它需要迁出负载的目标服务器,以及需要迁出的负载占自身的百分比。
此外,步骤1与步骤2所涉及的各项计算与逻辑判断都由编号为0的元数据服务器执行,且执行过程中也会带入其自身的数据,例如,步骤1计算不均衡指数IF时,同样会考虑编号为0的元数据服务器的瞬时请求数,步骤2中编号为0的元数据服务器也可能作为迁入者或者迁出者。
步骤3、由划分为迁出者的元数据服务器根据各目录下各元数据被访问的历史记录,计算本地各目录的预期负载值,并结合迁移决策,匹配出待迁移的目录,再迁移至作为迁入者的相应元数据服务器。
本发明实施例中,由划分为迁出者的元数据服务器根据迁移决策与本地各目录的预期负载值,匹配出待迁移的目录的步骤包括:
步骤a、划分为迁出者的元数据服务器接收到相关的迁移决策后,通过反序列化,得到迁入者的编号与迁移负载比例,将迁移负载比例与本地根目录的预期负载值相乘,得到需要迁移的负载值。
本发明实施例中,根目录的预期负载值是根据子目录预期负载值相加得到的。预期负载值计算方法是递归的,因此计算出根目录负载值时,所有的子目录的负载值都会被计算得出;在此后的步骤中可以直接读取各子目录的负载值。
步骤b、读取根目录下各子目录的预期负载值,判断是否有子目录的预期负载值与需要迁移的负载值的差值满足设定要求;如果有,则转入步骤c;如果没有,则转入步骤d。
步骤c、将相应子目录放入待迁移队列。
步骤d、判断根目录下是否有预期负载值大于需要迁移的负载值,且差值不满足设定要求的子目录;如果有,则转入步骤e;如果没有则转入步骤f。
步骤e、对相应的子目录进行递归进行匹配,即,继续判断相应子目录下否有子目录的预期负载值与需要迁移的负载值的差值满足设定要求,根据判断结果转入步骤c或者步骤d。d
步骤f、对于预期负载值小于需要迁移的负载值,且差值不满足设定要求的子目录,从中选出最大预期负载值对应的子目录,并放入待迁移队列,再将需要迁移的负载值减去所述最大预期负载值,利用得到的新的需要迁移的负载值,并继续执行步骤f,直至新的需要迁移的负载值小于等于0。
本发明实施例中,提出一种负载类型识别的元数据负载计算方法,在不同访问类型的工作负载下都能预测出未来时刻的访问情况,也即预期负载值。主要方案如下:
对于每一元数据服务器,其根目录下设有若干深度的若干子目录,底层为元数据;
在每一文件元数据对应内存结构中增加一个访问计数器,该访问计数器包含一个布尔值的队列,记录最近前N个时间周期内该文件的元数据是否被访问过,记录中包含两类变量:一类变量记录当前的一个周期内被访问的次数,另一类变量则指示最近N个周期内是否被访问。
本领域技术人员可以理解,元数据指的是文件的元数据,考虑到目录是一种特殊的文件,相比于普通文件,会额外有一部分元数据用来记录与维护它所管理的文件,因此,此处称之为文件元数据。
对于每一子目录,记录其管理的元数据的时空特征与负载值;其中,元数据的时空特征包括:前N个周期内被访问元数据的访问占比α,子目录在前N个周期内未被访问过的元数据占比β;负载值包括:参数pop与pot。pop与pot的初始值为0,在每个周期开始时,pop与pop衰减为自身当前值的设定比例(例如,1/4);每当子目录下的元数据被访问,pop自增1;每次元数据访问到达时,若该元数据访问在前N个周期出现过,则额外对pot自增1,并且pop每增加K次,使自己的所有兄弟目录的pop各增加K/k,所述K为设定的常数(例如50),k为兄弟目录的总数,所述兄弟目的与当前子目录具有相同父目录;当K为1时,每当pop增加1,使得它的所有兄弟目录的pop同时增加一个相同值1/k,使得增加的总量为1;为减少计算开销,K可取一个较大值,如50。
利用元数据的时空特征与子目录的负载值,计算预期负载值mIndex:
mIndex=α*pop+β*pot。
本发明实施例上述方案,采取了使用负载不均衡模型感知集群负载不均衡状态、基于预期负载值分配负载迁移计划和基于预期负载值匹配目标子目录并迁移的操作步骤;与传统的分布式文件系统元数据基于子树的动态均衡策略相比,能够在整体上改善了集群的负载均衡,提升了集群的聚合吞吐量并降低了平均访问延迟,提高了集群的可扩展性。
为了更加清晰地展现出本发明所提供的技术方案及所产生的技术效果,对本发明实施例所提供的一种基于负载类型感知的分布式文件系统元数据负载均衡方法进行详细描述。
一、预期负载值计算方案。
1、记录文件元数据的访问历史。
在每一个文件元数据的对应内存结构(CInode)中增加一个访问计数器(ReqCounter),该计数器包含一个布尔值的队列,记录最近前N个时间周期(N默认为5,一个时间周期默认为10秒)内该文件的元数据是否被访问过,使用一个4字节整型变量记录该周期内CInode被访问的次数,一个单字节布尔型变量记录是否在最近N个周期内被访问。每次CInode被访问,检查当前周期与上次访问是否相同,若相同则增加被访问次数,否则重置被访问次数并移除队列中过期数据。
需要说明的是,本发明实施例所提供的各项参数数值(例如,4字节)以及参数类型(整型变量、布尔型变量)均为举例说明,并非构成限制;在实际应用中参数数值与参数类型都可以根据实际需求进行适当调整。
图2给出了分布式文件系统架构示意图,包含三个组成部分,分别是分布式文件系统客户端、元数据服务器和数据服务器,三者通过网络进行交互。当客户端准备读写文件时,必须首先向元数据服务器发起元数据请求,获取元数据读写权限与位置信息等,然后向数据服务器发起数据请求读写数据。
图3给出了/imagenet/n0144076/n01440764_10026.JPEG文件对应CInode所记录的历史访问信息。每次访问到该文件时,会将其对应ReqCounter结构体中_cache_hit_times值自增1。每次周期切换时,会执行1)移除_data队列中队首元素,并向队尾添加一个新元素,若_cache_hit_times大于0,则新元素值为1,否则为0;2)若_data队列中存在非0元素,则将_last_hit置为1,否则置为0。图2中该文件对应ReqCounter结构体中_data队列的值为<0,0,0,0,0>,说明其在前五个周期内均未被访问过,故_last_hit值为0,_cache_hit_times值为1次,说明其在本周期内被访问了1次。
2、基于元数据访问历史计算预期负载值。
在每一个目录对应的内存结构(CDir)中记录对应其管理的元数据的时空特征值与负载值。时空特征值由两个8字节双精度浮点数α、β存储,计算方法为:α的值为访问到前N个周期内被访问文件的访问占比,β的值为该目录在前N个周期内未被访问过的文件占比。负载值由两个8字节双精度浮点数pop、pop存储,计算方法为:每当该目录下的文件被访问,则pop自增1;若访问在前N个周期出现过,额外对pot自增1,并且pot每增加50次,使自己的所有兄弟目录(假设为k个)的pop各增加50/k。最后计算为每个CDir计算出预期负载mIndex,mIndex为一个8字节双精度浮点数,计算公式为:
mIndex=α*pop+β*pot
本发明实施例中,单个子目录只有自身的一个元数据(此处忽略特殊情况),但是它每个子目录都有自身的元数据,所以子目录的α、β和负载值是综合自身管理的所有子目录的情况计算出来得到,并写入自己的元数据中;根目录也是一个目录,由自己的管理的所有子目录和文件的访问情况计算出负载值,然后写入到根目录对应的元数据当中。
图4给出了/imagenet/n01440764目录下对应CDir中所记录的时空特征值与负载值。其在本周期内被访问了1100次,所以pop为1100次,又因为1100次请求访问的文件全未在前五个周期访问过,所以pot也为1100,则对自己的1000个兄弟目录的pot值各增加1.1(即,(1100/50)×(50/1000)=1.1)。同时计算出其α值为0,而该目录下1300个文件有1100个在最近五个周期内被访问过,β值为0.1538,利用上述计算出mIndex值为169.18,得到/imagenet/n01440764目录的预期负载值为169.18。
在实际应用中,当需要进行负载均衡时,再执行以上预期负载值计算方案,以配合元数据服务器进行子目录的迁移。
二、使用负载不均衡模型感知集群负载不均衡状态。
本发明实施例前述方案提供了完整的感知原理,即由指定的元数据服务器(即编号为0的元数据服务器),接收其他元数据服务器发送的网络消息,根据网络消息中携带的各数据服务器的瞬时请求数计算集群的不均衡指数,当系统处于负载不均衡的状态下时,进行迁移决策并通知相关的元数据服务器。此阶段所涉及的各元数据服务器(MDS)之间的信息交互流程如图5所示,为了便于表示,图5仅示出了三个元数据服务器,在实际应用中元数据服务器的数目根据情况来设定。
如图6所示,展示了感知集群负载不均衡状态以及后续的迁移决策流程。每个周期,MDS-1与MDS-2都会向MDS-0发送一条包含自己的编号以及该机器的瞬时请求数(IOPS)的网络消息,即图5中的操作①,其中,-1、-2、-0是指相应元数据服务器的编号;MDS-0即接收来自其余元数据服务器的IOPS信息并判断是否集群中所有机器的负载信息都已经被收集。若未收集完成则继续执行操作①,否则执行操作②,即按照前述实施例提供的方式计算集群的不均衡指数IF。若集群的不均衡指数IF未超过阈值,则无需进行负载重均衡,对应操作③。若IF值未超过阈值,说明集群已经处在负载不均衡状态,需要指定负载迁移计划并进行负载重均衡。
第三步:基于IOPS分配负载迁移计划。
本发明实施例中,比较每个元数据服务器的IOPS与平均值差距的绝对值,将超过阈值的元数据服务器以及IOPS最高和最低的元数据服务器放入待决策队列,此步骤考虑所有的元数据服务器(即包含编号为0的元数据服务器)。决策队列中IOPS高于平均值的元数据服务器成为迁出者,低于平均值的元数据服务器称为迁入者。对于每一个迁出者,依次为它匹配每个迁入者,对于每一个迁入者,计算他们的IOPS差距占迁出者差距的百分比,与迁移系数相乘得到所需迁移的负载百分比。迁移系数初始时为25%,每选择一个迁入者便减半,当选择超过五个迁入者,或者所有迁入者都已被选完,结束本次匹配,对下一个迁出者制定迁移决策。
示例性的,集群IOPS信息为<<0,12000>,<1,0>,<2,0>>,每一个尖括号的第一项为元数据服务器的编号,第二项为IOPS值;在之前中计算得到IF为最大值1,MDS-0计算得出IF值超出阈值(即0.08),准备制定迁移计划。MDS-0首先将IOPS最大的元数据服务器,即自身标记为迁出者,并从IOPS最低的元数据服务器中选择一个作为负载最低者,此处根据序号大小,选择MDS-1标记为迁入者,对应图6的操作④。然后计算MDS-2的IOPS与集群平均值相差比例:集群平均IOPS为4000,计算得MDS-2与平均IOPS的差值为4000,则与MDS-0的IOPS即12000进行相除,计算出相差比例为33.3%,超出阈值,对应操作⑤。之后,计算MDS-0需要向MDS-1与MDS-2迁移的元数据比例:迁移系数初始值为25%,所以向MDS-1迁移25%的负载;然后将迁移系数减半得12.5%,故向MDS-2迁移12.5%的负载,对应图6的操作⑥。最后,向自身发送一条本地网络消息,消息内容为<<1,0.25>,<2,0.125>>,对应图6的操作⑦以及图5中操作②。
第四步:基于预期负载值匹配目标子目录并迁移。
图7展示元数据服务器选择待迁移子目录的流程图,主要步骤包括:
步骤a、划分为迁出者的元数据服务器接收到相关的迁移决策后,通过反序列化,得到自身需要迁移元数据的目标与迁移负载比例。由于根目录由MDS-0直接管理,所以每个编号非0的元数据服务器都保存了一个根目录副本,其记录了自身保存的所有子目录。每个迁出者将迁移负载比例与本地根目录副本计算出的预期负载值相乘,得到需要迁移的负载值。
示例性的,如之前所述,MDS-0向MDS-1所需要迁出的预期负载量为根目录负载的25%。
步骤b、计算根目录下各子目录的预期负载值,判断是否有子目录的预期负载值与需要迁移的负载值的差值满足设定要求;如果有,则转入步骤c;如果没有,则转入步骤d。
对于所有子目录,判断是否有负载值与预期迁移量相差值满足设定要求的子目录存在。例如,满足设定要求可以为差值不超过预期迁移量的10%。
步骤c、将相应子目录放入待迁移队列。
步骤d、判断根目录下是否有预期负载值大于需要迁移的负载值,且差值不满足设定要求的子目录;如果有,则转入步骤e;如果没有则转入步骤f。
步骤e、对相应的子目录进行递归进行匹配,即,继续判断相应子目录下否有子目录的预期负载值与需要迁移的负载值的差值满足设定要求,根据判断结果转入步骤c或者步骤d。
步骤f、对于预期负载值小于需要迁移的负载值,且差值不满足设定要求的子目录,从中选出最大预期负载值对应的子目录,并放入待迁移队列,再将需要迁移的负载值减去所述最大预期负载值,利用得到的新的需要迁移的负载值,并继续执行步骤f,直至新的需要迁移的负载值小于等于0。
在之前操作中,如果都无法结束负载匹配,选取剩余的子目录执行操作⑥,即将预期负载值最大值加入待迁移队列,并将预期迁移负载量减去刚才加入至待迁移队列的子目录的预期负载值。
在本发明实施例中,如果将预期负载值最高的子目录n01440764加入待迁移队列并修正预期迁移负载量后,此时预期迁移负载量仍然大于0,则递归执行操作如本实例中将n01440764目录的兄弟目录n01693334与n01828970加入待迁移队列修正预期迁移量;否则执行操作结束匹配。
完成上述操作后,所得到的待迁移队列中已包含足量的元数据,此时使用4个并发线程将子目录的元数据信息序列化并发送给目标元数据服务器(也即,对应的迁入者),最终完成了负载重均衡。
本发明实施例提供的上述方案,通过记录文件元数据历史信息并集成到分布式文件系统中,使得分布式文件系统可以记录元数据访问在时空维度上的特征与访问量;通过使用负载不均衡模型感知集群负载不均衡状态,使得分布式文件系统能够在容忍良性不均衡和及时触发迁移间做出较好的选择;通过基于预期负载值分配负载迁移计划并选择目标子树,能够在尽可能信息交互的情况下传输迁移决策,减少网络开销;而基于预期负载值匹配的子树选择能够在不同类型的工作负载下都正确选出热点元数据,提升集群整体的元数据负载均衡。
以本实施例中的n01440764、n01693334、n01828970三个目录为例,现有的分布式文件系统无法通过元数据访问的时空特征预测出目录n01693334和目录n01828970即将被访问,只能认为本周期内被访问过的n01440764目录有可能被访问,无法迁移热点元数据到其他服务器;通过本发明方法,分布式文件系统能够预测未来访问的热点数据,从而将目录n01693334和目录n01828970迁移到其他元数据服务器上,从而改善了集群的负载均衡,提高了集群的可扩展性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,包括:
每一周期,集群中每一元数据服务器均向指定的元数据服务器发送包含自身瞬时请求数的网络消息;所述指定的元数据服务器根据所有元数据服务器的瞬时请求数,使用负载不均衡模型感知集群负载不均衡状态;
当判定集群处于负载不均衡状态时,将瞬时请求数最高与最低的元数据服务器,以及瞬时请求数与集群中瞬时请求数平均值的差值的绝对值超过阈值的元数据服务器,放入待决策队列,并根据待决策队列中元数据服务器瞬时请求数将元数据服务器划分为迁出者或者迁入者,并制定迁移决策,由所述指定的元数据服务器将迁移决策发送至各划分为迁出者的元数据服务器;
由划分为迁出者的元数据服务器根据各目录下各元数据被访问的历史记录,计算本地各目录的预期负载值,并结合迁移决策,匹配出待迁移的目录,再迁移至作为迁入者的相应元数据服务器。
2.根据权利要求1所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,集群中每一元数据服务器都进行了编号,其中,所述指定的元数据服务器是编号为0的元数据服务器;每一元数据服务器向编号为0的元数据服务器发送的网络消息中还包含了元数据服务器自身的编号。
3.根据权利要求1所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,所述指定的元数据服务器根据所有元数据服务器的瞬时请求数,使用负载不均衡模型感知集群负载不均衡状态包括:
通过瞬时请求数的最大值与预设的最大负载能力值计算出集群的迁移紧急程度U;
基于所有元数据服务器的瞬时请求数与瞬时请求数平均值计算离散系数CoV,并结合集群的迁移紧急程度U,计算集群的不均衡指数IF;
根据集群的不均衡指数IF与设定值的大小关系,感知集群负载不均衡状态;当集群的不均衡指数IF大于设定值时,判定集群处于负载不均衡状态;否则,判定集群处于负载均衡状态。
6.根据权利要求1所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,所述将瞬时请求数最高与最低的元数据服务器,以及瞬时请求数与集群中瞬时请求数平均值的差值的绝对值超过阈值的元数据服务器,放入待决策队列,并根据待决策队列中元数据服务器瞬时请求数将元数据服务器划分为迁出者或者迁入者包括:
将瞬时请求数最高的元数据服务器划分为迁出者,瞬时请求数最低的元数据服务器划分为迁入者;
瞬时请求数与集群中瞬时请求数平均值的差值的绝对值超过阈值的元数据服务器包含两类,其中,一类瞬时请求数与集群中瞬时请求数平均值的差值为正数,将相关元数据服务器划分为迁出者,另一类瞬时请求数与集群中瞬时请求数平均值的差值为负数,将相关元数据服务器划分为迁入者。
7.根据权利要求1所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,制定迁移决策的步骤包括:
对于当前迁出者,依次为它匹配每个迁入者,对于当前匹配的迁入者,计算迁出者与迁入者瞬时请求数差距占迁出者瞬时请求数的百分比,并与迁移系数相乘得到所需迁移的负载百分比;其中,对于第一个匹配的迁入者,迁移系数使用初始设定值,每匹配一个迁入者迁移系数减半,当匹配迁入者数量达到设定值,或者所有迁入者匹配完毕,则当前迁出者的迁移决策制定完毕,对下一个迁出者制定迁移决策。
8.根据权利要求1所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,所述由划分为迁出者的元数据服务器根据迁移决策与本地各目录的预期负载值,匹配出待迁移的目录的步骤包括:
步骤a、划分为迁出者的元数据服务器接收到相关的迁移决策后,通过反序列化,得到迁入者的编号与迁移负载比例,将迁移负载比例与本地根目录的预期负载值相乘,得到需要迁移的负载值;其中,所述根目录的预期负载值根据子目录预期负载值相加得到的;
步骤b、读取根目录下各子目录的预期负载值,判断是否有子目录的预期负载值与需要迁移的负载值的差值满足设定要求;如果有,则转入步骤c;如果没有,则转入步骤d;
步骤c、将相应子目录放入待迁移队列;
步骤d、判断根目录下是否有预期负载值大于需要迁移的负载值,且差值不满足设定要求的子目录;如果有,则转入步骤e;如果没有则转入步骤f;
步骤e、对相应的子目录进行递归进行匹配,即,继续判断相应子目录下否有子目录的预期负载值与需要迁移的负载值的差值满足设定要求,根据判断结果转入步骤c或者步骤d;
步骤f、对于预期负载值小于需要迁移的负载值,且差值不满足设定要求的子目录,从中选出最大预期负载值对应的子目录,并放入待迁移队列,再将需要迁移的负载值减去所述最大预期负载值,利用得到的新的需要迁移的负载值,并继续执行步骤f,直至新的需要迁移的负载值小于等于0。
9.根据权利要求1或8所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,预期负载值的计算方式包括:
对于每一元数据服务器,其根目录下设有若干深度的若干子目录,底层为元数据;
对于每一子目录,记录其管理的元数据的时空特征与负载值;其中,元数据的时空特征包括:前N个周期内被访问元数据的访问占比α,子目录在前N个周期内未被访问过的元数据占比β;负载值包括:参数pop与pot;pop与pot的初始值为0,在每个周期开始时,pop与pot衰减为自身当前值的设定比例;每当子目录下的元数据被访问,pop自增1;若元数据访问在前N个周期出现过,则额外对pot自增1,并且pot每增加K次,使自己的所有兄弟目录的pot各增加K/k,所述K为设定的常数,k为兄弟目录的总数,所述兄弟目的与当前子目录具有相同父目录;
利用元数据的时空特征与子目录的负载值,计算预期负载值mIndex:
mIndex=α*pop+β*pot。
10.根据权利要求9所述的一种基于负载类型感知的分布式文件系统元数据负载均衡方法,其特征在于,在每一文件元数据对应内存结构中增加一个访问计数器,该访问计数器包含一个布尔值的队列,记录最近前N个时间周期内该文件的元数据是否被访问过,记录中包含两类变量:一类变量记录当前的一个周期内被访问的次数,另一类变量则指示最近N个周期内是否被访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110925781.5A CN113608876B (zh) | 2021-08-12 | 2021-08-12 | 基于负载类型感知的分布式文件系统元数据负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110925781.5A CN113608876B (zh) | 2021-08-12 | 2021-08-12 | 基于负载类型感知的分布式文件系统元数据负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113608876A true CN113608876A (zh) | 2021-11-05 |
CN113608876B CN113608876B (zh) | 2024-03-29 |
Family
ID=78308350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110925781.5A Active CN113608876B (zh) | 2021-08-12 | 2021-08-12 | 基于负载类型感知的分布式文件系统元数据负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113608876B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115250277A (zh) * | 2022-08-09 | 2022-10-28 | 西安邮电大学 | 适用于基于联盟链的边缘缓存系统的共识机制 |
CN117032996A (zh) * | 2023-10-09 | 2023-11-10 | 湖南中青能科技有限公司 | 一种电力元数据管理方法及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件系统中元数据管理的负载均衡方法及其系统 |
CN102523158A (zh) * | 2011-12-15 | 2012-06-27 | 杭州电子科技大学 | 一种基于权重的元数据服务器集群负载均衡方法 |
CN103763365A (zh) * | 2014-01-16 | 2014-04-30 | 浪潮(北京)电子信息产业有限公司 | 一种云存储下元数据服务的负载均衡方法及系统 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
CN107766159A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种元数据管理方法、装置和计算机可读存储介质 |
CN108009016A (zh) * | 2016-10-31 | 2018-05-08 | 华为技术有限公司 | 一种资源负载均衡控制方法及集群调度器 |
WO2018113533A1 (zh) * | 2016-12-22 | 2018-06-28 | 阿里巴巴集团控股有限公司 | 一种元数据迁移方法、装置、系统及设备 |
WO2019061132A1 (zh) * | 2017-09-28 | 2019-04-04 | 深圳清华大学研究院 | 混合文件系统架构、文件存储、动态迁移及其应用 |
CN111338801A (zh) * | 2020-02-29 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种实现元数据负载均衡的子树迁移方法、装置 |
CN111666159A (zh) * | 2020-06-28 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
WO2021073083A1 (zh) * | 2019-10-15 | 2021-04-22 | 南京莱斯网信技术研究院有限公司 | 一种基于节点负载的数据动态分区系统 |
-
2021
- 2021-08-12 CN CN202110925781.5A patent/CN113608876B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697526A (zh) * | 2009-10-10 | 2010-04-21 | 中国科学技术大学 | 分布式文件系统中元数据管理的负载均衡方法及其系统 |
CN102523158A (zh) * | 2011-12-15 | 2012-06-27 | 杭州电子科技大学 | 一种基于权重的元数据服务器集群负载均衡方法 |
CN103763365A (zh) * | 2014-01-16 | 2014-04-30 | 浪潮(北京)电子信息产业有限公司 | 一种云存储下元数据服务的负载均衡方法及系统 |
CN103793534A (zh) * | 2014-02-28 | 2014-05-14 | 苏州博纳讯动软件有限公司 | 分布式文件系统及均衡元数据存储和访问负载的实现方法 |
CN108009016A (zh) * | 2016-10-31 | 2018-05-08 | 华为技术有限公司 | 一种资源负载均衡控制方法及集群调度器 |
WO2018113533A1 (zh) * | 2016-12-22 | 2018-06-28 | 阿里巴巴集团控股有限公司 | 一种元数据迁移方法、装置、系统及设备 |
WO2019061132A1 (zh) * | 2017-09-28 | 2019-04-04 | 深圳清华大学研究院 | 混合文件系统架构、文件存储、动态迁移及其应用 |
CN107766159A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种元数据管理方法、装置和计算机可读存储介质 |
WO2021073083A1 (zh) * | 2019-10-15 | 2021-04-22 | 南京莱斯网信技术研究院有限公司 | 一种基于节点负载的数据动态分区系统 |
CN111338801A (zh) * | 2020-02-29 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种实现元数据负载均衡的子树迁移方法、装置 |
CN111666159A (zh) * | 2020-06-28 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
佘楚玉;温武少;肖扬;刘育擘;贾殷;: "一种自适应文件系统元数据服务负载均衡策略", 软件学报, no. 08, 31 December 2017 (2017-12-31), pages 30 - 45 * |
刘健;张军伟;张浩;邵冰清;杨洪章;刘振军;: "蓝鲸元数据服务器集群的细粒度负载迁移", 计算机研究与发展, no. 1, 15 December 2014 (2014-12-15), pages 219 - 231 * |
孙耀;刘杰;叶丹;钟华;: "分布式文件系统元数据服务的负载均衡框架", 软件学报, no. 12, 31 December 2016 (2016-12-31), pages 212 - 227 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115250277A (zh) * | 2022-08-09 | 2022-10-28 | 西安邮电大学 | 适用于基于联盟链的边缘缓存系统的共识机制 |
CN115250277B (zh) * | 2022-08-09 | 2023-09-05 | 西安邮电大学 | 将共识机制适用于基于联盟链的边缘缓存系统的方法 |
CN117032996A (zh) * | 2023-10-09 | 2023-11-10 | 湖南中青能科技有限公司 | 一种电力元数据管理方法及系统 |
CN117032996B (zh) * | 2023-10-09 | 2023-12-22 | 湖南中青能科技有限公司 | 一种电力元数据管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113608876B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943867B (zh) | 支持异构存储的高性能层次化存储系统 | |
CN101370030B (zh) | 基于内容复制的资源负载平衡方法 | |
CN102523158B (zh) | 一种基于权重的元数据服务器集群负载均衡方法 | |
US9613037B2 (en) | Resource allocation for migration within a multi-tiered system | |
US7937453B1 (en) | Scalable global namespace through referral redirection at the mapping layer | |
CN106161120B (zh) | 动态均衡负载的分布式元数据管理方法 | |
US7536426B2 (en) | Hybrid object placement in a distributed storage system | |
CN107357896A (zh) | 数据库集群的扩容方法、装置、系统和数据库集群系统 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
US8996490B1 (en) | Managing logical views of directories | |
CN104462432B (zh) | 自适应的分布式计算方法 | |
CN113608876A (zh) | 基于负载类型感知的分布式文件系统元数据负载均衡方法 | |
CN101013387A (zh) | 基于对象存储设备的负载平衡方法 | |
US11226865B2 (en) | Mostly unique file selection method for deduplication backup systems | |
CN112181309A (zh) | 一种海量对象存储的在线扩容方法 | |
CN105893466B (zh) | 一种应用于数据库的数据处理方法及系统 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
CN110381136A (zh) | 一种数据读取方法、终端、服务器及存储介质 | |
CN107395708A (zh) | 一种处理下载请求的方法和装置 | |
WO2017147257A1 (en) | Adaptive, self learning consistency point triggers | |
CN108063780B (zh) | 用于动态复制数据的方法和系统 | |
CN109522273A (zh) | 一种实现数据写入的方法及装置 | |
US9858185B1 (en) | Multi-tier data storage using inclusive/exclusive burst buffer caching based on reference counts | |
CN107689876A (zh) | 分布式对象存储系统中元数据的分布管理方法 | |
US20230119183A1 (en) | Estimating data file union sizes using minhash |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |