CN115373827A - 基于区块链的负载均衡调度方法及装置、区块链系统 - Google Patents

基于区块链的负载均衡调度方法及装置、区块链系统 Download PDF

Info

Publication number
CN115373827A
CN115373827A CN202110539343.5A CN202110539343A CN115373827A CN 115373827 A CN115373827 A CN 115373827A CN 202110539343 A CN202110539343 A CN 202110539343A CN 115373827 A CN115373827 A CN 115373827A
Authority
CN
China
Prior art keywords
current
sdn controller
resource
sdn
load
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.)
Pending
Application number
CN202110539343.5A
Other languages
English (en)
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202110539343.5A priority Critical patent/CN115373827A/zh
Publication of CN115373827A publication Critical patent/CN115373827A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及基于区块链的负载均衡调度方法及装置、区块链系统、计算机可存储介质,涉及信息技术领域。所述区块链包括多个节点,每个节点为一个软件定义网络SDN控制器。所述负载均衡调度方法由所述多个SDN控制器中的任一个执行,执行所述负载均衡调度方法的SDN控制器为当前SDN控制器,包括:从所述区块链的分布式账本中,获取所述当前SDN控制器的资源负载数据;根据所述当前SDN控制器的资源负载数据,确定所述当前SDN控制器的当前资源负载率;在所述当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器。

Description

