基于Openstack的多活型负载均衡方法及系统与流程

文档序号:23090063发布日期:2020-11-27 12:41阅读:181来源:国知局
基于Openstack的多活型负载均衡方法及系统与流程

本发明涉及负载均衡技术领域,具体地说是一种基于openstack的多活型负载均衡方法及系统。



背景技术:

云计算是近年来it基础设施领域最热门的话题之一,其对计算、网络、存储等各种资源的虚拟化抽象,为用户提供了极为方便的资源使用方式和灵活的资源扩展能力。同时计算机通信网络等技术的快速发展,使得网络超载与超负荷已经是家常便饭。为解决网络负荷问题,就要利用负载均衡技术提供更加灵活、方便、快捷、高效的云计算服务能力。负载均衡建立在现有网络结构之上,它提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的带宽、增加吞吐量、加强网络的数据处理能力、提高网络的灵活性和可用性。

为了达到节省资源与性能之间的平衡,要求负载均衡集群占用的资源不能过多,且性能尽可能的提高。想像一下这种场景,某个电商平台,在某个节日的时候,流量激增,平时的服务器无法支撑这么巨大的流量,就需要进行服务器扩容,同时进行负载均衡集群的扩容来处理激增的流量,而且这种应对临时激增流量的扩容不能一直占用资源,会增加巨大的成本,所以当节日过去的时候,集群又进行相应的缩容,来满足日常情况下的一般需求。根据客户端请求流量的大小进行动态的扩容和缩容,是常见的一种需求。

openstack作为一种开源的云计算操作系统,在公有云和私有云领域都得到了广泛的应用,基于openstack的多活型负载均衡是目前业内比较迫切的需求。目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术等。

如何通过软件负负载均衡集群进行动态扩容或缩容,以实现服务器的分流,是需要解决的技术问题。



技术实现要素:

本发明的技术任务是针对以上不足,提供一种基于openstack的多活型负载均衡方法及系统,来解决如何通过软件负负载均衡集群进行动态扩容或缩容的问题。

第一方面,本发明提供一种基于openstack的多活型负载均衡方法,将公有云同一个vpc的多个后端服务器虚拟成一个高可用的后端服务器组,部署lvs集群和nginx集群对业务流量进行负载均衡并分发至后端服务器组,通过quagga路由器以及支持ospf及一致性哈希的交换机实现上述负载均衡的多活模式,并监控反应lvs集群和nginx集群运行状态的指标维度以判断集群状态,根据集群状态进行动态的扩容或缩容。

作为优选,所述方法包括如下步骤:

s100、控制系统接收到负载均衡创建请求后,创建lvs集群和nginx集群,上述lvs集群和nginx集群中的虚机均支持服务管理网网卡和业务网卡,所述服务管理网网卡用于与控制系统通信,所述业务网卡具有与云服务器相同vpc,用于负责业务流量并与后端服务器通信;

s200、控制系统对lvs集群进行虚机配置,包括:

s210、在云服务器的vpc内创建在云服务的vpc内创建一个单独的port作为vip,修改lvs集群虚机的业务网卡,添加一条可用地址对,将ip地址修改为vip的地址、mac地址修改为port的地址;

s220、在业务侧交换机上针对vpc的vlan开启ospf,与lvs集群建立邻居关系、生成等价路由,使得通过交换机的流量能够均匀的分发至lvs集群内的虚机;

s230、将vip的地址添加到lvs集群虚机的lo接口上,将lvs监听地址配置为vip的ip地址,并结合需求创建端口的监听,添加后端服务器时,将nginx集群所有虚机的业务网卡全部加入lvs后端服务器,并配置轮询策略,使得通过lvs集群的流量能够均匀的分发至nginx集群;

s300、控制系统对nginx集群进行虚机配置,包括:

将nginx监听地址配置为本地的业务网卡ip,添加后端云服务器时,将云服务器的ip地址全部添加至upstream中,并根据需求配置调度算法;

s400、将lvs集群和nginx集群接入监控系统,上述lvs集群和nginx集群的虚机中均配置有qga-agent程序,qga-agent程序用于启动一个定时任务来定时向监控系统上报指标维度;

