一种实现虚拟网络负载均衡的方法及装置与流程

文档序号:12693168阅读:264来源:国知局
一种实现虚拟网络负载均衡的方法及装置与流程

本发明实施例涉及虚拟化网络设计技术领域,特别是涉及一种实现虚拟网络负载均衡的方法及装置。



背景技术:

随着云计算、虚拟化技术的快速发展,云计算生产环境部署的规模越来越大。在数据中心,随着业务模型的多样化,客户端与服务器的数量也越来越多,相应的,客户端访问服务器的次数也就越来越多,不可避免的,会在南北流量上突发高流量的现象,严重时会导致报文发送延迟或无法发送的情况,可见,实现网络间各负载均衡是至关重要的。

虚拟化技术催生了虚拟服务器(又叫虚拟机),虚拟机是指通过软件模拟的、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。当硬件发生故障需要维护或业务需求转移时,正在运行的服务需要被迁移到其他的平台上继续运行,并且这一过程不能对虚拟机所承载的应用服务产生影响,这就涉及到虚拟机迁移技术,虚拟机迁移技术能使虚拟机在物理机之间进行快速的在线迁移,并且保持虚拟机在运行过程中不间断运行,有效的改善资源分配。可见,虚拟机会在不同的主机上进行迁移。

鉴于上述情况,现有技术中,通过配置路由协议以达到网络负载均衡,随着虚拟机的迁移,路由协议显然是无法准确的实现网络间负载的均衡。故,如何实现跟随虚拟机迁移达到负载均衡,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种实现虚拟网络负载均衡的方法及装置,以解决虚拟网络负载均衡的问题。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种实现虚拟网络负载均衡的方法,包括:

根据用户为虚拟网络配置负载均衡器的指令,创建负载均衡器;

当检测到虚拟机的开启时,根据所述虚拟机的标识信息匹配对应的负载均衡器;

获取当前虚拟网络的部署信息,根据所述部署信息通过所述负载均衡器生成openflow流表,并通过虚拟机交换机发送至所述虚拟机对应的服务器;

当检测到所述虚拟机下线时,将所述openflow流表删除。

可选的,所述当检测到虚拟机的开启时,根据所述虚拟机的标识信息匹配对应的负载均衡器为:

检测所述虚拟网络中各个虚拟交换机的端口状态;

当检测到所述端口状态为连接时,根据所述端口确定相连的虚拟机;

根据所述虚拟机的标识信息匹配对应的负载均衡器。

可选的,所述根据所述部署信息通过所述负载均衡器生成openflow流表为:

根据所述部署信息获取网关数量;

根据网关数量通过所述负载均衡器生成openflow流表。

可选的,所述负载均衡器的ID与所述虚拟机的ID相同。

可选的,所述openflow流表的类型为select。

本发明实施例另一方面提供了一种实现虚拟网络负载均衡的装置,包括:

创建模块,用于根据用户为虚拟网络配置负载均衡器的指令,创建负载均衡器;

流表生成模块,用于当检测到虚拟机的开启时,根据所述虚拟机的标识信息匹配对应的负载均衡器;获取当前虚拟网络的部署信息,根据所述部署信息通过所述负载均衡器生成openflow流表,并通过虚拟机交换机发送至所述虚拟机对应的服务器;

流表删除模块,用于当检测到所述虚拟机下线时,将所述openflow流表删除。

可选的,所述流表生成模块为检测所述虚拟网络中各个虚拟交换机的端口状态;当检测到所述端口状态为连接时,根据所述端口确定相连的虚拟机;根据所述虚拟机的标识信息匹配对应的负载均衡器的模块。

可选的,所述流表生成模块为根据所述部署信息获取网关数量;根据网关数量通过所述负载均衡器生成openflow流表的模块。

可选的,所述流表生成模块为所述负载均衡器的ID与所述虚拟机的ID相同的模块。

本发明实施例提供了一种实现虚拟网络负载均衡的方法,创建虚拟网络的负载均衡器,通过负载均衡器生成负载均衡流表,检测到虚拟机启动时,将生成的负载均衡流表,即openflow流表,下发至虚拟机所属的服务器中;当检测到虚拟机下线时,将之前生成的流表进行删除。

本申请提供的技术方案的优势在于,充分利用openflow控制与转发分离的特点。由于openflow流表反映了虚拟机的业务流量特征,当虚拟机发生迁移时,相应的openflow流表进行增加或删除,准确的反映了虚拟机发送的流量特征,根据这些流量特征进行HASH计算,将不同的流量映射到不同的节点进行处理,实现了虚拟网络的负载均衡。不仅降低了路由配置的复杂度,简单、高效的指导报文的转发,提高了数据转发的速率,还增加了虚拟化网络的灵活性以及扩展性,有益于提高虚拟网络的整体工作速率以及数据安全性。

此外,本发明实施例还针对实现虚拟网络负载均衡的方法提供了相应的实现装置,进一步使得所述方法更具有实用性,所述装置具有相应的优点。

附图说明

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

图1为本发明实施例提供的一种实现虚拟网络负载均衡方法的流程示意图;

