掌桥专利:专业的专利平台
掌桥专利
首页

一种多服务器均衡负载方法、系统、介质及设备

文献发布时间:2024-04-18 19:52:40


一种多服务器均衡负载方法、系统、介质及设备

技术领域

本发明涉及计算机技术领域,具体地说是一种多服务器均衡负载方法、系统、介质及设备。

背景技术

负载均衡的目的是创建一个系统:将来自实际运行服务的物理服务器中的“服务”(用户访问站点)进行虚拟化处理,在大量物理服务器之间实现负载均衡,并使这些服务器对外界看起来犹如一个大服务器,为用户提供高可用性、高扩展性、可预测的应用服务。

负载均衡可以改善计算机,计算机集群,网络连接,中央处理器单元或者磁盘驱动琪等多种计算资源和工作负载分布。负载均衡就是优化资源使用,最大吞吐量,最小化响应时间并且避免任何单一资源的过载。使用多个组件进行负载均衡,而不是单个组件可能会通过冗余来提高可靠性和可用性。

负载均衡的作用:1、增加吞吐量,解决并发压力(高性能);2、提供故障转移(高可用);3、通过添加或减少服务器数量,提供网站伸缩性(扩展性);4、安全防护(负载均衡设备上做一些过滤,黑白名单等处理)。

当前负载均衡算法普遍由以下5种算法来实现:1、轮询法;2、加权轮询法;3、随机法;4、加权随机法;5、源地址哈希法。以上5种负载均衡算法各自有各自的优点,然而在“高可用性”上均未能取得很好的成绩。

发明内容

为此,本发明所要解决的技术问题在于提供一种多服务器均衡负载方法、系统、介质及设备,通过以Petri网构建模型,结合正反向推理算法,在原有算法基础上进行创新,实现了一种新的负载模型,此模型不仅可以保留原有算法的高性能,还可实现对高可用性上的性能极大提升,解决了原有算法在高可用上的缺陷。

为解决上述技术问题,本发明提供如下技术方案:

一种多服务器均衡负载方法,当在同一个服务器组内进行负载分配时,通过如下步骤实现均衡负载:

S1)利用Petri网构建多服务器间的初级依赖关系模型;

S2)通过基于功能分组的多层Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配;

S3)利用FPN算法对经步骤S2)处理后的初级依赖关系模型进行反向推理,获得中级依赖关系模型,再对中级依赖关系模型进行正向推理,获得终级依赖关系模型;

S4)通过初始化Qos模型对步骤S3)中得到的终级依赖关系模型进行n次模拟负载,对m次模拟负载后仍处于非活跃状态的服务器进行剔除更换或者问题排查,得到优化后的终级依赖关系模型;其中,n为大于或等于1的自然数,m为大于或等于1且小于或等于n的自然数;

S5)利用步骤S4)得到的优化后的终级依赖关系模型对不同服务器组进行均衡负载。

上述方法,在步骤S2)中,当服务请求选择服务器时依据Qos模型进行选择时:

a)当服务请求数量较大时,通过Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配时以服务器的性能作为评价主体对待负载服务器进行权重分配;其中,服务请求数量较大的判定依据服务器组内服务器的数量以及服务器的性能设定阈值,例如可以设定服务请求大于或等于5000个时,这种情况为服务请求数量为较大;

b)当服务请求数量较少时,通过Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配时以服务器的信用作为评价主体对待负载服务器进行权重分配。

上述方法,将Qos模型的属性分为性能层和信用层,性能层包含了服务器共有的影响QoS模型的因素,信用层包含了负载服务器的可信度属性。

上述方法,在步骤S5)中,每次对不同服务器的负载进行均衡前,均需通过功能分组的多层Qos模型对待负载服务器进行权重分配并对终级依赖关系模型进行优化。

上述方法,步骤S1)中所使用的Petri网为具有标识的Petri网。

上述方法,在步骤S2)中,在通过基于功能分组的多层Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配前,将位于初级依赖关系模型中的待负载服务器根据功能进行分组。

利用上述多服务器均衡负载方法进行服务器均衡负载的系统,包括:

服务请求模块,用于输入服务请求;

依赖关系模型构建模块,用于利用Petri网构建多服务器间的初级依赖关系模型;

服务器权重分配模块,用于通过基于功能分组的多层Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配;

依赖关系模型推理优化模块,用于利用FPN算法将初级依赖关系模型通过正反推理优化为终级依赖关系模型;

