一种应用在openstack云平台的多活负载均衡方法及系统与流程

文档序号:21080456发布日期:2020-06-12 16:28阅读:426来源:国知局
一种应用在openstack云平台的多活负载均衡方法及系统与流程

本发明属于云计算pass领域,具体地说是一种应用在openstack云平台的多活负载均衡方法及系统。



背景技术:

随着云计算技术的快速发展,越来越多的政府机关单位、企业和个人将应用由传统的计算中心迁移到云中心,云中心中部署的大访问流量的应用越来越多,云中心租户对于流量负载均衡的需求越来越强烈,对于应用的高可用性需求越来越高。

云中心与传统的计算中心差别较大,传统计算中心中通过物理设备进行应用流量负载均衡的方法,并不适用于多租户的公有云和企业云场景。目前,云中心常规的租户负载均衡多采用vrrp协议的主备模式,解决负载均衡单点故障和高可用性,随着访问量规模扩展无法进行横向扩展,因此,对物理服务器资源有较高的冗余需求,针对用户规模不大的项目,服务器资源有些浪费,资源利用率不高。故如何满足4层和7层流量负载均衡的需求,避免负载均衡节点单点故障,实现负载均衡节点性能的最大利用率,提高云平台上物理服务器的资源利用率是目前现有技术亟待解决的问题。

专利号为cn107707393a的专利文献公开了一种基于openstacko版特性的多活系统,利用tricircle技术实现异地多个openstack云环境租户虚拟机的私有网络之间互连互通,利用haproxy和keepalived实现web服务器的异地多活以及haproxy自身的高可用,利用drbd实现异地云环境中虚拟机的数据实时同步,corosync和pacemaker检测故障并转移服务。但是不能如何满足4层和7层流量负载均衡的需求,避免负载均衡节点单点故障,实现负载均衡节点性能的最大利用率,提高云平台上物理服务器的资源利用率。



技术实现要素:

本发明的技术任务是提供一种应用在openstack云平台的多活负载均衡方法及系统,来解决如何满足4层和7层流量负载均衡的需求,避免负载均衡节点单点故障,实现负载均衡节点性能的最大利用率,提高云平台上物理服务器的资源利用率的问题。

本发明的技术任务是按以下方式实现的,一种应用在openstack云平台的多活负载均衡方法,该方法是使用开源的lvs和nginx分别对4层流量和7层流量进行负载均衡,通过实现了ospf协议的开源quagga虚拟路由器与支持ospf协议的物理交换机合作进行多路径选择,实现多活模式,并通过openstack平台上租户共享的外部网络与租户vpc中的虚拟机进行通信,实现跨vpc的负载均衡。

作为优选,该方法的步骤如下:

s1、控制台通过负载均衡管理网对后端微服务层(slb集群)内的lb节点的负载均衡实例下发lvs与nginx配置;

s2、lb节点的负载均衡实例通过出口防火墙设备进行eipnat映射,实现负载均衡实例的外网访问功能;同时通过负载均衡业务网与外部网络打通,实现负载均衡实例的内网访问功能;

s3、负载均衡实例对应的虚拟服务地址所在的网络,用于对负载均衡虚拟服务的访问,公网负载均衡的eip与负载均衡实例的业务网ip进行nat,要求与平台上租户共享的floatingip网络互通;

s4、lb节点内安装lvs+nginx,lvs通过floatingip网与后端微服务层的通信,每一个负载均衡实例占用一个floatingip网的ip地址,作为lip;

s5、租户自行创建的租户vpc网,租户vpc网为后端微服务层所在的网络,实现租户与后端微服务层的通信。

更优地,所述后端微服务层包括,

api接口管理模块,用于面向前端ui封装的restfulapi接口,处理前端访问请求,用户访问前端页面进行操作行为,前端将请求发送到后端微服务层,由对应的api接口来处理;

四层管理模块,用于提供四层负载均衡相关的功能接口供前端api接口管理模块调用以及实现四层负载均衡功能基本的逻辑,四层负载均衡功能基本的逻辑包括lb节点管理、lvs规则的管理、后端主机的管理、四层监听器的管理以及基本数据库管理;

七层管理模块,用于提供七层负载均衡相关功能接口供前端api接口管理模块调用以及实现七层负载均衡基本的功能逻辑,七层负载均衡基本的功能逻辑包括lb节点管理、nginx规则的管理、后端主机的管理、七层监听器的管理以及基本数据库管理;

common模块,用于提供基础的功能函数和基础接口common类,基础的功能函数用于供模块和功能调用,基础接口common类用于由四层管理模块和七层管理模块来继承,主要是公共接口的定义;

