一种基于虚拟网络的应用感知的动态SDN配置方法与流程

文档序号:11156417
一种基于虚拟网络的应用感知的动态SDN配置方法与制造工艺

本发明涉及计算机软件技术领域,特别涉及一种基于虚拟网络的应用感知的动态SDN配置方法。



背景技术:

软件定义网络(Software Defined Network,SDN),是一种新型网络架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow是通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。

传统IT架构中的网络,根据业务需求部署上线以后,如果业务需求发生变动,重新修改相应网络设备(路由器、交换机、防火墙)上的配置是一件非常繁琐的事情。在互联网/移动互联网瞬息万变的业务环境下,灵活性和敏捷性已经成了IT业务的重要需求。软件定义网络所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。

为了实现软件定义网络,软件定义交换机必不可少。Open vSwitch(OVS)是OpenStack开发的网络虚拟交换机,是一个高质量的,多层虚拟交换机(网络分层的层),是实现软件定义网络的重要技术手段。跟传统的物理交换机相比,Open vSwitch虚拟交换机具备很多优点:

1.配置灵活,因为是软件实现的,一台物理服务器上可以配置数十台或者数百台虚拟交换机,而且端口数目可以灵活选择。

2.成本低廉,通过软件的方式可轻易达到10Gbps的交换速度。

利用Open vSwitch对机房进行软件定义网络改造后,无需对网络中每个节点进行反复配置,网络中的设备天然是自动连通的。用户只需在使用时定义具体的网络规则即可。

然而不同类型的应用具有不同的行为模式,如何定义合适的网络规则对系统管理员提出了新的挑战。



技术实现要素:

针对现有云环境中,不同类型应用的网络资源分配问题,本发明提供了一种基于虚拟网络的应用感知的动态SDN配置方法,其核心思想为:利用OVS在物理服务器上架设虚拟网络。通过libvirt监测工具获取应用的网络流量特征,根据网络访问的频率和数据吞吐量等信息,将应用划分为不同类型,并针对不同类型,制定相应的网络资源分配策略。

本发明采取的具体技术方案是:

一种基于虚拟网络的应用感知的动态SDN配置方法,包括以下步骤:

1)在数据中心的物理集群中构建虚拟网络;

2)监测并记录虚拟网络中不同虚拟机的网络流量;

3)根据步骤2)中记录的不同虚拟机的网络流量,将虚拟网络中的应用划分为不同的类型,并为每种类型的应用设定网络资源分配策略;

4)根据步骤3)设定的网络资源分配策略,设置并调整每个虚拟机的网络资源配置。

进一步地,步骤1)包括在物理集群的各个服务器上安装libvirt和OVS,搭建软件定义虚拟网络,并使libvirt创建的虚拟机默认使用基于OVS构建的软件定义虚拟网络。

进一步地,所述软件定义虚拟网络为跨物理机组虚拟网络;通过修改libvirt创建的虚拟机配置文件使其默认使用基于OVS构建的软件定义虚拟网络。

进一步地,步骤2)中通过libvirt的应用程序编程接口(API)监测并记录虚拟网络构架中不同虚拟机的网络流量。

进一步地,通过libvirt的应用程序编程接口获取给定虚拟机的资源参数;在对虚拟机进行操作之前,首先与虚拟机hypervisor连接,通过定时调用应用程序编程接口,获取当前虚拟机收发字节数,根据收发字节数,计算单位时间内当前虚拟机收发的字节数,即当前虚拟机网络读写速率,并存入数据库中。

进一步地,步骤3)中应用类型包括但不限于:高频应用及大数据应用;所述高频应用具有特征为:单位时间网络访问频繁,消耗网络流量较少;所述大数据应用具有特征为:单位时间网络访问次数较少,消耗网络流量较大。

进一步地,步骤3)中设定网络资源分配策略包括提高高频应用的网络响应优先级,同时通过配置OVS构建的软件定义虚拟网络对高频应用及大数据应用的读写速率进行限制。