图2为本发明实施例提供的一个示意性例子的框架示意图;

图3为本发明实施例提供的实现虚拟网络负载均衡装置的一种实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

现有技术中,由于虚拟机的迁移,导致基于路由协议进行传输,无法准确的实现网络间各负载的均衡。本申请的发明人经过研究发现,openflow主要解决的是重新设计互联网的实验环境问题。在纯的实验网上总难以有足够多的实际用户或者足够大的网络拓扑来测试新协议的性能和功能,最好的方法是将运行新协议的实验网络嵌入实际运营的网络,利用实际的网络环境来检验新协议的可行性和存在的问题。

Openflow网络由openflow交换机、控制器和open visor组成。其中,openflow交换机进行数据层的转发,open visor对网络进行虚拟化,控制器对网络进行集中控制,实现控制层的功能。openflow交换机是Openflow网络的核心设备,有流表、安全通道以及openflow协议组成。安全通道用于交换机与控制器之间的连接,应用openflow协议,控制器可通过安全通道配置与管理交换机。openflow协议主要支持三种消息类型,即消息由控制器发起,用于管理或获取交换机的状态;消息由交换机发起,将状态信息更新到控制器;消息可用交换机或控制器发起,用于建立连接。

当前网络的报文转发过程由交换机/路由器等交换设备控制,即通过配置路由协议来实现,而openflow网络中提出转发过程由交换机和控制器共同完成,从而实现了数据转发与路由控制的分离。控制器可以通过事先规定好的接口操作来控制openflow交换机中的流表,如修改流表项以改变流量在网络中的走向,从而达到控制数据转发的目的。

在云计算网络中,数据的计算基于网络中的计算机,因此,与计算主要考虑的问题为虚拟环境的操作能力、虚拟及其的无差错搬迁、计算速度、遇见通信以及规模等问题。在网络中使用openflow交换机,可有效的控制网络数据和计算资源,面对数据中心的大数据量,控制器可以优化传送路径以达到负载均衡,使得数据交换的速度提升。

鉴于此,本申请通过创建虚拟网络的负载均衡器,通过负载均衡器生成负载均衡流表,检测到虚拟机启动时,将生成的负载均衡流表,即openflow流表,下发至虚拟机所属的服务器中;当检测到虚拟机下线时,将之前生成的流表删除。openflow流表反映了虚拟机发送出来的业务流量特征,根据这些流量特征进行HASH计算,将不同的流量映射到不同的节点进行处理,以实现虚拟网络的负载均衡。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种实现虚拟网络负载均衡方法的流程示意图,本发明实施例可包括以下内容:

S101:根据用户为虚拟网络配置负载均衡器的指令,创建负载均衡器。

负载均衡器创建在控制层,负载均衡器的个数可根据虚拟网络中服务器的个数进行确定,例如三台服务器共用一个负载均衡器,本发明对此不做任何限定。

用户输入负载均衡器的配置信息。例如一些端口信息、IP地址等,系统接收用户输入的指令,并根据用户输入的具体信息生成负载均衡器。负载均衡器用于根据网络部署情况生成负载均衡流表,也就是openflow流表,openflow流表为虚拟机发送出来的业务流量特征,根据这些流量特征来进行HASH计算,将不同的流量映射到不同的节点,从而实现根据openflow流表实现对各网络间的流量进行均衡。

一台服务器上运行着至少一台虚拟机,虚拟机的标识信息与负载均衡器的标识信息相同,以便于通过虚拟机可找到相应的逻辑负载器,且将各个虚拟机的负载均衡策略绑定于相应的负载均衡器上。

可选的,一般将负载均衡器的ID与虚拟机的ID相同。

S102:当检测到虚拟机的开启时,根据所述虚拟机的标识信息匹配对应的负载均衡器。

检测虚拟机开启,可根据OVSDB协议进行检测虚拟机的运行状态进行判断。由于虚拟机与虚拟交换机相连,故,也可检测虚拟网络中各个虚拟交换机的端口状态;当检测到端口状态为连接状态时,则判定有虚拟机相连,然后根据端口确定相连的虚拟机。当检测到虚拟机开启后,需要将虚拟机开启的状态信息上传到相应的负载均衡器上。

需要说明的是,通过端口状态判断虚拟机的开启状态时,为了进一步确定虚拟机的开启状态,可选的,通过逻辑端口找到虚拟机,然后再检测虚拟机的状态,看其是否真的处于开启状态。

由于负载均衡器绑定着每一个虚拟机的均衡策略,故虚拟机与相应的负载均衡器具有一定的标识信息,可通过标识信息进行匹配负载均衡器。

S103:获取当前虚拟网络的部署信息,根据所述部署信息通过所述负载均衡器生成openflow流表,并通过虚拟机交换机发送至所述虚拟机对应的服务器。

虚拟网络的部署信息可为该虚拟网络中包含服务器的数目以及位属的交换机数目、网关数目、路由器的配备以及数目等等。

由于网关为一个网络连接到另一个网络的“关口”,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。

故,可根据部署信息获取网关数量,根据网关数量通过负载均衡器生成openflow流表。