依赖关系模型模拟优化模块,用于通过初始化Qos模型对终级依赖关系模型进行优化;

负载管理模块,用于利用优化后的终级依赖关系模型根据服务请求选择服务器负载服务;

服务请求模块与依赖关系模型构建模块通信连接,依赖关系模型构建模块分别与服务器权重分配模块和依赖关系模型推理优化模块通信连接,服务器权重分配模块与依赖关系模型推理优化模块通信连接,依赖关系模型推理优化模块与依赖关系模型模拟优化模块通信连接,依赖关系模型推理优化模块与负载管理模块通信连接。

计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。

计算机设备,包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,所述计算机程序被处理器执行时实现上述方法。

本发明的技术方案取得了如下有益的技术效果:

通过以petri网构建模型,结合正反向推理算法,在原有算法基础上进行创新,实现了一种新型负载均衡算法,将其称之为PFN-负载模型,此模型不仅可以保留原有算法的高性能,还可实现对高可用性上的性能极大提升,解决了原有算法在高可用上的缺陷。

附图说明

图1为本发明中服务器均衡负载系统的工作原理图;

图2为多服务器均衡负载的流程图;

图3为基于变迁规则的Petri网基本模型;

图4为可进行服务器均衡负载的计算机设备原理图。

具体实施方式

下面结合示例,针对本发明进行进一步说明。

如图1所示,利用多服务器均衡负载方法进行服务器均衡负载的系统,包括服务请求模块、依赖关系模型构建模块、服务器权重分配模块、依赖关系模型推理优化模块、依赖关系模型模拟优化模块和负载管理模块,服务请求模块与依赖关系模型构建模块通信连接,依赖关系模型构建模块分别与服务器权重分配模块和依赖关系模型推理优化模块通信连接,服务器权重分配模块与依赖关系模型推理优化模块通信连接,依赖关系模型推理优化模块与依赖关系模型模拟优化模块通信连接,依赖关系模型推理优化模块与负载管理模块通信连接。

其中,服务请求模块,用于输入服务请求;依赖关系模型构建模块,用于利用Petri网构建多服务器间的初级依赖关系模型,Petri网为具有标识的Petri网;服务器权重分配模块,用于通过基于功能分组的多层Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配;依赖关系模型推理优化模块,用于利用FPN算法将初级依赖关系模型通过正反推理优化为终级依赖关系模型;依赖关系模型模拟优化模块,用于通过初始化Qos模型对终级依赖关系模型进行优化;负载管理模块,用于利用优化后的终级依赖关系模型根据服务请求选择服务器负载服务。

如图2所示,利用所述系统根据服务请求在同一个服务器组内进行服务器负载时,需要根据同一个服务器组内多个服务器的负载情况以及服务器自身的状况进行均衡负载,具体步骤为:

S1)利用Petri网构建多服务器间的初级依赖关系模型;

S2)通过基于功能分组的多层Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配;

S3)利用FPN算法对经步骤S2)处理后的初级依赖关系模型进行反向推理,获得中级依赖关系模型,再对中级依赖关系模型进行正向推理,获得终级依赖关系模型;

S4)通过初始化Qos模型对步骤S3)中得到的终级依赖关系模型进行n次模拟负载,对m次模拟负载后仍处于非活跃状态的服务器进行剔除更换或者问题排查,得到优化后的终级依赖关系模型;其中,n为大于或等于1的自然数,m为大于或等于1且小于或等于n的自然数;本实施例中,是对进行1000次模拟负载后仍处于非活跃状态的服务器进行剔除更换或者问题排查;

S5)利用步骤S4)得到的优化后的终级依赖关系模型对不同服务器组进行均衡负载。

其中,基本Petri网的三元组表示即为:N=(P,T,F)。P、T、F分别代表了位置的集合、变迁的集合以及有向弧的集合。

一个基本的Petri网必须满足如下条件:

(1)

(2))

(3))

(4))dom(F)∪cod(F)=P∪T

式中,

即对于任意的库所和变迁来说,都需要通过有向弧进行连接,不可单独存在。

为了便于对变迁触发规则进行更明确的说明并对其进行定义,在此对库所和变迁各自增加他们的前集和后集的概念。

前后集概念表示如下:

使用四元组表示一个具有标识的Petri网结构:PN=(P,T;F,M),设x∈(P∪T),令

变迁使能条件和产生条件如下:

(1)对于PN来说,当存在

(2)当满足了(1)中的条件时,则系统可以发生从M到M′的状态变化并记为M[t>M′,对于

式中,·t={y|y=P∪T∧(y,t)∈F},t·={y|y=P∪T∧(t,y)∈F}。在发明中,使用圆圈代表库所并用P对其进行表示,使用矩形代表变迁并用T对其进行表示,黑色圆点代表标识,也就是token。图3即为PN中发生变迁前后的网结构状态图。

而对于多个用于负载服务的服务器来说,每个服务器都需要进行彼此间的调用操作,因此多个服务器之间存在着一定程度的关联性,由于关联性的存在,不同的服务器就会形成一张庞大的依赖关系网,把这张网用一张图来描述,又可称其为服务器依赖关系图,而将服务器依赖关系图转化为多服务器间的依赖关系模型便于在对不同服务器的负载进行均衡分配。本发明中使用伪代码的形式构建多服务器间的初级依赖关系模型,其中,伪代码如下:

/>

通过构建库所、变迁、令牌、对每个库所到变迁赋予加权处理以及对变迁启动赋予阈值来实现整个多服务器间的初级依赖关系模型的构建。

在步骤S2)中,当服务请求选择服务器时依据Qos模型进行选择时:

a)当服务请求数量较大时,通过Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配时以服务器的性能作为评价主体对待负载服务器进行权重分配;

b)当服务请求数量较少时,通过Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配时以服务器的信用作为评价主体对待负载服务器进行权重分配。

为了便于利用Qos模型对服务器进行权重分配,将Qos模型的属性分为性能层和信用层,性能层包含了服务器共有的影响Qos模型的因素,例如时间、费用、效率、可用性以及安全性等,信用层包含了负载服务器的可信度属性。在通过基于功能分组的多层Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配前,将位于初级依赖关系模型中的待负载服务器根据功能进行分组。其中,Qos模型也具有时间、费用、效率、可用性以及安全性等属性,Qos模型的这些属性与服务器的时间、费用、效率、可用性以及安全性等属性之间存在一定的相应映射关系,此映射关系可由用户根据实际使用情况进行自定义。

在步骤S3)中,利用FPN算法,先对多服务器间的初级依赖关系模型进行反向推理,并得到中级依赖关系模型,然后在对中级依赖关系模型进行正向推理,然后得到终级依赖关系模型,即为未剔除或更换掉非活跃状态服务器时的最优依赖关系模型。

其中,反向推理即指从某个问题的结论作为出发点并对此结果的正确性进行逐级验证推导,直至验证至该问题的初始条件。若在验证过程中出现上一级的条件无法对此结果提供有效的正确性时,则以此结果再做出发点,选择其他分支的上一级条件继续进行验证,直至验证至该问题的初始条件并结束。本发明中,提出一种基于FPN的反向推理算法,通过将反向推理与Petri网相结合的方式可以直观的看到推理过程,对推导过程中的正确性提供了保障。在此算法中,将多服务器间的初级依赖关系模型最终的输出库所作为推理的起始点,逐级向上进行推导,直至推导至初级依赖关系模型中的最开始的输入库所,算法结束。

虽然可以通过反向推理的方式为此初级依赖关系模型去除部分非活跃状态的服务器,但是仍有部分非活跃状态的服务器在中级依赖关系模型中,服务器的可信度也未参与计算当中。因此仍需通过正向推理的方式对此中级依赖关系模型进行进一步的优化。其中,反向推理和正向推理分别去除的是初级依赖关系模型和中级依赖关系模型中的非活跃状态的服务器,去除的是初级依赖关系模型和中级依赖关系模型中虚拟的服务器,。

正向推理与反向推理相反,它是从某个问题的初始条件作为出发点,根据初始条件逐级推出问题的最终结果。

而在步骤S5)中,每次对不同服务器的负载进行均衡前,均需通过功能分组的多层Qos模型对待负载服务器进行权重分配并对终级依赖关系模型进行优化。

本发明中的多层Qos模型是对Qos算法进行标准化处理并对不同的属性进行计算后得到,具体方法如下:

利用下述两个公式对Qos模型进行标准化,并以[0,1]作为阈值映射所有Qos模型的属性:

正指标:

负指标:

式中,Q表示Qos模型的单个属性,Q