进一步地,步骤3)还包括:实时监控虚拟机网络访问情况,当高频应用的访问增加,超过当前分配网络带宽,动态提升其优先级;当高频应用的访问减少至当前分配带宽的指定阈值时,动态降低其优先级,当某一大数据应用的网络读写速率提升时,动态调整其带宽限制,适当降低其他大数据应用和高频应用带宽分配,提高大数据应用的带宽分配;当某一大数据应用的数据传输结束时,降低其带宽分配,将空闲出的带宽重新分配给其他大数据应用和高频应用。

进一步地,步骤4)中通过OVS设置并调整每个虚拟机的网络资源配置。

进一步地,所述通过OVS设置并调整每个虚拟机的网络资源配置包括通过OVS的应用程序编程接口,对每个虚拟机对应的端口进行流表配置,对每个端口的网络数据流设置规则。

通过采取上述技术方案,为每个应用分配网络资源优先级和限制等,保证大数据应用的吞吐量和高频访问应用的服务质量(QoS)。最后利用OVS开放编程接口实现网络资源动态调整配置,以提高应用运行效率和网络资源利用率。

附图说明

图1是本发明一实施例中基于虚拟网络的应用感知的动态SDN配置方法的流程示意图。

图2是本发明一实施例中表示基于OVS的软件定义虚拟网络架构示意图。

具体实施方式

工作原理介绍,

应用感知技术是通过一些测量工具或方式,获取应用的特征值,并根据这些特征值,将应用进行分类。系统根据这些特征,来优化应用的行为或应用运行、控制的其他子系统的性能。结合软件定义网络技术,应用感知系统可根据应用的有关信息,如应用状态和资源请求等,来动态分配调整应用的网络资源,以提高应用运行效率和网络资源利用率。具体地,本是利用libvirt和OVS构建软件定义虚拟网络环境,并进行网络监测和动态调整配置网络资源。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。

在一实施例中,提供一种基于虚拟网络的应用感知的动态SDN配置方法,如图1所示,包括以下步骤:

1)在数据中心的物理集群中构建虚拟网络;

2)监测并记录虚拟网络中不同虚拟机的网络流量;

3)根据步骤2)中记录的不同虚拟机的网络流量,将虚拟网络中的应用划分为不同的类型,并为每种类型的应用设定网络资源分配策略;

4)根据步骤3)设定的网络资源分配策略,设置并调整每个虚拟机的网络资源配置。

上述步骤的具体技术方案如下:

构建虚拟网络构架。首先在物理服务器中下载并安装libvirt和OVS。利用OVS创建虚拟交换机,并绑定到一个物理网卡上,利用隧道技术跨物理机组建虚拟网络,基于OVS的软件定义虚拟网络架构如图2所示。修改libvirt虚拟机配置文件,使创建的虚拟机网卡默认绑定到基于OVS的软件定义虚拟网络中。

网络流量监控。libvirt提供了一套API,可以获取给定虚拟机的资源参数。在对虚拟机进行操作之前,首先需要得到与虚拟机hypervisor的连接。通过定时调用libvirt提供的API,可以获取当前虚拟机收发字节数。根据获取的数据,可以计算单位时间内当前虚拟机收发的字节数,即当前虚拟机网络读写速率,并存入数据库中。算法伪代码如下:

算法的输入是所有虚拟机的标识符Id,以及两次监控的时间间隔T。首先,算法调用libvirt提供的API,获取所有虚拟机当前的网络读写字节数Rid和Sid,并记录下来。之后,算法等待给定的时间T。等待时间结束后,算法再次调用libvirt的API,对每个虚拟机,再次记录此时的网络读写字节数Rid’和Sid’,将对应id的两次监控数据相减,即得到在T时间内,该虚拟机的网络读写字节数,即网络读写速率。所述高频应用具有特征为:单位时间网络访问频繁,;所述大数据应用具有特征为:单位时间网络访问次数较少,消耗网络流量较大。