slb-agent模块,用于接受slb集群发来的命令消息,在lb节点上面执行具体配置命令,并且主动上报流量信息。

更优地,所述common模块包括,

db管理模块,用于维护数据库连接状态,提供数据库的增删改查的基本的接口,db管理模块是数据库管理模块;

虚拟机管理模块,用于对lb节点虚拟机进行管理,接受四层管理模块和七层管理模块的调用请求,再调用openstack虚拟机管理接口,完成lb节点虚拟机的调度、创建和删除的管理操作;

远程管理模块,用于向lb节点虚拟机发送管理命令;远程管理模块位于slb微服务侧;

交换机管理模块,用于通过交换机与lb节点虚拟机建立邻居关系并完成流量分发。

更优地,所述四层管理模块通过虚机管理模块实现lvs节点虚机的创建、初始化配置与删除的lb节点管理;四层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理及监听器的管理;四层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对lvs规则的管理;

七层管理模块通过虚机管理模块实现nginx节点虚机的创建、初始化配置与删除的lb节点管理;七层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理,监听器的管理;七层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对nginx规则的管理。

一种应用在openstack云平台的多活负载均衡系统,该系统采用微服务软件架构,包括ui层、后端微服务层、原子微服务层和远端slb-agent层;

ui层用于与用户交互,接收用户配置,转发给后端微服务层处理并将处理结果呈现给用户;

后端微服务层用于接收ui层转发的用户配置信息并进行处理,同时下发指令到原子微服务层;

原子微服务层用于接收后端微服务层下发的指令;

远端slb-agent层用于配置lb节点虚拟机中lvs+nginx应用程序。

作为优选,所述后端微服务层包括,

api接口管理模块,用于面向前端ui封装的restfulapi接口,处理前端访问请求,用户访问前端页面进行操作行为,前端将请求发送到后端微服务层,由对应的api接口来处理;

四层管理模块,用于提供四层负载均衡相关的功能接口供前端api接口管理模块调用以及实现四层负载均衡功能基本的逻辑,四层负载均衡功能基本的逻辑包括lb节点管理、lvs规则的管理、后端主机的管理、四层监听器的管理以及基本数据库管理;

七层管理模块,用于提供七层负载均衡相关功能接口供前端api接口管理模块调用以及实现七层负载均衡基本的功能逻辑,七层负载均衡基本的功能逻辑包括lb节点管理、nginx规则的管理、后端主机的管理、七层监听器的管理以及基本数据库管理;

common模块,用于提供基础的功能函数和基础接口common类,基础的功能函数用于供模块和功能调用,基础接口common类用于由四层管理模块和七层管理模块来继承,主要是公共接口的定义;

slb-agent模块,用于接受slb集群发来的命令消息,在lb节点上面执行具体配置命令,并且主动上报流量信息。

更优地,所述common模块包括,

db管理模块,用于维护数据库连接状态,提供数据库的增删改查的基本的接口,db管理模块是数据库管理模块;

虚拟机管理模块,用于对lb节点虚拟机进行管理,接受四层管理模块和七层管理模块的调用请求,再调用openstack虚拟机管理接口,完成lb节点虚拟机的调度、创建和删除的管理操作;

远程管理模块,用于向lb节点虚拟机发送管理命令;远程管理模块位于slb微服务侧;

交换机管理模块,用于通过交换机与lb节点虚拟机建立邻居关系并完成流量分发。

更优地,所述四层管理模块通过虚机管理模块实现lvs节点虚机的创建、初始化配置与删除的lb节点管理;四层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理及监听器的管理;四层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对lvs规则的管理;

七层管理模块通过虚机管理模块实现nginx节点虚机的创建、初始化配置与删除的lb节点管理;七层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理,监听器的管理;七层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对nginx规则的管理。

本发明的应用在openstack云平台的多活负载均衡方法及系统具有以下优点:

(一)本发明通过ospf协议实现了lb节点的多活模式,降低了单个lb节点虚拟机对物理资源的需求,同等虚拟机资源情况下,双活模式比主备模式的性能提升100%;同等性能下,物理资源需求量降低50%;

另外,针对大波动流量进行了流量监控,进行lb节点的动态拓展,使的该负载均衡方法具有弹性伸缩的能力,能很好的应对瞬时大流量带来的物理资源需求,已经小流量时的物理资源浪费情况;

(二)本发明从转发性能角度出发,针对4层流量和7层流量选择不同的开源软件,4层流量转发选择已经纳入linux内核的lvs实现,而7层流量的转发则采用性能较高的nginx开源软件,满足4层与7层流量负载均衡的需求;