s500、监控系统基于指标维度判断集群的扩容/缩容需求,并根据上述扩容/缩容需求通知控制系统进行相应的扩容或缩容。

作为优选,基于指标判断集群的扩容/缩容需求,对应的计算公式为:

x=a*m1的平均值*m2的平均值*…*mk的平均值;

其中,a为系数,m和n表示预设的阈值,mk表示第k个指标维度,所述指标维度包括但限于cpu利用率、内存占用率以及负载均衡的当前连接数;

当x大于等于m时,判断当前集群需要进行扩容;

当x小于等于n时,判断当时集群需要进行缩容。

作为优选,所述预设的阈值m和n能够满足保留20%到30%的备用容量,以降低突发流量过大造成的崩溃风险。

作为优选,控制系统进行相应的扩容,包括如下步骤:

控制系统调控lvs集群和nginx集群分别各创建一台虚机;

基于步骤s300对nginx集群新建的虚机进行配置后,基于步骤s200对lvs集群新建的虚机进行配置;

将上述两个新建的虚机均接入监控系统。

作为优选,控制系统进行相应的缩容,包括如下步骤:

控制系统从nginx集群中选择一台虚机,将所述虚机的业务ip在lvs集群的转发列表中删除,并删除所述虚机;

从lvs集群中删除一台虚机。

作为优选,所述lvs集群和nginx集群中虚机均至少5台,每台虚机均为16c32g的虚机。

第二方面,本发明提供一种系统,所述系统包括控制系统、监控系统、路由器、交换机和多个后端服务器,所述路由器为quagga路由器,所述交换机支持ospf及一致性哈希,所述多个后端服务器为公有云同一个vpc的多个后端服务器,所述系统通过如第一方面任一项所述的基于openstack的多活型负载均衡方法构建多活型负载均衡集群,并进行相应的动态扩容或缩容。

本发明的基于openstack的多活型负载均衡方法及系统具有以下优点:

1、配置lvs集群和nginx集群、并通过quagga路由软件及交换机构建多活型负载均衡集群,该多活型负载均衡集群相比其它负载均衡集群如主备模式的性能要强100%以上,具有性能强、可用性高的优点;

2、该多活型负载均衡集群资源占用低,动态的扩容或者缩容不仅可以满足突发流量过大的场景,也可以避免流量小、资源浪费的弊端。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

图1为实施例1基于openstack的多活型负载均衡方法的流程框图;

图2为实施例2系统的架构框图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

本发明实施例提供基于openstack的多活型负载均衡方法及系统,用于解决如何通过软件负负载均衡集群进行动态扩容或缩容的技术问题。

实施例1:

本发明的一种基于openstack的多活型负载均衡方法,将公有云同一个vpc的多个后端服务器虚拟成一个高可用的后端服务器组,部署lvs集群和nginx集群对业务流量进行负载均衡并分发至后端服务器组,通过quagga路由器以及支持ospf及一致性哈希的交换机实现上述负载均衡的多活模式,并监控反应lvs集群和nginx集群运行状态的指标维度以判断集群状态,根据集群状态进行动态的扩容或缩容。

在本实施例中,主要依赖三个开源软件lvs、nginx和quagga,以及支持ospf协议和一致性哈希的物理交换机。

lvs(英文全称为:linuxvirtualserver)即linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前lvs已经被集成到linux内核模块中。

nginx作为当前最流行的负载均衡开源软件之一,优点有很多。nginx的并发连接性能优秀,内存消耗少,且安装和配置比较简单,稳定性高。

quagga是一个开源的基于zebra实现了rip,ospf,bgp的动态路由软件,它提供的cli命令和ciscoios类似,可以使用quagga将linux机器打造成一台功能完备的路由器。

本实施例针对网络负荷问题,在openstack平台通过软件的方式来实现一种可动态扩容缩容的多活型负载均衡的方法。该方法使用lvs和nginx对流量进行负载均衡,使用quagga和支持ospf及一致性哈希的交换机实现负载均衡集群的多活模式,并且可以进行动态扩容和缩容。

该方法的步骤为:

