负载均衡方法和负载均衡器的制造方法
【专利摘要】本发明公开了一种负载均衡方法和负载均衡器,以解决现有的负载均衡方法会对分布式文件系统的整体性能造成影响的问题。本发明在分布式文件系统中的各个数据节点存储的每个块的副本中,预先区分能够被访问的工作副本和不能被访问的备用副本;在分布式文件系统中的各个数据节点中,确定需要进行负载均衡的数据节点;在确定的需要进行负载均衡的数据节点中,选取工作副本;将选取的工作副本调整为备用副本,并在其他数据节点中将与选取的工作副本内容一致的至少一个备用副本调整为工作副本。通过本发明能够较快速的完成访问流量的切换,无需进行数据的复制,降低了对分布式系统整体性能的影响。
【专利说明】负载均衡方法和负载均衡器
【技术领域】
[0001] 本发明涉及计算机【技术领域】,尤其涉及一种负载均衡方法和负载均衡器。
【背景技术】
[0002] 数据的多副本备份方式,能够将海量数据存储在大量低廉的硬件上,并能提高数 据的可靠性和并发访问能力,因此多副本备份方式的存储策略得到越来越多的关注。
[0003] 分布式文件系统由于需要存储较多的数据文件,因此多副本备份方式的存储策略 在分布式文件系统中得到广泛应用。分布式文件系统主要包括管理节点、数据节点集群和 客户端三部分,如图1所示,采用多副本备份方式的存储策略时,当客户端向分布式文件系 统中写入文件,管理节点会根据写入的文件,将文件分为不同的块,并将每个块分发到N个 数据节点上进行存储,并且每个块会有N个副本,每个副本对应存储在一个数据节点上,进 行数据的读写操作时,客户端与管理节点进行应用的交互,并由管理节点根据自身元数据 的情况将读取或者写入操作分发到具体的数据节点上进行操作,然而不同的数据节点的系 统性能可能不一致,并且不同文件本身的读取频繁程度也不一样,可能会导致分布式文件 系统很难达到负载均衡的状态,若分布式文件系统没有较好的负载均衡处理能力,则无法 充分利用全部数据节点的性能。
[0004] 现有技术中使分布式文件系统达到负载均衡主要采用以下方式:
[0005] 管理节点在将划分后的各个块分配到各个数据节点时,按照划分块的个数平均分 配到各个数据节点上,或者按照数据节点的磁盘使用比例来分配。例如按照划分块个数平 均分配时,管理节点首先判断每个数据节点上包含的块个数,然后获取到包含块个数比较 少的数据节点,并将新生成的需要写入到数据节点上的块写入到包含块个数比较少的数据 节点上。
[0006] 由于各个数据节点的存储空间和性能很可能不一致,不同应用数据的访问量也会 不一致,为使分布式文件系统中各个数据节点进一步达到负载均衡,现有技术采用静态过 负荷监控和数据复制的处理机制,通过评估每个数据节点的系统性能和一次数据访问的性 能消耗,并定义一个统计周期,根据统计周期评估出每个数据节点一个周期内能够处理的 访问次数,然后对每个数据节点的访问情况进行周期性的监控,如果在设定的周期内某个 数据节点的实际访问次数超过了设定的最大访问次数,则认为该访问次数超过了最大访问 次数的数据节点过负荷,此时将该过负荷数据节点上的部分块通过数据复制迁移到其他数 据节点上,使得数据访问量随着块的迁移而迁移到其他的节点上,以达到对数据节点动态 负载均衡的处理。
[0007] 但现有技术的上述基于数据复制的负载均衡调整方式,数据复制的过程需要在数 据节点间拷贝数据,会对进行复制的两个数据节点造成性能损耗,多个数据节点之间频繁 的进行数据复制对于分布式文件系统的整体性能也会造成较大的影响。
【发明内容】
[0008] 本发明实施例提供一种负载均衡方法和负载均衡器,以解决现有的负载均衡方法 会对分布式文件系统的整体性能造成影响的问题。
[0009] 本发明的目的是通过以下技术方案实现的:
[0010] 第一方面,提供一种负载均衡方法,包括:
[0011] 在分布式文件系统中的各个数据节点中,确定需要进行负载均衡的数据节点;
[0012] 在所述确定的需要进行负载均衡的数据节点中,选取工作副本,其中,所述工作副 本为能够被访问的副本;
[0013] 将所述选取的工作副本调整为备用副本,并在确定的需要进行负载均衡的数据节 点之外的其他数据节点中,将与所述选取的工作副本内容一致的至少一个备用副本调整为 工作副本,所述备用副本为不能被访问的副本。
[0014] 结合第一方面,在第一种可能的实现方式中,所述确定需要进行负载均衡的数据 节点,包括:
[0015] 对分布式文件系统中的各个数据节点的监控项进行监控,并根据监控得到的监控 项数据值确定需要进行负载均衡的数据节点;
[0016] 其中,所述监控项包括下列至少其中之一:
[0017] 所述数据节点的CPU占用率、所述数据节点的内存使用率、所述数据节点的磁盘 读写速度和所述数据节点的网络延时。
[0018] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对分 布式文件系统中的各个数据节点的监控项进行监控,包括:
[0019] 使用单独的线程分别周期性监控分布式文件系统中的每一数据节点的监控项。
[0020] 结合第一方面的第一种可能的实现方式,或第一方面的第二种可能实现方式,在 第三种可能的实现方式中,所述根据监控得到的监控项数据值确定需要进行负载均衡的数 据节点,包括:
[0021] 在各个数据节点中,若对至少一个数据节点的任一监控项监控得到的监控项数据 值超过对应的过负荷阈值,则确定存在过负荷数据节点,选择过负荷数据节点,作为需要进 行负载均衡的数据节点;
[0022] 在各个数据节点中,若对每个数据节点的任一监控项监控得到的监控项数据值均 没有超过对应的过负荷阈值,则确定不存在过负荷数据节点,根据每个数据节点的系统性 能确定需要进行负载均衡的数据节点。
[0023] 结合第一方面的第三种可能实现方式,在第四种可能的实现方式中,所述根据每 个数据节点的系统性能确定需要进行负载均衡的数据节点,包括:
[0024] 根据对每一监控项监控得到的监控项数据值、以及与该监控项对应的过负荷阈 值,确定每个数据节点的系统性能比率值;
[0025] 根据确定的每个数据节点的系统性能比率值,得到系统性能比率值最高的数据节 点和系统性能比率值最低的数据节点;
[0026]当所述系统性能比率值最高的数据节点的系统性能比率值超出该数据节点系统 性能比率值的阈值、且是所述系统性能比率值最低的数据节点的系统性能比率值的设定倍 数时,将所述系统性能比率值最高的数据节点作为需要进行负载均衡的数据节点。
[0027] 结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述在需 要进行负载均衡的数据节点中,选取工作副本,包括:
[0028] 针对任一需要进行负载均衡的数据节点,分别确定与该需要进行负载均衡的数据 节点中存储的各个工作副本内容一致的备用副本所在的数据节点,并
[0029] 将确定的备用副本所在的数据节点,按照数据节点的系统性能比率值的大小进行 排序;
[0030] 依据要选取的工作副本的数目,在确定的备用副本所在的数据节点中,按照数据 节点的系统性能比率值从小到大的顺序,依次选择所述数目的数据节点;
[0031] 在该需要进行负载均衡的数据节点中,选取内容与选择的数据节点中存储的备用 副本内容一致的工作副本。
[0032] 第二方面,提供一种负载均衡器,包括:确定单元、选取单元和调整单元;
[0033] 确定单元,用于在分布式文件系统中的各个数据节点中,确定需要进行负载均衡 的数据节点,并将确定的需要进行负载均衡的数据节点的信息发送至所述选取单元;
[0034] 选取单元,用于接收所述确定单元发送的需要进行负载均衡的数据节点的信息, 以及所述调整单元发送的能够被访问的工作副本和不能被访问的备用副本的信息,并在所 述确定的需要进行负载均衡的数据节点中,选取工作副本,将选取的工作副本的信息发送 至所述调整单元;
[0035] 调整单元,用于预先将每个块的副本区分为能够被访问的工作副本,和不能被访 问的备用副本,并接收所述选取单元发送的选取了的工作副本的信息,将所述选取的工作 副本调整为备用副本,并在确定的需要进行负载均衡的数据节点之外的其他数据节点中, 将与所述选取的工作副本内容一致的至少一个备用副本调整为工作副本。
[0036] 结合第二方面,在第一种可能的实现方式中,所述确定单元,具体用于:
[0037] 对分布式文件系统中的各个数据节点的监控项进行监控,并根据监控得到的监控 项数据值确定需要进行负载均衡的数据节点;
[0038] 其中,所述监控项包括下列至少其中之一:
[0039] 所述数据节点的CPU占用率、所述数据节点的内存使用率、所述数据节点的磁盘 读写速度和所述数据节点的网络延时。
[0040] 结合第二方面的第一种可能实现方式,或者第二方面的第二种可能实现方式,在 第三种可能的实现方式中,所述确定单元,具体用于:
[0041] 在各个数据节点中,若对至少一个数据节点的任一监控项监控得到的监控项数据 值超过对应的过负荷阈值,则确定存在过负荷数据节点,选择过负荷数据节点,作为需要进 行负载均衡的数据节点;
[0042] 在各个数据节点中,若对每个数据节点的任一监控项监控得到的监控项数据值均 没有超过对应的过负荷阈值,则确定不存在过负荷数据节点,根据每个数据节点的系统性 能确定需要进行负载均衡的数据节点。
[0043] 结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述确定 单元,具体用于:
[0044] 根据对每一监控项监控得到的监控项数据值、以及与该监控项对应的过负荷阈 值,确定每个数据节点的系统性能比率值;
[0045] 根据确定的每个数据节点的系统性能比率值,得到系统性能比率值最高的数据节 点和系统性能比率值最低的数据节点;
[0046] 当所述系统性能比率值最高的数据节点的系统性能比率值超出该数据节点系统 性能比率值的阈值、且是所述系统性能比率值最低的数据节点的系统性能比率值的设定倍 数时,将所述系统性能比率值最高的数据节点作为需要进行负载均衡的数据节点。
[0047] 根据第一方面提供的负载均衡方法和第二方面提供的负载均衡器,将分布式文件 系统中的各个数据节点存储的每个块的副本区分为能够被访问的工作副本和不被访问的 备用副本,进行负载均衡时,可通过调整副本的工作状态,将需要进行负载均衡的数据节点 上选取的需要进行工作状态调整的工作副本调整为备用副本,并在确定的需要进行负载均 衡的数据节点之外的其他数据节点中将与选取的工作副本内容一致的备用副本调整为工 作副本,能够较快速的完成访问流量的切换,无需进行数据的复制,降低了对分布式系统整 体性能的影响。
【专利附图】
【附图说明】
[0048] 图1为现有技术中分布式文件系统构成框图;
[0049] 图2为本发明实施例使用备份副本方式的副本分布示意图;
[0050] 图3为本发明实施例提供的分布式文件系统的负载均衡方法流程图;
[0051] 图4为本发明实施例提供的分布式文件系统的负载均衡方法又一流程图;
[0052] 图5A?图5C为本发明实施例选择工作状态调整的工作副本以及负载均衡调整示 意图;
[0053] 图6为本发明实施例提供的负载均衡器构成示意图;
[0054] 图7为本发明实施例提供的负载均衡设备构成示意图。
【具体实施方式】
[0055] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0056] 实施例一
[0057] 如图1所示的分布式文件系统中,采用多副本备份方式的存储策略时,数据文件 会被分为不同的块,并且每个块有N (N>=3)个内容一致的副本,同一个块的各个副本会分 别存储在不同的数据节点上,本发明实施例中将存储在各个数据节点上的每个块的N个副 本,管理节点可以将各个副本分为工作副本和备用副本,其中,工作副本能够被访问,而备 用副本不能被访问,不过备用副本的内容与工作副本的内容是完全一致的,通过工作副本 与备用副本之间工作状态的调整,进行负载均衡。
[0058] 进一步的,本发明实施例中将每个块的副本区分为能够被访问的工作副本和不能 被访问的备用副本的区分方式可采用多种区分方式。例如,可以用不同的标签分别标识工 作副本和备用副本。
[0059] 进一步的,本发明实施例中备用副本可在每个块的全部副本中进行随机选取,优 选的,本发明实施例中管理节点可将数据节点集群中的各个数据节点进行编号,然后将每 个块的副本按照数据节点的编号顺序,依次存储在不同数据节点上,并将最后存储在数据 节点上的副本作为备用副本,以更方便选取备用副本,如图2所示为本发明实施例中使用 备用副本的副本分布示意图,例如,块1分别存储在节点1,2和3,在节点1和2的块1是工 作副本,在节点3的块1是备用副本。
[0060] 需要说明的是,本发明实施例提供的附图2中在每个块有三个副本,在三个副本 中选取一个副本作为备用副本,只是进行示意性说明,并不引以为限,在实际的应用中每个 块的副本可以多于三个,并且也可选取不止一个副本作为备用副本。
[0061] 如图3所示为本发明实施例一提供的分布式文件系统的负载均衡方法流程图,包 括:
[0062] S101 :在分布式文件系统的各个数据节点中,确定需要进行负载均衡的数据节点。
[0063] 具体的,本发明实施例在分布式文件系统的各个数据节点中确定需要进行负载均 衡的数据节点时,可通过设定的规则得出每个数据节点是否需要进行负载均衡,例如本发 明实施例中可对分布式文件系统中的各个数据节点的运行状态进行实时监控,根据数据节 点的运行状态确定数据节点的负荷情况,根据确定的数据节点负荷情况判断当前数据节点 是否需要进行负载均衡。具体的:需要进行负载均衡的数据节点可以是过负荷的数据节点, 也可以是负荷过低的数据节点。
[0064] S102 :在确定的需要进行负载均衡的数据节点中,选取工作副本。
[0065] 具体的,在S101确定了需要进行负载均衡的数据节点后,本发明实施例可根据确 定的需要进行负载均衡的数据节点上,存储的块的工作副本的数量,在确定的需要进行负 载均衡的数据节点上选取设定数量的工作副本进行工作状态调整。
[0066] 进一步的,本发明实施例中选取工作副本时,可以在需要进行负载均衡的数据节 点上随机选取设定数量的工作副本,也可以根据与需要进行负载均衡的数据节点上存储的 工作副本,对应的备用副本所在数据节点的系统性能,进行选择,例如可以根据备用副本所 在的数据节点的系统性能由高到低依次选取设定数量的工作副本。
[0067] S103 :将选取的工作副本调整为备用副本,并在确定的需要进行负载均衡的数据 节点之外的其他数据节点中将与选取的工作副本内容一致的至少一个备用副本调整为工 作副本。
[0068] 具体的,本发明实施例中可将S103中选取的需要进行工作状态调整的工作副本, 直接调整为不能被访问的备用副本,而在确定的需要进行负载均衡的数据节点之外的其他 数据节点中将与选取的工作副本内容一致的备用副本调整为工作副本时,若与选取的需要 进行工作状态调整的工作副本内容一致的备用副本只有一个,则将该对应的备用副本直接 调整为工作副本,若与需要进行工作状态调整的工作副本内容一致的备用副本不止一个, 则将数据节点系统性能最好的数据节点上存储的,与选取的需要进行工作状态调整的工作 副本内容一致的备用副本调整为工作副本。当然,若需要调整一个工作副本对应的多个备 用副本的工作状态进行负载均衡,则可按照数据节点的系统性能的高低,依次选取。
[0069] 可以理解的是,本发明实施例的负载均衡方法可以由具有负载均衡能力的设备进 行实施,例如分布式文件系统中的管理节点实施,或者负载均衡器实施。
[0070] 本发明实施例提供的分布式文件系统的负载均衡方法,预先将分布式文件系统中 的各个数据节点存储的每个块的副本区分为能够被访问的工作副本和不能被访问的备用 副本,进行负载均衡时,通过将需要进行负载均衡的数据节点上选取的需要进行工作状态 调整的工作副本调整为备用副本,并在确定的需要进行负载均衡的数据节点之外的其他数 据节点中将与选取的工作副本内容一致的备用副本调整为工作副本,能够较快速的完成访 问流量的切换,无需进行节点间的数据复制,降低了对分布式系统整体性能的影响。
[0071] 实施例二
[0072] 本发明实施例二将结合实际应用对实施例一提供的分布式文件系统的负载均衡 方法进行进一步的详细说明。
[0073] 本发明实施例作为实施例一的较优实施例,仅对S101中确定需要进行负载均衡 的数据节点的过程进行详细说明,其他步骤与实施例一相同,在此不再赘述。
[0074] 本发明实施例中在确定需要进行负载均衡的数据节点时,可以采用多种确定方 式,例如:由管理节点对各个数据节点进行实时监控,主动获取各个数据节点的系统运行状 态,根据获取到的各个数据节点的系统运行状态,确定是否存在需要进行负载均衡的数据 节点;还可以由各个数据节点对自身节点的负荷情况以及系统性能指标进行监控,若自身 节点过负荷,或者性能指标达到设定的阈值,则将发送负载均衡指令至管理节点,管理节点 根据接收到的负载均衡指令,确定该发送负载均衡指令的数据节点,为需要进行负载均衡 的数据节点。
[0075] 优选的,本发明实施例中可对分布式文件系统中的各个数据节点的设定监控项, 并对各个数据节点设定的监控项进行监控,并根据监控得到的监控项数据值确定需要进行 负载均衡的数据节点。
[0076] 具体的,本发明实施例可对分布式文件系统中的各个数据节点分别设定多个监控 项,并对设定的监控项进行监控,本发明实施例中对各个监控项进行监控时,可使用单独的 线程分别周期性监控分布式文件系统中的每一数据节点的设定监控项。由于每个数据节点 的处理能力以及系统性能都可能不一致,本发明实施例中对每个数据节点使用一个单独的 线程分别进行监控,相较于多个不同系统性能以及处理能力的数据节点采用同一线程进行 监控,能够提高对数据节点的运行状态进行评估的准确度,并且每个数据节点的处理能力 在短时间内一般不会发生变化,因此本发明实施例可以对分布式文件系统中的各个数据节 点的设定监控项进行周期性的监控,以减少资源占用,提高分布式文件系统的整体性能。
[0077] 进一步的,本发明实施例中对分布式文件系统中的各个数据节点设定的监控项不 再局限于数据节点的访问次数,可以是任何反应数据节点系统性能的性能选项,例如可以 是数据节点的CPU占用率、数据节点的内存使用率、数据节点的磁盘读写速度以及数据节 点的网络延时等中的一项或者多项。
[0078] 本发明实施例中在确定需要进行负载均衡的数据节点时,可对各个数据节点分别 设定的监控项,设定需要进行负载均衡的条件,当任一数据节点针对设定的监控项,监控得 到的结果满足需要进行负载均衡的条件时,确定该满足负载均衡条件的数据节点为需要进 行负载均衡的数据节点,比如可以对每个数据节点的每个监控项分别设定过负荷阈值,并 根据对每一监控项监控得到的监控项数据值与对应的过负荷阈值,判断分布式文件系统中 是否存在过负荷数据节点,在各个数据节点中,若对至少一个数据节点的任一监控项监控 得到的监控项数据值超过对应的过负荷阈值,则确定存在过负荷数据节点,将该过负荷数 据节点作为需要进行负载均衡的数据节点;在各个数据节点中,若对每个数据节点的任一 监控项监控得到的监控项数据值均没有超过对应的过负荷阈值,则确定不存在过负荷数据 节点,根据每个数据节点的系统性能确定需要进行负载均衡的数据节点,因此,本发明实施 例提供的负载均衡方法,可采用如图4所示的方法流程,图4所示的负载均衡方法,在图3 的基础上,将S101中在分布式文件系统中的各个数据节点中,确定需要进行负载均衡的数 据节点,替换为如下步骤:
[0079] S1011 :对分布式文件系统中的各个数据节点的设定监控项进行监控。
[0080] S1012:根据对设定监控项监控得到的结果,判断是否存在过负荷数据节点,若是 则转S1013,若否则转S1014。
[0081] 具体的,本发明实施例中根据对设定监控项监控得到的监控项数值,判断是否存 在过负荷数据节点可优选如下方式:
[0082] 对各个数据节点设定的各个监控项分别设定过负荷阈值,当监控得到的监控项数 值超过设定的过负荷阈值,则认为该超过设定过负荷阈值的监控项所在的数据节点过负 荷。本发明实施例在各个数据节点中,若对至少一个数据节点的任一监控项监控得到的数 据值超过对应的设定过负荷阈值,则确定存在过负荷数据节点。
[0083] S1013 :选择过负荷数据节点,作为需要进行负载均衡的数据节点。
[0084] 当存在过负荷数据节点时,则说明该过负荷数据节点需要进行负载均衡,则选择 该过负荷数据节点作为需要进行负载均衡的数据节点。
[0085] S1014:根据每个数据节点的系统性能确定需要进行负载均衡的数据节点。
[0086] 当不存在过负荷数据节点时,分布式文件系统中数据节点的系统性能可能也不 同,分布式文件系统的各个数据节点也没有达到真正意义上的负载均衡,为使分布式文件 系统中各个数据节点的负载更为均衡,本发明实施例可根据数据节点的系统性能确定需要 进行负载均衡的数据节点。
[0087] 具体的,本发明实施例中,根据数据节点的系统性能确定需要进行负载均衡的数 据节点,可优选如下方式:
[0088] A、根据对每个数据节点的每一监控项监控得到的监控项数据值,以及与该监控项 对应的过负荷阈值,确定每个数据节点的系统性能比率值。
[0089] 具体的,本发明实施例中对各个数据节点设定的各个监控项分别设定对应的过负 荷阈值,针对每一数据节点,确定对该数据节点监控得到的每一监控项的监控项数据值与 对应的过负荷阈值的比值,并将确定的比值中最高的比值,作为该数据节点的系统性能比 率值。
[0090] 比如,数据节点设定的监控项包括数据节点的CPU占用率、数据节点的内存使用 率、数据节点的磁盘读写速度和数据节点的网络延时,设定CPU的过负荷阈值为80%,内存 使用的过负荷阈值为15G,网路延时的过负荷阈值为100毫秒,磁盘读写速度的过负荷阈 值是90M/S ;而在某一个周期内监控得到的每一监控项的数据值为CPU占用56%,内存使用 10G,网络延时10毫秒,磁盘读写速度为40M/S,对每一监控项的监控得到的数据值与对应 的过负荷阈值做比值计算,得到比值最高的是CPU,为56%/80%=70%,也就是说当前数据节 点的系统性能比率值是70%。
[0091] B、根据确定的每个数据节点的系统性能比率值,得到系统性能比率值最高的数据 节点和系统性能比率值最低的数据节点。
[0092] 根据上述确定数据节点系统性能比率值的方式,确定了每一数据节点的性能比率 值,假设当前有四个节点,分别为节点1、节点2、节点3和节点4,确定的性能比率值分别为 70%,30%,50%,40%,则可找到系统性能比率值最高的为节点1,系统性能比率值最低的为节 点2。
[0093] C、当系统性能比率值最高的数据节点的系统性能比率值超出该数据节点系统性 能比率值的阈值、且是系统性能比率值最低的数据节点的系统性能比率值的设定倍数时, 选择系统性能比率值最高的数据节点,作为需要进行负载均衡的数据节点。
[0094] 本发明实施例中系统性能比率值最高的数据节点系统性能比率值的阈值、以及其 相对系统性能比率值最低的数据节点的系统性能比率值的设定倍数可根据实际情况进行 配置,比如本发明实施例中将系统性能比率值最高的数据节点的系统性能比率值的阈值设 定为50%,设定倍数为2倍,则本发明实施例中系统性能比率值最高的节点1的系统性能比 率值为70%,超出了 50%,并且是系统性能比率值最低的节点2的系统性能比率值为30%的 两倍以上,则将节点1作为需要进行负载均衡的数据节点。
[0095] 本发明实施例提供的分布式文件系统的负载均衡方法,通过监控数据节点上设定 监控项的监控结果确定需要进行负载均衡调整的数据节点,相较于现有技术中通过访问次 数确定数据节点的运行状态,能够较精确的监控数据节点的运行状态,并且在进行负载均 衡的过程中,当存在过负荷数据节点时,对过负荷数据节点进行负载均衡,当不存在过负荷 数据节点时,根据数据节点的系统性能,进一步确定是否存在需要进行负载均衡的数据节 点,并进行负载均衡,进一步改善了分布式文件系统的整体性能。
[0096] 实施例三
[0097] 本发明的实施例三是对实施例一中S102中在需要进行负载均衡的数据节点中, 选取需要进行工作状态调整的工作副本的过程进行的详细说明,其他步骤与实施例一与实 施例二涉及的步骤相同,在此不再赘述。
[0098] 本发明实施例中在确定的需要进行负载均衡的数据节点中,选取需要进行工作状 态调整的工作副本的过程,采用如下方式:
[0099] A、针对任一需要进行负载均衡的数据节点,分别确定与该需要进行负载均衡的数 据节点中存储的各个工作副本内容一致的备用副本所在的数据节点。
[0100] B、将确定的备用副本所在的数据节点,按照数据节点的系统性能比率值的大小进 行排序。
[0101] C、依据要选取的工作副本的数目,在确定的备用副本所在的数据节点中,按照数 据节点的系统性能比率值从小到大的顺序,依次选择所需数目的数据节点。
[0102] D、在该需要进行负载均衡的数据节点中,选取内容与选择的数据节点中存储的备 用副本内容一致的工作副本。
[0103] 以下将结合附图对上述选取工作副本的过程进行举例说明,如图5A中所示分布 式文件系统中包含4个数据节点分别为节点1、节点2、节点3和节点4,四个数据节点的系 统性能比率值分别为70%,30%,50%,40%,此时四个数据节点均未过负荷,则按照上述实施例 中不存在过负荷数据节点时选取需要进行负载均衡的数据节点方法,则可知系统性能比率 值最高的是节点1为70%,系统性能比率值最低的是节点2为30%,并且节点1的系统性能 比率值超出50%,并且是系统性能比率值最低的节点2的系统性能比率值的两倍以上,则将 节点1作为需要进行负载均衡的数据节点。
[0104] 由图5A可知,节点1中有4个工作副本,分别为块1、块2、块5和块6,的工作副 本,并且与工作副本内容一致的备用副本分别存储在节点2、节点3和节点4上,对节点2、 节点3和节点4按照系统性能比率值的大小进行排序,可知系统性能比率值最低的数据节 点为节点2,其次为节点4,然后是节点3。
[0105] 本发明实施例中选择需要进行工作状态调整的工作副本,可在需要进行负载均衡 的数据节点上选取设定比例的工作副本,比如可以选取全部工作副本的5%,当按照设定百 分比进行选取工作副本时,可能会出现不是整数的情况,此时可根据情况进行向上取整,或 向下取整,选取整数个工作副本作为需要进行工作状态调整的工作副本,当按照设定百分 比进行选取工作副本时,不足一个时取一个,比如图5A中工作副本一共是4个,此时根据计 算,需要进行工作状态调整的工作副本数量为4*5%=0. 2个,此时不足一个,则选取其中的 一个工作副本作为需要进行工作状态调整的工作副本。
[0106] 由图5A可知,系统性能比率值最低的数据节点为节点2,并且节点2上的备用副本 为块2的备用副本,因此当选择一个工作副本作为需要进行工作状态调整的工作副本时, 则在节点1中将块2的工作副本作为最终需要进行工作状态调整的工作副本,当选择两个 工作副本时,可再将与节点4上的备用副本内容一致的块6的工作副本作为需要进行工作 状态调整的工作副本。
[0107] 进行负载均衡时,将需要进行负载均衡的数据节点上选取的工作副本调整为备用 副本,将其他节点上与选取的工作副本内容一致的备用副本调整为工作副本,比如图5A中 选择一个工作副本进行工作状态调整时,则将节点1上的块2的工作副本调整为备用副本, 并把节点2上的块2的备用副本调整为工作副本中,如图5B所示,最终实现流量的切换,达 到负载均衡,如图5C所示。
[0108] 本发明实施例中进行负载均衡时,在需要进行负载均衡的数据节点上选取设定比 例的工作副本作为需要进行工作状态调整的工作副本,并且在具体选择工作副本时根据需 要进行负载均衡的数据节点上的工作副本内容一致的备用副本所在的其他数据节点的系 统性能比率进行选择,使负载均衡更为精确,提高分布式文件系统的整体性能。
[0109] 实施例四
[0110] 基于实施例一至实施例三提供的负载均衡方法,本发明实施例提供一种负载均衡 器,如图6所示,包括:确定单元601、选取单元602和调整单元603 ;
[0111] 确定单元601,用于在分布式文件系统中的各个数据节点中,确定需要进行负载均 衡的数据节点,并将确定的需要进行负载均衡的数据节点的信息发送至所述选取单元602。
[0112] 选取单元602,用于接收确定单元601发送的需要进行负载均衡的数据节点的信 息,以及调整单元603发送的能够被访问的工作副本和不能被访问的备用副本的信息,并 在确定的需要进行负载均衡的数据节点中,选取工作副本,将选取的工作副本的信息发送 至调整单元603。
[0113] 调整单元603,用于预先将每个块的副本区分为能够被访问的工作副本,和不能被 访问的备用副本,并接收选取单元发送的选取了的工作副本的信息,将选取的工作副本调 整为备用副本,并在确定的需要进行负载均衡的数据节点之外的其他数据节点中,将与选 取的工作副本内容一致的至少一个备用副本调整为工作副本。
[0114] 其中,确定单元601,具体用于:
[0115] 对分布式文件系统中的各个数据节点的监控项进行监控,并根据监控得到的监控 项数据值确定需要进行负载均衡的数据节点;
[0116] 其中,监控项包括下列至少其中之一:
[0117] 数据节点的CPU占用率、数据节点的内存使用率、数据节点的磁盘读写速度和数 据节点的网络延时。
[0118] 其中,确定单元601,具体用于:
[0119] 使用单独的线程分别周期性监控分布式文件系统中的每一数据节点的监控项。
[0120] 其中,确定单元601,具体用于:
[0121] 根据对设定监控项监控得到的监控项数据值,判断是否存在过负荷数据节点;
[0122] 在各个数据节点中,若对至少一个数据节点的任一监控项监控得到的监控项数据 值超过对应的过负荷阈值,则确定存在过负荷数据节点,选择过负荷数据节点,作为需要进 行负载均衡的数据节点;
[0123] 在各个数据节点中,若对每个数据节点的任一监控项监控得到的监控项数据值均 没有超过对应的过负荷阈值,则确定不存在过负荷数据节点,根据每个数据节点的系统性 能确定需要进行负载均衡的数据节点。
[0124] 其中,确定单元601,具体用于:
[0125] 根据对每一监控项监控得到的监控项数据值、以及与该监控项对应的过负荷阈 值,确定每个数据节点的系统性能比率值;
[0126] 根据确定的每个数据节点的系统性能比率值,得到系统性能比率值最高的数据节 点和系统性能比率值最低的数据节点;
[0127] 当系统性能比率值最高的数据节点的系统性能比率值超出该数据节点系统性能 比率值的阈值、且是系统性能比率值最低的数据节点的系统性能比率值的设定倍数时,将 系统性能比率值最高的数据节点作为需要进行负载均衡的数据节点。
[0128] 其中,确定单元601,具体用于:
[0129] 针对每一数据节点,确定对该数据节点监控得到的每一监控项的监控项数据值与 对应的过负荷阈值的比值,并将确定的比值中最高的比值,作为该数据节点的系统性能比 率值。
[0130] 其中,选取单元602,具体用于:
[0131] 针对任一需要进行负载均衡的数据节点,分别确定与该需要进行负载均衡的数据 节点中存储的各个工作副本内容一致的备用副本所在的数据节点,并
[0132] 将确定的备用副本所在的数据节点,按照数据节点的系统性能比率值的大小进行 排序;
[0133] 参照要选取的工作副本的数目,在确定的备用副本所在的数据节点中,按照数据 节点的系统性能比率值从小到大的顺序,依次选择数目的数据节点;
[0134] 在该需要进行负载均衡的数据节点中,选取内容与选择的数据节点中存储的备用 副本内容一致的工作副本。
[0135] 本发明实施例提供的负载均衡器,将分布式文件系统中的各个数据节点存储的每 个块的副本区分为能够被访问的工作副本和不被访问的备用副本,进行负载均衡时,可通 过调整副本的工作状态,将需要进行负载均衡的数据节点上选取的需要进行工作状态调整 的工作副本调整为备用副本,并在确定的需要进行负载均衡的数据节点之外的其他数据节 点中将与选取的工作副本内容一致的备用副本调整为工作副本,能够较快速的完成访问流 量的切换,无需进行数据的复制,降低了对分布式系统整体性能的影响。
[0136] 本发明实施例提供的上述负载均衡器,可以是独立的部件,也可以是集成于其他 部件中,例如本发明实施例提供的上述负载均衡器可以是现有分布式文件系统中的管理节 点,也可以是集成于管理节点内的一个新的部件。
[0137] 可以理解的是,本发明实施例提供的负载均衡器的各个模块/单元的功能实现以 及交互方式可以进一步参照相关方法实施例的描述。
[0138] 实施例五
[0139] 基于本发明实施例提供的负载均衡方法和负载均衡器,本发明实施例五还提供了 一种负载均衡设备,如图7所示,该负载均衡设备包括处理器701和均衡器702,其中,
[0140] 处理器701,用于在分布式文件系统中的各个数据节点中,确定需要进行负载均衡 的数据节点,将确定的需要进行负载均衡的数据节点的信息传送至均衡器702进行负载均 衡;
[0141] 均衡器702,用于接收处理器701传送的需要进行负载均衡的数据节点的信息,并 根据预先区分的能够被访问的工作副本和不能被访问的备用副本的信息,在确定的需要进 行负载均衡的数据节点中选取工作副本,将选取的工作副本调整为备用副本,并在确定的 需要进行负载均衡的数据节点之外的其他数据节点中,将与选取的工作副本内容一致的至 少一个备用副本调整为工作副本。
[0142] 本发明实施例提供的负载均衡设备,将分布式文件系统中的各个数据节点存储的 每个块的副本区分为能够被访问的工作副本和不被访问的备用副本,进行负载均衡时,可 通过调整副本的工作状态,将需要进行负载均衡的数据节点上选取的需要进行工作状态调 整的工作副本调整为备用副本,并在确定的需要进行负载均衡的数据节点之外的其他数据 节点中将与选取的工作副本内容一致的备用副本调整为工作副本,能够较快速的完成访问 流量的切换,无需进行数据的复制,降低了对分布式系统整体性能的影响。
[0143] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1. 一种负载均衡方法,其特征在于,包括: 在分布式文件系统中的各个数据节点中,确定需要进行负载均衡的数据节点; 在所述确定的需要进行负载均衡的数据节点中,选取工作副本,其中,所述工作副本为 能够被访问的副本; 将所述选取的工作副本调整为备用副本,并在确定的需要进行负载均衡的数据节点之 外的其他数据节点中,将与所述选取的工作副本内容一致的至少一个备用副本调整为工作 副本,所述备用副本为不能被访问的副本。
2. 如权利要求1所述的方法,其特征在于,所述确定需要进行负载均衡的数据节点,包 括: 对所述分布式文件系统中的各个数据节点的监控项进行监控,并根据监控得到的监控 项数据值确定需要进行负载均衡的数据节点; 其中,所述监控项包括下列至少其中之一: 所述数据节点的CPU占用率、所述数据节点的内存使用率、所述数据节点的磁盘读写 速度和所述数据节点的网络延时。
3. 如权利要求2所述的方法,其特征在于,所述对分布式文件系统中的各个数据节点 的监控项进行监控,包括: 使用单独的线程分别周期性监控所述分布式文件系统中的每一数据节点的监控项。
4. 如权利要求2或3所述的方法,其特征在于,所述根据监控得到的监控项数据值确定 需要进行负载均衡的数据节点,包括: 在各个数据节点中,若对至少一个数据节点的任一监控项监控得到的监控项数据值超 过对应的过负荷阈值,则确定存在过负荷数据节点,选择过负荷数据节点,作为需要进行负 载均衡的数据节点; 在各个数据节点中,若对每个数据节点的任一监控项监控得到的监控项数据值均没有 超过对应的过负荷阈值,则确定不存在过负荷数据节点,根据每个数据节点的系统性能,确 定需要进行负载均衡的数据节点。
5. 如权利要求4所述的方法,其特征在于,所述根据每个数据节点的系统性能确定需 要进行负载均衡的数据节点,包括: 根据对每一监控项监控得到的监控项数据值、以及与所述每一监控项对应的过负荷阈 值,确定每个数据节点的系统性能比率值; 根据确定的所述每个数据节点的系统性能比率值,得到系统性能比率值最高的数据节 点和系统性能比率值最低的数据节点; 当所述系统性能比率值最高的数据节点的系统性能比率值超出所述数据节点系统性 能比率值的阈值、且是所述系统性能比率值最低的数据节点的系统性能比率值的设定倍数 时,将所述系统性能比率值最高的数据节点作为需要进行负载均衡的数据节点。
6. 如权利要求5所述的方法,其特征在于,在需要进行负载均衡的数据节点中,选取工 作副本,包括: 针对任一需要进行负载均衡的数据节点,分别确定与所述需要进行负载均衡的数据节 点中存储的各个工作副本内容一致的备用副本所在的数据节点,并 将确定的所述备用副本所在的数据节点,按照数据节点的系统性能比率值的大小进行 排序; 依据要选取的工作副本的数目,在确定的备用副本所在的数据节点中,按照数据节点 的系统性能比率值从小到大的顺序,依次选择所述数目的数据节点; 在该需要进行负载均衡的数据节点中,选取内容与选择的数据节点中存储的备用副本 内容一致的工作副本。
7. -种负载均衡器,其特征在于,包括:确定单元、选取单元和调整单元; 确定单元,用于在分布式文件系统中的各个数据节点中,确定需要进行负载均衡的数 据节点,并将确定的需要进行负载均衡的数据节点的信息发送至所述选取单元; 选取单元,用于接收所述确定单元发送的需要进行负载均衡的数据节点的信息,以及 所述调整单元发送的能够被访问的工作副本和不能被访问的备用副本的信息,并在所述确 定的需要进行负载均衡的数据节点中,选取工作副本,将选取的工作副本的信息发送至所 述调整单元; 调整单元,用于预先将每个块的副本区分为能够被访问的工作副本,和不能被访问的 备用副本,并接收所述选取单元发送的选取了的工作副本的信息,将所述选取的工作副本 调整为备用副本,并在确定的需要进行负载均衡的数据节点之外的其他数据节点中,将与 所述选取的工作副本内容一致的至少一个备用副本调整为工作副本。
8. 如权利要求7所述的负载均衡器,其特征在于,所述确定单元,具体用于: 对分布式文件系统中的各个数据节点的监控项进行监控,并根据监控得到的监控项数 据值确定需要进行负载均衡的数据节点; 其中,所述监控项包括下列至少其中之一: 所述数据节点的CPU占用率、所述数据节点的内存使用率、所述数据节点的磁盘读写 速度和所述数据节点的网络延时。
9. 如权利要求7或8所述的负载均衡器,其特征在于,所述确定单元,具体用于: 在各个数据节点中,若对至少一个数据节点的任一监控项监控得到的监控项数据值超 过对应的过负荷阈值,则确定存在过负荷数据节点,选择过负荷数据节点,作为需要进行负 载均衡的数据节点; 在各个数据节点中,若对每个数据节点的任一监控项监控得到的监控项数据值均没有 超过对应的过负荷阈值,则确定不存在过负荷数据节点,根据每个数据节点的系统性能,确 定需要进行负载均衡的数据节点。
10. 如权利要求9所述的负载均衡器,其特征在于,所述确定单元,具体用于: 根据对每一监控项监控得到的监控项数据值、以及与该监控项对应的过负荷阈值,确 定每个数据节点的系统性能比率值; 根据确定的每个数据节点的系统性能比率值,得到系统性能比率值最高的数据节点和 系统性能比率值最低的数据节点; 当所述系统性能比率值最高的数据节点的系统性能比率值超出该数据节点系统性能 比率值的阈值、且是所述系统性能比率值最低的数据节点的系统性能比率值的设定倍数 时,将所述系统性能比率值最高的数据节点作为需要进行负载均衡的数据节点。
【文档编号】H04L29/08GK104144127SQ201310168370
【公开日】2014年11月12日 申请日期:2013年5月8日 优先权日:2013年5月8日
【发明者】魏一峰 申请人:华为软件技术有限公司