在Qos模型中,不同的属性具有不同的权重,不同情况下,同一属性所占权重也不同。例如在Qos模型其余的属性保持良好时,服务器的可信度所占比重就比较大;而在有特殊事件发生时,用户则会关注服务器的执行时间或者费用,因此在利用Qos模型对位于初级依赖关系模型中的待负载服务器进行权重分配时应根据用户的喜好设置与每个Qos模型属性相匹配的权重,属性的权重越高则代表将用户更重视此属性。由于加权平均方法相对简单并且可以反映用户的喜好,因此它经常用于计算负载服务器的QoS属性值。其中,基于属性权重的评估方法的计算公式如下:

式中,w

在对Qos模型的属性进行标准化以及对其使用加权平均法进行权重赋值之后,将对Qos模型进行如下综合计算:

性能层下的Qos模型计算:

本实施例中,以服务器的执行时间和可用性属性为例,对性能层的Qos模型计算进行说明。并需要将待负载的服务器进行Qos模型属性自定义初始化,将可用性A

式中,t

信用层下的QoS模型计算:

在信用层上,本实施例以可信度属性为例,并对可信度的计算提出了一种基于统计和权值配比的方法,以解决传统的基于统计方法所带来的波动问题,其中,对可信度的计算具体过程如下:

先对信息可信度向量进行定义。对服务器的每一个Qos模型信息都应该有一个标志其与真实服务质量信息相符程度的可信度,这样对于一个Qos模型信息向量来说就应该有一个可信度向量来与其对应。可信度向量用R(r

再对满足发布时Qos模型信息的服务的比例进行定义。在计算可信度的过程中,需要将负载服务器执行的总次数以及负载服务器成功执行的总次数进行统计,即统计性能层中的A

式中,0≤S

在此基础上,对Qos综合可信度计算。

在进行Qos模型综合可信度计算时,需要考虑用户对Qos模型的要求多样性,部分用户注重单方面服务器的执行时间,还有部分请求者的侧重点在于整体的负载服务器质量,即对可信度的要求较高。因此对每个Qos模型属性的权重进行分配,将用户重视的属性赋予较高的权重比例,不重视的属性赋予较低的权重比例以满足不同用户的多样化需求。综合可信度通过下式计算得到:

式中,r

计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。

计算机设备,包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,所述计算机程序被处理器执行时实现上述方法。

基于上述多服务器负载均衡方法,相应的,本实例中还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序被处理器执行时实现如下步骤:先利用Petri网构建一个多服务器间的初级依赖关系模型,再利用基于功能分组的多层Qos模型对初级依赖关系模型中的待负载服务器进行权重分配,然后利用FPN算法对初级依赖关系模型进行反向推理获得中级依赖关系模型,再进行正向推理并获得终级依赖关系模型,然后再通过初始化Qos模型对终级依赖关系模型多次模拟负载,并对多次模拟负载后仍处于非活跃状态的服务器进行剔除更换或者问题排查,得到优化后的终级依赖关系模型,然后利用优化后的终级依赖关系模型对不同服务器的负载进行均衡,以选取最合适的服务器进行负载。

如图4所示,基于上述多服务器负载均衡方法以及计算机可读存储介质,本实施例中,还提供了一种计算机设备,其包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,其中可读存储介质与处理器均设置在总线上,处理器执行计算机程序时实现如下步骤:先利用Petri网构建一个多服务器间的初级依赖关系模型,再利用基于功能分组的多层Qos模型对初级依赖关系模型中的待负载服务器进行权重分配,然后利用FPN算法对初级依赖关系模型进行反向推理获得中级依赖关系模型,再进行正向推理并获得终级依赖关系模型,然后再通过初始化Qos模型对终级依赖关系模型多次模拟负载,并对多次模拟负载后仍处于非活跃状态的服务器进行剔除更换或者问题排查,得到优化后的终级依赖关系模型,然后利用优化后的终级依赖关系模型对不同服务器的负载进行均衡,以选取最合适的服务器进行负载。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。

相关技术
  • 一种基于服务器的负载均衡方法的智能家居控制系统
  • 一种负载均衡的方法、域名服务器及集群nas服务器
  • 一种服务器的数据保护方法、系统、设备及存储介质
  • 一种服务器系统安装方法、装置、设备及可读存储介质
  • 一种服务器、负载均衡器以及服务器负载均衡方法和系统
  • 一种服务器、负载均衡器以及服务器负载均衡方法和系统
技术分类

06120116332755