s100、控制系统接收到负载均衡创建请求后,创建lvs集群和nginx集群,上述lvs集群和nginx集群中的虚机均支持服务管理网网卡和业务网卡,服务管理网网卡用于与控制系统通信,业务网卡具有与云服务器相同vpc,用于负责业务流量并与后端服务器通信;

s200、控制系统对lvs集群和nginx集群进行虚机配置,包括:

在云服务的vpc内创建一个单独的port作为vip,修改lvs集群虚机的业务网卡,添加一条可用地址对,将ip地址修改为vip的地址、mac地址修改为port的地址;

在业务侧交换机上针对vpc的vlan开启ospf,与lvs集群建立邻居关系,生成等价路由,使得通过交换机的流量能够均匀的分发至lvs集群内的虚机;

s300、控制系统对lvs集群和nginx集群进行配置,包括:

配置lvs集群,将vip的地址添加到lvs集群虚机的lo接口上,将lvs监听地址配置为vip的ip地址,并结合需求创建端口的监听,添加后端服务器时,将nginx集群所有虚机的业务网卡全部加入lvs后端服务器,并配置轮询策略,使得通过lvs集群的流量能够均匀的分发至nginx集群;

配置nginx集群,将nginx监听地址配置为本地的业务网卡ip,添加后端云服务器时,将云服务器的ip地址全部添加至upstream中,并根据需求配置调度算法;

s400、将lvs集群和nginx集群接入监控系统,上述lvs集群和nginx集群的虚机中均配置有qga-agent程序,qga-agent程序用于启动一个定时任务来定时向监控系统上报指标维度;

s500、监控系统基于指标维度判断集群的扩容/缩容需求,并根据上述扩容/缩容需求通知控制系统进行相应的扩容或缩容。

上述步骤中,将lvs集群和nginx集群接入监控系统后,lvs集群和nginx集群内配置的qga-agent程序,会启动一个定时任务来定时向监控系统上报监控数据,监控的指标维度主要由cpu利用率、内存占用率以及负载均衡的当前连接数等。本实施例中,监控系统根据cpu利用率、内存占用率以及负载均衡的当前连接数来计算集群的扩容/缩容需求,具体计算公式为:

x=a*cpu利用率的平均值*内存占用率的平均值*当前连接数的平均值

其中,a为系数,m和n表示预设的阈值。

当x大于等于m时,判断当前集群需要进行扩容;当x小于等于n时,判断当时集群需要进行缩容。

当满足上述需求的条件时,监控系统通知控制系统进行相应的扩容或缩容处理。

扩容的具体操作为:

控制系统控制lvs集群和nginx集群各自创建一台虚机;

先基于步骤s300对nginx集群中创建的虚机的进行配置;

然后基于步骤s200对lvs集群中创建的虚机的进行配置;

最后将上述配置后的两个虚机均接入监控系统,完成扩容。

上述创建的两个新的虚机均为双网卡虚机,支持支持服务管理网网卡和业务网卡。且上述创建的虚机中均配置有qga-agent程序,qga-agent程序用于启动一个定时任务来定时向监控系统上报监控数据,监控数据包括上述指标维度。

基于步骤s300对nginx集群中创建的虚机的进行配置,包括如下操作:

将nginx监听地址配置为创建的新虚机的业务网卡ip,添加后端云服务器时,将云服务器的ip地址全部添加至upstream中,并根据需求配置调度算法。

基于步骤s200对lvs集群中创建的虚机的进行配置,包括如下操作:

修改lvs集群创建的新虚机的业务网卡,添加一条可用地址对,将ip地址修改为vip的地址、mac地址修改为port的地址;

将vip的地址添加到lvs集群创建的新虚机的lo接口上,将lvs监听地址配置为vip的ip地址,并结合需求创建端口的监听,添加后端服务器时,将nginx集群所有虚机的业务网卡全部加入lvs后端服务器,并配置轮询策略,使得通过lvs集群的流量能够均匀的分发至nginx集群。

在初期控制系统对lvs集群进行虚机配置过程中,通过步骤s220在业务侧交换机上针对vpc的vlan开启ospf,与lvs集群建立邻居关系、生成等价路由,该创建的新的虚机可与交换机通信。

