CN106878420B - 一种基于sdn的服务器负载均衡方法及装置 - Google Patents
一种基于sdn的服务器负载均衡方法及装置 Download PDFInfo
- Publication number
- CN106878420B CN106878420B CN201710086664.8A CN201710086664A CN106878420B CN 106878420 B CN106878420 B CN 106878420B CN 201710086664 A CN201710086664 A CN 201710086664A CN 106878420 B CN106878420 B CN 106878420B
- Authority
- CN
- China
- Prior art keywords
- server
- state
- sdn
- load balancing
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1006—Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SDN的服务器负载均衡方法及装置,该方法包括以下步骤:接收数据包,若SDN交换单元的流表中不存在匹配的转发规则或匹配的转发规则已经过期,发送数据包转发请求;SDN控制单元在收到数据包转发请求时,调用服务器状态表,如果服务器状态记录未过期,则根据服务器状态记录和负载均衡策略生成数据包的转发规则指令,并下发至SDN交换单元;SDN交换单元更新流表,并根据更新后的流表得到匹配的转发规则。本发明在负载均衡决策时仍然采用了静态负载均衡策略,采用高效的静态均衡算法实现,可以确保决策执行的性能优势,同时,可以提前将高负载,高风险的服务器筛选出来,降低了工作量。
Description
技术领域
本发明涉及网络技术应用领域,特别涉及一种基于SDN的服务器负载均衡方法及装置。
背景技术
软件定义网络SDN是一种新的网络架构,其核心思想是解决了网络数据转发和决策分离问题。SDN主要包括两大类组件:一类是SDN控制器,用于集中化管理和控制网络数据的转发规则,监控SDN设备及链路的状态;另一类是SDN交换机,用于根据网络转发规则转发网络数据。基于SDN的网络架构,不仅可以支持动态网络资源管理,还可以支持更多的网络服务应用,实现网络可编程,网络虚拟化等需求。
服务器负载均衡(Load Balance)指对多台服务器进行流量均衡分发的过程。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
负载均衡算法主要分为静态负载均衡算法和动态负载均衡算法。静态负载均衡算法包括轮转、随机、优先权等,特点是实现简单,但缺乏服务器状态感知能力。动态负载均衡算法包括最小连接、最快模式、预测模式等,特点是均衡效果好,不足之处是实现比较复杂,成本高,可扩展性差等。
申请号为201610086201.7,发明名称为一种面向软件定义的服务器负载均衡方法的发明专利申请公开的服务器负载均衡方法,根据SDN交换设备端口的数据流速实施负载均衡决策,其结果是实现网络流量在SDN网络各端口之间均衡分配。然而,这个负载均衡结果可能是不合适的,因为该专利申请没有考虑服务器的负载情况(如CPU占用率,内存占用率等),可能将网络数据转发给已经超负荷运行的服务器,违背了服务器负载均衡的本意。同时,在该均衡方法中,每个服务请求都需要提交给SD控制器进行负载均衡决策,当出现大规模服务请求时,容易造成负载均衡决策过程性能瓶颈。
申请号为201510882642.3,发明名称为基于SDN的云服务器负载均衡方法及装置的发明专利申请公开的云服务器负载均衡方法,以服务器集群的总服务器负载作为考察对象,根据第一阈值和第二阈值动态实施开通或关闭云服务器,本质上解决的是服务资源的动态伸缩问题。当总负载在第一阈值和第二阈值之间时,没有考虑网络数据包的均衡分配问题,也就是说这种方法并不能起到服务器的负载均衡效果。
申请号为201410069027.6,发明名称为基于SDN的分布式服务器负载均衡方法公开的技术方案基于动态负载均衡算法来实现,采用一个性能函数来动态确定参与负载均衡决策的服务器,算法复杂性较高,由于没有对所有服务器进行过滤,每次执行负载均衡决策时需要对所有服务器执行性能函数运算,导致负载均衡决策过程效率低。而且,这种负载均衡方法存在故障异常时服务不可用的情况,SDN网络中每个交换机不仅和服务器连接,还和其他交换机相连。当SDN网络规模很大时,一旦出现某个交换机故障,则需要再次更新每个SDN交换机的流表,从而引入网络延迟。
上述三种负载均衡方法,均没有考虑服务器风险因素,缺乏负载均衡安全感知能力。从客户需求角度分析,服务应该是高可用性和低风险性的,因此,负载均衡决策过程应该尽可能避免将用户请求分发给高风险的服务器,降低服务器风险的影响范围。
现有的负载均衡方法中基于静态负载均衡算法的技术方案实现简单高效,但缺乏服务器状态感知能力;现有基于动态负载均衡算法的技术方案需要实时获取服务器状态,算法复杂度高,而且缺乏候选服务器的预筛选步骤,每次负载均衡算法执行时需要对所有的服务器进行分析,执行效率低。
发明内容
为了解决现有技术中基于静态负载均衡算法的技术方案实现简单高效,但缺乏服务器状态感知能力,基于动态负载均衡算法的技术方案算法复杂度高、执行效率低的问题,本发明提供了一种基于SDN的服务器负载均衡方法及装置。
本发明提供的基于SDN的服务器负载均衡方法,包括以下步骤:
SDN交换单元接收来自客户端的数据包,若所述SDN交换单元的流表中不存在匹配的转发规则或匹配的转发规则已经过期,则向SDN控制单元发送数据包转发请求;
所述SDN控制单元在收到所述数据包转发请求时,调用服务器负载均衡过滤单元中的服务器状态表,并检查所述服务器状态表中的服务器状态记录是否过期,如果所述服务器状态记录未过期,则根据所述服务器状态记录和负载均衡策略生成所述数据包的转发规则指令,并将所述转发规则指令下发至所述SDN交换单元,其中,所述服务器负载均衡过滤单元定期更新所述服务器状态表,所述服务器状态表中的服务器状态记录包括服务器连通性状态和负载均衡参与状态;
所述SDN交换单元按照接收到的转发规则指令更新所述流表,并根据更新后的流表得到匹配的转发规则,按照所述匹配的转发规则将所述数据包转发至相应的端口。
本发明还提供了一种基于SDN的服务器负载均衡装置,包括:
SDN交换单元、SDN控制单元、服务器负载均衡过滤单元:
所述SDN交换单元,用于接收来自客户端的数据包,若所述SDN交换单元的流表中不存在匹配的转发规则或匹配的转发规则已经过期,则向所述SDN控制单元发送数据包转发请求;
所述服务器负载均衡过滤单元,用于定期更新服务器状态表,所述服务器状态表中的服务器状态记录包括服务器连通性状态和负载均衡参与状态;
所述SDN控制单元,用于在收到所述数据包转发请求时,调用服务器负载均衡过滤单元中的服务器状态表,并检查所述服务器状态表中的服务器状态记录是否过期,如果所述服务器状态记录未过期,则根据所述服务器状态记录和负载均衡策略生成所述数据包的转发规则指令,并将所述转发规则指令下发至所述SDN交换单元;
所述SDN交换单元,还用于按照接收到的转发规则指令更新所述流表,并根据更新后的流表得到匹配的转发规则,按照所述匹配的转发规则将所述数据包转发至相应的端口。
本发明有益效果如下:
本发明实施例在负载均衡决策时仍然采用了静态负载均衡策略,采用高效的静态均衡算法实现,可以确保决策执行的性能优势。同时,本发明方法实施例引入了服务器过滤过程,该过程可以感知服务器状态,并提前将高负载,高风险的服务器筛选出来,避免动态负载均衡算法需要实时感知所有服务状态所导致的计算时间长,执行效率低的不足。
附图说明
图1是本发明方法实施例的基于SDN的服务器负载均衡方法的流程图;
图2是本发明方法实施例实例1基于SDN的服务器负载均衡方法的处理流程;
图3是本发明装置实施例的基于SDN的服务器负载均衡装置的结构示意图;
图4是本发明装置实施例实例2的基于SDN的服务器负载均衡装置物理服务器集群环境部署示意图;
图5是本发明装置实施例实例3的基于SDN的服务器负载均衡装置物理服务器集群环境部署示意图;
图6是本发明装置实施例实例4的基于SDN的服务器负载均衡装置虚拟服务器集群环境部署示意图;
图7是本发明装置实施例实例5的基于SDN的服务器负载均衡装置虚拟服务器集群环境部署示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有的负载均衡方法没有考虑服务器风险因素,缺乏负载均衡安全感知能力的问题,本发明提供了一种基于SDN的服务器负载均衡方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
根据本发明的方法实施例,提供了一种基于SDN的服务器负载均衡方法,图1是本发明方法实施例的基于SDN的服务器负载均衡方法的流程图,如图1所示,根据本发明方法实施例的基于SDN的服务器负载均衡方法包括如下处理:
步骤101:SDN交换单元接收来自客户端的数据包,若所述SDN交换单元的流表中不存在匹配的转发规则或匹配的转发规则已经过期,则向SDN控制单元发送数据包转发请求。
步骤102:所述SDN控制单元在收到所述数据包转发请求时,调用服务器负载均衡过滤单元中的服务器状态表,并检查所述服务器状态表中的服务器状态记录是否过期,如果所述服务器状态记录未过期,则根据所述服务器状态记录和负载均衡策略生成所述数据包的转发规则指令,并将所述转发规则指令下发至所述SDN交换单元,其中,所述服务器负载均衡过滤单元定期更新所述服务器状态表,所述服务器状态表中的服务器状态记录包括服务器连通性状态和负载均衡参与状态。
作为一个具体的实施例,本发明方法实施例提供的基于SDN的服务器负载均衡方法还包括以下步骤:
所述SDN控制单元在检查到所述服务器状态记录过期时,向服务器负载均衡过滤单元发送服务器状态更新请求;
所述服务器负载均衡过滤单元在接收到所述服务器状态更新请求后,更新所述服务器状态表;
所述SDN控制单元调用更新后的服务器状态表,根据更新后的服务器状态记录和负载均衡策略生成所述数据包的转发规则指令。
具体的,所述检查服务器状态表中的服务器状态记录是否过期包括以下步骤:
设当前时间戳为t1,服务器状态记录中的时间戳为t2,如果两个时间差|t1-t2|大于超时阈值T,则表示服务器状态记录过期,否则表示未过期。
具体的,服务器负载均衡过滤单元更新所述服务器状态表(包括服务器负载均衡过滤单元定期更新所述服务器状态表、及所述服务器负载均衡过滤单元在接收到所述服务器状态更新请求后更新所述服务器状态表两种情况)包括以下步骤:
所述服务器负载均衡过滤单元调用服务器状态感知单元,收集服务器状态,其中,所述服务器状态包括服务器负载状态、服务器连通性状态及服务器风险状态;
根据所述服务器状态,利用过滤方法确定服务器的负载均衡参与状态;
根据所述服务器的连通性状态和所述负载均衡参与状态更新服务器状态表。
具体的,所述服务器负载状态指服务器资源占用率,包括CPU、内存、I/O占用率;所述服务器连通性状态指服务器在线UP或下线DOWN状态;所述服务器风险状态指服务器中的实体的是否满足合规要求。
具体的,根据所述服务器状态,利用过滤方法确定服务器的负载均衡参与状态包括以下步骤:
步骤1:利用服务器负载状态,根据负载评估方法确定服务器的实际负载值LVr和最大负载值LVmax。
具体的步骤1包括以下步骤:
令所述服务器负载状态由u个性能因子构成,对应u个负载权值Lk,u个资源占用率Qk,其中k=1,2,…,u;
测量实际每个性能因子的资源占用率Qk,比较每个Qk与阈值Q的大小,如果Qk≥Q,则ak=1,否则ak=0;
利用公式LVr=a1L1+a2L2+……auLu计算服务器实际负载值LVr,其中ak=0或1;
利用公式LVmax=L1+L2+……+Lu计算服务器正常运行时支持的最大负载值LVmax;
步骤2:利用服务器风险状态,根据风险评估方法确定服务器实际风险值RVr和最大风险值RVmax。
具体的步骤2包括以下步骤:
令所述服务器风险状态由v个风险因子构成,对应v个风险权值Rk,其中k=1,2,…,v;
根据安全基线或合规要求,测量并判断每个风险因子是否合规,如果合规,则bk=1,否则bk=0;
利用公式RVr=b1R1+b2R2+……+bvRv计算服务器实际风险权值RVr,其中bk=0或1;
利用公式RVmax=R1+R2+……+Rv计算服务器正常运行时支持的最大风险值RVmax。
步骤3:根据连通性测试方法确定服务器的连通状态C。
具体的,步骤3包括以下步骤:
通过ping命令测试法确定服务器连通性状态C,如果连通,则服务器连通状态表示为在线UP,否则表示为下线DOWN。
步骤4:根据LVr、LVmax、RVr、RVmax及连通性状态C,确定服务器参与负载均衡过程的概率P。
具体的,步骤4包括以下步骤:
将服务器参与负载均衡过程的概率P定义为公式1,根据公式1得到概率P;
在公式1中,VC表示服务器连通性变量,如果服务器状态为在线UP,则VC=1,否则VC=0。
步骤5:比较所述概率P与阈值Pt的大小,如果所述概率P大于所述阈值Pt,则允许参与负载均衡过程,否则,不允许参与负载均衡过程。
具体的,所述根据服务器状态记录和负载均衡策略生成所述数据包的转发规则指令包括以下步骤:
根据所述服务器状态表中各服务器的连通性状态和负载均衡参与状态得到候选服务器、落选服务器、下线DOWN服务器,其中,所述候选服务器为在线UP且允许参与服务器负载均衡的服务器,所述落选服务器为在线UP且不允许参与服务器负载均衡的服务器;
如果所述服务器状态表中的候选服务器只有一个,则所述候选服务器作为目标服务器;如果所述服务器状态表中的候选服务器有多个,则根据静态负载均衡策略选择一个候选服务器作为目标服务器;如果所述服务器状态表中存在目标服务器,则生成一条新建所述客户端和所述目标服务器之间的转发规则指令;
如果所述服务器状态表中存在落选服务器,则生成一条丢弃所述客户端数据的转发规则指令;
如果所述服务器状态表中存在下线DOWN服务器,则生成一条删除所述客户端和所述服务器之间的转发规则指令。
步骤103:所述SDN交换单元按照接收到的转发规则指令更新所述流表,并根据更新后的流表得到匹配的转发规则,按照所述匹配的转发规则将所述数据包转发至相应的端口。
具体的,所述SDN交换单元按照接收到的转发规则指令更新所述流表包括以下步骤:
如果接收到新建所述客户端和所述目标服务器之间的转发规则指令,则同时增加从所述客户端到所述服务器的转发规则以及从所述目标服务器到所述客户端的转发规则;
如果接收到丢弃所述客户端数据的转发规则指令,则删除所述客户端到所述服务器的数据转发规则;
如果接收到删除所述客户端和所述服务器之间的转发规则指令,则同时删除从所述客户端到所述服务器的转发规则以及从所述目标服务器到所述客户端的转发规则。
作为一个具体的实施例,本发明方法实施例提供的基于SDN的服务器负载均衡方法还包括以下步骤:
SDN交换单元接收来自客户端的数据包,若所述SDN交换单元的流表中存在匹配的转发规则且所述匹配的转发规则未过期,则按照所述匹配的转发规则将所述数据包转发至匹配的端口。
本发明方法实施例提供的基于SDN的服务器负载均衡方法还包括以下步骤:所述SDN交换单元接收目标服务器的响应,并根据所述服务器到客户端的转发规则转发至客户端。
为了更加详细的说明本发明的方法实施例,给出实例1,图2是本发明方法实施例实例1基于SDN的服务器负载均衡方法的处理流程,如图2所示,一种基于SDN的服务器负载均衡方法的处理流程包括以下步骤:
步骤一:SDN交换单元收到来自客户端的网络数据包,根据SDN交换单元流表规则匹配及规则过期情况执行数据转发。如果存在匹配的转发规则且规则未过期,则按转发规则执行数据转发;否则,向SDN控制单元发送网络数据包转发请求;
步骤二:SDN控制单元根据SDN交换单元的网络数据包转发请求,检查服务器状态表中服务器状态记录是否过期;如果记录过期,则向服务器负载均衡过滤单元发送服务器状态更新请求;否则,SDN控制单元根据服务器状态记录生成所述网络数据包的转发规则指令,下发指令给SDN交换单元,执行步骤五;
步骤三:服务器负载均衡过滤单元收到SDN控制单元的服务状态更新请求,调用服务器感知单元,收集服务器状态,包括负载状态、连通性状态及风险状态;根据所述服务器状态,利用过滤方法确定服务器的负载均衡参与状态;更新所述服务器状态表中对应的服务器记录;向SDN控制单元返回处理结果;
步骤四:SDN控制单元收到服务器负载均衡过滤单元的响应,根据服务器状态表中服务器状态记录生成所述网络数据包的转发规则指令,下发指令给SDN交换单元;
步骤五:SDN交换单元收到SDN控制单元的网络数据转发规则指令,更新所述客户的网络数据转发流表,根据新的流表执行数据转发;
步骤六:服务器收到SDN交换单元转发的客户端请求,处理请求后返回响应给SDN交换单元;SDN交换单元根据所述从客户端到服务器的数据转发流表规则转发服务器响应给客户端。
本发明方法实施例提出采用高效静态负载均衡算法和服务器负载均衡过滤相结合策略,提高负载均衡决策过程的执行效率。本发明方法实施例在负载均衡决策时仍然采用了静态负载均衡策略,采用高效的静态均衡算法实现,可以确保决策执行的性能优势。同时,本发明方法实施例引入了服务器过滤过程,该过程可以感知服务器状态,并提前将高负载、高风险的服务器筛选出来,避免动态负载均衡算法需要实时感知所有服务状态所导致的计算时间长,执行效率低的不足。本发明方法实施例的有益效果如下:
(1)功能上支持风险感知能力。本发明引入服务器风险感知思想,使服务器负载均衡技术可同时实现服务高可用性和安全性。本专利所提出的负载均衡方法中引入了服务器负载均衡过滤方法,该方法根据服务器的风险值、负载值及连通性三方面因素,在执行负载均衡决策前筛选出满足客户性能和安全需求的服务器,避免引入高风险服务器带来的风险扩展问题。
(2)技术先进:提出服务器状态感知和负载均衡决策过程的可分离设计,为实现动态负载均衡效果提供架构基础。服务器负载均衡过滤单元负责将服务器状态信息动态写入服务器状态表;SDN控制单元则只需要根据数据状态表信息执行负载均衡决策;两个单元通过服务器状态表实现服务器状态传递。可以由SDN控制单元主动向服务器负载过滤单元发起状态更新请求来更新服务器状态表,也可以由服务器负载过滤单元主动更新服务器状态表。
(3)性能更好。本发明在负载均衡决策执行前引入服务器负载均衡过滤单元,负责更新服务器状态表。过滤单元可以提前选择出不必要参与负载均衡决策过程的服务器,降低了动态负载均衡决策执行时对所有服务器都进行处理的工作量。本专利采用静态负载均衡策略,可以提前配置SDN交换单元的流表规则,避免每个服务请求都提交给SDN控制器决策带来的性能瓶颈;同时,比起动态负载均衡算法,本专利采用静态负载均衡算法,执行效率更高。
与本发明的方法实施例相对应,提供了一种基于SDN的服务器负载均衡装置,图3是本发明装置实施例的基于SDN的服务器负载均衡装置的结构示意图,如图3所示,根据本发明装置实施例的基于SDN的服务器负载均衡装置包括:SDN交换单元30、SDN控制单元32、服务器负载均衡过滤单元34,以下对本发明实施例的各个单元进行详细的说明。
具体地,所述SDN交换单元30,用于接收来自客户端的数据包,若所述SDN交换单元30的流表中不存在匹配的转发规则或匹配的转发规则已经过期,则向所述SDN控制单元32发送数据包转发请求;
所述服务器负载均衡过滤单元34,用于定期更新服务器状态表,所述服务器状态表中的服务器状态记录包括服务器连通性状态和负载均衡参与状态;
所述SDN控制单元32,用于在收到所述数据包转发请求时,调用服务器负载均衡过滤单元34中的服务器状态表,并检查所述服务器状态表中的服务器状态记录是否过期,如果所述服务器状态记录未过期,则根据所述服务器状态记录和负载均衡策略生成所述数据包的转发规则指令,并将所述转发规则指令下发至所述SDN交换单元30;
所述SDN交换单元30,还用于按照接收到的转发规则指令更新所述流表,并根据更新后的流表得到匹配的转发规则,按照所述匹配的转发规则将所述数据包转发至相应的端口。
进一步的,所述SDN控制单元32,还用于在检查到所述服务器状态记录过期时,向所述服务器负载均衡过滤单元发送服务器状态更新请求;
所述服务器负载均衡过滤单元34,还用于在接收到所述服务器状态更新请求后,更新所述服务器状态表;
所述SDN控制单元32,还用于调用更新后的服务器状态表,根据更新后的服务器状态记录和负载均衡策略生成所述数据包的转发规则指令。
更进一步的,本发明装置实施例的基于SDN的服务器负载均衡装置还包括服务器状态感知单元;
所述服务器状态感知单元,用于收集服务器负载状态、服务器连通性状态及服务器风险状态;
所述服务器负载均衡过滤单元包括状态收集子单元、负载均衡状态确定子单元、更新子单元:
所述状态收集子单元,用于调用服务器状态感知单元的服务器状态,其中,所述服务器状态包括服务器负载状态、服务器连通性状态及服务器风险状态;
所述负载均衡状态确定子单元,用于根据所述服务器状态,利用过滤方法确定服务器的负载均衡参与状态;
所述更新子单元,用于根据所述服务器的连通性状态和所述负载均衡参与状态更新服务器状态表。
具体的,所述服务器感知单元包括服务器负载状态感知子单元、服务器连通性感知子单元、服务器风险状态感知子单元;
所述服务器负载状态感知子单元,用于检查服务器的资源占用率;
所述服务器连通性感知子单元,用于检查服务器的连通性;
所述服务器风险状态感知子单元,用于检查服务器风险因子是否满足合规要求。
具体的,所述SDN交换单元为SDN交换机、由多个SDN交换机构建的交换机集群、或SDN虚拟交换机;所述SDN控制单元为SDN控制器、或由多个SDN控制器构建的控制器集群。
图4是本发明装置实施例实例2的基于SDN的服务器负载均衡装置物理服务器集群环境部署示意图,如图4所示,SDN控制单元独立部署在物理服务器A上,服务器负载均衡过滤单元和服务器状态感知单元部署在服务器B上,并连接到SDN交换机。SDN交换单元由SDN交换机实现,服务端由一组物理服务器集群(如web服务器集群),并连接到SDN交换机上。客户端通过互联网访问服务端时,先通过SDN交换单元,然后进入服务端。
图5是本发明装置实施例实例3的基于SDN的服务器负载均衡装置物理服务器集群环境部署示意图,如图5所示,SDN控制单元、服务器负载均衡过滤单元和服务器状态感知单元都部署在服务器C上,并连接到SDN交换机。SDN交换单元由SDN交换机实现,服务端由一组物理服务器集群(如web服务器集群)构成,并连接到SDN交换机上。客户端通过互联网访问服务端时,先通过SDN交换单元,然后进入服务端。
图6是本发明装置实施例实例4的基于SDN的服务器负载均衡装置虚拟服务器集群环境部署示意图,如图6所示,SDN控制单元独立部署在物理服务器D上,服务器负载均衡过滤单元和服务器状态感知单元部署在服务器E上,并连接到SDN交换机。SDN交换单元由SDN虚拟交换机实现,服务端由一组虚拟机服务器集群(如web服务器集群)构成,并连接到SDN虚拟交换机上。客户端通过互联网访问服务端时,先通过SDN交换单元,然后进入服务端。
图7是本发明装置实施例实例5的基于SDN的服务器负载均衡装置虚拟服务器集群环境部署示意图,如图7所示,SDN控制单元、服务器负载均衡过滤单元和服务器状态感知单元都部署在服务器E上,并连接到服务器F中的SDN虚拟交换机。SDN交换单元由SDN虚拟交换机实现,服务端由一组虚拟机服务器集群(如web服务器集群)构成,并连接到SDN虚拟交换机上。客户端通过互联网访问服务端时,先通过SDN虚拟交换单元,然后进入服务端。
本发明装置实施例的有益效果如下:
1.提出服务器状态检查过程和负载均衡数据转发决策过程的可分离设计,使得负载均衡决策执行时并不需要等待服务器状态更新过程,提高负载均衡决策过程的执行效率。服务器状态检查过程由服务器负载均衡过滤单元和服务状态感知单元完成。数据转发决策由SDN控制单元来执行,数据转发决策时根据服务器状态表来执行。服务器负载均衡过滤单元可以读写服务器状态表,SDN控制单元只是读取服务器状态表,因此,服务器状态检查和服务器负载均衡决策过程可以并行化处理。
2.提出可同时适应物理服务器集群环境和虚拟化服务器集群环境的负载均衡装置。所提出的服务器负载装置中,SDN交换单元可以由物理硬件实现,从而可以用于连接硬件服务器集群,也可以由软件实现,用于连接虚拟机服务器集群。
3.提出可扩展的负载均衡装置架构。本发明装置实施例所提出的负载均衡装置是一种松耦合架构,其中SDN控制单元、服务器负载均衡过滤单元、服务状态感知单元都可以独立部署到独立服务器上,也可以将三者部署在一个服务器中,或者将服务器负载均衡单元和服务器状态感知单元部署在一起,这种架构可以方便装置性能扩展。例如,可以根据需要增加多个服务器状态感知单元。另外,提供网络数据转发的SDN交换单元可以由一个或多个SDN交换机构成,从而可以接入更多的服务器。
4.负载均衡装置适应性强。本发明可以支持物理服务器集群环境,也可以支持虚拟化服务器集群环境。可以支持单个服务器集群,也可以支持多个服务器集群。比如,通过初始化服务器状态表信息配置,只需确保每个服务器都和唯一的交换单元和端口相关联就可以接入多服务器集群。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (18)
1.一种基于SDN的服务器负载均衡方法,其特征在于,包括以下步骤:
SDN交换单元接收来自客户端的数据包,若所述SDN交换单元的流表中不存在匹配的转发规则或匹配的转发规则已经过期,则向SDN控制单元发送数据包转发请求;
所述SDN控制单元在收到所述数据包转发请求时,调用服务器负载均衡过滤单元中的服务器状态表,并检查所述服务器状态表中的服务器状态记录是否过期,如果所述服务器状态记录未过期,则根据所述服务器状态记录和负载均衡策略生成所述数据包的转发规则指令,并将所述转发规则指令下发至所述SDN交换单元,其中,所述服务器负载均衡过滤单元定期更新所述服务器状态表,所述服务器状态表中的服务器状态记录包括服务器连通性状态和负载均衡参与状态;
所述SDN交换单元按照接收到的转发规则指令更新所述流表,并根据更新后的流表得到匹配的转发规则,按照所述匹配的转发规则将所述数据包转发至相应的端口。
2.如权利要求1所述的基于SDN的服务器负载均衡方法,其特征在于,还包括以下步骤:
所述SDN控制单元在检查到所述服务器状态记录过期时,向服务器负载均衡过滤单元发送服务器状态更新请求;
所述服务器负载均衡过滤单元在接收到所述服务器状态更新请求后,更新所述服务器状态表;
所述SDN控制单元调用更新后的服务器状态表,根据更新后的服务器状态记录和负载均衡策略生成所述数据包的转发规则指令。
3.如权利要求2所述的基于SDN的服务器负载均衡方法,其特征在于,服务器负载均衡过滤单元更新所述服务器状态表包括以下步骤:
所述服务器负载均衡过滤单元调用服务器状态感知单元,收集服务器状态,其中,所述服务器状态包括服务器负载状态、服务器连通性状态及服务器风险状态;
根据所述服务器状态,利用预设的过滤方法确定服务器的负载均衡参与状态;
根据所述服务器的连通性状态和所述负载均衡参与状态更新服务器状态表。
4.如权利要求3所述的基于SDN的服务器负载均衡方法,其特征在于,根据所述服务器状态,利用预设的过滤方法确定服务器的负载均衡参与状态包括以下步骤:
利用服务器负载状态,根据负载评估方法确定服务器的实际负载值LVr和最大负载值LVmax;
利用服务器风险状态,根据风险评估方法确定服务器实际风险值RVr和最大风险值RVmax;
根据预设的连通性测试方法确定服务器的连通性状态C;
根据LVr、LVmax、RVr、RVmax及连通性状态C,确定服务器参与负载均衡过程的概率P;
比较所述概率P与阈值Pt的大小,如果所述概率P大于所述阈值Pt,则允许参与负载均衡过程,否则,不允许参与负载均衡过程。
5.如权利要求4所述的基于SDN的服务器负载均衡方法,其特征在于,所述利用服务器负载状态,根据负载评估方法确定服务器的实际负载值LVr和最大负载值LVmax包括以下步骤:
令所述服务器负载状态由u个性能因子构成,对应u个负载权值Lk,u个资源占用率Qk,其中k=1,2,...,u;
测量实际每个性能因子的资源占用率Qk,比较每个Qk与阈值Q的大小,如果Qk≥Q,则ak=1,否则ak=0;
利用公式LVr=a1L1+a2L2+......auLu计算服务器实际负载值LVr,其中ak=0或1;
利用公式LVmax=L1+L2+......+Lu计算服务器正常运行时支持的最大负载值LVmax。
6.如权利要求4所述的基于SDN的服务器负载均衡方法,其特征在于,所述利用服务器风险状态,根据风险评估方法确定服务器实际风险值RVr和最大风险值RVmax包括以下步骤:
令所述服务器风险状态由v个风险因子构成,对应v个风险权值Rk,其中k=1,2,...,v;
根据安全基线或合规要求,测量并判断每个风险因子是否合规,如果合规,则bk=1,否则bk=0;
利用公式RVr=b1R1+b2R2+......+bvRv计算服务器实际风险权值RVr,其中bk=0或1;
利用公式RVmax=R1+R2+......+Rv计算服务器正常运行时支持的最大风险值RVmax。
7.如权利要求4所述的基于SDN的服务器负载均衡方法,其特征在于,所述根据预设的连通性测试方法确定服务器的连通性状态C包括以下步骤:
通过ping命令测试法确定服务器连通性状态C,如果连通,则服务器连通状态表示为在线UP,否则表示为下线DOWN。
8.如权利要求4所述的基于SDN的服务器负载均衡方法,其特征在于,所述根据LVr、LVmax、RVr、RVmax及连通性状态C,确定服务器参与负载均衡过程的概率P包括以下步骤:
将服务器参与负载均衡过程的概率P定义为公式1,根据公式1得到概率P;
在公式1中,VC表示服务器连通性变量,如果服务器状态为在线UP,则VC=1,否则VC=0。
9.如权利要求1所述的基于SDN的服务器负载均衡方法,其特征在于,所述根据服务器状态记录和负载均衡策略生成所述数据包的转发规则指令包括以下步骤:
根据所述服务器状态表中各服务器的连通性状态和负载均衡参与状态得到候选服务器、落选服务器、下线DOWN服务器,其中,所述候选服务器为在线UP且允许参与服务器负载均衡的服务器,所述落选服务器为在线UP且不允许参与服务器负载均衡的服务器;
如果所述服务器状态表中的候选服务器只有一个,则所述候选服务器作为目标服务器;如果所述服务器状态表中的候选服务器有多个,则根据静态负载均衡策略选择一个候选服务器作为目标服务器;如果所述服务器状态表中存在目标服务器,则生成一条新建所述客户端和所述目标服务器之间的转发规则指令;
如果所述服务器状态表中存在落选服务器,则生成一条丢弃所述客户端数据的转发规则指令;
如果所述服务器状态表中存在下线DOWN服务器,则生成一条删除所述客户端和所述服务器之间的转发规则指令。
10.如权利要求9所述的基于SDN的服务器负载均衡方法,其特征在于,所述SDN交换单元按照接收到的转发规则指令更新所述流表包括以下步骤:
如果接收到新建所述客户端和所述目标服务器之间的转发规则指令,则同时增加从所述客户端到所述服务器的转发规则以及从所述目标服务器到所述客户端的转发规则;
如果接收到丢弃所述客户端数据的转发规则指令,则删除所述客户端到所述服务器的数据转发规则;
如果接收到删除所述客户端和所述服务器之间的转发规则指令,则同时删除从所述客户端到所述服务器的转发规则以及从所述目标服务器到所述客户端的转发规则。
11.如权利要求1所述的基于SDN的服务器负载均衡方法,其特征在于,还包括以下步骤:
SDN交换单元接收来自客户端的数据包,若所述SDN交换单元的流表中存在匹配的转发规则且所述匹配的转发规则未过期,则按照所述匹配的转发规则将所述数据包转发至匹配的端口。
12.如权利要求1所述的基于SDN的服务器负载均衡方法,其特征在于,所述检查服务器状态表中的服务器状态记录是否过期包括以下步骤:
设当前时间戳为t1,服务器状态记录中的时间戳为t2,如果两个时间差|t1-t2|大于超时阈值T,则表示服务器状态记录过期,否则表示未过期。
13.如权利要求1~12任意一项所述的基于SDN的服务器负载均衡方法,其特征在于,还包括以下步骤:
所述SDN交换单元接收目标服务器的响应,并根据所述服务器到客户端的转发规则转发至客户端。
14.一种基于SDN的服务器负载均衡装置,其特征在于,包括:SDN交换单元、SDN控制单元、服务器负载均衡过滤单元:
所述SDN交换单元,用于接收来自客户端的数据包,若所述SDN交换单元的流表中不存在匹配的转发规则或匹配的转发规则已经过期,则向所述SDN控制单元发送数据包转发请求;
所述服务器负载均衡过滤单元,用于定期更新服务器状态表,所述服务器状态表中的服务器状态记录包括服务器连通性状态和负载均衡参与状态;
所述SDN控制单元,用于在收到所述数据包转发请求时,调用服务器负载均衡过滤单元中的服务器状态表,并检查所述服务器状态表中的服务器状态记录是否过期,如果所述服务器状态记录未过期,则根据所述服务器状态记录和负载均衡策略生成所述数据包的转发规则指令,并将所述转发规则指令下发至所述SDN交换单元;
所述SDN交换单元,还用于按照接收到的转发规则指令更新所述流表,并根据更新后的流表得到匹配的转发规则,按照所述匹配的转发规则将所述数据包转发至相应的端口。
15.如权利要求14所述的基于SDN的服务器负载均衡装置,其特征在于,
所述SDN控制单元,还用于在检查到所述服务器状态记录过期时,向所述服务器负载均衡过滤单元发送服务器状态更新请求;
所述服务器负载均衡过滤单元,还用于在接收到所述服务器状态更新请求后,更新所述服务器状态表;
所述SDN控制单元,还用于调用更新后的服务器状态表,根据更新后的服务器状态记录和负载均衡策略生成所述数据包的转发规则指令。
16.如权利要求14或15所述的基于SDN的服务器负载均衡装置,其特征在于,还包括服务器状态感知单元;
所述服务器状态感知单元,用于收集服务器负载状态、服务器连通性状态及服务器风险状态;
所述服务器负载均衡过滤单元包括状态收集子单元、负载均衡状态确定子单元、更新子单元:
所述状态收集子单元,用于调用服务器状态感知单元的服务器状态,其中,所述服务器状态包括服务器负载状态、服务器连通性状态及服务器风险状态;
所述负载均衡状态确定子单元,用于根据所述服务器状态,利用过滤方法确定服务器的负载均衡参与状态;
所述更新子单元,用于根据所述服务器的连通性状态和所述负载均衡参与状态更新服务器状态表。
17.如权利要求16所述的基于SDN的服务器负载均衡装置,其特征在于,所述服务器感知单元包括服务器负载状态感知子单元、服务器连通性感知子单元、服务器风险状态感知子单元;
所述服务器负载状态感知子单元,用于检查服务器的资源占用率;
所述服务器连通性感知子单元,用于检查服务器的连通性;
所述服务器风险状态感知子单元,用于检查服务器风险因子是否满足合规要求。
18.如权利要求14所述的基于SDN的服务器负载均衡装置,其特征在于,
所述SDN交换单元为SDN交换机、由多个SDN交换机构建的交换机集群、或SDN虚拟交换机;
所述SDN控制单元为SDN控制器、或由多个SDN控制器构建的控制器集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710086664.8A CN106878420B (zh) | 2017-02-17 | 2017-02-17 | 一种基于sdn的服务器负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710086664.8A CN106878420B (zh) | 2017-02-17 | 2017-02-17 | 一种基于sdn的服务器负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106878420A CN106878420A (zh) | 2017-06-20 |
CN106878420B true CN106878420B (zh) | 2019-10-22 |
Family
ID=59167135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710086664.8A Active CN106878420B (zh) | 2017-02-17 | 2017-02-17 | 一种基于sdn的服务器负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106878420B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979539B (zh) * | 2017-10-30 | 2021-12-03 | 新华三技术有限公司 | 报文处理方法及装置 |
CN110417562B (zh) * | 2018-04-26 | 2021-01-29 | 华为技术有限公司 | 安装规则的方法、控制器和装置 |
CN109451052A (zh) * | 2018-12-18 | 2019-03-08 | 天津城建大学 | 一种基于模糊逻辑的sdn负载均衡方法 |
CN109960586B (zh) * | 2019-02-19 | 2021-02-12 | 北京邮电大学 | 一种服务器状态可感知的四层负载均衡器及均衡方法 |
CN112565086A (zh) * | 2019-09-10 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 分布式网络系统、报文转发方法、设备及存储介质 |
CN111683132B (zh) * | 2020-06-04 | 2022-07-19 | 重庆金窝窝网络科技有限公司 | 一种基于微服务架构的业务分发方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795805A (zh) * | 2014-02-27 | 2014-05-14 | 中国科学技术大学苏州研究院 | 基于sdn的分布式服务器负载均衡方法 |
CN104158758A (zh) * | 2014-08-26 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | Sdn网络基于用户报文时间反馈的负载均衡处理方法及系统 |
CN104168202A (zh) * | 2014-08-26 | 2014-11-26 | 华为技术有限公司 | 开放流报文转发方法及装置 |
-
2017
- 2017-02-17 CN CN201710086664.8A patent/CN106878420B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795805A (zh) * | 2014-02-27 | 2014-05-14 | 中国科学技术大学苏州研究院 | 基于sdn的分布式服务器负载均衡方法 |
CN104158758A (zh) * | 2014-08-26 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | Sdn网络基于用户报文时间反馈的负载均衡处理方法及系统 |
CN104168202A (zh) * | 2014-08-26 | 2014-11-26 | 华为技术有限公司 | 开放流报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106878420A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106878420B (zh) | 一种基于sdn的服务器负载均衡方法及装置 | |
JP6835444B2 (ja) | ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 | |
CN108712464A (zh) | 一种面向集群微服务高可用的实现方法 | |
CN109672612A (zh) | Api网关系统 | |
CN110417558A (zh) | 签名的验证方法和装置、存储介质及电子装置 | |
US20130268678A1 (en) | Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network | |
CN111108727A (zh) | 主动链路负载平衡以维持链路的质量 | |
CN106533806B (zh) | 多租户SDN网络中基于应用感知提供跨层QoS的方法 | |
CN109513206A (zh) | 网络游戏的网络架构及用于网络游戏的数据转发方法 | |
Ruelas et al. | A load balancing method based on artificial neural networks for knowledge-defined data center networking | |
CN110266822A (zh) | 一种基于nginx的共享式负载均衡实现方法 | |
JP2018029230A (ja) | 空き帯域測定プログラム、空き帯域測定方法、および空き帯域測定装置 | |
Zhang et al. | Workload service requirements analysis: A queueing network optimization approach | |
Oliveira et al. | Efficient network service level agreement monitoring for cloud computing systems | |
CN116233133A (zh) | 一种数字孪生辅助数据中心网络负载均衡的方法 | |
Nougnanke et al. | ML-based performance modeling in SDN-enabled data center networks | |
Liu et al. | Towards a community cloud storage | |
Rossi et al. | Dynamic network bandwidth resizing for big data applications | |
CN108011838B (zh) | 基于响应时间的sdn多控制器负载均衡方法 | |
Poncea et al. | Design and implementation of an Openflow SDN controller in NS-3 discrete-event network simulator | |
Muluye et al. | Performance analysis and evaluation of software defined networking distributed controllers in datacentre networks | |
Montes et al. | Improving grid fault tolerance by means of global behavior modeling | |
Varalakshmi et al. | Intelligent load balancing in SDN | |
WO2024093219A1 (zh) | 业务路径的优化方法、装置及存储介质 | |
US20240048495A1 (en) | Systems and methods for networked microservices flow control |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Yu Xiaojun Inventor after: Li Xueying Inventor before: Yu Xiaojun |