基于区块链的负载均衡调度方法及装置、区块链系统
技术领域
本公开涉及信息技术领域,特别涉及基于区块链的负载均衡调度方法及装置、区块链系统、计算机可存储介质。
背景技术
SDN(Software Defined Network,软件定义网络)控制器是控制平面的核心部件,也是整个SDN体系结构中的逻辑中心。随着SDN网络规模不断扩展,对SDN网络的处理能力的要求越来越高。而单一SDN控制器结构的SDN网络的处理能力有限,因此需要对SDN控制器进行扩展,并基于资源进行负载均衡。
相关技术中,利用预先构建的中心负载均衡调度服务器,定时获取SDN网络中的各个SDN控制器的负载情况信息,根据所获取的负载情况信息,计算各个SDN控制器的负载率,并在某个SDN控制器的负载率超过负载率阈值的情况下,对该SDN控制器进行负载均衡调度。
发明内容
相关技术中,采用中心化的负载均衡调度方式,负载均衡调度的效率较低,且中心负载均衡调度服务器的建设成本和运维成本高。
针对上述技术问题,本公开提出了一种解决方案,可以提高负载均衡调度的效率,还可以降低成本。
根据本公开的第一方面,提供了一种基于区块链的负载均衡调度方法,其中,所述区块链包括多个节点,每个节点为一个软件定义网络SDN控制器,所述负载均衡调度方法由所述多个SDN控制器中的任一个执行,执行所述负载均衡调度方法的SDN控制器为当前SDN控制器,包括:从所述区块链的分布式账本中,获取所述当前SDN控制器的资源负载数据;根据所述当前SDN控制器的资源负载数据,确定所述当前SDN控制器的当前资源负载率;在所述当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器。
在一些实施例中,确定所述当前SDN控制器的当前资源负载率包括:从所述区块链的分布式账本中,获取所述其他SDN控制器的资源负载数据;利用所述当前SDN控制器的资源负载数据和所述其他SDN控制器的资源负载数据,对所述当前SDN控制器的资源负载数据进行归一化处理;针对所述当前SDN控制器,根据归一化处理后的资源负载数据,确定相应的当前资源负载率。
在一些实施例中,每个SDN控制器的资源负载数据为针对该SDN控制器的多种资源的负载情况的数据,每个SDN控制器的资源负载数据包括该SDN控制器的每种资源的当前存量和当前可用量,对所述当前SDN控制器的资源负载数据进行归一化处理包括:根据与每种资源对应的、所述多个SDN控制器的当前存量和当前可用量,确定所述每种资源在所述多个SDN控制器中的消耗比例,所述消耗比例表征每种资源在当前时刻被所述多个SDN控制器占用的总比例;根据所述多种资源的消耗比例,确定每种资源在所述多个SDN控制器的资源负载中的权重比,所述每种资源的权重比与该种资源的消耗比成正相关;根据所述多种资源的权重比,对所述当前SDN控制器的多种资源的当前存量和当前可用量分别进行归一化处理,得到所述当前SDN控制器的多种资源的总存量和总可用量;其中,所述当前SDN控制器的当前资源负载率与所述总存量成正相关、且与所述总可用量成负相关。
在一些实施例中,根据所述多种资源的消耗比例,确定每种资源在所述多个SDN控制器的资源负载中的权重比包括:计算所述多种资源的消耗比例之和;针对每种资源,将所述每种资源的消耗比例与所述多种资源的消耗比例之和之间的比值,确定为所述每种资源的权重比。
在一些实施例中,确定所述每种资源在所述多个SDN控制器中的消耗比例包括:根据与每种资源对应的、所述多个SDN控制器的当前存量之和以及当前可用量之和,确定所述每种资源在所述多个SDN控制器中的消耗比例,所述消耗比例与所述当前存量之和成正相关、且与所述当前可用量之和成负相关。
在一些实施例中,根据所述多种资源的权重比,对所述当前SDN控制器的多种资源的当前存量和当前可用量分别进行归一化处理包括:根据所述多种资源的权重比,对所述当前SDN控制器的多种资源的当前存量和当前可用量分别进行加权处理。
在一些实施例中,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器包括:从候选SDN控制器集合中,筛选出i个候选SDN控制器,i为正整数,i初始化为1,所述候选SDN控制器集合初始化为所述其他SDN控制器;以所述当前SDN控制器迁移后的目标资源负载率与每个候选SDN控制器迁移后的目标资源负载率之间的差值在预设差值范围内为目标,根据每个候选SDN控制器和所述当前SDN控制器的资源负载数据,构建关于从所述当前SDN控制器迁移出去的待迁移总资源负载、和迁移到每个候选SDN控制器的待迁移子资源负载的目标模型;对所述目标模型求解,得到一个或多个目标解,每个目标解包括待迁移总资源负载和迁移到每个候选SDN控制器的待迁移子资源负载;判断是否存在至少一个目标解满足迁移条件;在存在至少一个目标解满足所述迁移条件的情况下,将所述i个候选SDN控制器,确定为目标SDN控制器,并根据所述至少一个目标解,执行迁移操作。
在一些实施例中,筛选出i个候选SDN控制器包括:从所述候选SDN控制器集合中,筛选出位置与所述当前SDN控制器的位置之间的距离最短的i个候选SDN控制器。
在一些实施例中,所述迁移条件包括:所述当前SDN控制器和每个候选SDN控制器的目标资源负载率分别小于相应的资源负载率阈值、和所述多个SDN控制器的目标资源负载率的方差小于所述多个SDN控制器的当前资源负载率的方差。
在一些实施例中,在不存在任何一个目标解满足所述迁移条件的情况下,从所述候选SDN控制器集合中,删除所述i个候选SDN控制器中的、与所述当前SDN控制器的位置之间的距离最短的一个候选SDN控制器,并重新执行筛选、构建、求解和判断的操作,直到存在至少一个目标解满足所述迁移条件;在直到所述候选SDN控制器集合为空,也不存在任何一个目标解满足所述迁移条件的情况下,重新初始化所述候选SDN控制器集合为所述其他SDN控制器,并按照预设策略增加i的值,按照增加后的i的值重新执行筛选、构建、求解和判断的操作,直到存在至少一个目标解满足所述迁移条件。
在一些实施例中,每个SDN控制器用于管控一个SDN控制域中的多个网络设备,根据所述至少一个目标解,执行迁移操作包括:
根据满足所述迁移条件的任意一个目标解,从所述当前SDN控制器所管控的多个网络设备中,筛选至少一个待迁移网络设备,每个待迁移网络设备对应一个目标SDN控制器;针对每个待迁移网络设备,控制所述每个待迁移网络设备向与其对应的目标SDN控制器发送纳管请求,以便该目标SDN控制器管控所述每个待迁移网络设备。
在一些实施例中,负载均衡调度方法,还包括:在所述当前SDN控制器的资源负载数据发生变化的情况下,在所述区块链的分布式账本中,更新所述当前SDN控制器的资源负载数据。
在一些实施例中,每个SDN控制器的资源负载数据为针对该SDN控制器的多种资源的负载情况的数据,更新所述当前SDN控制器的资源负载数据包括:根据所述当前SDN控制器的资源负载数据的变化情况信息,生成资源负载数据的变动记录;发送所述变动记录到所述区块链中的主节点,以便所述主节点对所述变动记录进行数据完整性校验,并在主节点对所述变动记录进行数据完整性校验成功的情况下,定时根据所述变动记录生成并发送数据区块到所述当前SDN控制器;接收所述主节点生成的数据区块,并对所述数据区块进行数据完整性校验;在对所述数据区块进行数据完整性校验成功的情况下,将所述数据区块写入所述区块链中所述当前SDN控制器的分布式账本中。
根据本公开第二方面,提供了一种基于区块链的负载均衡调度装置,其中,所述区块链包括多个节点,每个节点为一个软件定义网络SDN控制器,所述负载均衡调度装置部署于每个SDN控制器中,包括:获取模块,被配置为从所述区块链的分布式账本中,获取所述当前SDN控制器的资源负载数据;确定模块,被配置为根据所述当前SDN控制器的资源负载数据,确定所述当前SDN控制器的当前资源负载率;迁移模块,被配置为在所述当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器。
根据本公开第三方面,提供了一种基于区块链的负载均衡调度装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的负载均衡调度方法。
根据本公开的第四方面,提供了一种区块链系统,包括:多个节点,每个节点为一个软件定义网络SDN控制器,每个SDN控制器包括上述任一实施例所述的负载均衡调度装置。
根据本公开的第五方面,提供了一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的负载均衡调度方法。
在上述实施例中,可以提高负载均衡调度的效率,还可以降低成本。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开一些实施例的基于区块链的负载均衡调度方法的流程图;
图2是示出根据本公开一些实施例的确定当前SDN控制器的当前资源负载率的流程图;
图3是示出根据本公开一些实施例的对当前SDN控制器的资源负载数据进行归一化处理的流程图;
图4是示出根据本公开一些实施例的基于区块链的负载均衡调度装置的框图;
图5是示出根据本公开另一些实施例的基于区块链的负载均衡调度装置的框图;
图6是示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开一些实施例的基于区块链的负载均衡调度方法的流程图。
如图1所示,基于区块链的负载均衡调度方法包括步骤S10-步骤S30。例如,区块链包括多个节点,每个节点为一个SDN控制器。负载均衡调度方法可以由多个SDN控制器中的任一个执行。例如,执行负载均衡调度方法的SDN控制器为当前SDN控制器。在一些实施例中,每个SDN控制器可以定时执行负载均衡调度方法。
在步骤S10中,从区块链的分布式账本中,获取当前SDN控制器的资源负载数据。资源负载数据用于描述SDN控制器的资源负载情况。在区块链的分布式账本中,还存储有除当前SDN控制器以外的其他SDN控制器的资源负载数据。
在步骤S20中,根据当前SDN控制器的资源负载数据,确定当前SDN控制器的当前资源负载率。
例如,可以通过如图2所示的方式实现上述步骤S20。
图2是示出根据本公开一些实施例的确定当前SDN控制器的当前资源负载率的流程图。
如图2所示,确定当前SDN控制器的当前资源负载率包括步骤S21-步骤S23。
在步骤S21中,从区块链的分布式账本中,获取其他SDN控制器的资源负载数据。
在步骤S22中,利用当前SDN控制器的资源负载数据和其他SDN控制器的资源负载数据,对当前SDN控制器的资源负载数据进行归一化处理。
例如,可以通过如图3所示方式实现上述步骤S22。
图3是示出根据本公开一些实施例的对当前SDN控制器的资源负载数据进行归一化处理的流程图。
如图3所示,对当前SDN控制器的资源负载数据进行归一化处理包括步骤S221-步骤S223。例如,每个SDN控制器的资源负载数据为针对该SDN控制器的多种资源的负载情况的数据。每个SDN控制器的资源负载数据包括该SDN控制器的每种资源的当前存量和当前可用量。
在一些实施例中,每个SDN控制器的多种资源包括但不限于计算资源(CPU资源等)、外存资源(硬盘资源等)、内存资源(系统内存等)和网络资源(链路带宽等)。
在一些实施例中,可以将每个SDN控制器的资源负载数据构建为资源数据模型。例如,资源数据模型包括每个SDN控制器所管控的SDN控制域的ID(Identity document,身份标识号),用于唯一标识每个SDN控制器。资源数据模型还包括每个SDN控制器的计算资源、外存资源、内存资源和网络资源的当前存量C、S、M和N。资源数据模型还包括每个SDN控制器的计算资源、外存资源、内存资源和网络资源的当前可用量ΔC、ΔS、ΔM和ΔN。
以每个SDN控制器都是基于虚拟化设施部署为例,针对某个SDN控制器,其计算资源、外存资源和内存资源分别分布在n、m和p个虚机上,其网络资源分布在t条链路上。
例如,第q个虚机上的计算资源、外存资源和内存资源的当前存量分别表示为Vq、Lq和Wq,q为正整数。那么,针对该SDN控制器,其计算资源的当前存量为
Figure BDA0003071053580000081
外存资源的当前存量为
Figure BDA0003071053580000082
内存资源的当前存量为
Figure BDA0003071053580000083
第q条链路上的网络资源的当前存量表示为Dq。那么,针对该SDN控制器,网络资源的当前存量为
Figure BDA0003071053580000084
又例如,第q个虚机上的计算资源、外存资源和内存资源的当前可用量分别表示为ΔVq、ΔLq和ΔWq,q为正整数。那么,针对该SDN控制器,其计算资源的当前可用量为
Figure BDA0003071053580000091
外存资源的当前可用量为
Figure BDA0003071053580000092
内存资源的当前可用量为
Figure BDA0003071053580000093
第q条链路上的网络资源的当前可用量表示为ΔDq。那么,针对该SDN控制器,网络资源的当前可用量为
Figure BDA0003071053580000094
在步骤S221中,根据与每种资源对应的、多个SDN控制器的当前存量和当前可用量,确定每种资源在多个SDN控制器中的消耗比例。消耗比例表征每种资源在当前时刻被多个SDN控制器占用的总比例。
在一些实施例中,根据与每种资源对应的、多个SDN控制器的当前存量之和以及当前可用量之和,确定每种资源在多个SDN控制器中的消耗比例。消耗比例与当前存量之和成正相关、且与当前可用量之和成负相关。
例如,计算资源、外存资源、网络资源和内存资源在多个SDN控制器中的消耗比分别表示为α1、α2、α3和α4。以区块链包括k个SDN控制器为例,
Figure BDA0003071053580000095
Figure BDA0003071053580000096
j为SDN控制器的标识号。ΔCj、ΔSj、ΔNj和ΔMj分别为SDN控制器j的计算资源、外存资源、网络资源和内存资源的当前可用量。Cj、Sj、Nj和Mj分别为SDN控制器j的计算资源、外存资源、网络资源和内存资源的当前存量。
在步骤S222中,根据多种资源的消耗比例,确定每种资源在多个SDN控制器的资源负载中的权重比。每种资源的权重比与该种资源的消耗比成正相关。
在一些实施例中,计算多种资源的消耗比例之和;针对每种资源,将每种资源的消耗比例与多种资源的消耗比例之和之间的比值,确定为每种资源的权重比。
例如,计算资源、外存资源、网络资源和内存资源在多个SDN控制器的资源负载(业务承载)中的权重比分别表示为β1、β2、β3和β4
Figure BDA0003071053580000097
Figure BDA0003071053580000098
在步骤S223中,根据多种资源的权重比,对当前SDN控制器的多种资源的当前存量和当前可用量分别进行归一化处理,得到当前SDN控制器的多种资源的总存量和总可用量。
在一些实施例中,根据多种资源的权重比,对当前SDN控制器的多种资源的当前存量和当前可用量分别进行加权处理。
例如,当前SDN控制器的多种资源的总存量和总可用量在资源数据模型中表示为R和ΔR。R=β1×C+β2×S+β3×N+β4×M。ΔR=β1×ΔC+β2×ΔS+β3×ΔN+β4×ΔM。
在上述实施例中,归一化过程依据不同种类资源在所有SDN控制器中的消耗比例来确定权重比,可以降低不同种类资源的量纲不同所带来的误差,从而可以提高所确定的资源负载率的准确性,进而可以提高负载均衡调度的准确性。
返回图2,在步骤S23中,针对当前SDN控制器,根据归一化处理后的资源负载数据,确定相应的当前资源负载率。例如,结合上述步骤S223得到的总存量和总可用量,当前SDN控制器的当前资源负载率与总存量成正相关、且与总可用量成负相关。以总存量为R、总可用量为ΔR为例,当前SDN控制器j的当前资源负载率为
Figure BDA0003071053580000101
在上述实施例中,利用其他SDN控制器的资源负载数据,对当前SDN控制器的资源负载数据进行归一化,进而利用归一化处理后的资源负载数据计算当前资源负载率,考虑了区块链中的多个SDN控制器的整体情况,可以降低由于区块链上多个SDN控制器的资源负载情况不同所带来的计算误差,从而可以提高所确定的资源负载率的准确性,进而可以提高负载均衡调度的准确性。
返回图1,在步骤S30中,在当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将当前SDN控制器的当前资源负载的一部分,迁移到除当前SDN控制器以外的其他SDN控制器。例如,每个SDN控制器可以分别对应一个资源负载率阈值。又例如,多个SDN控制器可以对应同一个资源负载率阈值。
在一些实施例中,可以通过如下的方式实现上述步骤S30。
首先,从候选SDN控制器集合中,筛选出i个候选SDN控制器,i为正整数。i初始化为1。候选SDN控制器集合初始化为其他SDN控制器。在一些实施例中,多个SDN控制器包括SDN控制器1~10,当前SDN控制器为1,则候选SDN控制器集合初始化为{2,3,4,5,6,7,8,9,10}。
在一些实施例中,从候选SDN控制器集合中,筛选出位置与当前SDN控制器的位置之间的距离最短的i个候选SDN控制器。例如,资源负载数据(资源数据模型)中还包括SDN控制器的位置信息。就近选择候选SDN控制器,可以降低网络设备与SDN控制器的通信时延。
例如,SDN控制器2~10的位置与当前SDN控制器1的位置之间的距离依次增大。在i为1的情况下,所筛选的1个候选SDN控制器为SDN控制器2。在i为2情况下,所筛选的2个候选SDN控制器为SDN控制器2和3。针对i的其他值,筛选过程类似,此处不再赘述。
其次,以当前SDN控制器迁移后的目标资源负载率与每个候选SDN控制器迁移后的目标资源负载率之间的差值在预设差值范围内为目标(保持负载均衡),根据每个候选SDN控制器和当前SDN控制器的资源负载数据,构建关于从当前SDN控制器迁移出去的待迁移总资源负载、和迁移到每个候选SDN控制器的待迁移子资源负载的目标模型。
例如,预设差值范围为0,则构建目标模型的目标为当前SDN控制器迁移后的目标资源负载率与每个候选SDN控制器迁移后的目标资源负载率相等。待迁移总资源负载表示为LM,迁移到候选SDN控制器a的待迁移子资源负载表示为Lma,a的取值为2~10。
例如,根据当前SDN控制器的资源负载数据,可以确定当前SDN控制器的当前负载Lj和最大负载Lj-max。当前负载Lj为当前SDN控制器的总存量与总可用量的差值。最大负载Lj-max为当前SDN控制器的总存量。当前SDN控制器迁移后的目标资源负载率为
Figure BDA0003071053580000111
例如,根据候选SDN控制器a的资源负载数据,可以确定候选SDN控制器的当前负载La和最大负载La-max。当前负载La为候选SDN控制器a的总存量与总可用量的差值。最大负载La-max为侯选SDN控制器a的总存量。侯选SDN控制器a迁移后的目标资源负载率为
Figure BDA0003071053580000121
关于从当前SDN控制器迁移出去的待迁移总资源负载、和迁移到每个候选SDN控制器的待迁移子资源负载的目标模型包括针对每个候选SDN控制器a构建的第一方程
Figure BDA0003071053580000122
在所筛选的候选SDN控制器的数量i大于或等于2的情况下,目标模型还包括第二方程,第二方程为从当前SDN控制器迁移出去的待迁移总资源负载等于迁移到各个候选SDN控制器的待迁移子资源负载之和。
以所筛选的候选SDN控制器为候选SDN控制器a1和候选SDN控制器a2为例,所构建的目标模型为:
Figure BDA0003071053580000123
La1和Lma1分别为候选SDN控制器a1的当前负载和最大负载。La2和Lma2分别为候选SDN控制器a2的当前负载和最大负载。
再次,对目标模型求解,得到一个或多个目标解,每个目标解包括待迁移总资源负载和迁移到每个候选SDN控制器的待迁移子资源负载。
然后,判断是否存在至少一个目标解满足迁移条件。在一些实施例中,迁移条件包括:当前SDN控制器和每个候选SDN控制器的目标资源负载率分别小于相应的资源负载率阈值、和多个SDN控制器的目标资源负载率的方差小于多个SDN控制器的当前资源负载率的方差。
例如,k个SDN控制器的资源负载的方差
Figure BDA0003071053580000124
Figure BDA0003071053580000125
为k个SDN控制器的资源负载率的平均值,LRk为第k个SDN控制器的资源负载率。
最后,在存在至少一个目标解满足迁移条件的情况下,将i个候选SDN控制器,确定为目标SDN控制器,并根据至少一个目标解,执行迁移操作。
在一些实施例中,每个SDN控制器用于管控一个SDN控制域中的多个网络设备。例如,根据满足迁移条件的任意一个目标解,从当前SDN控制器所管控的多个网络设备中,筛选至少一个待迁移网络设备,每个待迁移网络设备对应一个目标SDN控制器;针对每个待迁移网络设备,控制每个待迁移网络设备向与其对应的目标SDN控制器发送纳管请求,以便该目标SDN控制器管控每个待迁移网络设备。
例如,在不存在任何一个目标解满足迁移条件的情况下,从候选SDN控制器集合中,删除i个候选SDN控制器中的、与当前SDN控制器的位置之间的距离最短的一个候选SDN控制器,并重新执行筛选、构建、求解和判断的操作,直到存在至少一个目标解满足迁移条件。例如,在i为2的情况下,将2个候选SDN控制器中与当前SDN控制器的位置之间的距离最短的一个候选SDN控制器,从候选SDN控制器集合中删除,以更新候选SDN控制器集合。
在直到候选SDN控制器集合为空,也不存在任何一个目标解满足迁移条件的情况下,重新初始化候选SDN控制器集合为其他SDN控制器,并按照预设策略增加i的值(例如,更新i的值为i+1),按照增加后的i的值重新执行筛选、构建、求解和判断的操作,直到存在至少一个目标解满足迁移条件。
在上述实施例中,将SDN控制器作为区块链的节点,每个SDN控制器均可以对自己执行负载均衡调度过程,实现了去中心化的负载均衡调度,可以提高负载均衡调度的效率。另外,无需建设中心负载均衡调度服务器或平台,可以降低建设成本和运维成本。
在一些实施例中,负载均衡调度方法还包括在当前SDN控制器的资源负载数据发生变化的情况下,在区块链的分布式账本中,更新当前SDN控制器的资源负载数据。通过及时更新资源负载数据,可以保证负载均衡调度的准确性和及时性。
例如,当前SDN控制器在执行负载均衡调度方法后会导致资源负载数据发生变化。又例如,当前SDN控制器在增加网络设备或减少网络设备的情况下,也会导致资源负载数据发生变化。
例如,每个SDN控制器的资源负载数据为针对该SDN控制器的多种资源的负载情况的数据,通过如下方式实现更新当前SDN控制器的资源负载数据。
首先,根据当前SDN控制器的资源负载数据的变化情况信息,生成资源负载数据的变动记录。
然后,发送变动记录到区块链中的主节点,以便主节点对变动记录进行数据完整性校验,并在主节点对变动记录进行数据完整性校验成功的情况下,定时根据变动记录生成并发送数据区块及其对应的时间戳到当前SDN控制器。例如,主节点为区块链中在当前时刻多种资源的总可用量最大的SDN控制器。例如,主节点还将数据区块及其对应的时间戳发送到除当前SDN控制器以外的其他控制器上。
然后,接收主节点生成的数据区块及其对应的时间戳,并对数据区块进行数据完整性校验。
最后,在对数据区块进行数据完整性校验成功的情况下,将数据区块及其对应的时间戳写入区块链中当前SDN控制器的分布式账本中。
图4是示出根据本公开一些实施例的基于区块链的负载均衡调度装置的框图。
如图4所示,基于区块链的负载均衡调度装置4包括获取模块401、确定模块402和迁移模块403。区块链包括多个节点,每个节点为一个SDN控制器。负载均衡调度装置部署于每个SDN控制器中。
获取模块401被配置为从区块链的分布式账本中,获取当前SDN控制器的资源负载数据,例如执行如图1所示的步骤S10。
确定模块402被配置为根据当前SDN控制器的资源负载数据,确定当前SDN控制器的当前资源负载率,例如执行如图1所示的步骤S20。
迁移模块403被配置为在当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将当前SDN控制器的当前资源负载的一部分,迁移到除当前SDN控制器以外的其他SDN控制器,例如执行如图1所示的步骤S30。
在一些实施例中,获取模块401、确定模块402和迁移模块403可以封装为一个SDN控制器负载均衡处理模块。
在一些实施例中,负载均衡调度装置4还包括节点资源感知模块404、资源采集模块405、区块链交互接口406。节点资源感知模块404被配置为感知当前SDN控制器的资源负载数据是否发生变化,并通知资源采集模块405采集资源负载的变化数据来生成资源负载数据的变动记录,进而通过区块链交互交口406将变动记录发送到主节点。主节点对所述变动记录进行数据完整性校验,并在主节点对变动记录进行数据完整性校验成功的情况下,定时根据变动记录生成并发送数据区块。
负载均衡调度装置4的区块生产或写入模块407接收来自主节点的数据区块,并将数据区块发送到负载均衡调度装置4的数据完整性校验模块408。数据完整性校验模块408对数据区块进行数据完整性校验。数据完整性校验依赖于负载均衡调度装置4中的区块链密钥管理模块409中存储的节点密钥和成员密钥。
数据完整性校验模块408对数据区块进行数据完整性校验成功的情况下,通知区块生产或写入模块407通过账本读写模块410将校验成功的数据区块写入到区块链中部署于当前SDN控制器的负载均衡调度装置4的分布式账本411中。例如,分布式账本411中按照时间先后顺序存储有数据区块Block 0、Block 1、…、Block N。一个数据区块存储着一定时间段内所有SDN控制器的资源变动数据(资源交易数据),每条交易即为一个SDN控制器的资源数据模型。
在一些实施例中,负载均衡调度装置4还包括区块链控制模块412。区块链控制模块412是当前SDN控制器的核心模块,用于协同整个SDN控制器的运行。另外,区块链控制模块412还用于在有新的区块入链的情况下,扫描区块链的分布式账本,计算所有节点的多种资源的总可用量的最大值,以确定主节点。区块链控制模块412还用于内建一个定时器,并在当前SDN控制器为主节点时,启动定时器以定时指示区块生产或写入模块407生产数据区块。
在一些实施例中,资源采集模块405、区块链交互交口406、区块生产或写入模块407、区块链控制模块412可以封装为SDN资源区块链控制引擎。
图5是示出根据本公开另一些实施例的基于区块链的负载均衡调度装置的框图。
如图5所示,基于区块链的负载均衡调度装置5包括存储器51;以及耦接至该存储器51的处理器52。存储器51用于存储执行基于区块链的负载均衡调度方法对应实施例的指令。处理器52被配置为基于存储在存储器51中的指令,执行本公开中任意一些实施例中的基于区块链的负载均衡调度方法。
本公开还提出了一种区块链系统。区块链系统包括多个节点,每个节点为一个SDN控制器。每个SDN控制器包括本公开任意一些实施例中的基于区块链的负载均衡调度装置。
图6是示出用于实现本公开一些实施例的计算机系统的框图。
如图6所示,计算机系统60可以通用计算设备的形式表现。计算机系统60包括存储器610、处理器620和连接不同系统组件的总线600。
存储器610例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行基于区块链的负载均衡调度方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器620可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线600可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统60还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器610和处理器620之间可以通过总线600连接。输入输出接口630可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的基于区块链的负载均衡调度方法及装置、区块链系统、计算机可存储介质,可以提高负载均衡调度的效率,还可以降低成本。
至此,已经详细描述了根据本公开的基于区块链的负载均衡调度方法及装置、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

