CN111666159B - 负载均衡控制方法和装置、存储介质及电子设备 - Google Patents

负载均衡控制方法和装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111666159B
CN111666159B CN202010598972.0A CN202010598972A CN111666159B CN 111666159 B CN111666159 B CN 111666159B CN 202010598972 A CN202010598972 A CN 202010598972A CN 111666159 B CN111666159 B CN 111666159B
Authority
CN
China
Prior art keywords
load
current
migration
metadata
metadata server
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.)
Active
Application number
CN202010598972.0A
Other languages
English (en)
Other versions
CN111666159A (zh
Inventor
薛彦涛
张智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010598972.0A priority Critical patent/CN111666159B/zh
Priority to CN202011273203.XA priority patent/CN112256438B/zh
Publication of CN111666159A publication Critical patent/CN111666159A/zh
Application granted granted Critical
Publication of CN111666159B publication Critical patent/CN111666159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

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

负载均衡控制方法和装置、存储介质及电子设备
技术领域
本发明涉及计算机领域,具体而言,涉及一种负载均衡控制方法和装置、存储介质及电子设备。
背景技术
随着信息技术的发展,信息存储总容量爆炸式的增长。像云计算这类PB级数据密集型的应用对后端存储产生了大量的请求。对象存储系统实现了元数据和文件内容(数据)的物理分离,元数据由元数据服务器(MetaData Server,简称MDS)管理,而数据由对象存储设备(Object Storage Device,简称OSD)管理,对象存储系统兼具存储区域网络(StorageArea Network,简称SAN)的快速访问和网络附属存储(Network Attached Storage,简称NAS)的安全数据共享,是大数据存储技术的未来。
在分布式文件系统中,对象存储系统IO性能很大程度上依赖于元数据处理性能。然而,采用了集中式元数据处理方式的文件系统,它们的性能和可用性受限于单MDS。因此,以ceph为代表的采用多个服务器组成MDS集群的分布式处理场景受到越来越多的关注。为了达到MDS集群元数据处理性能的最大化,同时避免在一定条件下MDS成为系统瓶颈,MDS上的负载均衡问题就显得尤为重要。
目前,在相关技术提供的负载均衡方法中,单个MDS往往并未真正的过载,盲目地启动负载迁移不但导致MDS自身能力的浪费,而且没必要的负载迁移还会消耗原本就紧张的网络带宽、中央处理单元(Central Processing Unit,简称CPU)和内存等资源。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种负载均衡控制方法和装置、存储介质及电子设备,以至少解决相关技术提供的负载均衡控制方法中存在对象存储资源浪费的技术问题。
根据本发明实施例的一个方面,提供了一种负载均衡控制方法,包括:获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,上述心跳信息中携带有元数据服务器的负载状态信息;根据上述其他元数据服务器各自的负载状态信息及上述当前元数据服务器的当前负载状态信息,确定上述元数据服务器集群的平均负载值;在上述当前负载状态信息指示上述当前元数据服务器的当前负载值大于上述平均负载值,且大于为上述当前元数据服务器配置的负载上限值的情况下,确定上述当前元数据服务器处于过载状态;从上述当前元数据服务器中确定出待迁移的目标元数据子树,并从上述其他元数据服务器中确定出目标元数据服务器,其中,上述目标元数据服务器的负载值小于上述平均负载值;将上述目标元数据子树迁移至上述目标元数据服务器。
根据本发明实施例的另一方面,还提供了一种负载均衡控制装置,包括:第一获取单元,用于获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,上述心跳信息中携带有元数据服务器的负载状态信息;第一确定单元,用于根据上述其他元数据服务器各自的负载状态信息及上述当前元数据服务器的当前负载状态信息,确定上述元数据服务器集群的平均负载值;第二确定单元,用于在上述当前负载状态信息指示上述当前元数据服务器的当前负载值大于上述平均负载值,且大于为上述当前元数据服务器配置的负载上限值的情况下,确定上述当前元数据服务器处于过载状态;第三确定单元,用于从上述当前元数据服务器中确定出待迁移的目标元数据子树,并从上述其他元数据服务器中确定出目标元数据服务器,其中,上述目标元数据服务器的负载值小于上述平均负载值;迁移控制单元,用于将上述目标元数据子树迁移至上述目标元数据服务器。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述负载均衡控制方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的负载均衡控制方法。
在本发明实施例中,在获取到元数据服务器集群中各个元数据服务器的负载状态信息后,确定该元数据服务器集群的平均负载值,当前元数据服务器的当前负载值,及为该当前元数据服务器配置的负载上限值。然后在确定当前负载值大于平均负载值,且大于负载上限值的情况下,确定对该当前元数据服务器执行迁移。也就是将相对过载评估绝对过载评估结果与绝对过载评估结果结合,不仅能更充分地利用当前元数据服务器的能力,而且能更好地平衡元数据服务器集群中负载的分布特性和局部特性,最终综合性地提升元数据服务器集群的整体性能,进而避免负载均衡控制过程中出现的对象存储资源浪费的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的负载均衡控制方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的负载均衡控制方法的流程图;
图3是根据本发明实施例的另一种可选的负载均衡控制方法的流程图;
图4是根据本发明实施例的又一种可选的负载均衡控制方法的流程图;
图5是根据本发明实施例的一种可选的负载均衡控制方法的示意图;
图6是根据本发明实施例的一种可选的负载均衡控制方法的参考示意图;
图7是根据本发明实施例的另一种可选的负载均衡控制方法的参考示意图;
图8是根据本发明实施例的一种可选的负载均衡控制方法的迁移示意图;
图9是根据本发明实施例的一种可选的负载均衡控制方法的迁移示意图;
图10是根据本发明实施例的又一种可选的负载均衡控制方法的流程图;
图11是根据本发明实施例的一种可选的负载均衡控制装置的结构示意图;
图12是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中提供的实施例,可以但不限于用于云存储场景中,这里云存储(CloudStorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,Identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
根据本发明实施例的一个方面,提供了一种负载均衡控制方法,可选地,作为一种可选的实施方式,上述负载均衡控制方法可以但不限于应用于如图1所示的环境中。在该环境中可以包括但不限于多个元数据服务器(MetaData Server,简称MDS)组成的元数据服务器集群(Multi-MDS),如图1所示包括M1至Mn的n个元数据服务器MDS。其中,每个元数据服务器MDS是文件存储系统中管理和提供元数据服务的核心组件,用于在存储系统上构建文件系统层级结构,负责目录和文件的创建与删除、限额管理、访问控制等,并通过分布式锁机制来确保各个MDS之间的数据一致性,集群成员之间通过相互协作,共同承担文件存储系统的管理和元数据服务任务。
在本申请实施例中,上述图1所示的元数据服务器集群(Multi-MDS)M1至Mn中的每个MDS都分别单独决策,集群中并无主控制节点。进一步,这里MDS集群中各个节点MDS通过心跳信息交换彼此最新的负载情况,在收集到所有其他MDS的负载情况后启动过载评估,判定自己是否过载,如果判定过载,将依据一定的策略挑选合适的元数据子树迁移到其他的轻载MDS。
此外,在本实施例中,上述Multi-MDS中的节点MDS如果退出,无需任何配置或操作;如果有新的节点MDS加入,只需要给新MDS手动配置一组合理的负载运行参数,如负载能力值、迁移负载量比例Ratio、迁移子树个数上限。此外,在本实施例中,在增加MDS集群的节点MDS的数量后,集群性能也将随着节点MDS数目线性增长。
可选地,在本实施例中上述MDF元数据服务器可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络服务器CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。但并不局限于此。服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,如图2所示,上述负载均衡控制方法包括:
S202,获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,心跳信息中携带有元数据服务器的负载状态信息;
S204,根据其他元数据服务器各自的负载状态信息及当前元数据服务器的当前负载状态信息,确定元数据服务器集群的平均负载值;
S206,在当前负载状态信息指示当前元数据服务器的当前负载值大于平均负载值,且大于为当前元数据服务器配置的负载上限值的情况下,确定当前元数据服务器处于过载状态;
S208,从当前元数据服务器中确定出待迁移的目标元数据子树,并从其他元数据服务器中确定出目标元数据服务器,其中,目标元数据服务器的负载值小于平均负载值;
S210,将目标元数据子树迁移至目标元数据服务器。
可选地,在本实施例中,上述负载均衡控制方法可以但不限于应用于cephFSmulti-mds动态负载均衡过程中。通过结合元数据服务器集群中当前元数据服务器的当前负载值与元数据服务器集群的平均负载值之间的比对结果,及当前负载值与当前元数据服务器的负载上限值之间的比对结果,从而实现将相对过载评估绝对过载评估结果与绝对过载评估结果结合,来优化cephFS multi-mds过载评估过程,而不再只采用相对过载评估方法,以避免对象存储资源浪费的问题,即减少对网络带宽、CPU和内存等资源的不必要的消耗占用。
需要说明的是,在相关技术中为了保持MDS集群的负载均衡,通常会在MDS集群中直接采用相对过载评估,将MDS集群中的节点MDS简单划分为过载和轻载两个MDS集合。但元数据在MDS集群的分布特性,往往牺牲了元数据的局部(locality)特性。元数据分布特性的增强可以提升MDS集群的整体能力,但元数据局部特性破坏却降低了MDS集群的整体能力,元数据分布与局部特性共同决定了MDS集群的最终整体能力。如果根据MDS自身绝对承受负载能力,相对过载MDS可能并未真过载。在此情况下,相对过载MDS完全没必要做元数据子树迁出,因为此时元数据子树的迁出虽然可以进一步提升元数据分布特性,但同时也会降低元数据局部特性。此时元数据分布特性提升对MDS集群整体能力的正面贡献,要远远小于元数据局部特性降低导致的MDS集群整体能力的负面影响。
因而,为了克服上述问题,本申请实施例中提供的过载评估过程可以包括但不限于:相对过载评估和绝对过载评估,其中,相对过载评估是依据MDS负载值与multi-mds集群平均负载值,评估MDS是否过载。绝对过载评估是依据MDS负载值与自身绝对负载承担能力,评估MDS是否过载。
具体的,上述相对过载评估是将MDS集群平均负载值作为相对过载线,将MDS集群中的各个成员MDS划分成相对轻载和相对过载两个集合,负载值超过相对过载线的MDS为相对过载,负载值低于相对过载线的MDS为相对轻载。由于相对过载MDS承担的负载比相对轻载MDS多,需要通过向相对轻载MDS迁出负载而达到MDS集群成员平均承担负载的目的。而上述绝对过载评估指的是通过MDS自身的实时状态参数和自身设定的参数上限做比较,去判定该MDS是否过载,超过设定的参数上限为过载,低于设定的参数上限为轻载。
在本实施例中,采用将相对过载评估绝对过载评估结果与绝对过载评估结果结合的方式,是指对MDS先做相对过载评估,若MDS被判定为相对过载,则启动绝对过载评估,只有MDS同时被判定为相对过载和绝对过载的情况下,才能最终判定该MDS处于过载状态。进一步才能启动负载迁移,而其他情况将视为轻载状态,不启动负载迁移。
可选地,在本实施例中,上述负载状态信息中可以包括但不限于以下至少之一:用于指示元数据服务器的负载能力的负载量、元数据服务器在单位时间内处理请求的数量(如用req_rate表示)及元数据服务器的CPU使用率。也就是说,上述当前元数据服务器(可简称为当前MDS)的当前负载值可以但不限于:当前负载量、单位时间内当前请求量、当前CPU使用率等。
进一步,在本实施例中,上述相对过载评估过程中用于比对当前负载值与平均负载值时所使用的状态参数,与上述绝对过载评估过程中用于比对当前负载值与负载上限值时所使用的状态参数,可以为同一个状态参数,也可以为不同状态参数。例如,在相对过载的判定过程中,当前负载值为当前MDS的当前负载量的情况下,平均负载值可以是MDF集群的平均负载量;而在绝对过载的判定过程中,当前负载值为当前MDS的当前负载量的情况下,对应的负载上限值可以是当前MDF允许承担的负载上限量(即最大负载量)。又例如,在相对过载的判定过程中,当前负载值为当前MDS的当前负载量的情况下,平均负载值可以是MDF集群的平均负载量;而在绝对过载的判定过程中,当前负载值为当前MDS单位时间内处理请求的数量(如用req_rate表示)的情况下,对应的负载上限值可以是当前MDF单位时间内处理请求的数量上限量(即最大请求量req_rate_max)。上述为示例,本实施例中对此不作任何限定。
可选地,在本实施例中,从当前元数据服务器中确定出待迁移的目标元数据子树的方式可以包括但不限于以下一种策略:1)根据预先设定的迁移负载量上限来确定;2)根据预先设定的迁移子树个数上限来确定。从而避免在单次负载均衡过程中涉及大量的子树负载迁移,而使得迁移中的子树被加锁保护,所导致的客户端在访问这些子树的时候出现卡顿过久的问题。进而实现单次负载均衡的迁移负载量可调、可控,缩短客户端在访问这些子树时的卡顿时间的效果。
具体结合图3所示示例进行说明:
如步骤S302,判断元数据服务器集群(multi-mds)中当前元数据服务器MDS的计时器(Ticker)是否到时?在到时的情况下执行步骤S304-S306,当前MDS向multi-mds中其他MDS发送心跳信息,并接收其他MDS发送的心跳信息。然后如步骤S308,确定是否收到元数据服务器集群(multi-mds)中全部MDS发送的所有心跳信息,若没有收到所有心跳信息,则返回步骤S306;若收到所有心跳信息,则执行步骤S310,对当前MDS进行相对过载评估和绝对过载评估。若确定当前MDS并未过载,则跳转到步骤S320,结束,以等待下一个Ticker到时。若确定当前MDS处于过载状态,则执行步骤S314-S320,迁移目标匹配,以确定目MDS,并选取迁移子树,然后执行迁移,以将选取的迁移子树迁移至目标MDS中,完成迁移后结束,以等待下一个Ticker到时。
上述图3所示各个步骤内容及顺序为示例,本实施例中对此不作限定。
通过本申请提供的实施例,在获取到元数据服务器集群中各个元数据服务器的负载状态信息后,确定该元数据服务器集群的平均负载值,当前元数据服务器的当前负载值,及为该当前元数据服务器配置的负载上限值。然后在确定当前负载值大于平均负载值,且大于负载上限值的情况下,确定对该当前元数据服务器执行迁移。也就是将相对过载评估绝对过载评估结果与绝对过载评估结果结合,不仅能更充分地利用当前元数据服务器的能力,而且能更好地平衡元数据服务器集群中负载的分布特性和局部特性,最终综合性地提升元数据服务器集群的整体性能,进而避免负载均衡控制过程中出现的对象存储资源浪费的问题。
作为一种可选的方案,所述确定当前元数据服务器处于过载状态包括:
S1,解析其他元数据服务器各自的负载状态信息,以获取每个元数据服务器对应的对象负载值,得到多个对象负载值;
S2,获取多个对象负载值的平均值,作为平均负载值;
S3,比对当前负载值和平均负载值;
S4,在当前负载值大于平均负载值的情况下,比对当前负载值和负载上限值;
S5,在当前负载值大于负载上限值的情况下,确定当前元数据服务器处于过载状态。
可选地,在本实施例中,在比对当前负载值和平均负载值之后,还包括:在当前负载值小于平均负载值的情况下,确定当前元数据服务器处于第一轻载状态;在比对当前负载值和负载上限值之后,还包括:在当前负载值小于负载上限值的情况下,确定当前元数据服务器处于第二轻载状态。
需要说明的是,上述第一轻载状态可以但不限于指当前MDS的负载水平尚未达到元数据服务器集群(multi-mds)的平均水平,处于绝对的轻载状态。上述第二轻载状态可以但不限于指当前MDS达到负载水平超过元数据服务器集群(multi-mds)的平均水平,但尚未达到自身的负载上限水平,处于相对自身的轻载状态。通过区分不同的轻载状态,以便于为MDS迁移不同的元数据子树,从而使得元数据服务器集群(multi-mds)中的存储资源得到最大化地利用。
具体结合图4所示示例进行说明:假设元数据服务器集群(multi-mds)中当前元数据服务器,以MDS0为例。当MDS0收到MDS集群其他MDS心跳信息后,通过解析心跳信息得到其他MDS的负载状态信息,其中包括各个MDS的负载值meta_load,以便于计算出MDS集群的平均负载值avg_meta_load。然后执行图4所示的各个步骤:
如步骤S402,将MDS0自身的负载值meta_load0与上述平均负载值avg_meta_load做比较,如果meta_load0小于avg_meta_load,则MDS0被判定为轻载,如步骤S404-1更新最近一次轻载。否则确定MDS0为相对过载,并执行步骤S404-2。当MDS0为相对过载时,MDS0不会盲目地马上启动负载迁移,而是要经过绝对过载评估。假设以单位时间处理请求量req_rate为例来进行绝对过载评估。且MDS0已预先设定的单位时间处理请求量上限为req_rate_max。判定过程可以如下:
MDS0会定期记录自己的单位时间处理请求量req_rate0,并如步骤S404-2,将当前MDS0的req_rate0与req_rate_max做比较,在确定req_rate0>req_rate_max的情况下,确定MDS0是绝对过载,执行步骤S406,否则为轻载,跳转到步骤S404-1。如果MDS0同时被判定为相对过载和绝对过载,则MDS0最终被判定为处于过载状态,然后才能启动负载迁移过程。
进一步在本示例中,可以对上述判定处于过载状态的次数做进一步统计,如假设连续过载阈值设定为3次。则如步骤S406,在确定当前MDS0已经连续过载超过3次,则如步骤S408,确定当前MDS0处于过载状态,否则如步骤S410,确定为轻载状态。最后如步骤S412过载评估结束。
需要说明的是,在本实施例中,在MDS0同时被判定为相对过载和绝对过载的情况下,才确定该MDS0处于过载状态。可以在MDS0在一次判定过程中被判定为处于过载状态的情况下,就结束过载评估,也可以在MDS0在多次判定过程中均被判定为处于过载状态的情况下,再结束过载评估。从而实现使用过载阈值对处于过载状态的MDS进行一定的过滤,避免误判导致的资源浪费问题。
此外,在本实施例中,上述MDS0为元数据服务器集群(multi-mds)中的任意一个MDS,其他MDS的过载评估的判定过程均可以参考上述图4所示的流程,本实施例中不再赘述。
需要说明的是,为了避免单点MDS造成的瓶颈和故障,cephFS MDS集群没有设置用来专门管理、维护集群中各个MDS之间负载分配的一个全局调度器,而是由每个MDS独立决策。Multi-mds之间通过定期发送心跳信息,彼此交换最新的负载状态信息,以获取各个MDS的负载值,在收集到所有其他MDS的心跳信息后启动过载评估,过载MDS将启动负载迁移过程。
在相关技术提供的负载均衡控制方法中,主要是基于相对过载评估的判定结果来确定是否要迁出元数据子树。例如,如果MDS0被判定为相对过载,MDS0将直接启动负载迁移过程,它将集群中相对轻载的MDS作为负载迁出的目标MDS,把自身负载值与MDS集群平均负载值之差作为总负载迁出量。然后,MDS0根据一定的策略选择待迁移的目标元数据子树负载出,然后将这些目标元数据子树依次迁移到目标MDS,直到当前负载迁出量达到总负载迁出量为止。
这里的相对过载评估可以如图5(a)所示,是将MDS集群平均负载值作为相对过载线,将MDS集群中的各个MDS划分成轻载和过载两个集合。负载值超过相对过载线的MDS为相对过载,负载值低于相对过载线的MDS为相对轻载,由于相对过载MDS承担的负载比相对轻载MDS多,需要通过向相对轻载MDS迁出负载而达到MDS集群成员平均承担负载的目的。
而本申请实施例中提供的动态负载均衡控制方法可以如图5(b)所示,结合相对过载和绝对过载两个维度,在相对过载评估结果的基础上,对50%相对过载的情况做进一步的细分,将相对过载而绝对轻载的MDS(位于象限2)最终判定为轻载,而不再是过载。将相对过载且绝对过载的MDS(位于象限1)最终确定为处于过载状态。
通过本申请提供的实施例,结合相对过载和绝对过载两个维度来更加精准地确定出元数据服务器集群中真正处于过载状态的元数据服务器,从而使得每个元数据服务器可以得到充分利用,避免不必要的资源浪费的同时,提高各个元数据服务器的利用率。
作为一种可选的方案,从当前元数据服务器中确定出待迁移的目标元数据子树包括:
S1,获取当前负载值与平均负载值的负载差值;
S2,将负载差值确定为当前元数据服务器所要迁移的参考迁移负载量;
S3,获取为当前元数据服务器配置的迁移参数上限值;
S4,根据参考迁移负载量及迁移参数上限值,确定待迁移的目标元数据子树。
可选地,在本实施例中,上述迁移参数上限值可以包括但不限于:迁移负载量上限比例、迁移子树上限数量。也就是说,可以但不限于采用以下一种迁移控制策略:迁移负载量上限控制策略或迁移子树个数上限控制策略。
需要说明的是,在相关技术中通常是过载MDS的总迁出负载量等于自身负载量减去MDS集群平均负载量,即meta_load–avg_meta_load=总迁出负载量。例如,假设MDS集群中包括MDS0、MDS1、MDS2,其中当前元数据服务器仍以MDS0为例。进一步,假设如图6(a)所示MDS0处于过载状态,且其他两个MDS(即MDS1、MDS2)处于轻载状态。因此MDS0需要向其他两个MDS(即MDS1、MDS2)迁移负载(即元数据子树),如图6(b)所示MDS0中超出平均负载线的负载量迁移至MDS1、MDS2中,以达到如图6(c)所示3个MDS平均承担MDS集群负载的目的。
在采用相关技术提供的负载均衡方法时,MDS0可以通过一定的策略选择若干元数据子树,将这些元数据子树依次迁移到其他两个MDS,直到被迁移的这些元数据子树的负载量之和达到了MDS0的总迁出负载量为止。由此可见,过载MDS负载均衡的过程是以达到自身总迁出负载量为结束条件的。但被迁移的元数据子树在迁移过程中会被加锁保护,导致cephFS客户端在访问这些元数据子树时出现卡顿时间过久的问题。因而,在本申请实施例中不再采用上述如图7(a)至图7(b)所示的迁移方式,也就是不再将MDS0中的元数据子树依次迁移到其他两个MDS(即MDS1、MDS2),结果如图7(c)所示。
为了克服上述相关技术中存在的技术问题,在本申请实施例中,对每个MDS设置了迁移参数上限值(如迁移负载量上限或迁移子树个数上限),结合当前元数据服务器所要迁移的参考迁移负载量和迁移参数上限值,来对单次负载均衡迁出负载量进行灵活地控制,进而避免访问时出现的卡顿时间太久的问题。
通过本申请提供的实施例,根据参考迁移负载量及迁移参数上限值,确定待迁移的所述目标元数据子树。从而实现对单次负载均衡迁出负载量进行灵活地控制,调节,进而避免单次负载迁移量过大导致的卡顿问题。
作为一种可选的方案,根据参考迁移负载量及迁移参数上限值,确定待迁移的目标元数据子树包括:
S1,在迁移参数上限值为迁移负载量上限比例的情况下,获取参考迁移负载量与迁移负载量上限比例二者的乘积,得到目标迁移负载量;
S2,按照目标迁移负载量确定目标元数据子树。
可选地,在本实施例中,按照目标迁移负载量确定目标元数据子树包括:遍历当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移负载量达到目标迁移负载量:
S21,确定当前已完成迁移的当前迁移负载量;
S22,在当前迁移负载量尚未达到目标迁移负载量的情况下,从当前元数据服务器中获取当前元数据子树,其中,当前元数据子树对应的负载量为当前数据负载量;
S23,将当前元数据子树确定为目标元数据子树,并在完成对当前元数据子树的迁移后,更新当前迁移负载量,其中,更新前的当前负载量与更新后的当前负载量之间的差值为当前数据负载量。
具体结合图8所示示例进行说明:假设MDS集群中包括MDS0、MDS1、MDS2,其中当前元数据服务器仍以MDS0为例。进一步,假设如图8(a)所示MDS0处于过载状态(超过平均负载线,同时超过绝对负载线),且其他两个MDS(即MDS1、MDS2)处于轻载状态。进一步假设迁移参数上限值为迁移负载量上限比例,且迁移负载量上限比例Ratio=1/3。
在MDS0通过自身负载量meta_load减去平均负载量avg_meta_load(即平均负载线),得到参考迁移负载量Amount(如图8(a)所示用高度L1表示上述Amount)。根据上述迁移控制策略确定目标迁移负载量=Amount*1/3。然后重复执行以下操作:
在每次迁移完一个元数据子树后,MDS0都将计算当前已完成迁移的当前迁移负载量cur_Amount。如果当前迁移负载量cur_Amount<目标迁移负载量Amount*1/3,则继续获取元数据子树进行迁移。而如果当前迁移负载量cur_Amount>=目标迁移负载量Amount*1/3,则终止本次负载均衡过程,表示完成迁移。如图8(b)所示为迁移结果:将目标迁移负载量Amount*1/3(如图中黑色实心方块)迁移至MDS1中。
也就是说,在每一个子树负载被迁出后,都会判定当前已完成迁移的当前迁移负载量是否达到目标迁移负载量,如果达到目标迁移负载量就马上结束本次负载均衡过程。
通过本申请提供的实施例,将迁移负载量上限比例作为迁移负载量控制评估条件,在每次完成迁移后,都进行评估判定,从而实现减少单次负载均衡过程的迁移负载量,达到提高对负载均衡控制的灵活性。
作为一种可选的方案,根据参考迁移负载量及迁移参数上限值,确定待迁移的目标元数据子树包括:
S1,在迁移参数上限值为迁移子树上限数量的情况下,将迁移子树上限数量作为目标迁移子树数量;
S1,按照目标迁移子树数量确定目标元数据子树。
可选地,在本实施例中,按照目标迁移子树数量确定目标元数据子树包括:遍历当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移子树数量达到目标迁移子树数量:
S21,确定当前已完成迁移的当前迁移子树数量;
S22,在当前迁移子树数量尚未达到目标迁移子树数量的情况下,从当前元数据服务器中获取当前元数据子树;
S23,将当前元数据子树确定为目标元数据子树,并在完成对当前元数据子树的迁移后,对当前迁移子树数量进行减一处理。
具体结合图9所示示例进行说明:假设MDS集群中包括MDS0、MDS1、MDS2,其中当前元数据服务器仍以MDS0为例。进一步,假设如图8(a)所示MDS0处于过载状态(超过平均负载线,同时超过绝对负载线),且其他两个MDS(即MDS1、MDS2)处于轻载状态。进一步假设迁移参数上限值为迁移子树上限数量,且迁移子树上限数量Max=4。
在MDS0通过自身负载量meta_load减去平均负载量avg_meta_load(即平均负载线),得到参考迁移负载量Amount(如图9(a)所示用高度L1表示上述Amount)。根据上述迁移控制策略确定目标迁移子树数量=4。然后重复执行以下操作:
在每次迁移完一个元数据子树后,MDS0都统计当前已被迁移的当前迁移子树数量cur_count_subtree。如果当前迁移子树数量cur_count_subtree<目标迁移子树数量4,则继续获取元数据子树进行迁移。而如果当前迁移子树数量cur_count_subtree>=目标迁移子树数量4,则终止本次负载均衡过程,表示完成迁移。如图9(b)所示为迁移结果:将元数据子树1、元数据子树3和元数据子树6迁移至MDS1中,将元数据子树2迁移至MDS2中,当前迁移子树数量已达到目标迁移子树数量4。
也就是说,在每一个子树负载被迁出后,都会判定当前已完成迁移的当前迁移子树数量是否达到目标迁移子树数量,如果达到目标迁移子树数量就马上结束本次负载均衡过程。
通过本申请提供的实施例,将迁移子树上限数量作为迁移负载量控制评估条件,在每次完成迁移后,都进行评估判定,从而实现减少单次负载均衡过程的迁移负载量,达到提高对负载均衡控制的灵活性。
作为一种可选的方案,在确定元数据服务器集群的平均负载值之后,还包括:
S1,根据当前负载状态信息获取当前负载值,其中,当前负载状态信息中包括以下至少一种状态参数的参数值:当前元数据服务器在单位时间内处理请求的数量、当前元数据服务器的处理器使用率、所述当前元数据服务器的负载量;
S2,获取与当前负载值匹配的负载上限值。
需要说明的是,上述用于进行绝对过载判定的状态参数可以包括但不限于以下至少之一:当前元数据服务器在单位时间内处理请求的数量、当前元数据服务器的处理器使用率、所述当前元数据服务器的负载量。也就是说,每个状态参数都可以单独用于绝对过载评估,对应的状态参数上限值都可以作为绝对过载的判定阈值条件。其中,在包括至少两个状态参数,可以但不限于获取上述至少两个状态参数的加权求和结果或乘积,来作为最终用于判定的负载值。本实施例中对此不作任何限定。
图10所示为本申请实施例中负载均衡控制的全流程图。假设MDS集群中包括MDS0、MDS1、MDS2,其中当前元数据服务器仍以MDS0为例。其中假设MDS0处于过载状态(超过平均负载线,同时超过绝对负载线),且其他两个MDS(即MDS1、MDS2)处于轻载状态。确定需要将MDS0中的部分元数据子树迁移MDS1、MDS2中。迁移过程可以如下:
如步骤S1002,判断MDS0中元数据子树是否遍历结束?在MDS0中元数据子树未遍历结束的情况下,执行步骤S1004,确定当前的元数据子树T0是否处于闲置?若确定前的元数据子树T0并非处于闲置,则返回步骤S1002。若确定处于闲置,则执行步骤S1006,将该元数据子树T0作为待迁移的目标元数据迁移子树,迁移该闲置的元数据子树T0。完成迁移后执行步骤S1008,根据迁移控制策略判定是否达到目标迁移负载量(根据迁移负载量上限比例计算得到)或目标迁移子树数量(迁移子树上限数量),若未达到,则返回步骤S1002,若达到则如步骤S1018结束。
而在MDS0中元数据子树遍历结束的情况下,则执行步骤S1010,确定轻载MDS是否遍历结束?假设当前轻载MDS为MDS1,轻载MDS尚未遍历结束,则如步骤S1012,判断MDS0中元数据子树是否遍历结束?若MDS0中元数据子树遍历并未结束,则如步骤S1014,确定当前轻载MDS1中的负载总量是否已达标(即是否达到MDS1的负载量上限)?若未达标,则表示MDS1可以继续接受迁移,并如步骤S1016,根据迁移控制策略判定是否达到目标迁移负载量(根据迁移负载量上限比例计算得到)或目标迁移子树数量(迁移子树上限数量)。若达标,则表示MDS1无法继续接受迁移,返回以获取下一个轻载MDS,如MDS2,以将尚未完成迁移的元数据子树迁移至MDS2,从而便于完成对MDS0中参考迁移负载量的全部迁移。最后在迁移完成后结束,如步骤S1018。
在本申请实施例中,对元数据服务器集群进行动态负载均衡地优化调整,以更充分得挖掘、利用MDS集群中每一个MDS的能力,避免了MDS能力的浪费和没必要的元数据子树迁移,综合性的提升了cephFS multi-mds集群的服务能力,提高了cephFS的整体性能。此外,在相同负载情况下,本申请实施例中能使cephFS multi-mds集群中每个MDS多输出10%的能力。从另一角度看,cephFS multi-mds集群原本最大可以提供N个MDS节点的服务能力,采用本申请实施例中后,就能够多提供N*10%个MDS节点的服务能力。如果N个MDS节点的服务能力已经满足当前业务需求,采用本申请实施例中后,就可以裁撤掉1-1/(1+10%)=9%的MDS节点,很好的节省了集群建设的成本。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述负载均衡控制方法的负载均衡控制装置。如图11所示,该装置包括:
1)第一获取单元1102,用于获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,心跳信息中携带有元数据服务器的负载状态信息;
2)第一确定单元1104,用于根据其他元数据服务器各自的负载状态信息及当前元数据服务器的当前负载状态信息,确定元数据服务器集群的平均负载值;
3)第二确定单元1106,用于在当前负载状态信息指示当前元数据服务器的当前负载值大于平均负载值,且大于为当前元数据服务器配置的负载上限值的情况下,确定当前元数据服务器处于过载状态;
4)第三确定单元1108,用于从当前元数据服务器中确定出待迁移的目标元数据子树,并从其他元数据服务器中确定出目标元数据服务器,其中,目标元数据服务器的负载值小于平均负载值;
5)迁移控制单元1110,用于将目标元数据子树迁移至目标元数据服务器。
可选地,在本实施例中,第二确定单元1106,包括:
1)解析模块,用于解析其他元数据服务器各自的负载状态信息,以获取每个元数据服务器对应的对象负载值,得到多个对象负载值;
2)第一获取模块,用于获取多个对象负载值的平均值,作为平均负载值;
3)第一比对模块,用于比对当前负载值和平均负载值;
4)第二比对模块,用于在当前负载值大于平均负载值的情况下,比对当前负载值和负载上限值;
5)第一确定模块,用于在当前负载值大于负载上限值的情况下,确定当前元数据服务器处于过载状态。
可选地,在本实施例中,还包括:在比对当前负载值和平均负载值之后,在当前负载值小于平均负载值的情况下,确定当前元数据服务器处于第一轻载状态。
可选地,在本实施例中,还包括:在比对当前负载值和负载上限值之后,还包括:在当前负载值小于负载上限值的情况下,确定当前元数据服务器处于第二轻载状态。
可选地,在本实施例中,第三确定单元1108,包括:
1)第二获取模块,用于获取当前负载值与平均负载值的负载差值;
2)第二确定模块,用于将负载差值确定为当前元数据服务器所要迁移的参考迁移负载量;
3)第三获取模块,用于获取为当前元数据服务器配置的迁移参数上限值;
4)第三确定模块,用于根据参考迁移负载量及迁移参数上限值,确定待迁移的目标元数据子树。
可选地,在本实施例中,第三确定模块通过以下步骤实现根据参考迁移负载量及迁移参数上限值,确定待迁移的目标元数据子树:在迁移参数上限值为迁移负载量上限比例的情况下,获取参考迁移负载量与迁移负载量上限比例二者的乘积,得到目标迁移负载量;按照目标迁移负载量确定目标元数据子树。
可选地,在本实施例中,按照目标迁移负载量确定目标元数据子树包括:遍历当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移负载量达到目标迁移负载量:
S1,确定当前已完成迁移的当前迁移负载量;
S2,在当前迁移负载量尚未达到目标迁移负载量的情况下,从当前元数据服务器中获取当前元数据子树,其中,当前元数据子树对应的负载量为当前数据负载量;
S3,将当前元数据子树确定为目标元数据子树,并在完成对当前元数据子树的迁移后,更新当前迁移负载量,其中,更新前的当前负载量与更新后的当前负载量之间的差值为当前数据负载量。
可选地,在本实施例中,,第三确定模块通过以下步骤实现根据参考迁移负载量及迁移参数上限值,确定待迁移的目标元数据子树:在迁移参数上限值为迁移子树上限数量的情况下,将迁移子树上限数量作为目标迁移子树数量;按照目标迁移子树数量确定目标元数据子树。
可选地,在本实施例中,按照目标迁移子树数量确定目标元数据子树包括:遍历当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移子树数量达到目标迁移子树数量:
S1,确定当前已完成迁移的当前迁移子树数量;
S2,在当前迁移子树数量尚未达到目标迁移子树数量的情况下,从当前元数据服务器中获取当前元数据子树;
S3,将当前元数据子树确定为目标元数据子树,并在完成对当前元数据子树的迁移后,对当前迁移子树数量进行减一处理。
可选地,在本实施例中,上述装置还包括:在确定元数据服务器集群的平均负载值之后,根据当前负载状态信息获取当前负载值,其中,当前负载状态信息中包括以下至少一种状态参数的参数值:当前元数据服务器在单位时间内处理请求的数量、当前元数据服务器的处理器使用率、当前元数据服务器的负载量;获取与当前负载值匹配的所述负载上限值。
在本实施例中,具体的实施例可以参考上述方法中对应实施例,本实施例中对此不再赘述。
根据本发明实施例的又一个方面,还提供了一种用于实施上述负载均衡控制方法的电子设备,该电子设备可以是图1所示的服务器。如图12所示,该电子设备包括存储器1202和处理器1204,该存储器1202中存储有计算机程序,该处理器1204被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,心跳信息中携带有元数据服务器的负载状态信息;
S2,根据其他元数据服务器各自的负载状态信息及当前元数据服务器的当前负载状态信息,确定元数据服务器集群的平均负载值;
S3,在当前负载状态信息指示当前元数据服务器的当前负载值大于平均负载值,且大于为当前元数据服务器配置的负载上限值的情况下,确定当前元数据服务器处于过载状态;
S4,从当前元数据服务器中确定出待迁移的目标元数据子树,并从其他元数据服务器中确定出目标元数据服务器,其中,目标元数据服务器的负载值小于平均负载值;
S5,将目标元数据子树迁移至目标元数据服务器。
可选地,本领域普通技术人员可以理解,图12所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图12其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图12中所示更多或者更少的组件(如网络接口等),或者具有与图12所示不同的配置。
其中,存储器1202可用于存储软件程序以及模块,如本发明实施例中的负载均衡控制方法和装置对应的程序指令/模块,处理器1204通过运行存储在存储器1202内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的负载均衡控制方法。存储器1202可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1202可进一步包括相对于处理器1204远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1202具体可以但不限于用于各个MDS的负载状态信息等信息。作为一种示例,如图12所示,上述存储器1202中可以但不限于包括上述负载均衡控制装置中的第一获取单元1102、第二确定单元1104、第二确定单元1106、第三确定单元1108及迁移控制单元1110。此外,还可以包括但不限于上述负载均衡控制装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1206包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1206为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1208,用于显示各个MDS的负载状态信息;和连接总线1210,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述云存储方面各种可选实施例中提供的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,心跳信息中携带有元数据服务器的负载状态信息;
S2,根据其他元数据服务器各自的负载状态信息及当前元数据服务器的当前负载状态信息,确定元数据服务器集群的平均负载值;
S3,在当前负载状态信息指示当前元数据服务器的当前负载值大于平均负载值,且大于为当前元数据服务器配置的负载上限值的情况下,确定当前元数据服务器处于过载状态;
S4,从当前元数据服务器中确定出待迁移的目标元数据子树,并从其他元数据服务器中确定出目标元数据服务器,其中,目标元数据服务器的负载值小于平均负载值;
S5,将目标元数据子树迁移至目标元数据服务器。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种负载均衡控制方法,其特征在于,包括:
获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,所述心跳信息中携带有元数据服务器的负载状态信息;
根据所述其他元数据服务器各自的负载状态信息及所述当前元数据服务器的当前负载状态信息,确定所述元数据服务器集群的平均负载值;
在所述当前负载状态信息指示所述当前元数据服务器的当前负载值大于所述平均负载值,且大于为所述当前元数据服务器配置的负载上限值的情况下,确定所述当前元数据服务器处于过载状态;
从所述当前元数据服务器中确定出待迁移的目标元数据子树,并从所述其他元数据服务器中确定出目标元数据服务器,其中,所述目标元数据服务器的负载值小于所述平均负载值,还包括:
在迁移参数上限值为迁移子树上限数量的情况下,将所述迁移子树上限数量作为目标迁移子树数量;遍历所述当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移子树数量达到所述目标迁移子树数量:确定当前已完成迁移的当前迁移子树数量;在所述当前迁移子树数量尚未达到所述目标迁移子树数量的情况下,从所述当前元数据服务器中获取当前元数据子树;将所述当前元数据子树确定为所述目标元数据子树,并在完成对所述当前元数据子树的迁移后,对所述当前迁移子树数量进行减一处理;
将所述目标元数据子树迁移至所述目标元数据服务器。
2.根据权利要求1所述的方法,其特征在于,所述确定所述当前元数据服务器处于过载状态包括:
解析所述其他元数据服务器各自的负载状态信息,以获取每个元数据服务器对应的对象负载值,得到多个对象负载值;
获取所述多个对象负载值的平均值,作为所述平均负载值;
比对所述当前负载值和所述平均负载值;
在所述当前负载值大于所述平均负载值的情况下,比对所述当前负载值和所述负载上限值;
在所述当前负载值大于所述负载上限值的情况下,确定所述当前元数据服务器处于所述过载状态。
3.根据权利要求2所述的方法,其特征在于,
在所述比对所述当前负载值和所述平均负载值之后,还包括:在所述当前负载值小于所述平均负载值的情况下,确定所述当前元数据服务器处于第一轻载状态;
在所述比对所述当前负载值和所述负载上限值之后,还包括:在所述当前负载值小于所述负载上限值的情况下,确定所述当前元数据服务器处于第二轻载状态。
4.根据权利要求1所述的方法,其特征在于,所述从所述当前元数据服务器中确定出待迁移的目标元数据子树包括:
获取所述当前负载值与所述平均负载值的负载差值;
将所述负载差值确定为所述当前元数据服务器所要迁移的参考迁移负载量;
获取为所述当前元数据服务器配置的迁移参数上限值;
根据所述参考迁移负载量及所述迁移参数上限值,确定待迁移的所述目标元数据子树。
5.根据权利要求4所述的方法,其特征在于,所述根据所述参考迁移负载量及所述迁移参数上限值,确定待迁移的所述目标元数据子树包括:
在所述迁移参数上限值为迁移负载量上限比例的情况下,获取所述参考迁移负载量与所述迁移负载量上限比例二者的乘积,得到目标迁移负载量;
按照所述目标迁移负载量确定所述目标元数据子树。
6.根据权利要求5所述的方法,其特征在于,所述按照所述目标迁移负载量确定所述目标元数据子树包括:
遍历所述当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移负载量达到所述目标迁移负载量:
确定当前已完成迁移的当前迁移负载量;
在所述当前迁移负载量尚未达到所述目标迁移负载量的情况下,从所述当前元数据服务器中获取当前元数据子树,其中,所述当前元数据子树对应的负载量为当前数据负载量;
将所述当前元数据子树确定为所述目标元数据子树,并在完成对所述当前元数据子树的迁移后,更新所述当前迁移负载量,其中,更新前的所述当前迁移负载量与更新后的所述当前迁移负载量之间的差值为所述当前数据负载量。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述确定所述元数据服务器集群的平均负载值之后,还包括:
根据所述当前负载状态信息获取所述当前负载值,其中,所述当前负载状态信息中包括以下至少一种状态参数的参数值:所述当前元数据服务器在单位时间内处理请求的数量、所述当前元数据服务器的处理器使用率、所述当前元数据服务器的负载量;
获取与所述当前负载值匹配的所述负载上限值。
8.一种负载均衡控制装置,其特征在于,包括:
第一获取单元,用于获取元数据服务器集群中当前元数据服务器之外的其他元数据服务器各自定期发送的心跳信息,其中,所述心跳信息中携带有元数据服务器的负载状态信息;
第一确定单元,用于根据所述其他元数据服务器各自的负载状态信息及所述当前元数据服务器的当前负载状态信息,确定所述元数据服务器集群的平均负载值;
第二确定单元,用于在所述当前负载状态信息指示所述当前元数据服务器的当前负载值大于所述平均负载值,且大于为所述当前元数据服务器配置的负载上限值的情况下,确定所述当前元数据服务器处于过载状态;
第三确定单元,用于从所述当前元数据服务器中确定出待迁移的目标元数据子树,并从所述其他元数据服务器中确定出目标元数据服务器,其中,所述目标元数据服务器的负载值小于所述平均负载值;还用于,在迁移参数上限值为迁移子树上限数量的情况下,将所述迁移子树上限数量作为目标迁移子树数量;遍历所述当前元数据服务器中存储的元数据子树,重复执行以下操作,直至已完成迁移的迁移子树数量达到所述目标迁移子树数量:确定当前已完成迁移的当前迁移子树数量;在所述当前迁移子树数量尚未达到所述目标迁移子树数量的情况下,从所述当前元数据服务器中获取当前元数据子树;将所述当前元数据子树确定为所述目标元数据子树,并在完成对所述当前元数据子树的迁移后,对所述当前迁移子树数量进行减一处理;迁移控制单元,用于将所述目标元数据子树迁移至所述目标元数据服务器。
9.一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN202010598972.0A 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备 Active CN111666159B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010598972.0A CN111666159B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备
CN202011273203.XA CN112256438B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010598972.0A CN111666159B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202011273203.XA Division CN112256438B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111666159A CN111666159A (zh) 2020-09-15
CN111666159B true CN111666159B (zh) 2021-08-27