(三)本发明采用基于ospf协议实现的多活模式,负载均衡节点安装部署支持ospf协议的quagga虚拟路由器,通过ospf协议对外广播负载均衡vip,在物理交换机侧生成等价路由,实现多活模式,很好的解决了负载均衡节点的单点故障问题;同时,由于多活模式,降低了负载均衡节点的性能需求,提供了物理资源的利用率;

(四)本发明采用流量监控和弹性伸缩技术,实现负载均衡节点的弹性伸缩和动态拓展,通过流量监控agent监控负载均衡节点流量,并上报负载均衡管理节点,负载均衡管理节点分析负载均衡节点流量信息,进行负载均衡节点的动态伸缩(大流量时增加节点数量,小流量时减少负载均衡节点),解决大波动的流量负载问题,提高负载均衡的高可用性和性能,同时提高了资源利用率;

(五)基于虚拟机承载负载均衡节点:在openstack平台上基于定制的虚拟机镜像,使用开源的lvs和nginx分别对4层流量和7层流量进行负载均衡,通过实现了ospf协议的开源quagga虚拟路由器与支持ospf协议的物理交换机合作进行多路径选择,实现多活模式,并通过openstack平台上租户共享的外部网络与租户vpc中的虚拟机进行通信,实现跨vpc的负载均衡;

(六)内外网网络架构复用:通过出口防火墙设备进行eipnat映射,实现负载均衡实例的外网访问功能,通过负载均衡业务网与外部网络打通,实现了负载均衡实例的内网访问功能,统一了云平台上负载均衡实例的内外网实现方法,网络结构高度复用;

(七)基于ospf实现多活模式:本发明基于ospf协议实现了负载均衡节点的多活模式,与传统的主备模式相比较,实现了负载均衡节点性能的最大利用率,提高了云平台上物理服务器的资源利用率,拥有较高的性价比;同时具有良好的横向动态扩展功能,可以根据租户需求精确匹配租户的高可用性;

(八)基于流量分析,进行负载均衡节点动态扩展:负载均衡虚机内部署了具有流量分析功能的slb-agent程序,主动上报控制节点,控制节点根据流量的波动情况,进行负载均衡节点的动态增加与动态减少,提供资源利用率,同时降低资源性能需求。

附图说明

下面结合附图对本发明进一步说明。

附图1为应用在openstack云平台的多活负载均衡方法流程框图;

附图2为后端微服务层的结构框图。

具体实施方式

参照说明书附图和具体实施例对本发明的一种应用在openstack云平台的多活负载均衡方法及系统作以下详细地说明。

实施例1:

本发明的应用在openstack云平台的多活负载均衡方法,该方法是使用开源的lvs和nginx分别对4层流量和7层流量进行负载均衡,通过实现了ospf协议的开源quagga虚拟路由器与支持ospf协议的物理交换机合作进行多路径选择,实现多活模式,并通过openstack平台上租户共享的外部网络与租户vpc中的虚拟机进行通信,实现跨vpc的负载均衡;如附图1所示,具体步骤如下:

s1、控制台通过负载均衡管理网对后端微服务层(slb集群)内的lb节点的负载均衡实例下发lvs与nginx配置;

s2、lb节点的负载均衡实例通过出口防火墙设备进行eipnat映射,实现负载均衡实例的外网访问功能;同时通过负载均衡业务网与外部网络打通,实现负载均衡实例的内网访问功能;

s3、负载均衡实例对应的虚拟服务地址所在的网络,用于对负载均衡虚拟服务的访问,公网负载均衡的eip与负载均衡实例的业务网ip进行nat,要求与平台上租户共享的floatingip网络互通;

s4、lb节点内安装lvs+nginx,lvs通过floatingip网与后端微服务层的通信,每一个负载均衡实例占用一个floatingip网的ip地址,作为lip;

s5、租户自行创建的租户vpc网,租户vpc网为后端微服务层所在的网络,实现租户与后端微服务层的通信。