应用类型划分及制定策略。根据上一步得到的结果,可以分析得到,部分应用网络访问频繁,但每次读写字节数都较少,即消耗网络流量较少,属于高频应用,如架设在虚拟机中的Apache服务等Web Service应用。另外的应用网络访问较少,但每次读写的数据很大,即消耗网络流量较大,属于大数据交互型应用(大数据应用),如Hadoop、Spark等大数据应用。具体而言,类似HTTP服务等是典型的高频应用,访问并发度很多,但每次访问传输的包相对较小;而Hadoop分布式计算平台等,则是典型的大数据应用,每次网络访问都会传输很多流量,要求很高的吞吐量,对时延不敏感。可以确定的是,在了解本申请公布的技术内容的基础上,本领域技术人员对于前述“访问频繁”、“读写字节数都较少”、“访问较少”及“读写的数据很大”所限定的程度和范围应有清楚地认识,因此本实施例仅通过举例说明,不再划定具体的范围或设定固定的阀值进行详细说明,本领域技术人员在领会本申请的精神的前提下,是可以实现前后文所描述的技术方案并可解决相应技术问题的。

当网络总带宽一定时,会存在大数据应用因传输数据,造成高频应用延迟响应,此类应用的QoS无法保证。本发明选择的应对策略为,提高高频应用的网络响应优先级,优先于大数据应用进行响应,同时通过配置OVS构建的软件定义虚拟网络对两类应用的读写速率进行限制,在能够充分利用网络总带宽的基础上,既保证高频应用的及时响应,满足QoS需求,又保证大数据应用传输数据的速率不会受到太大影响。

本发明根据步骤2中的算法,实时监控虚拟机网络访问情况。当高频应用的访问增加,超过一定阈值时,动态提升其优先级,以保证此应用的及时响应。当高频应用的访问减少至阈值时,动态降低其优先级,以免浪费网络资源。具体阈值可由系统管理员根据经验调整,默认为80%。当大数据应用的网络读写速率提升时,动态调整应用的带宽限制,适当降低其他应用带宽分配,提高大数据应用的带宽分配,以提高效率。同样,当大数据应用的数据传输结束时,降低此应用的带宽分配,将空闲出的带宽重新分配给其他应用,以保证网络资源不被浪费。算法伪代码如下:

算法的输入是虚拟机的标识符Id,虚拟机的类型Type,时间间隔T,总带宽TBW。首先,调用步骤2中的算法,获取当前虚拟机读写速率,在时间间隔T过后,再次计算虚拟机读写速率,并进行对比。若速率提升,则根据虚拟机类型进行处理。若为高频应用(Web Service)类型,则提升此应用的优先级,否则为大数据应用类型,根据总带宽TBW,在带宽总和不超过TBW的条件下,增加该应用的带宽分配,减少其他应用的带宽分配。当读写速率降低时,与之前描述的处理方式相同,操作与伪代码中的对应操作相反即可。

4.动态调整网络配置。根据步骤3中的算法,在对应条件下,需要提升或降低应用的优先级和带宽分配。本发明通过使用OVS来实现这一功能,OVS提供API,可以对每个虚拟机对应的端口进行流表配置,对每个端口的网络数据流设置规则,如优先级,最大数据长度等。本发明调用此类API,实现对虚拟机网络资源的动态调整,从而达到动态快速配置相应的网络资源,实现高效的网络资源配置的目的。

下面给予一具体的应用实例。该实例模拟了企业私有云内部的实际需求。

首先本例基于3台物理服务器搭建了基于OVS的软件定义虚拟网络环境,用来模拟企业私有云环境。然后选择2种典型应用,分别是提供Email服务的Web Service应用(即高频应用)和提供数据分析服务的Spark大数据应用(即大数据应用)。通过将这2个应用程序部署到上述环境中,在没有应用感知动态调整网络方案的情况下,大数据应用时长会占用过多的网络资源,导致Email的服务质量变差,集中表现在发送邮件超时,无法收到新邮件。而通过前述实施例描述的网络资源动态调整配置方法,在大数据应用运行期间,自动地预留足够的网络资源给Email服务,从而保证了企业Web Service应用的服务质量。另一方面,当高频应用访问发生变化时,若没有应用感知动态调整网络,则无法保证当前访问频率最高的应用的服务质量,集中表现在收发邮件缓慢,而通过签署实施例描述的网络资源动态调整配制方法,在高频应用访问变化时,自动调整高频应用网络优先级,根据具体访问频率,分配网络资源,从而保证企业Web Service应用的服务质量。

最后需要注意的是,公布实施方式的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

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