Family

ID=72390147

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011273203.XA Active CN112256438B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备
CN202010598972.0A Active CN111666159B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202011273203.XA Active CN112256438B (zh) 2020-06-28 2020-06-28 负载均衡控制方法和装置、存储介质及电子设备

Country Status (1)

Country Link
CN (2) CN112256438B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650582A (zh) * 2020-12-21 2021-04-13 贝壳技术有限公司 分布式任务处理方法及系统、处理器
CN112738193B (zh) * 2020-12-24 2022-08-19 青岛民航凯亚系统集成有限公司 云计算的负载均衡方法及装置
CN113382040B (zh) * 2021-05-08 2022-09-13 深圳市科思科技股份有限公司 负载均衡方法、电子设备及计算机可读存储介质
CN113608876B (zh) * 2021-08-12 2024-03-29 中国科学技术大学 基于负载类型感知的分布式文件系统元数据负载均衡方法
CN113778692B (zh) * 2021-11-10 2022-03-08 腾讯科技(深圳)有限公司 一种数据处理的方法及装置、计算机设备和存储介质
CN114201306B (zh) * 2022-02-16 2022-05-20 长沙市规划勘测设计研究院 基于负载均衡技术的多维地理空间实体分布方法及系统
CN116684468B (zh) * 2023-08-02 2023-10-20 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523158A (zh) * 2011-12-15 2012-06-27 杭州电子科技大学 一种基于权重的元数据服务器集群负载均衡方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697526A (zh) * 2009-10-10 2010-04-21 中国科学技术大学 分布式文件系统中元数据管理的负载均衡方法及其系统
CN103763365A (zh) * 2014-01-16 2014-04-30 浪潮(北京)电子信息产业有限公司 一种云存储下元数据服务的负载均衡方法及系统
US20150263894A1 (en) * 2014-03-14 2015-09-17 Avni Networks Inc. Method and apparatus to migrate applications and network services onto any cloud
CN103916467B (zh) * 2014-03-25 2017-02-08 中国科学院计算技术研究所 一种元数据集群中负载转移方法及系统
CN106445677A (zh) * 2015-08-06 2017-02-22 阿里巴巴集团控股有限公司 负载均衡方法及设备
CN105183670B (zh) * 2015-10-27 2018-11-27 北京百度网讯科技有限公司 用于分布式缓存系统的数据处理方法和装置
KR101790701B1 (ko) * 2016-01-11 2017-11-21 충북대학교 산학협력단 분산 인-메모리 환경에서 데이터 복제 및 이주를 이용한 부하 분산 시스템
US10261946B2 (en) * 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
CN106598693B (zh) * 2016-05-11 2020-07-28 河南理工大学 一种基于延时策略的能耗及负载敏感的虚拟机整合方法
CN106599308B (zh) * 2016-12-29 2020-01-31 郭晓凤 一种分布式元数据管理方法及系统
CN107145307A (zh) * 2017-04-27 2017-09-08 郑州云海信息技术有限公司 一种基于分布式存储的动态元数据优化方法和系统
CN107196865B (zh) * 2017-06-08 2020-07-24 中国民航大学 一种负载感知的自适应阈值过载迁移方法
CN107590249A (zh) * 2017-09-18 2018-01-16 郑州云海信息技术有限公司 一种分布式文件系统的负载平衡方法、装置及设备
CN107766159A (zh) * 2017-11-13 2018-03-06 郑州云海信息技术有限公司 一种元数据管理方法、装置和计算机可读存储介质
CN110134495B (zh) * 2019-05-21 2022-08-12 山东大学 一种容器跨主机在线迁移方法、存储介质及终端设备
CN110321225B (zh) * 2019-07-08 2021-04-30 腾讯科技(深圳)有限公司 负载均衡方法、元数据服务器及计算机可读存储介质
CN111338801B (zh) * 2020-02-29 2022-12-23 苏州浪潮智能科技有限公司 一种实现元数据负载均衡的子树迁移方法、装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523158A (zh) * 2011-12-15 2012-06-27 杭州电子科技大学 一种基于权重的元数据服务器集群负载均衡方法