其中,如附图2所示,后端微服务层包括api接口管理模块、四层管理模块、七层管理模块、common模块和slb-agent模块;api接口管理模块用于面向前端ui封装的restfulapi接口,处理前端访问请求,用户访问前端页面进行操作行为,前端将请求发送到后端微服务层,由对应的api接口来处理;四层管理模块用于提供四层负载均衡相关的功能接口供前端api接口管理模块调用以及实现四层负载均衡功能基本的逻辑,四层负载均衡功能基本的逻辑包括lb节点管理、lvs规则的管理、后端主机的管理、四层监听器的管理以及基本数据库管理;四层管理模块是核心功能模块,从基础类继承而来,基础类实现基本的lvs管理接口(添加/删除/变更虚拟服务接口等);七层管理模块用于提供七层负载均衡相关功能接口供前端api接口管理模块调用以及实现七层负载均衡基本的功能逻辑,七层负载均衡基本的功能逻辑包括lb节点管理、nginx规则的管理、后端主机的管理、七层监听器的管理以及基本数据库管理;七层管理模块是核心功能模块,是从基础类继承而来;common模块用于提供基础的功能函数和基础接口common类,基础的功能函数用于供模块和功能调用,基础接口common类用于由四层管理模块和七层管理模块来继承,主要是公共接口的定义;common模块包括db管理模块、虚拟机管理模块、远程管理模块及交换机管理模块;db管理模块用于维护数据库连接状态,提供数据库的增删改查的基本的接口,db管理模块是数据库管理模块;虚拟机管理模块用于对lb节点虚拟机进行管理,接受四层管理模块和七层管理模块的调用请求,再调用openstack虚拟机管理接口,完成lb节点虚拟机的调度、创建和删除的管理操作;远程管理模块用于向lb节点虚拟机发送管理命令;远程管理模块位于slb微服务侧;交换机管理模块用于通过交换机与lb节点虚拟机建立邻居关系并完成流量分发。四层管理模块通过虚机管理模块实现lvs节点虚机的创建、初始化配置与删除的lb节点管理;四层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理及监听器的管理;四层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对lvs规则的管理;七层管理模块通过虚机管理模块实现nginx节点虚机的创建、初始化配置与删除的lb节点管理;七层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理,监听器的管理;七层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对nginx规则的管理。

slb-agent模块用于接受slb集群发来的命令消息,在lb节点上面执行具体配置命令,并且主动上报流量信息。

实施例2:

本发明的应用在openstack云平台的多活负载均衡系统,该系统采用微服务软件架构,包括ui层、后端微服务层、原子微服务层和远端slb-agent层;

ui层用于与用户交互,接收用户配置,转发给后端微服务层处理并将处理结果呈现给用户;

后端微服务层用于接收ui层转发的用户配置信息并进行处理,同时下发指令到原子微服务层;如附图2所示,后端微服务层包括api接口管理模块、四层管理模块、七层管理模块、common模块和slb-agent模块;api接口管理模块用于面向前端ui封装的restfulapi接口,处理前端访问请求,用户访问前端页面进行操作行为,前端将请求发送到后端微服务层,由对应的api接口来处理;四层管理模块用于提供四层负载均衡相关的功能接口供前端api接口管理模块调用以及实现四层负载均衡功能基本的逻辑,四层负载均衡功能基本的逻辑包括lb节点管理、lvs规则的管理、后端主机的管理、四层监听器的管理以及基本数据库管理;七层管理模块用于提供七层负载均衡相关功能接口供前端api接口管理模块调用以及实现七层负载均衡基本的功能逻辑,七层负载均衡基本的功能逻辑包括lb节点管理、nginx规则的管理、后端主机的管理、七层监听器的管理以及基本数据库管理;common模块,用于提供基础的功能函数和基础接口common类,基础的功能函数用于供模块和功能调用,基础接口common类用于由四层管理模块和七层管理模块来继承,主要是公共接口的定义;common模块也是属于基础模块,common模块包括db管理模块、虚拟机管理模块、远程管理模块及交换机管理模块;db管理模块用于维护数据库连接状态,提供数据库的增删改查的基本的接口,db管理模块是数据库管理模块;虚拟机管理模块用于对lb节点虚拟机进行管理,接受四层管理模块和七层管理模块的调用请求,再调用openstack虚拟机管理接口,完成lb节点虚拟机的调度、创建和删除的管理操作;远程管理模块用于向lb节点虚拟机发送管理命令;远程管理模块位于slb微服务侧;交换机管理模块用于通过交换机与lb节点虚拟机建立邻居关系并完成流量分发。四层管理模块通过虚机管理模块实现lvs节点虚机的创建、初始化配置与删除的lb节点管理;四层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理及监听器的管理;四层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对lvs规则的管理;七层管理模块通过虚机管理模块实现nginx节点虚机的创建、初始化配置与删除的lb节点管理;七层管理模块通过db管理模块实现服务数据的增删改查的功能,包括后端主机的管理,监听器的管理;七层管理模块通过远程管理模块与lb节点上的slb-agent远程通信,实现对nginx规则的管理。slb-agent模块用于接受slb集群发来的命令消息,在lb节点上面执行具体配置命令,并且主动上报流量信息。

原子微服务层用于接收后端微服务层下发的指令;

远端slb-agent层用于配置lb节点虚拟机中lvs+nginx应用程序。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1