Claims (17)

1.一种基于区块链的负载均衡调度方法,其中,所述区块链包括多个节点,每个节点为一个软件定义网络SDN控制器,所述负载均衡调度方法由所述多个SDN控制器中的任一个执行,执行所述负载均衡调度方法的SDN控制器为当前SDN控制器,包括:
从所述区块链的分布式账本中,获取所述当前SDN控制器的资源负载数据;
根据所述当前SDN控制器的资源负载数据,确定所述当前SDN控制器的当前资源负载率;
在所述当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器。
2.根据权利要求1所述的负载均衡调度方法,其中,确定所述当前SDN控制器的当前资源负载率包括:
从所述区块链的分布式账本中,获取所述其他SDN控制器的资源负载数据;
利用所述当前SDN控制器的资源负载数据和所述其他SDN控制器的资源负载数据,对所述当前SDN控制器的资源负载数据进行归一化处理;
针对所述当前SDN控制器,根据归一化处理后的资源负载数据,确定相应的当前资源负载率。
3.根据权利要求2所述的负载均衡调度方法,其中,每个SDN控制器的资源负载数据为针对该SDN控制器的多种资源的负载情况的数据,每个SDN控制器的资源负载数据包括该SDN控制器的每种资源的当前存量和当前可用量,对所述当前SDN控制器的资源负载数据进行归一化处理包括:
根据与每种资源对应的、所述多个SDN控制器的当前存量和当前可用量,确定所述每种资源在所述多个SDN控制器中的消耗比例,所述消耗比例表征每种资源在当前时刻被所述多个SDN控制器占用的总比例;
根据所述多种资源的消耗比例,确定每种资源在所述多个SDN控制器的资源负载中的权重比,所述每种资源的权重比与该种资源的消耗比成正相关;
根据所述多种资源的权重比,对所述当前SDN控制器的多种资源的当前存量和当前可用量分别进行归一化处理,得到所述当前SDN控制器的多种资源的总存量和总可用量;
其中,所述当前SDN控制器的当前资源负载率与所述总存量成正相关、且与所述总可用量成负相关。
4.根据权利要求3所述的负载均衡调度方法,其中,根据所述多种资源的消耗比例,确定每种资源在所述多个SDN控制器的资源负载中的权重比包括:
计算所述多种资源的消耗比例之和;
针对每种资源,将所述每种资源的消耗比例与所述多种资源的消耗比例之和之间的比值,确定为所述每种资源的权重比。
5.根据权利要求3所述的负载均衡调度方法,其中,确定所述每种资源在所述多个SDN控制器中的消耗比例包括:
根据与每种资源对应的、所述多个SDN控制器的当前存量之和以及当前可用量之和,确定所述每种资源在所述多个SDN控制器中的消耗比例,所述消耗比例与所述当前存量之和成正相关、且与所述当前可用量之和成负相关。
6.根据权利要求3所述的负载均衡调度方法,其中,根据所述多种资源的权重比,对所述当前SDN控制器的多种资源的当前存量和当前可用量分别进行归一化处理包括:
根据所述多种资源的权重比,对所述当前SDN控制器的多种资源的当前存量和当前可用量分别进行加权处理。
7.根据权利要求1所述的负载均衡调度方法,其中,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器包括:
从候选SDN控制器集合中,筛选出i个候选SDN控制器,i为正整数,i初始化为1,所述候选SDN控制器集合初始化为所述其他SDN控制器;
以所述当前SDN控制器迁移后的目标资源负载率与每个候选SDN控制器迁移后的目标资源负载率之间的差值在预设差值范围内为目标,根据每个候选SDN控制器和所述当前SDN控制器的资源负载数据,构建关于从所述当前SDN控制器迁移出去的待迁移总资源负载、和迁移到每个候选SDN控制器的待迁移子资源负载的目标模型;
对所述目标模型求解,得到一个或多个目标解,每个目标解包括待迁移总资源负载和迁移到每个候选SDN控制器的待迁移子资源负载;
判断是否存在至少一个目标解满足迁移条件;
在存在至少一个目标解满足所述迁移条件的情况下,将所述i个候选SDN控制器,确定为目标SDN控制器,并根据所述至少一个目标解,执行迁移操作。
8.根据权利要求7所述的负载均衡调度方法,其中,筛选出i个候选SDN控制器包括:
从所述候选SDN控制器集合中,筛选出位置与所述当前SDN控制器的位置之间的距离最短的i个候选SDN控制器。
9.根据权利要求7所述的负载均衡调度方法,其中,所述迁移条件包括所述当前SDN控制器和每个候选SDN控制器的目标资源负载率分别小于相应的资源负载率阈值、和所述多个SDN控制器的目标资源负载率的方差小于所述多个SDN控制器的当前资源负载率的方差。
10.根据权利要求7所述的负载均衡调度方法,其中,在不存在任何一个目标解满足所述迁移条件的情况下,从所述候选SDN控制器集合中,删除所述i个候选SDN控制器中的、与所述当前SDN控制器的位置之间的距离最短的一个候选SDN控制器,并重新执行筛选、构建、求解和判断的操作,直到存在至少一个目标解满足所述迁移条件;
在直到所述候选SDN控制器集合为空,也不存在任何一个目标解满足所述迁移条件的情况下,重新初始化所述候选SDN控制器集合为所述其他SDN控制器,并按照预设策略增加i的值,按照增加后的i的值重新执行筛选、构建、求解和判断的操作,直到存在至少一个目标解满足所述迁移条件。
11.根据权利要求7所述的负载均衡调度方法,其中,每个SDN控制器用于管控一个SDN控制域中的多个网络设备,根据所述至少一个目标解,执行迁移操作包括:
根据满足所述迁移条件的任意一个目标解,从所述当前SDN控制器所管控的多个网络设备中,筛选至少一个待迁移网络设备,每个待迁移网络设备对应一个目标SDN控制器;
针对每个待迁移网络设备,控制所述每个待迁移网络设备向与其对应的目标SDN控制器发送纳管请求,以便该目标SDN控制器管控所述每个待迁移网络设备。
12.根据权利要求1所述的负载均衡调度方法,还包括:
在所述当前SDN控制器的资源负载数据发生变化的情况下,在所述区块链的分布式账本中,更新所述当前SDN控制器的资源负载数据。
13.根据权利要求12所述的负载均衡调度方法,其中,每个SDN控制器的资源负载数据为针对该SDN控制器的多种资源的负载情况的数据,更新所述当前SDN控制器的资源负载数据包括:
根据所述当前SDN控制器的资源负载数据的变化情况信息,生成资源负载数据的变动记录;
发送所述变动记录到所述区块链中的主节点,以便所述主节点对所述变动记录进行数据完整性校验,并在主节点对所述变动记录进行数据完整性校验成功的情况下,定时根据所述变动记录生成并发送数据区块到所述当前SDN控制器;
接收所述主节点生成的数据区块,并对所述数据区块进行数据完整性校验;
在对所述数据区块进行数据完整性校验成功的情况下,将所述数据区块写入所述区块链中所述当前SDN控制器的分布式账本中。
14.一种基于区块链的负载均衡调度装置,其中,所述区块链包括多个节点,每个节点为一个软件定义网络SDN控制器,所述负载均衡调度装置部署于每个SDN控制器中,包括:
获取模块,被配置为从所述区块链的分布式账本中,获取所述当前SDN控制器的资源负载数据;
确定模块,被配置为根据所述当前SDN控制器的资源负载数据,确定所述当前SDN控制器的当前资源负载率;
迁移模块,被配置为在所述当前SDN控制器的当前资源负载率大于或等于相应的资源负载率阈值的情况下,将所述当前SDN控制器的当前资源负载的一部分,迁移到除所述当前SDN控制器以外的其他SDN控制器。
15.一种基于区块链的负载均衡调度装置,其中,所述区块链包括多个节点,每个节点为一个软件定义网络SDN控制器,所述负载均衡调度装置部署于每个SDN控制器中,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行如权利要求1至13任一项所述的负载均衡调度方法。
16.一种区块链系统,包括:
多个节点,每个节点为一个软件定义网络SDN控制器,每个SDN控制器包括如权利要求14-15任一项所述的负载均衡调度装置。
17.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至13任一项所述的负载均衡调度方法。
CN202110539343.5A 2021-05-18 2021-05-18 基于区块链的负载均衡调度方法及装置、区块链系统 Pending CN115373827A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110539343.5A CN115373827A (zh) 2021-05-18 2021-05-18 基于区块链的负载均衡调度方法及装置、区块链系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110539343.5A CN115373827A (zh) 2021-05-18 2021-05-18 基于区块链的负载均衡调度方法及装置、区块链系统

