CN110321225A - 负载均衡方法、元数据服务器及计算机可读存储介质 - Google Patents
负载均衡方法、元数据服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110321225A CN110321225A CN201910614001.8A CN201910614001A CN110321225A CN 110321225 A CN110321225 A CN 110321225A CN 201910614001 A CN201910614001 A CN 201910614001A CN 110321225 A CN110321225 A CN 110321225A
- Authority
- CN
- China
- Prior art keywords
- blocks
- files
- disk
- copy
- destination block
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种负载均衡方法、元数据服务器及计算机可读存储介质,方法包括:接收客户端发送的N个文件读取请求;根据N个文件读取请求确定目标存储服务器;在目标存储服务器中确定目标磁盘,并获取目标磁盘中存储的目标文件块对应的文件块副本的状态信息;根据文件块副本的状态信息确定分配结果;根据负载比例确定N个文件读取请求各自读取的目标磁盘中目标文件块对应的文件块副本;并将N个文件读取请求各自读取的目标磁盘中目标文件块对应的文件块副本的位置信息发送给客户端。实施本申请,可以避免磁盘负载不均衡,可以提高分布式文件系统块迁移过程中针对目标文件块的读性能。
Description
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种负载均衡方法、元数据服务器及计算机可读存储介质。
背景技术
随着互联网技术的蓬勃发展,分布式文件系统的出现有效解决了数据的存储和管理难题。现有的分布式文件系统一般由电子设备、元数据服务器和存储服务器组成,其中电子设备上运行有客户端,用户可以通过账号登录该客户端访问以分布式文件系统;元数据服务器,也即元数据库,用于存储分布式文件系统的元数据。通俗地说,元数据为描述数据的数据,主要是描述数据属性信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。而存储服务器用于存储分布式文件系统的实际用户数据。在实际应用中,分布式文件系统采用多副本备份的存储策略存储海量的实际用户数据。当客户端向分布式文件系统中写入文件,元数据服务器会根据写入的文件,将文件分为不同的块,并将每个文件块分发到N个存储服务器上进行存储,并且每个文件块会有M个文件块副本(M、N大于0),每个文件块副本对应存储在一个存储服务器上,进行数据的读写操作时,客户端与元数据服务器进行应用的交互,并由元数据服务器根据自身元数据的情况将读取或者写入操作分发到具体的存储服务器上进行操作。
可以理解的是,在分布式文件系统中,使用者通常会根据数据量的增长或减少情况动态的增加或删除存储服务器节点,因此存储服务器总的个数会发生变化。与此同时,在使用过程中可能有节点磁盘损坏等情况发生。一旦节点磁盘发生损坏,会触发块迁移操作。这里,块迁移是指,在文件块副本损坏时,分布式文件系统自动拷贝文件块副本的行为,以保证文件块副本的数量不发生变化。而块迁移会加大被迁移的文件块副本所在磁盘的负载。假设现有中分布式文件系统中的存储服务器的数量为3个,分别为存储服务器1、存储服务器2以及存储服务器3,每个存储服务器中均包括4个磁盘,其中,存储服务器1中的磁盘1存储的文件块发生块迁移操作,当在存储服务器1中的磁盘1发生块迁移操作的同时,客户端发起针对存储服务器1中的磁盘1内的文件块的读取请求,在这种情况下,容易带来磁盘1负载不均衡的问题。
发明内容
本申请实施例提供一种负载均衡方法、元数据服务器及计算机可读存储介质,可以避免磁盘负载不均衡的问题,从而可以提高分布式文件系统的整体性能。
第一方面,本申请实施例提供了一种负载均衡方法,应用于分布式文件系统中的元数据服务器侧,该方法包括:
元数据服务器接收客户端发送的N个文件读取请求;其中,所述N个文件读取请求用于请求读取目标文件块;所述目标文件块包括M个文件块副本;M、N为大于0的正整数;
所述元数据服务器根据所述N个文件读取请求在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘,并获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘;
所述元数据服务器根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例;
所述元数据服务器根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本,并将所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本的位置信息发送给所述客户端,所述客户端用于根据所述目标磁盘中所述目标文件块对应的文件块副本的位置信息读取文件块副本。
在其中一个可能的实现方式中,所述元数据服务器根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果。
在其中一个可能的实现方式中,所述根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
在其中一个可能的实现方式中,所述根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
在其中一个可能的实现方式中,所述方法还包括:
根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。
在其中一个可能的实现方式中,所述元数据服务器在所述目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘之后,获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息之前,还包括:
在包含所述目标文件块对应的文件块副本的磁盘中确定每个磁盘中的文件块副本的分布状态,所述分布状态用于指示磁盘中的数据分布均衡或者磁盘中的数据分布不均衡;
当所述分布状态指示磁盘中的数据分布均衡时,将数据分布均衡的磁盘确定为所述目标磁盘。
在其中一个可能的实现方式中,所述目标文件块对应的文件块副本的状态信息包括不可用状态、迁移状态或正常状态中的一种。
第二方面,本申请实施例提供了一种负载均衡装置,所述负载均衡装置应用于元数据服务器,包括:
接收单元,用于接收客户端发送的N个文件读取请求;其中,所述N个文件读取请求用于请求读取目标文件块;所述目标文件块包括M个文件块副本;M为大于0的正整数;
第一确定单元,用于根据所述N个文件读取请求在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘;
获取单元,用于获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘;
第二确定单元,用于根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果;其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例;
第三确定单元,用于根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本;
发送单元,用于将所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本的位置信息发送给所述客户端,所述客户端用于根据所述目标磁盘中所述目标文件块对应的文件块副本的位置信息读取文件块副本。
在其中一个可能的实现方式中,所述第二确定单元用于:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果。
在其中一个可能的实现方式中,所述第二确定单元包括第一确定子单元和第二确定子单元;其中,
所述第一确定子单元,用于根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
所述第二确定子单元,用于根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
在其中一个可能的实现方式中,所述第一确定子单元包括第一处理单元、第二处理单元和第三处理单元;其中,
所述第一处理单元,用于根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
所述第二处理单元,用于根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
所述第三处理单元,用于根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
在其中一个可能的实现方式中,所述第一确定子单元还包括第四处理单元,其中
所述第四处理单元,根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。
在其中一个可能的实现方式中,所述负载均衡装置还包括:第四确定单元和第五确定单元;其中,
所述第四确定单元,用于在包含所述目标文件块对应的文件块副本的磁盘中确定每个磁盘中的文件块副本的分布状态,所述分布状态用于指示磁盘中的数据分布均衡或者磁盘中的数据分布不均衡;
所述第五确定单元,用于当所述分布状态指示磁盘中的数据分布均衡时,将数据分布均衡的磁盘确定为所述目标磁盘。
在其中一个可能的实现方式中,所述目标文件块对应的文件块副本的状态信息包括不可用状态、迁移状态或正常状态中的一种。
第三方面,本申请实施例提供了一种元数据服务器,该元数据服务器具有实现上述第一方面中元数据服务器行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在其中一种可能的实现方式中,该元数据服务器的结构中包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例中第一方面中的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第五方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第六方面,本申请实施例还提供了一种分布式文件系统,所述分布式文件系统包括电子设备、元数据服务器和存储服务器,其中,
所述电子设备上运行有客户端,所述元数据服务器执行如第一方面中的元数据服务器执行的步骤。
在其中一种可能的实现方式中,所述存储服务器包括区块链节点。
实施本申请实施例,元数据服务器在接收到客户端发起的针对目标文件块的N个文件读取请求时,元数据服务器根据目标磁盘中存储的目标文件块对应的文件块副本的状态信息确定分配结果,并将该分配结果发送给客户端,以使客户端读取目标磁盘中目标文件块对应的文件块副本。这里,分配结果为处于迁移状态的文件块副本和处于正常状态的文件块副本在响应文件读取请求时需要承担的负载比例,该负载比例可以保证磁盘负载的均衡。通过这一实现方式,可以避免现有技术中当分布式文件系统中存在文件块副本发生迁移(特别地,当有多个文件块副本发生迁移,迁移加剧用户读文件块副本的延时)时,将全部文件读取请求分配给处于正常状态的文件块副本带来的负载不均衡的问题,由于本申请描述的技术方案可以根据磁盘预留给文件读取请求的剩余负载能力来动态分配文件读取请求,实现了磁盘的负载均衡,从而可以提高分布式文件系统块迁移过程中针对目标文件块的读性能,进而可以提高分布式文件系统的整体性能。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种分布式文件系统的系统架构图;
图2A是本申请实施例提供的一种存储服务器中文件块副本的分布示意图;
图2B是本申请实施例提供的一种区块链节点中文件块副本的分布示意图;
图3是本申请实施例提供一种负载均衡方法的场景示意图;
图4是本申请实施例提供的一种负载均衡方法的流程示意图;
图5A是本申请实施例提供的一种负载均衡装置的结构示意图;
图5B是本申请实施例提供的另一种负载均衡装置的结构示意图;
图6是本申请实施例提供的一种元数据服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合图1介绍下本申请实施例中所描述的分布式文件系统,如图1所示的分布式文件系统中,采用多副本备份方式的存储策略时,数据文件被分为不同的块,块,是文件存储的基本组织单位。在本申请实施例中,一个文件块可以包括多个内容一致的文件块副本。同一个文件块对应的文件块副本会分别存储在不同的存储服务器中,例如,如图2A所示,该分布式文件系统包括客户端、元数据服务器和存储服务器,具体地,存储服务器的数量为4个,分别为存储服务器1、存储服务器2、存储服务器3以及存储服务器4。其中,存储服务器1中存储有文件块1、文件块2、文件块3、文件块5、文件块6、文件块7;存储服务器2中存储有文件块1、文件块2、文件块4、文件块5、文件块6、文件块8;存储服务器3中存储有文件块1、文件块3、文件块4、文件块5、文件块7、文件块8;存储服务器4中存储有文件块2、文件块3、文件块4、文件块6、文件块7、文件块8。以文件块1为例,可以知道的是,在该分布式文件系统中包含3个内容一致的文件块副本,进一步地,这3个文件块副本存储在存储服务器1、存储服务器2以及存储服务器3中。
需要说明的是,如图1所示的分布式文件系统中,存储服务器可以包括通用存储器,还可以包括区块链节点,等等。以区块链节点为例,如图2B所示,分布式文件系统可以包括多个区块链节点,其中,每个区块链节点中均存储有文件块。一般来说,区块链节点是指区块链网络中的设备,具体地,该设备采用区块链技术进行数据的多份存储。这里,由于区块链节点可以无限扩展,从而可以避免因分布式文件系统中的节点数量有限而带来的分布式文件系统的存储性能不高的问题。
另外,在本申请实施例中,关于“区块链节点”的功能实现请参见下文中“存储服务器”的的文字描述,此处不多加赘述。
基于图1所示的分布式文件系统的架构示意图,下面介绍本申请描述的技术方案可以适应的应用场景。请参见图3,是本申请实施例提供的一种负载均衡方法的场景示意图。如图3所示,电子设备100上行有客户端,用户可以在该客户端上注册账号(例如,用户1注册的账号为账号1、用户2注册的账号为账号2、用户3注册的账号为账号3),然后,通过账号登录该客户端。当用户通过账号登录该客户端之后,可以向元数据服务器发送文件块的读取请求,例如,用户1、用户2、用户3分别向元数据服务器发送针对文件块1的读取请求,元数据服务器在接收到这3个文件读取请求之后,元数据服务器根据文件读取请求查询本地文件索引(这里,文件索引是指文件是由哪些文件块组成),继而,元数据服务器可以获知哪些存储服务器中存储有目标文件块对应的文件块副本,以最终确定目标存储服务器。例如,图3所示的目标存储服务器为存储服务器1。其中,存储服务器1包括3个磁盘,分别为磁盘1、磁盘2以及磁盘3。元数据服务器选择磁盘2作为目标磁盘,具体地,磁盘2中存储有4个内容一致的文件块1副本,分别为1个处于正常(也即可用)状态的文件块1、2个处于不可用状态的文件块1以及处于迁移状态的文件块1。对于元数据服务器来说,元数据服务器可以获取目标磁盘中存储的目标文件块对应的文件块副本的状态信息,并根据目标磁盘中存储的目标文件块对应的文件块副本的状态信息确定分配结果,例如,确定好的分配结果可以为:文件读取请求1和文件读取请求2读取处于正常状态的文件块1,文件读取请求读取处于迁移状态的文件块1。之后,元数据服务器将上述分配结果分别返回给3个不同的用户,以用户1为例,元数据服务器向用户1返回处于迁移状态的文件块1的位置信息,那么,用户1可以读取对应的文件块1。具体地,在客户端读取文件块1时,目标存储服务器和客户端建立通信连接,并开始向客户端发送读取文件的文件块1数据,从而完成数据读取。由此可见,元数据服务器可以根据目标磁盘中存储的目标文件块对应的文件块副本的状态信息确定分配结果,由于分配结果为处于迁移状态的文件块副本和处于正常状态的文件块副本在响应文件读取请求时需要承担的负载比例,该负载比例可以保证磁盘负载的均衡,从而可以提高分布式文件系统块迁移过程中针对目标文件块的读性能,进而可以提高分布式文件系统的整体性能。
请参见图4,是本申请实施例提供的一种负载均衡方法的流程示意图,该方法可以包括但不限于如下步骤:
步骤S400、客户端向元数据服务器发送N个文件读取请求,其中,N个文件读取请求用于请求读取目标文件块;目标文件块包括M个文件块副本,M、N为大于0的正整数。
如前所述,在本申请实施例所描述的分布式文件系统中,同一个文件块对应的文件块副本会分别存储在不同的存储服务器中。例如,以目标文件块为文件块1为例,在该分布式文件系统中包含3个内容一致的文件块副本。
在本申请实施例中,N个文件读取请求用于读取同一个目标文件块。其中,N为大于0的正整数。
步骤S402、元数据服务器接收客户端发送的N个文件读取请求。
步骤S404、元数据服务器根据N个文件读取请求在目标存储服务器中确定包含目标文件块对应的文件块副本的磁盘,并获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘。
在实际应用中,考虑到图1所示的分布式文件系统中存储服务器的数量往往为多个,当目标文件块对应的文件块副本被存储在这多个存储服务器中时,需要先确定目标存储服务器,然后,在目标存储服务器中选择需要被均衡的一个磁盘,下面对其进行详细阐述:
首先,元数据服务器根据N个文件读取请求确定目标存储服务器,其中,所述目标存储服务器为包含所述目标文件块对应的文件块副本的存储服务器。
在本申请实施中,元数据服务器中存储有元数据信息,这里,元数据信息是指描述数据的数据。具体地,元数据信息可以包括文件索引(文件索引是指文件是由哪些文件块组成)、文件块对应的文件块副本到存储服务器位置的映射,等等。
当元数据服务器接收到客户端发送的文件读取请求之后,元数据服务器可以根据文件读取请求携带的目标文件块的标识信息(例如,文件块名称)查询本地文件索引,从而可以获知哪些存储服务器中存储有目标文件块对应的文件块副本,以最终确定目标存储服务器。
如前所述,分布式文件系统中往往包含多个存储服务器,例如,存储服务器1、存储服务器2以及存储服务器3。在一种情形下,当这3个存储服务器中,只有存储服务器2存储有目标文件块对应的文件块副本,此时,将服务服务器2确定为目标存储服务器。在另一种情形下,当这3个存储服务器中,存储服务器1和存储服务器2均存储有目标文件块对应的文件块副本,此时,存储服务器1和存储服务器2作为目标存储服务器。
从而可以知道的是,在本申请实施例中,目标存储服务器的数量可以包括1个,也可以包括至少2个,本申请不作具体限定。
从上述描述可以知道的是,在分布式文件系统所包含的多个存储服务器中,只需满足:存储服务器中存储有目标文件块对应的文件块副本,此时,将包含有目标文件块对应的文件块副本的存储服务器确定为目标存储服务器。
在确定好了目标存储服务器之后,元数据服务器可以在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘,并在包含有目标文件块对应的文件块副本的多个磁盘中确定目标磁盘。
在一种可能的实现方式中,目标磁盘为包含目标文件块对应的文件块副本的磁盘中的任意一个磁盘。例如,如图3所示,以目标文件块为文件块1为例,目标磁盘可以为磁盘1,也可以为磁盘2,还可以为磁盘3。
在一种可能的实现方式中,目标磁盘为包含目标文件块对应的文件块副本的多个磁盘中数据分布均衡的一个磁盘。在本申请实施例中,描述了一种如何确定目标磁盘的方法,该方法可以包括如下步骤:
步骤A1、在包含所述目标文件块对应的文件块副本的磁盘中确定每个磁盘中的文件块副本的分布状态,所述分布状态用于指示磁盘中的数据分布均衡或者磁盘中的数据分布不均衡;
步骤A2、当所述分布状态指示磁盘中的数据分布均衡时,将数据分布均衡的磁盘确定为所述目标磁盘。
在本申请实施例中,假设包含目标文件块对应的文件块副本的磁盘有磁盘1、磁盘2、磁盘3以及磁盘4。在实际应用中,如何确定这4个磁盘中的文件块副本的分布状态,可以包括如下实现方式:
作为其中一种可选的实现方式,可以通过计算这4个磁盘中每个磁盘用量的方差,这里,方差可以表征分布状态。当方差大于设定好的阈值时,表示当前磁盘中的数据分布不均衡;当方差小于设定好的阈值时,表示当前磁盘中的数据分布均衡。
作为其中另一种可选的实现方式,可以通过计算这4个磁盘中每个磁盘用量的平均值,然后,确定每个磁盘的当前磁盘用量与平均值之间的差值。在确定好每个磁盘的当前磁盘用量与平均值之间的差值之后,可以按照差值从小到大的顺序对上述4个磁盘进行排序,得到排序结果。之后,在排序结果中选择差值最小的磁盘确定为目标磁盘。
需要说明的是,当通过分布状态确定每个磁盘中的数据分布均不均衡时,还可以通过设定上述4个磁盘中的每个磁盘的优先级顺序,并根据优先级顺序确定目标磁盘。
步骤S406、元数据服务器根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
在本申请实施例中,元数据服务器中维护一张目标文件块对应的文件块副本的状态信息表,在该状态信息表中,将不可用的文件块副本标记为“不可用”状态,将被迁移的文件块副本标记为“迁移”状态,将可用的文件块副本标记为“正常”状态。
在实际应用中,当元数据服务器针对目标文件块对应的文件块副本有发起迁移操作或者接收到迁移完毕的信令时,元数据服务器均会实时更新上述状态信息表。
具体实现中,元数据服务器周期性地获取目标磁盘中存储的目标文件块对应的文件块副本的状态信息,以提高后续元数据服务器在确定分配结果时的准确度。
具体实现中,所述元数据服务器根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果。
具体实现中,所述根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
在本申请实施例中,可以将Q1与Q2之比作为负载比例。
具体实现中,所述根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
这里,根据目标磁盘中处于迁移状态的目标文件块对应的文件块副本的数量和处于正常状态的目标文件块对应的文件块副本的数量确定的目标磁盘的磁盘性能可以为经过归一化量化后的数值。具体地,该数值介于[0,1]之间。
在实际应用中,确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2,可以包括:
根据第一公式确定所述Q1,所述第一公式包括:
其中,所述Q1表示处于迁移状态的文件块副本的剩余可用负载能力,t为所述目标磁盘中所述目标文件块对应的文件块副本处于迁移状态的数量;n为所述目标磁盘中所述目标文件块对应的文件块副本处于正常状态的数量;为剩余可用负载能力常数;这里,表示所述目标磁盘的磁盘性能;
根据第二公式确定所述Q2,所述第二公式为:
其中,所述Q2表示处于正常状态的文件块副本的可用负载能力,所述t为所述目标磁盘中所述目标文件块对应的文件块副本处于迁移状态的数量;所述n为所述目标磁盘中所述目标文件块对应的文件块副本处于正常状态的数量;这里,表示所述目标磁盘的磁盘性能。
需要说明的是,在本申请实施例中并不限定确定剩余可用负载能力Q1和可用负载能力Q2的先后执行顺序。
作为一种可选的实现方式,还可以将与n之比作为负载比例。
此外,这里需要说明的是,根据目标磁盘中处于迁移状态的目标文件块对应的文件块副本的数量和处于正常状态的目标文件块对应的文件块副本的数量确定的负载比例的其他变形实现方式应当属于本申请的保护范围,此处不一一列举。
在本申请实施例中,剩余可用负载能力常数可以用于评价处于迁移状态的文件块副本的剩余可用负载能力。一般来说,剩余可用负载能力常数值越大,表示其剩余可用负载能力越强。那么,相应地,剩余可用负载能力常数值越小,表示其剩余可用负载能力越弱。
在其中一种可能的实现方式中,剩余可用负载能力常数为经验值,例如,可以结合业务特点确定剩余可用负载能力常数在本申请实施例中,处于迁移状态的文件块副本在响应文件读取请求时,其剩余可用负载能力常数为1/3。
在其中一种可能的实现方式中,元数据服务器可以根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。可以理解的是,文件块副本的迁移速度越快,表示处于迁移状态的文件块副本的剩余可用负载能力越低,也即剩余可用负载能力常数越小。例如,在本申请实施例中,当文件块副本的迁移速度满足设定好的速度范围时,处于迁移状态的文件块副本的剩余可用负载能力常数为1/3;当文件块副本的迁移速度小于设定好的速度范围时,处于迁移状态的文件块副本的剩余可用负载能力常数为2/3;当文件块副本的迁移速度大于设定好的速度范围时,处于迁移状态的文件块副本的剩余可用负载能力常数为1/6,等等。需要说明的是,上述举例只是作为一种示例,不应构成限定。
步骤S408、元数据服务器根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本。
在本申请实施例中,元数据服务器在获取到负载比例之后,通过轮询算法确定N个文件读取请求各自读取的目标磁盘中的目标文件块对应的文件块副本。
在实际应用中,轮询算法为,按顺序把每个新的文件读取请求分配给下一个目标文件块对应的文件块副本,最终把所有的文件读取请求分给相应的文件块副本。
作为一种可选的实现方式,轮询算法可以包括加权轮询算法。在加权轮询算法中,每个目标文件块对应的文件块副本分配的文件读取请求的数量是按权重比例分配的。例如,在本申请中,根据处于“状态”的文件块副本的剩余可用负载能力与处于“正常”状态的文件块副本的可用负载能力之间的权重比例分配文件读取请求的数量。
进一步可选的,加权轮询算法可以包括普通加权轮询算法或平滑加权轮询算法。
步骤S4010、元数据服务器向客户端发送N个文件读取请求各自读取的目标磁盘中目标文件块对应的文件块副本的位置信息。
在本申请实施例中,当元数据服务器根据负载比例通过轮询算法确定N个文件读取请求各自读取的目标磁盘中的目标文件块对应的文件块副本之后,元数据服务器向客户端返回N个文件读取请求各自读取的目标磁盘中目标文件块对应的文件块副本的位置信息,以便客户端根据位置信息读取相应的文件块副本。
步骤S4012、客户端读取文件块副本。
在本申请中,当客户端读取文件块副本时,客户端需要与目标磁盘(也即目标存储服务器)建立通信连接,继而,客户端可以根据N个文件读取请求各自请求读取的目标磁盘中目标文件块对应的文件块副本的位置信息读取相应的文件块副本。在这个实现过程中,对于目标磁盘来说,目标磁盘可以向客户端返回文件块副本的数据,从而可以完成数据读取。
下面结合具体的实例阐述在本申请实施例中,元数据服务器其如何确定分配结果以及客户端如何读取分配好的文件块副本:
假设文件读取请求的数量N为7,目标磁盘中包含3个扇区,分别为扇区1、扇区2以及扇区3,3个扇区中存储的文件块副本的数量相等。具体地,在扇区1中,有“不可用”状态的文件块副本的数量为1000,有“迁移”状态的文件块副本的数量为500,有“正常”状态的数量为500;在扇区2中,有“不可用”状态的文件块副本的数量为1000,有“迁移”状态的文件块副本的数量为300,有“正常”状态的文件块副本的数量为700;在扇区3中,有“不可用”状态的文件块副本的数量为1000,有“迁移”状态的文件块副本的数量为400,有“正常”状态的文件块副本的数量为600。进一步地,目标文件块B对应的文件块副本为B1、B2、B3,其中,文件块副本B1处于扇区1中,且为“不可用”状态;文件块副本B2处于扇区2中,且为“迁移”状态;文件块读本B3处于扇区3中,且为“正常”状态。在实际应用中,元数据服务器确定处于“迁移”状态的文件块副本B2和处于“正常”状态的文件块副本B3在响应文件读取请求时各自需要承担的负载比例为1:6。那么,在这种情况下,元数据服务器通过加权轮询算法进行分配,将1/7的文件读取请求路由给处于“迁移”状态的文件块副本B2,将6/7文件读取请求路由给处于“正常”状态的文件块副本B3,具体地,元数据服务器将文件读取请求1路由给处于“迁移”状态的文件块副本B2,将文件读取请求2-文件读取请求7路由给处于“正常”状态的文件块副本B3。继而,元数据服务器将上述分配结果发送给对应的客户端上的用户,以用户1为例,元数据服务器向用户1返回处于“迁移”状态的文件块副本B2的位置信息,那么,客户端可以根据返回的文件块副本B2的位置信息请求读取目标存储服务器中处于迁移状态的文件块副本B2。
在上述举例中,考虑到目标文件块B对应的文件块副本为B1、B2、B3、B4,其中,文件块副本B1处于扇区1中,且为“不可用”状态;文件块副本B2处于扇区2中,且为“迁移”状态;文件块副本B3、文件块副本4处于扇区3中,且为“正常”状态。在这种情况下,当元数据服务器确定处于“迁移”状态的文件块副本B2和处于“正常”状态的文件块副本B3以及B4在响应文件读取请求时各自需要承担的负载比例为1:6。元数据服务器将文件读取请求1路由给处于“迁移”状态的文件块副本B2,通过轮询的方式依次将文件读取请求2-文件读取请求7路由给处于“正常”状态的文件块副本B3和文件块副本4,例如,文件读取请求2路由给文件块副本B3,文件读取请求3路由给文件块副本B4,文件读取请求4路由给文件块副本B3,文件读取请求5路由给文件块副本B4;文件读取请求6路由给文件块副本B3;文件读取请求7路由给文件块副本B4。
那么,类似的,当处于迁移状态的文件块副本的数量为多个的情况下,也可以通过轮询的方式确定文件读取请求路由给哪个文件块副本,此处不多加赘述。
需要说明的是,上述通过轮询的方式确定文件读取请求路由给哪个文件块副本只是作为一种示例,当可供选择的文件块副本的数量为多个的情况下,还可以通过随机算法确定文件读取请求路由给哪个文件块,本申请不作具体限定。
实施本申请实施例,元数据服务器在接收到客户端发起的针对目标文件块的N个文件读取请求时,元数据服务器根据目标磁盘中存储的目标文件块对应的文件块副本的状态信息确定分配结果,并将该分配结果发送给客户端,以使客户端读取目标磁盘中目标文件块对应的文件块副本。这里,分配结果为处于迁移状态的文件块副本和处于正常状态的文件块副本在响应文件读取请求时需要承担的负载比例,该负载比例可以保证磁盘负载的均衡。通过这一实现方式,可以避免现有技术中当分布式文件系统中存在较多文件块副本发生迁移(块迁移加剧用户读文件块副本的延时)时,将全部文件读取请求分配给处于正常状态的文件块副本带来的负载不均衡的问题,由于本申请描述的技术方案可以根据磁盘预留给文件读取请求的剩余负载能力来动态分配文件读取请求,实现了磁盘的负载均衡,从而可以提高分布式文件系统块迁移过程中针对目标文件块的读性能,进而可以提高分布式文件系统的整体性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
进一步需要说明的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
为了便于更好地实施本申请实施例的上述方案,本申请实施例提供了一种负载均衡装置。如图5A所示,是本申请实施例提供的一种负载均衡装置50的结构示意图,该负载均衡装置50至少可以包括:
接收单元500,用于接收客户端发送的N个文件读取请求;其中,所述N个文件读取请求用于请求读取目标文件块;所述目标文件块包括M个文件块副本;M为大于0的正整数;
第一确定单元502,用于根据所述N个文件读取请求在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘;
获取单元504,用于获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘;
第二确定单元506,用于根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果;其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例;
第三确定单元508,用于根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本;
发送单元510,用于将所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本的位置信息发送给所述客户端,所述客户端用于根据所述目标磁盘中所述目标文件块对应的文件块副本的位置信息读取文件块副本。
在实际应用中,接收单元500、第一确定单元502、获取单元504、第二确定单元506、第三确定单元508以及发送单元510的具体功能实现方式可以参见上述图4对应实施例中的步骤S400-步骤S4012,这里不再进行赘述。
其中,所述第二确定单元506可以用于:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果。
其中,所述第二确定单元506可以具体包括:第一确定子单元和第二确定子单元;其中,
所述第一确定子单元,用于根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
所述第二确定子单元,用于根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
其中,所述第一确定子单元包括第一处理单元、第二处理单元和第三处理单元;其中,
所述第一处理单元,用于根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
所述第二处理单元,用于根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
所述第三处理单元,用于根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
其中,所述第一确定子单元还包括第四处理单元,其中,
所述第四处理单元,用于根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。
其中,如图5B所示,所述负载均衡装置还可以包括:第四确定单元512和第五确定单元514;其中,
所述第四确定单元512,用于在包含所述目标文件块对应的文件块副本的磁盘中确定每个磁盘中的文件块副本的分布状态,所述分布状态用于指示磁盘中的数据分布均衡或者磁盘中的数据分布不均衡;
所述第五确定单元514,用于当所述分布状态指示磁盘中的数据分布均衡时,将数据分布均衡的磁盘确定为所述目标磁盘。
在其中一个可能的实现方式中,所述目标文件块对应的文件块副本的状态信息包括不可用状态、迁移状态或正常状态中的一种。
实施本申请实施例,元数据服务器在接收到客户端发起的针对目标文件块的N个文件读取请求时,元数据服务器根据目标磁盘中存储的目标文件块对应的文件块副本的状态信息确定分配结果,并将该分配结果发送给客户端,以使客户端读取目标磁盘中目标文件块对应的文件块副本。这里,分配结果为同一个磁盘中处于迁移状态的文件块副本和处于正常状态的文件块副本在响应文件读取请求时需要承担的负载比例,该负载比例可以保证磁盘负载的均衡。通过这一实现方式,可以避免现有技术中当分布式文件系统中存在较多文件块副本发生迁移(迁移加剧用户读文件块副本的延时)时,将全部文件读取请求分配给处于正常状态的文件块副本带来的负载不均衡的问题,由于本申请描述的技术方案可以根据磁盘预留给文件读取请求的剩余负载能力来动态分配文件读取请求,实现了磁盘的负载均衡,从而可以提高分布式文件系统块迁移过程中针对目标文件块的读性能,进而可以提高分布式文件系统的整体性能。
为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种元数据服务器,下面结合附图来进行详细说明:
如图6示出的本申请实施例提供的元数据服务器的结构示意图,设备60可以包括处理器601、存储器604和通信模块605,处理器601、存储器604和通信模块605可以通过总线606相互连接。存储器604可以是高速随机存储记忆体(Random Access Memory,RAM)存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器604可选的还可以是至少一个位于远离前述处理器601的存储系统。存储器604用于存储应用程序代码,可以包括操作系统、网络通信模块、用户接口模块以及负载均衡程序,通信模块605用于与外部设备进行信息交互;处理器601被配置用于调用该程序代码,执行以下步骤:
接收客户端发送的N个文件读取请求;其中,所述N个文件读取请求用于请求读取目标文件块;所述目标文件块包括M个文件块副本;M、N为大于0的正整数;
所述元数据服务器根据所述N个文件读取请求在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘,并获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘;
根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例;
根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本;
将所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本的位置信息发送给所述客户端,所述客户端用于根据所述目标磁盘中所述目标文件块对应的文件块副本的位置信息读取文件块副本。
其中,处理器601根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量。
其中,处理器601根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
其中,处理器601根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2,可以包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
其中,处理器601,还可以用于:
根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。
其中,处理器601在所述目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘之后,获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息之前,还可以包括:
在包含所述目标文件块对应的文件块副本的磁盘中确定每个磁盘中的文件块副本的分布状态,所述分布状态用于指示磁盘中的数据分布均衡或者磁盘中的数据分布不均衡;
当所述分布状态指示磁盘中的数据分布均衡时,将数据分布均衡的磁盘确定为所述目标磁盘。
其中,所述目标文件块对应的文件块副本的状态信息包括不可用状态、迁移状态或正常状态中的一种。
需要说明的是,本申请实施例中的元数据服务器60中处理器601的执行步骤可参考上述各方法实施例中图4实施例中的元数据服务器运行的具体实现方式,这里不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
在具体实现中,元数据服务器60可以包括移动手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID)等各种用户可以使用的设备,本申请实施例不作具体限定。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个实施例所述方法中的一个或多个步骤。上述装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中,基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机产品存储在计算机可读存储介质中。
上述计算机可读存储介质可以是前述实施例所述的服务器的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是上述服务器的外部存储设备,例如配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述服务器的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述服务器所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (15)
1.一种负载均衡方法,其特征在于,包括:
元数据服务器接收客户端发送的N个文件读取请求;其中,所述N个文件读取请求用于请求读取目标文件块;所述目标文件块包括M个文件块副本;M、N为大于0的正整数;
所述元数据服务器根据所述N个文件读取请求在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘,并获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘;
所述元数据服务器根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例;
所述元数据服务器根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本,并将所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本的位置信息发送给所述客户端,所述客户端用于根据所述目标磁盘中所述目标文件块对应的文件块副本的位置信息读取文件块副本。
2.根据权利要求1所述的方法,其特征在于,所述元数据服务器根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2,包括:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述元数据服务器在所述目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘之后,获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息之前,还包括;
在包含所述目标文件块对应的文件块副本的磁盘中确定每个磁盘中的文件块副本的分布状态,所述分布状态用于指示磁盘中的数据分布均衡或者磁盘中的数据分布不均衡;
当所述分布状态指示磁盘中的数据分布均衡时,将数据分布均衡的磁盘确定为所述目标磁盘。
7.一种负载均衡装置,其特征在于,包括:
接收单元,用于接收客户端发送的N个文件读取请求;其中,所述N个文件读取请求用于请求读取目标文件块;所述目标文件块包括M个文件块副本;M为大于0的正整数;
第一确定单元,用于根据所述N个文件读取请求在目标存储服务器中确定包含所述目标文件块对应的文件块副本的磁盘;
获取单元,用于获取目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息;其中,所述目标磁盘为所述目标存储服务器中包含所述目标文件块对应的文件块副本的磁盘中的一个磁盘;
第二确定单元,用于根据所述目标磁盘中存储的所述目标文件块对应的文件块副本的状态信息确定分配结果;其中,所述分配结果包括处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例;
第三确定单元,用于根据所述负载比例确定所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本;
发送单元,用于将所述N个文件读取请求各自读取的所述目标磁盘中所述目标文件块对应的文件块副本的位置信息发送给所述客户端,所述客户端用于根据所述目标磁盘中所述目标文件块对应的文件块副本的位置信息读取文件块副本。
8.根据权利要求7所述的装置,其特征在于,所述第二确定单元用于:
根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述分配结果。
9.根据权利要求7所述的装置,其特征在于,所述第二确定单元包括第一确定子单元和第二确定子单元;其中,
所述第一确定子单元,用于根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘中处于迁移状态的文件块副本的剩余可用负载能力Q1以及处于正常状态的文件块副本的可用负载能力Q2;
所述第二确定子单元,用于根据所述Q1以及所述Q2确定处于迁移状态的文件块副本和处于正常状态的文件块副本在响应所述N个文件读取请求时各自需要承担的负载比例。
10.根据权利要求9所述的装置,其特征在于,所述第一确定子单元包括第一处理单元、第二处理单元和第三处理单元;其中,
所述第一处理单元,用于根据所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和处于正常状态的所述目标文件块对应的文件块副本的数量确定所述目标磁盘的磁盘性能;
所述第二处理单元,用于根据所述目标磁盘的磁盘性能、所述目标磁盘中处于迁移状态的所述目标文件块对应的文件块副本的数量和剩余可用负载能力常数确定所述Q1;
所述第三处理单元,用于根据所述目标磁盘的磁盘性能和所述目标磁盘中处于正常状态的所述目标文件块对应的文件块副本的数量确定所述Q2。
11.根据权利要求10所述的装置,其特征在于,所述第一确定子单元还包括第四处理单元,其中,
所述第四处理单元,用于根据文件块副本的迁移速度确定处于迁移状态的文件块副本的剩余可用负载能力常数。
12.一种元数据服务器,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
14.一种分布式文件系统,其特征在于,包括电子设备、元数据服务器和存储服务器,其中,所述电子设备上运行有客户端,所述元数据服务器执行如权利要求1-6任一项所述方法中元数据服务器执行的步骤。
15.根据权利要求14所述的分布式文件系统,其特征在于,所述存储服务器包括区块链节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910614001.8A CN110321225B (zh) | 2019-07-08 | 2019-07-08 | 负载均衡方法、元数据服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910614001.8A CN110321225B (zh) | 2019-07-08 | 2019-07-08 | 负载均衡方法、元数据服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321225A true CN110321225A (zh) | 2019-10-11 |
CN110321225B CN110321225B (zh) | 2021-04-30 |
Family
ID=68123228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910614001.8A Active CN110321225B (zh) | 2019-07-08 | 2019-07-08 | 负载均衡方法、元数据服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110321225B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825698A (zh) * | 2019-11-07 | 2020-02-21 | 重庆紫光华山智安科技有限公司 | 元数据管理方法及相关装置 |
CN111666159A (zh) * | 2020-06-28 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
CN113093996A (zh) * | 2021-04-13 | 2021-07-09 | 中国工商银行股份有限公司 | 存储分配方法、装置、计算机设备及可读存储介质 |
CN114244855A (zh) * | 2020-09-08 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 指纹文件的存储方法、装置、设备及可读存储介质 |
CN113093996B (zh) * | 2021-04-13 | 2024-05-31 | 中国工商银行股份有限公司 | 存储分配方法、装置、计算机设备及可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059786A (zh) * | 2006-04-17 | 2007-10-24 | 国际商业机器公司 | 用于选择性地停止dma操作的方法、设备和系统 |
CN101299198A (zh) * | 2008-06-13 | 2008-11-05 | 南京邮电大学 | 一种动态自适应的网格数据迁移方法 |
CN101410812A (zh) * | 2006-04-25 | 2009-04-15 | 国际商业机器公司 | 迁移受到输入/输出设备访问的数据 |
CN104281506A (zh) * | 2014-07-10 | 2015-01-14 | 中国科学院计算技术研究所 | 一种文件系统的数据维护方法及系统 |
CN105224626A (zh) * | 2015-09-23 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统磁盘文件读写方法、装置和系统 |
CN105323271A (zh) * | 2014-06-24 | 2016-02-10 | 中兴通讯股份有限公司 | 一种云计算系统以及云计算系统的处理方法和装置 |
US20160117259A1 (en) * | 2014-10-28 | 2016-04-28 | International Business Machines Corporation | Storage management method, storage management system, computer system, and program |
US20180018340A1 (en) * | 2016-07-15 | 2018-01-18 | Fujitsu Limited | Information processing system, information processing apparatus, and non-transitory computer-readable recording medium |
CN107885758A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 一种虚拟节点的数据迁移方法和虚拟节点 |
CN109376013A (zh) * | 2018-10-11 | 2019-02-22 | 北京小米智能科技有限公司 | 负载均衡方法及装置 |
-
2019
- 2019-07-08 CN CN201910614001.8A patent/CN110321225B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059786A (zh) * | 2006-04-17 | 2007-10-24 | 国际商业机器公司 | 用于选择性地停止dma操作的方法、设备和系统 |
CN101410812A (zh) * | 2006-04-25 | 2009-04-15 | 国际商业机器公司 | 迁移受到输入/输出设备访问的数据 |
CN101299198A (zh) * | 2008-06-13 | 2008-11-05 | 南京邮电大学 | 一种动态自适应的网格数据迁移方法 |
CN105323271A (zh) * | 2014-06-24 | 2016-02-10 | 中兴通讯股份有限公司 | 一种云计算系统以及云计算系统的处理方法和装置 |
CN104281506A (zh) * | 2014-07-10 | 2015-01-14 | 中国科学院计算技术研究所 | 一种文件系统的数据维护方法及系统 |
US20160117259A1 (en) * | 2014-10-28 | 2016-04-28 | International Business Machines Corporation | Storage management method, storage management system, computer system, and program |
CN105224626A (zh) * | 2015-09-23 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统磁盘文件读写方法、装置和系统 |
US20180018340A1 (en) * | 2016-07-15 | 2018-01-18 | Fujitsu Limited | Information processing system, information processing apparatus, and non-transitory computer-readable recording medium |
CN107885758A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 一种虚拟节点的数据迁移方法和虚拟节点 |
CN109376013A (zh) * | 2018-10-11 | 2019-02-22 | 北京小米智能科技有限公司 | 负载均衡方法及装置 |
Non-Patent Citations (1)
Title |
---|
何利 等: "基于检验点的移动云资源调度策略研究", 《重庆邮电大学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825698A (zh) * | 2019-11-07 | 2020-02-21 | 重庆紫光华山智安科技有限公司 | 元数据管理方法及相关装置 |
CN111666159A (zh) * | 2020-06-28 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 负载均衡控制方法和装置、存储介质及电子设备 |
CN114244855A (zh) * | 2020-09-08 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 指纹文件的存储方法、装置、设备及可读存储介质 |
CN114244855B (zh) * | 2020-09-08 | 2024-01-02 | 腾讯科技(深圳)有限公司 | 指纹文件的存储方法、装置、设备及可读存储介质 |
CN113093996A (zh) * | 2021-04-13 | 2021-07-09 | 中国工商银行股份有限公司 | 存储分配方法、装置、计算机设备及可读存储介质 |
CN113093996B (zh) * | 2021-04-13 | 2024-05-31 | 中国工商银行股份有限公司 | 存储分配方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110321225B (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546782B (zh) | 一种分布式系统及其数据操作方法 | |
CN102055650B (zh) | 负载均衡方法及系统和管理服务器 | |
CN103136243B (zh) | 基于云存储的文件系统去重方法及装置 | |
CN110321225A (zh) | 负载均衡方法、元数据服务器及计算机可读存储介质 | |
CN107408070A (zh) | 分布式存储系统中的多事务日志 | |
CN106503058B (zh) | 一种数据加载方法、终端和计算集群 | |
CN109614377A (zh) | 分布式文件系统的文件删除方法、装置、设备及存储介质 | |
CN104461768B (zh) | 副本存储装置及副本存储方法 | |
CN105468302B (zh) | 一种处理数据的方法、装置及系统 | |
CN109408590B (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
CN102340489B (zh) | 一种服务器之间的数据传输方法和服务器 | |
CN111290699B (zh) | 数据迁移方法、装置及系统 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN106776146A (zh) | 一种数据校验方法、装置及系统 | |
CN102111438A (zh) | 参数调整方法、装置和分布式计算平台系统 | |
CN103918239A (zh) | 负载均衡方法、装置、系统及计算机可读介质 | |
CN103631933A (zh) | 一种面向分布式去重系统的数据路由方法 | |
CN101226542A (zh) | 一种报表缓存的方法 | |
CN109388351A (zh) | 一种分布式数据存储的方法及相关装置 | |
JP2019121334A (ja) | データストレージとダイナミックマイグレーション方法及びデータストレージとダイナミックマイグレーション装置 | |
CN109981768A (zh) | 分布式网络存储系统中的io多路径规划方法及设备 | |
CN102970349B (zh) | 一种dht网络的存储负载均衡方法 | |
CN104715044A (zh) | 一种分布式系统及其数据操作方法 | |
CN109756429A (zh) | 带宽分配方法及设备 | |
CN109788013B (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: 40009095 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 |