openflow流表由多个流表项构成,是交换机进行数据转发控制的关键数据结构,交换机通过查找流表的表项决定对接收到的数据流采取适合的动作,每个流表项包括包头域、计数器、行为三个域。包头域包括输入接口、mac源地址、mac目的地址,以太网类型、虚拟优先级、IP源地址、IP目标地址、IP协议、TCP/UDP目的端口以及源端口。计数器用来统计流量的某些信息,例如发送包数;行为是交换机接收到报文后的处理方法,例如丢弃、转发端口等。

openflow流表一般通过负载均衡器将其下发至所属的服务器中,openflow流表的类型可为select。

S104:当检测到所述虚拟机下线时,将所述openflow流表删除。

当检测到虚拟机离开当前的服务器时,即虚拟机下线,具体检测过程与检测虚拟机开启相同,此处不再赘述。

虚拟机下线后,将对应的流表进行删除,做到负载均衡随着虚拟机的迁移而迁移。

在本申请提供的技术方案中,充分利用了openflow控制与转发分离的特点。由于openflow流表反映了虚拟机的业务流量特征,当虚拟机发生迁移时,相应的openflow流表进行增加或删除,准确的反映了虚拟机发送的流量特征,根据这些流量特征进行HASH计算,将不同的流量映射到不同的节点进行处理,实现了虚拟网络的负载均衡。不仅降低了路由配置的复杂度,简单、高效的指导报文的转发,提高了数据转发的速率,还增加了虚拟化网络的灵活性以及扩展性,有益于提高虚拟网络的整体工作速率以及数据安全性。

为了使本领域技术人员更加清楚本申请技术方案的原理,本申请还提供了一个例子,请参阅图2,具体的可为:

当虚拟机1和虚拟机2启动时,控制面感知虚拟机启动事件,查找虚拟机对应的端口号,根据绑定的南北向流量负载均衡器,下发openflow流表到虚拟交换机1设备中,虚拟机的1的南北向流量可能会被映射到边界网关1,虚拟机2的南北向流量会被映射到边界网关2,以达到负载均衡效果。

当虚拟机1进行迁移的时候,如果虚拟机1迁移到虚拟机交换机2所在的物理节点,控制面首先相应虚拟机1下线事件,将原来虚拟机交换机1相关的负载均衡策略删除;然后响应虚拟机1重新上线的事件,重新在虚拟交换机2上下发openflow流表,从而达到负载均衡策略不用重新配置,而跟随虚拟机迁移。

由上述具体实例可以看出,本申请提供的技术方案不仅弥补了传统网络实现复杂的不足,而采用openflow流表指导报文转发的方法,使得控制与转发分离,大大简化了配置繁琐性和报文转发调试的复杂度,有效提高了虚拟机网络设计与验证的效率,不论在新兴的虚拟机化网络设计,还是在传统物理网络逻辑设计,均具有很高的技术价值。

本发明实施例还针对实现虚拟网络负载均衡的方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的实现虚拟网络负载均衡的装置进行介绍,下文描述的实现虚拟网络负载均衡的装置与上文描述的实现虚拟网络负载均衡的方法可相互对应参照。

请参见图3,图3为本发明实施例提供的实现虚拟网络负载均衡装置在一种具体实施方式下的结构图,该装置可包括:

创建模块301,用于根据用户为虚拟网络配置负载均衡器的指令,创建负载均衡器。

流表生成模块302,用于当检测到虚拟机的开启时,根据所述虚拟机的标识信息匹配对应的负载均衡器;获取当前虚拟网络的部署信息,根据所述部署信息通过所述负载均衡器生成openflow流表,并通过虚拟机交换机发送至所述虚拟机对应的服务器。

流表删除模块303,用于当检测到所述虚拟机下线时,将所述openflow流表删除。

可选的,在本实施例的一些实施方式中,所述流表生成模块302例如可为检测所述虚拟网络中各个虚拟交换机的端口状态;当检测到所述端口状态为连接时,根据所述端口确定相连的虚拟机;根据所述虚拟机的标识信息匹配对应的负载均衡器的模块。

在另外一些实施方式中,所述流表生成模块302还可为根据所述部署信息获取网关数量;根据网关数量通过所述负载均衡器生成openflow流表的模块。

此外,所述流表生成模块302还可为所述负载均衡器的ID与所述虚拟机的ID相同的模块。

本发明实施例所述实现虚拟网络负载均衡装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例充分利用openflow控制与转发分离的特点。由于openflow流表反映了虚拟机的业务流量特征,当虚拟机发生迁移时,相应的openflow流表进行增加或删除,准确的反映了虚拟机发送的流量特征,根据这些流量特征进行HASH计算,将不同的流量映射到不同的节点进行处理,实现了虚拟网络的负载均衡。不仅降低了路由配置的复杂度,简单、高效的指导报文的转发,提高了数据转发的速率,还增加了虚拟化网络的灵活性以及扩展性,有益于提高虚拟网络的整体工作速率以及数据安全性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种实现虚拟网络负载均衡方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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