Also Published As

Publication number Publication date
CN111666159A (zh) 2020-09-15
CN112256438A (zh) 2021-01-22
CN112256438B (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN111666159B (zh) 负载均衡控制方法和装置、存储介质及电子设备
CN109618002B (zh) 一种微服务网关优化方法、装置及存储介质
CN108205541B (zh) 分布式网络爬虫任务的调度方法及装置
CN111522636B (zh) 应用容器的调整方法、调整系统、计算机可读介质及终端设备
US8914501B2 (en) Method, apparatus, and system for scheduling distributed buffer resources
CN105242983B (zh) 一种数据存储方法以及一种数据存储管理服务器
CN106657191B (zh) 一种负载均衡方法及相关装置、系统
CN105516367A (zh) 分布式数据存储系统、方法和装置
CN113742135B (zh) 数据备份方法、装置及计算机可读存储介质
CN101136911A (zh) 一种采用p2p技术下载文件的方法和p2p下载系统
CN107766159A (zh) 一种元数据管理方法、装置和计算机可读存储介质
CN108243239A (zh) 一种提供网页应用服务的方法、装置、电子设备及系统
CN111338801B (zh) 一种实现元数据负载均衡的子树迁移方法、装置
CN107656807A (zh) 一种虚拟资源的自动弹性伸缩方法及装置
CN112689007B (zh) 资源分配方法、装置、计算机设备和存储介质
CN103441918A (zh) 一种自组织集群服务器系统及其自组织方法
CN108924203B (zh) 数据副本自适应分布方法、分布式计算系统及相关设备
CN110545450B (zh) 一种节点分配方法、系统及电子设备和存储介质
CN112825023A (zh) 集群资源管理方法、装置、电子设备和存储介质
CN111092921A (zh) 数据采集方法、装置及存储介质
CN116346740A (zh) 一种负载均衡方法及装置
CN114595167A (zh) 分布式缓存系统、方法以及装置
CN107295103B (zh) 基于集中式p2p系统的节点管理方法
CN110971647B (zh) 一种大数据系统的节点迁移方法
CN112416888B (zh) 用于分布式文件系统的动态负载均衡方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028558

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant