CN111459407B - 一种基于mds子树均衡算法的数据均衡方法及系统 - Google Patents

一种基于mds子树均衡算法的数据均衡方法及系统 Download PDF

Info

Publication number
CN111459407B
CN111459407B CN202010170670.3A CN202010170670A CN111459407B CN 111459407 B CN111459407 B CN 111459407B CN 202010170670 A CN202010170670 A CN 202010170670A CN 111459407 B CN111459407 B CN 111459407B
Authority
CN
China
Prior art keywords
mds
load
average
imported
mdss
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
CN202010170670.3A
Other languages
English (en)
Other versions
CN111459407A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010170670.3A priority Critical patent/CN111459407B/zh
Publication of CN111459407A publication Critical patent/CN111459407A/zh
Application granted granted Critical
Publication of CN111459407B publication Critical patent/CN111459407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种基于MDS子树均衡算法的数据均衡方法及系统,该方法包括:获取当前系统中包括主控MDS在内所有MDS的负载,根据所有MDS的负载计算平均负载;判断主控MDS的负载≥平均负载*(1.0+最小平衡系数)是否成立,根据任一MDS负载与平均负载的关系确定第一MDS和第二MDS;根据平均负载确定目标负载;最后根据目标负载将第二MDS中的相应目录或分片导出至第一MDS中。该系统包括:负载获取模块、平均负载计算模块、第一判断模块、第一MDS和第二MDS确定模块、目标负载确定模块以及导出模块。通过本申请,能够实现动态平衡,实时性较强。在最小迁移量的情况下进行元数据导入,从而能够避免前端业务部出现卡顿现象,有利于提高数据存储的稳定性。

Description

一种基于MDS子树均衡算法的数据均衡方法及系统
技术领域
本申请涉及存储数据处理技术领域,特别是涉及一种基于MDS(Meta DataService,元数据服务)子树均衡算法的数据均衡方法及系统。
背景技术
随着信息化技术的发展,用于信息存储的分布式存储设备应用越来越广泛。AS13000设备已经大量运用在高性能、云计算以及视频监控等场合。在AS13000中,MDS集群对于整个存储设备的性能具有重要影响,当MDS扩展时,如何对元数据进行管理和均衡,从而确保数据存储的稳定性,是个重要问题。
目前在AS13000设备中对MDS处理元数据和数据均衡的方法,通常是根据MDS动态子树的权重进行数据的平衡。具体地,在集群搭建时首先配置MDS动态子树的权重,动态子树权重高的MDS承载更多的元数据,动态子树权重较低的MDS承载较少的元数据。
然而,目前对MDS处理元数据和数据均衡的方法中,由于MDS动态子树的权重在集群搭建时已经配置,当MDS扩容或者缩容时,无法修改MDS动态子树的权重,就会导致扩容或缩容后出现数据不均衡,从而影响数据存储的稳定性。因此,目前MDS处理数据均衡的方法灵活性和实时性较差。
发明内容
本申请提供了一种基于MDS子树均衡算法的数据均衡方法及系统,以解决现有技术中MDS处理数据均衡的方法灵活性和实时性较差的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种基于MDS子树均衡算法的数据均衡方法,所说方法包括:
获取当前系统中包括主控MDS在内所有MDS的负载;
根据所有MDS的负载,计算得出平均负载;
判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数),其中,
Figure BDA0002409072490000021
如果是,根据任一MDS负载与所述平均负载的关系,确定第一MDS和第二MDS,其中,第一MDS为待导入负载的导入MDS,第二MDS为待导出负载的导出MDS;
根据所述平均负载确定目标负载,其中,第一阈值*平均负载≤目标负载≤第二阈值*平均负载,所述目标负载为负载均衡完毕后第一MDS中的负载,且第二阈值大于第一阈值;
根据所述目标负载,将第二MDS中的相应目录或分片导出至第一MDS中。
可选地,所述获取当前系统中包括主控MDS在内所有MDS的负载,包括:
主控MDS向包括其自身在内的所有MDS发起负载收集请求;
根据所述负载收集请求,包括主控MDS在内的任一MDS利用公式valt+1=(valt)*e-t*ln(0.5)/5+delta,计算得出自身的MDS负载,其中t为时间,delta为元数据访问次数变量,且delta的初始值为0;
根据计算结果生成元数据的负载列表。
可选地,根据所有MDS的负载,计算得出平均负载之前,所述方法还包括:
判断是否收集齐全当前系统中所有MDS的负载;
如果是,执行下一步;
如果否,重新获取当前系统中包括主控MDS在内所有MDS的负载。
可选地,所述根据任一MDS负载与所述平均负载的关系,确定第一MDS和第二MDS,包括:
如果任一MDS负载>所述平均负载,定义所述任一MDS负载为第二MDS;
如果任一MDS负载<所述平均负载,定义所述任一MDS负载为第一MDS;
如果任一MDS负载=所述平均负载,不对所说任一MDS导入负载或导出负载。
可选地,所述第一阈值为0.8,所述第二阈值为1.2。
可选地,根据所述目标负载,将第二MDS中的相应目录或分片导出至第一MDS中的方法,包括:
根据每个第一MDS自身的负载和目标负载,计算得出每个第一MDS待导入的负载;
储存每个第一MDS待导入的负载;
遍历第二MDS中经过集群认证的子树根以及所有子树的下级目录,获取当前目录类的热度值;
根据每个第一MDS待导入的负载和所述热度值,确定第二MDS中待导出的目录或者分片;
根据第二MDS中待导出的目录或者分片,将目录类中的变量信息发送至第一MDS,并更新客户端元数据的锁消息,所述目录类中的变量信息包括:子目录、目录名、目录全阈唯一编号以及锁信息。
一种基于MDS子树均衡算法的数据均衡系统,所述系统包括:
负载获取模块,用于获取当前系统中包括主控MDS在内所有MDS的负载;
平均负载计算模块,用于根据所有MDS的负载,计算得出平均负载;
第一判断模块,用于判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数),其中,
Figure BDA0002409072490000031
第一MDS和第二MDS确定模块,用于当主控MDS的负载满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数)时,根据任一MDS负载与所述平均负载的关系,确定第一MDS和第二MDS,其中,第一MDS为待导入负载的导入MDS,第二MDS为待导出负载的导出MDS;
目标负载确定模块,用于根据所述平均负载确定目标负载,其中,第一阈值*平均负载≤目标负载≤第二阈值*平均负载,所述目标负载为负载均衡完毕后第一MDS中的负载,且第二阈值大于第一阈值;
导出模块,用于根据所述目标负载,将第二MDS中的相应目录或分片导出至第一MDS中。
可选地,所述负载获取模块包括:
请求发起单元,用于向包括其自身在内的所有MDS发起负载收集请求;
计算单元,用于根据所述负载收集请求,包括主控MDS在内的任一MDS利用公式valt+1=(valt)*e-t*ln(0.5)/5+delta,计算得出自身的MDS负载,其中t为时间,delta为元数据访问次数变量,且delta的初始值为0;
负载列表生成单元,用于根据计算结果生成元数据的负载列表。
可选地,所述导出模块包括:
待导入负载计算单元,用于根据每个第一MDS自身的负载和目标负载,计算得出每个第一MDS待导入的负载;
存储单元,用于储存每个第一MDS待导入的负载;
遍历单元,用于遍历第二MDS中经过集群认证的子树根以及所有子树的下级目录,获取当前目录类的热度值;
待导出目录或者分片确定单元,用于根据每个第一MDS待导入的负载和所述热度值,确定第二MDS中待导出的目录或者分片;
发送单元,用于根据第二MDS中待导出的目录或者分片,将目录类中的变量信息发送至第一MDS,并更新客户端元数据的锁消息,所述目录类中的变量信息包括:子目录、目录名、目录全阈唯一编号以及锁信息。
可选地,所述系统中还包括第二判断模块,用于判断是否收集齐全当前系统中所有MDS的负载,如果是,启动平均负载计算模块,如果否,重新启动负载获取模块。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供一种基于MDS子树均衡算法的数据均衡方法,该方法首先获取当前系统中包括主控MDS在内所有MDS的负载,其次根据所有MDS的负载计算得出平均负载;然后判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数),只有满足该条件才继续进行元数据迁移,根据任一MDS负载与平均负载的关系,确定第一MDS和第二MDS;然后根据平均负载确定目标负载;最后根据目标负载,将第二MDS中的相应目录或分片导出至第一MDS中。本实施例中对负载的采集和获取是实时的,随着时间的推移,负载的值是更新的,平均负载和目标负载也是更新的,从而能够实现动态平衡,实时性较强。由于本实施例中负载的变化是实时的,因此扩容和缩容时平均负载和目标负载都是相应变化的,因此灵活性较强。而且本实施例中根据所采集的MDS负载和平均负载的关系确定导入MDS和导出MDS,对元数据的导入按照相应的目录或者分片进行,能够在最小迁移量的情况下进行元数据导入,从而能够避免前端业务部出现卡顿现象,有利于提高数据存储的稳定性。
本申请还提供一种基于MDS子树均衡算法的数据均衡系统,该系统中包括:负载获取模块、平均负载计算模块、第一判断模块、第一MDS和第二MDS确定模块、目标负载确定模块以及导出模块。通过负载获取模块的设置,能够及时获取到当前负载,从而使平均负载计算模块对平均负载,目标负载确定模块对目标负载进行更新,在MDS扩容或者缩容时,及时确定第一MDS和第二MDS,从而实现元数据的准确迁移,实现数据均衡,而不是一直保持相同的平均负载和目标负载进行迁移,因此,本系统中数据均衡的实时性和灵活性较强。另外,本实施例中的导出模块,是根据目标负载,将第二MDS中的目录或分片导出至第一MDS,能够在最小迁移量的情况下进行元数据导入,从而能够避免前端业务部出现卡顿现象,有利于提高数据存储的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种基于MDS子树均衡算法的数据均衡方法的流程示意图;
图2为本申请实施例中MDS负载均衡示意图;
图3为本申请实施例所提供的一种基于MDS子树均衡算法的数据均衡系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本实施例中主要利用HDD硬盘基于MDS的负载优化算法来解决数据均衡问题。本实施例中的负载指的是MDS子系统对系统资源的消耗情况。本实施例主要根据MDS进程请求数、消息队列长度以及CPU负载计算负载。该负载基于MDS进程,每个MDS进程计算自身的负载值。MDS收集到所有MDS的负载信息后,计算出平均负载,并结合自身的负载情况确定导入和导出的MDS,如果自身的负载大于平均负载,就作为导入MDS,最后根据一定的算法将MDS上适合的目录导出到负载低的MDS,这样集群多个MDS的写入数据量就会呈现均衡。
为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
实施例一
参见图1,图1为本申请实施例所提供的一种基于MDS子树均衡算法的数据均衡方法的流程示意图。由图1可知,本实施例中基于MDS子树均衡算法的数据均衡方法,主要包括如下过程:
S1:获取当前系统中包括主控MDS在内所有MDS的负载。
在整个集群中有一个主控MDS,由主控MDS发送负载收集请求。
具体地,步骤S1包括如下过程:
S11:主控MDS向包括其自身在内的所有MDS发起负载收集请求。
S12:根据负载收集请求,包括主控MDS在内的任一MDS利用公式valt+1=(valt)*e-t*ln(0.5)/5+delta,计算得出自身的MDS负载。
其中,t为时间,delta为元数据访问次数变量,且delta的初始值为0,valt为前一个业务时间的负载值,valt+1为后一个业务时间的负载值。本实施例中MDS负载包括两部分:new和delta,其中,new=(valt)*e-t*ln(0.5)/5,new与时间强相关,采用递归算法,其取值随着业务时间t的增大,负载值按照e指数函数曲线逐渐衰减。delta与元数据访问次数强相关,访问依次就累加一次。如果元数据是第一次写,delta就取值为0,负载值为new。
S13:根据计算结果生成元数据的负载列表。
生成负载列表,更加直观,便于后续获取负载总和以及平均负载。
继续参见图1可知,获取当前系统中包括主控MDS在内所有MDS的负载之后,执行步骤S3:根据所有MDS的负载,计算得出平均负载。
根据负载列表,对所有MDS的负载求和,并利用和除以MDS总数量,即可获取平均负载。
进一步地,为确保平均负载的准确性,进而提高数据均衡结果的准确性。在步骤S3之前还可以包括步骤S2:判断是否收集齐全当前系统中所有MDS的负载。如果已经收集齐全当前系统中所有MDS的负载,继续执行下一步,即步骤S3。否则,如果没有收集齐全当前系统中所有MDS的负载,返回步骤S1,重新获取当前系统中包括主控MDS在内所有MDS的负载。
S4:判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数)。
本实施例中最小平衡系数由硬盘容量来决定,
Figure BDA0002409072490000061
如果主控MDS的负载≥平均负载*(1.0+最小平衡系数),执行步骤S5:根据任一MDS负载与平均负载的关系,确定第一MDS和第二MDS。
其中,第一MDS为待导入负载的导入MDS,第二MDS为待导出负载的导出MDS。
本实施例中MDS负载与平均负载有三种关系,具体地步骤S5包括如下过程:
S51:如果任一MDS负载>平均负载,定义任一MDS负载为第二MDS;
S52:如果任一MDS负载<平均负载,定义任一MDS负载为第一MDS;
S53:如果任一MDS负载=平均负载,不对所说任一MDS导入负载或导出负载。
通过以上步骤S51-S53,能够筛选出低于平均负载的MDS,作为第一MDS,以及高于平均负载的MDS,作为第二MDS,作为第二MDS。
S6:根据平均负载确定目标负载。其中,第一阈值*平均负载≤目标负载≤第二阈值*平均负载,目标负载为负载均衡完毕后第一MDS中的负载,且第二阈值大于第一阈值。
本实施例中平均负载只是作为元数据迁移的判断依据,最终任一第二MDS是否需要导出负载,以及任一第一MDS是否需要导入负载,根据目标负载来确定。本实施例中第一阈值*平均负载≤目标负载≤第二阈值*平均负载。目标负载的设置,使得可接受范围内的负载变化不必进行元数据迁移,既能够确保根据系统中负载的变化及时进行数据迁移,又避免负载有任何变化都进行数据迁移,有利于节省系统资源。
本实施例中第一阈值为0.8,第二阈值为1.2。即目标负载的优选值为:0.8*平均负载≤目标负载≤1.2*平均负载。该阈值的设置,能够使元数据迁移控制在相对稳定的频率,有利于提高数据均衡的效率。
继续参见图1可知,确定目标负载之后,执行步骤S7:根据目标负载,将第二MDS中的相应目录或分片导出至第一MDS中。
具体地,步骤S7包括如下过程:
S71:根据每个第一MDS自身的负载和目标负载,计算得出每个第一MDS待导入的负载。
本实施例中可以导入负载的第一MDS即importers。
S72:储存每个第一MDS待导入的负载。
计算每个importers待导入的负载后,保存至balance_state_t的targets结构中。本实施例中balance_state_t和targets是代码中自定义的结构体变量,targets是balance_state_t的子元素。
S73:遍历第二MDS中经过集群认证的子树根以及所有子树的下级目录,获取当前目录类的热度值。
S74:根据每个第一MDS待导入的负载和热度值,确定第二MDS中待导出的目录或者分片。
由以上步骤S73和S74可知,遍历第二MDS所有auth子树根,优先导回从其他mds导入的子树。每一个第二MDS的子树都需要经过auth认证,也就是经过集群认证。认证成功的第二MDS显示active,如果认证失败则该第二MDS显示failed。只有active的子树可以进行业务处理。
针对每一个可导入的importers,也就是balance_state_t的targets,遍历所有子树的下级目录,获取到当前目录类CDir的热度值。根据当前CDir的热度值,找出符合条件的目录或分片,并导入到相应的MDS中,直到导出的热度值target*(0.8~1.2)。需要注意的是,为提高数据均衡效率,防止匹配时间过长本实施例可以设置负载均衡时间≤0.1秒。
S75:根据第二MDS中待导出的目录或者分片,将目录类中的变量信息发送至第一MDS,并更新客户端元数据的锁消息。
其中,目录类中的变量信息包括:子目录、目录名、目录全阈唯一编号以及锁信息。具体地,目录类CDir导出时会打包所有子目录、目录名、目录全阈唯一编号以及锁信息,发送至第一MDS,进行数据同步,并更新客户端端元数据锁信息。
其中,CDir是代码实现中定义的目录类,这个类中包括子目录subdir、目录名dentry、目录全域唯一编号inode和锁cap等变量。cap由MDS进行管理,其将元数据划分为多个部分,每个部分都有专门的锁SimpleLock、ScatterLock、FileLock来保护,MDS通过这些锁的状态来确定cap可以怎么分配,索取文件的cap相当于把该文件加锁。
参见图2,图2为本申请实施例中MDS负载均衡示意图。由图2可知,该图以mds0为主控MDS,且假设所有目录均设置在mds0上。通过负载收集,mds0的负载为3200,其他mds上的负载为0,总负载为3200。计算得出target为800,需要向mds1、mds2以及mds3分别导入800的目录。从子树根开始匹配,将500和300导入mds1,将800导入mds2,将700导入mds3,以上导入后的目标负载均符合:0.8*平均负载≤目标负载≤1.2*平均负载,完成匹配。
实施例二
在图1和图2所示实施例的基础之上参见图3,图3为本申请实施例所提供的一种基于MDS子树均衡算法的数据均衡系统的结构示意图。由图3可知,本实施例中基于MDS子树均衡算法的数据均衡系统主要包括:负载获取模块、平均负载计算模块、第一判断模块、第一MDS和第二MDS确定模块、目标负载确定模块以及导出模块。
其中,负载获取模块,用于获取当前系统中包括主控MDS在内所有MDS的负载。平均负载计算模块,用于根据所有MDS的负载,计算得出平均负载。第一判断模块,用于判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数),其中,
Figure BDA0002409072490000091
第一MDS和第二MDS确定模块,用于当主控MDS的负载满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数)时,根据任一MDS负载与平均负载的关系,确定第一MDS和第二MDS,其中,第一MDS为待导入负载的导入MDS,第二MDS为待导出负载的导出MDS。目标负载确定模块,用于根据平均负载确定目标负载,其中,第一阈值*平均负载≤目标负载≤第二阈值*平均负载,目标负载为负载均衡完毕后第一MDS中的负载,且第二阈值大于第一阈值。导出模块,用于根据目标负载,将第二MDS中的相应目录或分片导出至第一MDS中。
进一步地,负载获取模块包括:请求发起单元、计算单元和负载列表生成单元。其中,请求发起单元,用于向包括其自身在内的所有MDS发起负载收集请求。计算单元,用于根据负载收集请求,包括主控MDS在内的任一MDS利用公式valt+1=(valt)*e-t*ln(0.5)/5+delta,计算得出自身的MDS负载,其中t为时间,delta为元数据访问次数变量,且delta的初始值为0。负载列表生成单元,用于根据计算结果生成元数据的负载列表。
导出模块包括:待导入负载计算单元、存储单元、遍历单元、待导出目录或者分片确定单元和发送单元。其中,待导入负载计算单元,用于根据每个第一MDS自身的负载和目标负载,计算得出每个第一MDS待导入的负载。存储单元,用于储存每个第一MDS待导入的负载。遍历单元,用于遍历第二MDS中经过集群认证的子树根以及所有子树的下级目录,获取当前目录类的热度值。待导出目录或者分片确定单元,用于根据每个第一MDS待导入的负载和热度值,确定第二MDS中待导出的目录或者分片。发送单元,用于根据第二MDS中待导出的目录或者分片,将目录类中的变量信息发送至第一MDS,并更新客户端元数据的锁消息,目录类中的变量信息包括:子目录、目录名、目录全阈唯一编号以及锁信息。
进一步地,本实施例的系统中还包括第二判断模块,用于判断是否收集齐全当前系统中所有MDS的负载,如果是,启动平均负载计算模块,如果否,重新启动负载获取模块。
该实施例基于MDS子树均衡算法的数据均衡系统的工作原理和工作方法,在图1和图2所示的实施例中已经详细阐述,在此不再赘述。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种基于MDS子树均衡算法的数据均衡方法,其特征在于,所说方法包括:
获取当前系统中包括主控MDS在内所有MDS的负载;
根据所有MDS的负载,计算得出平均负载;
判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数),其中,
Figure FDA0004039726550000011
如果是,根据任一MDS负载与所述平均负载的关系,确定第一MDS和第二MDS,其中,第一MDS为待导入负载的导入MDS,第二MDS为待导出负载的导出MDS;
根据所述平均负载确定目标负载,其中,第一阈值*平均负载≤目标负载≤第二阈值*平均负载,所述目标负载为负载均衡完毕后第一MDS中的负载,且第二阈值大于第一阈值;
根据所述目标负载,将第二MDS中的相应目录或分片导出至第一MDS中;
其中,所述获取当前系统中包括主控MDS在内所有MDS的负载,包括:
主控MDS向包括其自身在内的所有MDS发起负载收集请求;
根据所述负载收集请求,包括主控MDS在内的任一MDS利用公式valt+1=(valt)*e-t*ln(0.5)/5+elta,计算得出自身的MDS负载,其中t为时间,delta为元数据访问次数变量,且delta的初始值为0;
根据计算结果生成元数据的负载列表;
根据所述目标负载,将第二MDS中的相应目录或分片导出至第一MDS中的方法,包括:
根据每个第一MDS自身的负载和目标负载,计算得出每个第一MDS待导入的负载;
储存每个第一MDS待导入的负载;
遍历第二MDS中经过集群认证的子树根以及所有子树的下级目录,获取当前目录类的热度值;
根据每个第一MDS待导入的负载和所述热度值,确定第二MDS中待导出的目录或者分片,设置负载均衡时间≤0.1秒;
根据第二MDS中待导出的目录或者分片,将目录类中的变量信息发送至第一MDS,并更新客户端元数据的锁消息,所述目录类中的变量信息包括:子目录、目录名、目录全阈唯一编号以及锁信息。
2.根据权利要求1所述的一种基于MDS子树均衡算法的数据均衡方法,其特征在于,根据所有MDS的负载,计算得出平均负载之前,所述方法还包括:
判断是否收集齐全当前系统中所有MDS的负载;
如果是,执行下一步;
如果否,重新获取当前系统中包括主控MDS在内所有MDS的负载。
3.根据权利要求1所述的一种基于MDS子树均衡算法的数据均衡方法,其特征在于,所述根据任一MDS负载与所述平均负载的关系,确定第一MDS和第二MDS,包括:
如果任一MDS负载>所述平均负载,定义所述任一MDS负载为第二MDS;
如果任一MDS负载<所述平均负载,定义所述任一MDS负载为第一MDS;
如果任一MDS负载=所述平均负载,不对所说任一MDS导入负载或导出负载。
4.根据权利要求1所述的一种基于MDS子树均衡算法的数据均衡方法,其特征在于,所述第一阈值为0.8,所述第二阈值为1.2。
5.一种基于MDS子树均衡算法的数据均衡系统,其特征在于,所述系统包括:
负载获取模块,用于获取当前系统中包括主控MDS在内所有MDS的负载;
平均负载计算模块,用于根据所有MDS的负载,计算得出平均负载;
第一判断模块,用于判断主控MDS的负载是否满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数),其中,
Figure FDA0004039726550000021
第一MDS和第二MDS确定模块,用于当主控MDS的负载满足:主控MDS的负载≥平均负载*(1.0+最小平衡系数)时,根据任一MDS负载与所述平均负载的关系,确定第一MDS和第二MDS,其中,第一MDS为待导入负载的导入MDS,第二MDS为待导出负载的导出MDS;
目标负载确定模块,用于根据所述平均负载确定目标负载,其中,第一阈值*平均负载≤目标负载≤第二阈值*平均负载,所述目标负载为负载均衡完毕后第一MDS中的负载,且第二阈值大于第一阈值;
导出模块,用于根据所述目标负载,将第二MDS中的相应目录或分片导出至第一MDS中;
其中,所述负载获取模块包括:
请求发起单元,用于向包括其自身在内的所有MDS发起负载收集请求;
计算单元,用于根据所述负载收集请求,包括主控MDS在内的任一MDS利用公式valt+1=(valt)*e-t*ln(0.5)/5+elta,计算得出自身的MDS负载,其中t为时间,delta为元数据访问次数变量,且delta的初始值为0;
负载列表生成单元,用于根据计算结果生成元数据的负载列表;
所述导出模块包括:
待导入负载计算单元,用于根据每个第一MDS自身的负载和目标负载,计算得出每个第一MDS待导入的负载;
存储单元,用于储存每个第一MDS待导入的负载;
遍历单元,用于遍历第二MDS中经过集群认证的子树根以及所有子树的下级目录,获取当前目录类的热度值;
待导出目录或者分片确定单元,用于根据每个第一MDS待导入的负载和所述热度值,确定第二MDS中待导出的目录或者分片,设置负载均衡时间≤0.1秒;
发送单元,用于根据第二MDS中待导出的目录或者分片,将目录类中的变量信息发送至第一MDS,并更新客户端元数据的锁消息,所述目录类中的变量信息包括:子目录、目录名、目录全阈唯一编号以及锁信息。
6.根据权利要求5所述的一种基于MDS子树均衡算法的数据均衡系统,其特征在于,所述系统中还包括第二判断模块,用于判断是否收集齐全当前系统中所有MDS的负载,如果是,启动平均负载计算模块,如果否,重新启动负载获取模块。
CN202010170670.3A 2020-03-12 2020-03-12 一种基于mds子树均衡算法的数据均衡方法及系统 Active CN111459407B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010170670.3A CN111459407B (zh) 2020-03-12 2020-03-12 一种基于mds子树均衡算法的数据均衡方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010170670.3A CN111459407B (zh) 2020-03-12 2020-03-12 一种基于mds子树均衡算法的数据均衡方法及系统

Publications (2)

Publication Number Publication Date
CN111459407A CN111459407A (zh) 2020-07-28
CN111459407B true CN111459407B (zh) 2023-05-16

Family

ID=71678441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010170670.3A Active CN111459407B (zh) 2020-03-12 2020-03-12 一种基于mds子树均衡算法的数据均衡方法及系统

Country Status (1)

Country Link
CN (1) CN111459407B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952005B (zh) * 2023-02-24 2023-05-30 浪潮电子信息产业股份有限公司 一种元数据负载均衡方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897116A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种虚拟机迁移方法及装置
CN107145307A (zh) * 2017-04-27 2017-09-08 郑州云海信息技术有限公司 一种基于分布式存储的动态元数据优化方法和系统
CN107590249A (zh) * 2017-09-18 2018-01-16 郑州云海信息技术有限公司 一种分布式文件系统的负载平衡方法、装置及设备
CN107766159A (zh) * 2017-11-13 2018-03-06 郑州云海信息技术有限公司 一种元数据管理方法、装置和计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897116A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种虚拟机迁移方法及装置
CN107145307A (zh) * 2017-04-27 2017-09-08 郑州云海信息技术有限公司 一种基于分布式存储的动态元数据优化方法和系统
CN107590249A (zh) * 2017-09-18 2018-01-16 郑州云海信息技术有限公司 一种分布式文件系统的负载平衡方法、装置及设备
CN107766159A (zh) * 2017-11-13 2018-03-06 郑州云海信息技术有限公司 一种元数据管理方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
CN111459407A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN110489059B (zh) 数据集群存储的方法、装置及计算机设备
CN109241161B (zh) 一种气象数据管理方法
US10992459B2 (en) Updating a state Merkle tree
US10901619B2 (en) Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse
CN111262726B (zh) 一种配置信息更新方法、装置及计算机可读存储介质
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
CN109582649B (zh) 一种元数据存储方法、装置、设备及可读存储介质
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
CN113608876B (zh) 基于负载类型感知的分布式文件系统元数据负载均衡方法
CN111459407B (zh) 一种基于mds子树均衡算法的数据均衡方法及系统
CN107480254B (zh) 适用于分布式内存数据库的在线负载均衡方法
CN103544300A (zh) 一种云环境下可扩展存储索引结构的实现方法
CN108304555A (zh) 分布式地图数据处理方法
CN115981848B (zh) 一种内存数据库分片调整方法、设备
CN113111351A (zh) 测试方法、装置和计算机可读存储介质
CN115934794A (zh) 一种海量多源异构遥感空间数据查询的弹性管理方法
US10762139B1 (en) Method and system for managing a document search index
CN110519349B (zh) 一种基于DNS固定分配虚拟ip的负载均衡方法及装置
CN108595482A (zh) 一种数据索引方法及装置
CN104639570A (zh) 资源对象存储处理方法及装置
CN114265817A (zh) 一种分布式文件系统索引计算方法、装置及电子设备
CN109327520B (zh) 建立终端与服务器节点连接的方法及装置
CN111078400A (zh) 一种基于cpu使用率的负载均衡方法及装置
CN114647385B (zh) 一种分布式存储的卷映射管理方法、系统及相关装置
CN118427161B (zh) 一种分布式文件系统与目录操作方法

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