Publications (1)

Publication Number Publication Date
CN115373827A true CN115373827A (zh) 2022-11-22

Family

ID=84059359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110539343.5A Pending CN115373827A (zh) 2021-05-18 2021-05-18 基于区块链的负载均衡调度方法及装置、区块链系统

Country Status (1)

Country Link
CN (1) CN115373827A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117034361A (zh) * 2023-07-31 2023-11-10 广州承启医学检验有限公司 一种基因检测检验实验室信息管理方法及系统
CN117111438A (zh) * 2023-10-23 2023-11-24 成都科江科技有限公司 一种工业控制器的冗余控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117034361A (zh) * 2023-07-31 2023-11-10 广州承启医学检验有限公司 一种基因检测检验实验室信息管理方法及系统
CN117111438A (zh) * 2023-10-23 2023-11-24 成都科江科技有限公司 一种工业控制器的冗余控制方法

Similar Documents

Publication Publication Date Title
US8713125B2 (en) Method and system for scaling usage of a social based application on an online social network
CN109669985B (zh) 在微服务环境中使用相关数据分配执行任务
CN103390041A (zh) 一种基于中间件提供数据服务的方法和系统
CN115373827A (zh) 基于区块链的负载均衡调度方法及装置、区块链系统
CN103106152A (zh) 基于层次存储介质的数据调度方法
CN111371856B (zh) 云计算任务调度方法、装置、云计算系统及服务器
US11580458B2 (en) Method and system for performance tuning and performance tuning device
CN114356587B (zh) 算力任务跨区域调度方法、系统及设备
CN102929725A (zh) 信号处理并行计算软件的动态重配置方法
US20230229487A1 (en) Virtual machine deployment method, virtual machine management method having the same and virtual machine management system implementing the same
CN115269108A (zh) 一种数据处理方法、装置及设备
CN114936256A (zh) 在区块链中执行交易的方法和区块链节点
CN108875035A (zh) 分布式文件系统的数据存储方法及相关设备
CN108595251B (zh) 动态图更新方法、装置、存储引擎接口和程序介质
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN108241864A (zh) 基于多变量分组的服务器性能预测方法
CN114090204A (zh) 一种资源预测方法及装置
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
CN115344358A (zh) 资源调度方法、装置和管理节点
CN116089477B (zh) 分布式训练方法及系统
WO2017113865A1 (zh) 一种大数据增量计算方法和装置
CN110728372B (zh) 一种人工智能模型动态加载的集群设计方法及集群系统
CN111858656A (zh) 一种基于分布式架构的静态数据的查询方法和设备
CN107621980A (zh) 一种虚拟机迁移方法、集群控制系统和控制装置
CN114978913B (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