在运行过程中,业务流量由交换机分发至lvs集群的虚机,再由lvs集群分发至niginx集群的虚机,在扩容过程中,先对niginx集群的虚机进行配置,后对lvs集群的虚机进行配置,可以有效防止业务流量的中断。

缩容的具体操作为:

控制系统选择一台nginx集群中的虚机,将该虚机的业务ip在lvs集群的转发列表中删除,并删除这个虚机,然后在lvs集群中选择一台虚机删除,完成缩容。

容量设计需要考虑突发流量,一般要保留20%-30%的备用流量,备用流量可以在扩容完成前的阶段缓解系统压力,降低突发流量过大系统崩溃的风险。

本发明针对基于openstack的云计算管理平台,提出了一种可动态扩容缩容的多活型负载均衡的方法,该方法的核心思想是使用lvs和nginx对流量进行负载均衡,使用quagga和支持ospf及一致性哈希的交换机实现负载均衡集群的多活模式,并且可以进行动态扩容和缩容。

假设一个vlan的vpc内有50台云服务器需要做负载均衡,具体步骤为:

步骤1,控制系统接收到创建负载均衡的请求,开始创建lvs集群和nginx集群,默认最少均为5台16c32g的虚机,lvs集群和nginx集群的虚机虚机均为双网卡,分别为服务管理网网卡和业务网卡,服务管理网网卡负责与控制系统通信,与云服务器相同vpc的业务网卡,负责业务流量与后端服务器通信;

步骤2,在云服务器的vpc内创建一个单独的port用作vip,并且修改lvs集群虚机的业务网卡,添加一条allowedaddresspair(可用地址对),ip地址为vip的ip地址,mac地址为该port的mac地址,并在业务侧交换机上针对vpc的这个vlan开启ospf,与lvs集群建立邻居关系,生成等价路由,使得通过交换机的流量可以均匀的分发到lvs集群内的虚机;

步骤4,控制系统对lvs集群下发配置,lvs集群要把vip的地址添加到虚机的lo接口上,并配置lvs监听地址为vip的ip地址,并结合具体的需求创建端口的监听,添加后端服务器的时候,将nginx集群所有虚机的业务网卡全部加入lvs的后端服务器里面,并配置轮询策略,使得通过lvs集群的流量又均匀的分发到nginx集群;

步骤5,控制系统对nginx集群下发配置,配置nginx集群时,nginx的监听地址为本虚机的业务网卡ip,添加后端服务器时,将云服务器的ip地址全部添加到upstream中,并根据具体的需求配置调度算法;

步骤6,将lvs集群和nginx集群接入监控系统,两个集群的虚机中都装有qga-agent程序,通过qga-agent程序启动一个定时任务来定时向监控系统上报监控数据,监控的指标维度主要有:cpu利用率、内存占用率、负载均衡的当前连接数,由如下计算公式计算需求:x=a*平均cpu利用率*平均内存占用率*平均当前连接数,a为系数,m和n为预设的阈值,当x大于等于m时,判断该集群需要进行扩容,当x小于等于n时,判断该集群需要进行缩容,当满足条件时,监控系统通知控制系统需要进行相应的扩容或缩容处理。

其中,指标维度不限于上述的cpu利用率、内存占用率、负载均衡的当前连接数,还可以包括流入包、流出包以及带宽等,计算公式为系数a以及各个指标平均值的乘积。

实施例2:

本发明的一种系统,包括控制系统、监控系统、路由器、交换机和多个后端服务器,路由器为quagga路由器,交换机支持ospf及一致性哈希,多个后端服务器为公有云同一个vpc的多个后端服务器。该系统通过实施例1公开的一种基于openstack的多活型负载均衡方法构建多活型负载均衡集群,并进行相应的动态扩容或缩容。

该系统使用支持ospf协议的交换机来实现流量的均匀分发,交换机一级负载均衡、lvs集群二级负载均衡、nginx集群三即负载均衡,多级负载均衡,使得整个系统的性能更强;lvs集群和nginx集群内虚机上安装有qga-agent程序,可以以定时任务的方式往监控系统上报监控数据,监控系统根据根据获取的指标维度计算扩容/缩容需求,和阈值作比较来判断集群是否需要扩容或者缩容,最后由监控系统下发命令通过控制系统来实现扩容或缩容。

上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

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