一种可编程虚拟网络服务系统的制作方法

文档序号:7801794阅读:219来源:国知局
一种可编程虚拟网络服务系统的制作方法
【专利摘要】本发明实施方式提出一种可编程虚拟网络服务系统。PVN服务器,布置于中心管理节点上,用于接收用户的PVN请求,并基于所述用户的PVN请求以及由各个资源节点的本地资源视图所汇总的全局资源视图生成PVN配置信息,并将所述PVN配置信息发送给多个PVN代理;多个PVN代理,分别布置于相应的资源节点上,用于接收所述PVN配置信息,根据所述PVN配置信息创建PVN网络,并将相应资源节点的本地资源视图上报给PVN服务器。
【专利说明】一种可编程虚拟网络服务系统【技术领域】
[0001]本发明属于网络虚拟化【技术领域】,特别是一种可编程虚拟网络服务系统。
【背景技术】
[0002]网络虚拟化既是云计算发展的基础,也是解决当前网络“僵化”问题的可能途径。在信息通信领域中,网络是指由一组节点和链路组成的处理和传递信息的基础设施。虚拟化则是一种综合技术,它在系统中加入了一个虚拟化层,将下层的资源抽象成另一种形式的资源,隐藏物理资源的属性和操作差异,从而以一种通用的、不受设备原始属性限制的方式来处理或使用资源。在以IT为中心或广义的观点来看,网络中节点是一种资源,因此广义的网络虚拟化包含计算、存储、网络、链路等资源的虚拟化;而以网络为中心或狭义的观点来看,节点主要完成分组的路由和交换,因此狭义的网络虚拟化仅指负责路由和交换的网络设备及网络链路的虚拟化。
[0003]虚拟网络(VN, Virtual Network)与物理网络的概念相对应,是指一组虚拟节点和链路集合,它是底层物理网络资源的一个子集。而支持多个虚拟网络在相同物理网络上共存的网络环境,则称之为网络虚拟化环境(NVE, Network Virtualization Environment)。在NVE中,多个逻辑网络或虚拟网络可共享同一个底层物理网络,不同的虚拟网络可以采用不同的架构、协议,部署不同的应用和服务,从而在提高网络资源利用率的同时,为网络创新提供灵活的、可编程的网络环境。
[0004]实现网络实体的一对多虚拟化并不是新技术,常见的有VLAN(Virtual Local AreaNetwork)和 VPN (Virtual Private Network)。
[0005]VLAN把一个物理上的LAN划分成多个逻辑上的LAN,每个VLAN是一个广播域。VLAN内的主机间通信就和在一个LAN内一样,而不同VLAN内的主机不能直接通信。VLAN的限制主要有三个方面,一是VLAN名字空间本身。802.1q的VLAN ID字段为12bit,使得单个二层交换域的VLAN数量限制在4096个以内(某些VLAN ID作为“well-known”被保留,进一步减少了可用数量)。云服务提供商需要在相同的底层物理基础设施上支持不同的租户,每一个租户都需要在其虚拟的资源分片中创建多个L2/L3网络,因而需要大量的L2层网络。对于大规模的云服务提供商而言,VLAN数量是一个巨大的限制。第二个限制来自于部署VLAN的操作模式。尽管现有的VTP(VLAN Trunking Protocol)可以创建、分发和删除VLAN,或通过修剪VLAN来达到优化,但大多数网络都禁用该功能。这意味着为了在交换机传输VLAN信息,需要手动协调网络管理、云管理和租户管理之间的配置,也就是说,为了增加新的VLAN网络,需要改变传输基础设施的配置,因而增加了系统的管理难度。第三,对于化数据中心来说,现有的VLAN在物理限制(如距离和部署)上过于严格,难以在多个数据中心实现跨越三层的灵活部署。
[0006] VRF (Virtual Routing Forwarding)是3层网络虚拟化的一种,其中的物理路由器支持多个虚拟路由器实例,每个实例都运行自己的路由协议实例,维护自己的转发表。和VLAN不同,VRF不会在报头中使用标签为每个分组指定具体的VRF。在每一跳都会根据输入接口和帧的信息获得适当的VRF。另外一个要求是,在数据包经过的端到端路径中的每一个中转路由器都需要配置一个VRF实例,以便能够转发该数据包。
[0007]由于VLAN或VRF模式存在缺陷,于是开始涌现出众多创建虚拟网络的新技术。其中大多数都是采用封装和隧道技术,在同一个物理网络上通过覆盖来构建多个虚拟网络拓扑。如虚拟可扩展LAN(VXLAN)是在一个3层网络上借助MAC-1n-UDP封装,叠加一个2层网络来实现网络虚拟。VXLAN网段是一个3层构建,可替代VLAN为数据中心的VM生成LAN网段。
[0008]与传统的虚拟网络相比,可编程虚拟网络(Programmable Virtual Netowrk, PVN)更加强调网络的可编程性。根据可编程的粒度划分,可编程性由粗到细可分为模块级、数据流级、数据包级和比特级可编程。其中模块级可编程是指用户可根据自己的需求将系统提供的功能模块组合以实现不同的功能,如软件可编程路由模块click,其每个元素都实现了简单的路由器功能,如分类、排队、调度、转发等,用户可以对这些元素重新组织以定制功能。数据流级可编程指用户可以元组的形式自定义数据流,并决定数据流的处理方式,如OpenFlow协议1.0就支持基于十元组流表的控制。数据包级可编程是在数据流编程的基础上增加了对数据包格式的定制,如OpenFlow协议1.3中就允许用户以OXM格式定义新的分组头部。比特级可编程则可以针对链路中的每一比特实施控制,由于这种控制需要在物理层和链路层上实现,需要特殊的硬件支持,目前还未见公开的实现。

【发明内容】

[0009]本发明实施方式提出一种可编程虚拟网络服务系统,以实现对虚拟网络的管理和控制。
[0010]本发明实施方式的技术方案如下:
[0011]一种可编程虚拟网络服务系统,包括:可编程虚拟网络PVN服务器和多个PVN代理:其中:
[0012]所述PVN服务器,布置于中心管理节点上,用于接收用户的PVN请求,并基于所述用户的PVN请求以及由各个资源节点的本地资源视图所汇总的全局资源视图生成PVN配置信息,并将所述PVN配置信息发送给所述多个PVN代理;
[0013]所述多个PVN代理,分别布置于相应的资源节点上,用于接收所述PVN配置信息,根据所述PVN配置信息创建PVN网络,并将相应资源节点的本地资源视图上报给PVN服务器;
[0014]所述PVN服务器包括用户接口、PVN解析器、PVN映射器、网络数据库和PVN控制器;网络数据库,用于保存所述全局资源视图;用户接口,用于接收所述用户的PVN请求;PVN解析器,用于解析所述PVN请求以获取待占用的虚拟网络资源;PVN映射器用于根据所述全局资源视图将所述待占用的虚拟网络资源映射到实际占用物理资源,并将映射结果发送给PVN控制器;PVN控制器基于所述映射结果生成所述配置信息。
[0015]所述PVN控制器包括全局资源监控模块;所述PVN代理包括本地资源监控模块;
[0016]所述本地资源监控模块,用于实时监控相应的资源节点的本地资源视图,并上报到所述全局资源监控模块;
[0017]所述全局资源监控模块,用于基于所述本地资源视图汇总出全局资源视图,并将所述全局资源视图存储到相应的网络数据库。
[0018]所述PVN控制器还包括中心OpenFlow控制器;所述PVN代理还包括本地OpenFlow交换机;
[0019]所述中心OpenFlow控制器,用于基于控制命令向本地OpenFlow交换机下发OpenFlow 流表;
[0020]本地OpenFlow交换机,用于根据所述流表执行对应于该本地OpenFlow交换机的资源节点的流量转发。
[0021 ] 所述控制命令包括下列中的至少一个:
[0022]多个PVN网络之间的流量隔离控制命令;
[0023]PVN网络在PVN代理之间的迁徙命令;
[0024]PVN网络的拓扑发现命令。
[0025]从上述技术方案可以看出,在本发明实施方式中,PVN服务器,布置于中心管理节点上,用于接收用户的PVN请求,并基于所述用户的PVN请求以及由各个资源节点的本地资源视图所汇总的全局资源视图生成PVN配置信息,并将所述PVN配置信息发送给所述多个PVN代理;所述多个PVN代理,分别布置于相应的资源节点上,用于接收所述PVN配置信息,根据所述PVN配置信息创建PVN网络,并将相应资源节点的本地资源视图上报给PVN服务器;PVN服务器包括用户接口、PVN解析器、PVN映射器、网络数据库和PVN控制器;网络数据库,用于保存所述全局资源视图;用户接口,用于接收所述用户的PVN请求;PVN解析器,用于解析所述PVN请求以获取待占用的虚拟网络资源;PVN映射器用于根据所述全局资源视图将所述待占用的虚拟网络资源映射到实际占用物理资源,并将映射结果发送给PVN控制器;PVN控制器基于所述映射结果生成所述配置信息。现有的云服务系统主要为用户提供稳定的网络的服务,如路由服务、防火墙服务、负载均衡服务,并没有为用户提供自定义网络的方法和接口。本专利中可以将虚拟OpenFlow交换机和控制器完全交由用户控制,用户可通过对OpenFlow控制器的编程实现对虚拟网络的管理和控制,从而扩展了现有的云服务。由此可见,本发明为用户提供了完全可编程的虚拟网络抽象。
[0026]另外,本发明的中心OpenFlow控制器基于控制命令向本地OpenFlow交换机下发OpenFlow流表;本地OpenFlow交换机根据流表执行对应于该本地OpenFlow交换机的资源节点的流量转发,因此本发明采用了基于软件定义网络(SDN)的虚拟网络管理机制。SDN具有在逻辑上的集中式控制和对上层应用的感知能力,因此可以将网络控制器与SDN结合起来,充分利用SDN在控制面与数据面分离的架构优势,实现高层服务与底层资源的解耦,从而本发明改进了云服务系统中对虚拟网络的管理机制。
[0027]与现有的云网络架构相比,采用本发明的基于SDN的IaaS云网络可以动态感知底层网络设备的状态变化,并将变化实时反馈给上层的应用,由于上层应用拥有全局的网络视图,因此可以根据预定的策略或用户需求动态地配置和调度底层的网络资源,从而满足云网络服务动态性的要求。
【专利附图】

【附图说明】
[0028]图1为根据本发明可编程虚拟网络服务系统的结构图。
[0029]图2为本发明的可编程虚拟网络抽象模型示意图。[0030]图3为本发明的PVN实例逻辑部署架构示意图;
[0031]图4为本发明的PVN服务器内部组件示意图;
[0032]图5为本发明的PVN主要API示意图;
[0033]图6为本发明的PVN代理内部组件示意图;
[0034]图7为本发明的PVN系统运彳丁不意图;
[0035]图8为本发明的创建虚拟接口的流程示意图;
[0036]图9为本发明的PVN控制器的结构图。
[0037]图10为本发明的网络数据库存储示意图。
【具体实施方式】
[0038]为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
[0039]图1为根据本发明可编程虚拟网络服务系统的结构图。
[0040]如图1所示,可编程虚拟网络服务系统包括可编程虚拟网络(PVN)服务器和多个PVN代理;其中:
[0041]PVN服务器,布置于中心管理节点上,用于接收用户的PVN请求,并基于所述用户的PVN请求以及由各个资源节点的本地资源视图所汇总的全局资源视图生成PVN配置信息,并将所述PVN配置信息发送给所述多个PVN代理;
[0042]多个PVN代理,分别布置于相应的资源节点上,用于接收所述PVN配置信息,根据所述PVN配置信息创建PVN网络,并将相应资源节点的本地资源视图上报给PVN服务器;
[0043]PVN服务器包括用户接口、PVN解析器、PVN映射器、网络数据库和PVN控制器;网络数据库,用于保存所述全局资源视图;用户接口,用于接收所述用户的PVN请求;PVN解析器,用于解析所述PVN请求以获取待占用的虚拟网络资源;PVN映射器用于根据所述全局资源视图将所述待占用的虚拟网络资源映射到实际占用物理资源,并将映射结果发送给PVN控制器;PVN控制器基于所述映射结果生成所述配置信息。
[0044]在一个实施方式中,PVN控制器包括全局资源监控模块;所述PVN代理包括本地资源监控模块;
[0045]所述本地资源监控模块,用于实时监控相应的资源节点的本地资源视图,并上报到所述全局资源监控模块;
[0046]所述全局资源监控模块,用于基于所述本地资源视图汇总出全局资源视图,并将所述全局资源视图存储到网络数据库。
[0047]在一个实施方式中,所述PVN控制器还包括中心OpenFlow控制器;所述PVN代理还包括本地OpenFlow交换机;
[0048]所述中心OpenFlow控制器,用于基于控制命令向本地OpenFlow交换机下发OpenFlow 流表;
[0049]本地OpenFlow交换机,用于根据所述流表执行对应于该本地OpenFlow交换机的资源节点的流量转发。
[0050]在一个实施方式中,所述控制命令包括下列中的至少一个:
[0051]多个PVN网络之间的流量隔离控制命令;[0052]PVN网络在PVN代理之间的迁徙命令;
[0053]PVN网络的拓扑发现命令,等等。
[0054]本发明提供了一种可编程虚拟网络服务系统以及构建可编程虚拟网络服务系统的方法。利用本发明可以在一个基础设施云平台中为用户创建一个可编程的虚拟网络分片,即一个包含了虚拟OpenFlow交换机、虚拟链路、虚拟控制器、虚拟路由器、虚拟二层交换机和虚拟机的资源容器。
[0055]本发明中,首先定义了可编程虚拟网络的逻辑抽象,然后提出了可编程虚拟网络服务系统的系统结构和功能,而且详细披露了可编程虚拟网络服务系统的运行流程。其中:
[0056]一、可编程虚拟网络的逻辑抽象:
[0057]本发明中可编程虚拟网络是包含了一组可编程节点以及连接它们的链路的逻辑资源切片或容器。具体而言,包含三种资源类型,即节点资源、链路资源和逻辑资源。具体地,节点资源包括虚拟服务器、虚拟二层网络交换机、虚拟路由器、虚拟OpenFlow交换机、虚拟OpenFlow控制器,等等。链路资源包括节点内链路和跨节点链路。逻辑资源包括虚拟接口、虚拟端口、虚拟子网、浮动IP,等等。
[0058]资源之间的关系通过资源的属性来体现,如虚拟服务器资源有虚拟接口属性,而虚拟接口资源又有IP地址属性,一条虚拟链路拥有一对虚拟接口或虚拟端口,一台虚拟OpenFlow交换机会指定一台虚拟OpenFlow控制器等。
[0059]如图2所示,本发明的可编程虚拟网络PVN抽象包括以下元素:
[0060]虚拟服务器:即一个虚拟机(VM, Virtual Machine)实例,用户可在其上安装和配置自定义的操作系统和软件。
[0061]虚拟二层网络交换机:即一个拥有二层交换能力的虚拟交换机(vL2S,VirtualL2Switch),用户可以配置其端口。
[0062]虚拟路由器:即一个拥有三层交换能力的虚拟路由器(vRouter, VirtualRouter),用户可以配置其路由表。
[0063]虚拟OpenFlow交换机:即一个支持OpenFlow协议的虚拟交换机(vOFS, VirtualOpenFlow Switch),用户可以设置其OpenFlow控制器、配置其流表。
[0064]虚拟OpenFlow控制器:即一个安装了 OpenFlow控制器的虚拟服务器(vOFC, Virtual OpenFlow Controller),用户可以安装自定义的控制软件。
[0065]虚拟接口:即虚拟服务器上的一个虚拟网络接口卡(vNIC, Virtual NetworkInterface Card)。
[0066]虚拟端口:即虚拟交换设备上的一个虚拟网络端口(vPort, Virtual Port)。
[0067]虚拟子网:即一段逻辑地址空间(vSubnet, Virtual Subnet),它既可以是IPv4地址,也可以是IPv6地址,甚至是一段非IP地址段。
[0068]浮动IP:即一组用于公网访问的全局IPv4地址(FIP,Floating IP),浮动IP用于用户从外部访问虚拟网络中的虚拟服务器。
[0069]虚拟链路:即连接虚拟接口与虚拟端口或虚拟端口之间的一条逻辑链路(vLink, Virtual Link),用户可配置虚拟链路的带宽、延迟、抖动等属性。虚拟链路可分为两种,一种是节点内链路,即链路所连接的虚拟节点位于同一个物理机中;另一种是跨节点链路,即链路所连接的虚拟资源位于不同的物理机中。
[0070]资源之间的关系通过资源的属性来体现,如虚拟服务器资源有虚拟接口属性,而虚拟接口资源又有IP地址属性,一条虚拟链路拥有一对虚拟接口或虚拟端口,一台虚拟OpenFlow交换机会指定一台虚拟OpenFlow控制器等。
[0071]图3为本发明的PVN实例逻辑部署架构示意图。
[0072]如图3所示,一个PVN实例可由抽象模型中的元素以及元素的属性来描述。该PVN中包含两台虚拟OpenFlow交换机(vOFS Al, A2)、一台虚拟OpenFlow控制器(vOFC A)、两台虚拟二层交换机(vL2S Al, A2)、一台虚拟路由器(vRouter Al)和五台虚拟机(VM Al?A5)。
[0073]如图3所示,每个虚拟机有一个虚拟接口,两个vOFS各有三个虚拟端口,且同时连接到控制器vOFC A上,两个vL2S各有两个虚拟端口,vRouter Al有三个虚拟端口。该PVN中共有9条虚拟链路,分别连接9对虚拟接口和端口。此外,用户还可以为此可编程虚拟网络配置子网地址,给VM加载预定制的操作系统,在vOFS上添加流表,在vL2S和vRouter上设定路由,以及设置链路的带宽、延迟、丢包率等参数。
[0074]二、可编程虚拟网络服务系统的结构和功能:
[0075]本发明的PVN服务系统包括两种节点,一种是管理节点,用于管理整个系统中的资源,另一种是资源节点,用于提供可编程的虚拟网络资源。
[0076]本发明的PVN服务系统由一个PVN服务器和一组PVN代理组成。其中,PVN服务器主要是根据用户的PVN请求来分配资源和配置网络,以创建隔离的PVN。PVN代理则接收PVN服务器的命令或请求,以创建虚拟资源、配置本地网络、返回状态信息。
[0077]如图1所示,PVN服务系统由一个中心管理节点和一组资源节点组成。中心管理节点是通过PVN服务器来管理整个系统中的资源和服务。PVN服务器拥有底层基础设施的完整视图,响应用户的请求并负责建立和管理PVN。资源节点是PVN元素的物理承载者,它通过PVN代理来执行和响应PVN服务器发送的命令和请求,以创建PVN元素或返回物理资源的状态。
[0078]需要说明的是,图2所示的PVN服务系统是一种逻辑结构,在实际部署时,应综合考虑使用的场景、拥有的资源等因素,采用灵活的方式来部署。如最简单的All-1n-one方式就是将PVN器和PVN代理部署到同一个物理节点上。而在考虑到系统的性能、可扩展性和高可用性等因素时,中心管理节点可能会部署在多个物理节点上且需要实现逻辑统一、负载均衡、备份恢复等高级特性。
[0079]PVN服务器包括用户接口、PVN解析器、PVN映射器、网络数据库和PVN控制器;网络数据库,用于保存所述全局资源视图;用户接口,用于接收所述用户的PVN请求;PVN解析器,用于解析所述PVN请求以获取待占用的虚拟网络资源;PVN映射器用于根据所述全局资源视图将所述待占用的虚拟网络资源映射到实际占用物理资源,并将映射结果发送给PVN控制器;PVN控制器基于所述映射结果生成配置信息。
[0080]示范性地,PVN服务器的内部组件及其作用关系如图4所示。
[0081 ] 如图4所示,PVN服务器包括Open API接口、网络数据库、PVN解析器、PVN映射器、PVN控制器和中心OpenFlow控制器组成。其中:
[0082]Open API接口,用于接收用户的PVN请求。网络数据库用于保存全局资源视图,具体包括存放物理网络的拓扑和状态信息、可用资源信息、解析后的PVN元素信息、以及虚拟网络和物理网络的映射信息,等等。
[0083]PVN解析器负责从用户的PVN请求中解析出PVN元素(如vOFS、vOFC、VM等)并存入网络数据库。
[0084]PVN服务器还可以包括拓扑监控器。拓扑监控器用于监控物理网络和收集动态的可用资源信息(如CPU、内存、硬盘空间和链路带宽等)。
[0085]PVN服务器还可以包括资源管理器。资源管理器负责收集静态的网络信息(如整个数据中心的网络拓扑和节点配置信息),并在节点资源缺乏或节点资源利用率低时调度物理节点,例如启动新节点或将虚拟资源从节点A迁移到节点B并将关闭节点A或将其置于低功耗模式。
[0086]PVN映射器负责将用户请求的PVN元素映射到物理网络中,并调用PVN控制器通过PVN插件完成PVN的实例化。PVN插件在创建或管理PVN元素时会与中心OpenFlow控制器交互,以实现拓扑发现、流量隔离、拓扑迁移等功能。
[0087]图5展示了 PVN元素管理的主要Open API接口,包括创建、列出、更新、删除、显示细节、绑定、关联等操作。
[0088]以创建操作为例,Open API接口包含创建虚拟机、创建虚拟OpenFlow交换机、创建虚拟二层交换机、创建虚拟路由器、创建虚拟端口、创建子网、绑定端口、关联子网等操作。
[0089]图6为本发明的PVN代理内部组件示意图。
[0090]如图6所示,PVN代理包括虚拟机管理器、虚拟网络管理器、虚拟链路管理器、本地OpenFlow交换机和本地资源监控器。其中:
[0091]虚拟机管理器负责虚拟机的创建、启动、关闭、挂起、重启等操作。
[0092]虚拟网络管理器负责虚拟网络设备(如vOFS、vL2S、vRouter)的创建、配置、删除等操作。
[0093]链路管理器负责在节点之间创建、配置和删除链路。本地资源监控器则监控本地物理机和虚拟资源的状态情况,并根据PVN服务器的请求或系统配置向PVN服务器发送所收集的监控信息。
[0094]为了实现跨物理机的虚拟链路,所有的虚拟网络设备都通过一个本地OpenFlow交换机连接到物理网卡,所有的本地OpenFlow交换机都由PVN服务器的中心OpenFlow控制器所控制。
[0095]三、PVN服务系统运行流程:
[0096]PVN服务系统运行流程如图7所示,在系统启动时,系统管理员通过资源管理器配置物理网络,将静态的物理网络拓扑信息存入网络数据库中。拓扑监控器会监控和收集动态的可用资源信息并将其存入网络数据库的可用资源信息表中。对于每个PVN请求,请求解析器将从请求块中提取出PVN的虚拟网络元素,并将这些信息存入到数据库的PVN元素表中。PVN映射器将从虚拟网络元素表和可用资源信息表中获取输入,执行预设的虚拟网络映射算法,计算出虚拟-物理元素的映射信息,然后调用PVN控制器通过PVN插件完成PVN的实例化。
[0097]下面以创建虚拟机为例对本发明实施方式进行描述。
[0098]图8为本发明的创建虚拟接口的流程示意图。
[0099]如图8所示,计算控制器首先选择某个计算代理并请求创建VM,计算代理在收到请求后,除了完成资源的初始化、加载镜像等操作,还需向网络控制器请求连接网络的端口。网络控制器查询VM所在的虚拟网络并选择对应的SDN代理来创建端口,SDN负责配置本地网络设备并通知SDN控制节点,SDN控制节点在收到通知后更新全局的端口信息并在网络设备上根据预定的规则添加流表,最后返回配置成功的通知。计算代理在收到返回的端口后,将其与VM的虚拟接口绑定,向计算控制器返回创建的VM。由于与VM关联的网络设备由SDN控制节点来控制,因此系统可通过控制网络设备来对虚拟机的流量进行管理。
[0100]需要说明的是,系统对PVN的管理并不是静态的,而是动态的,一方面用户请求是动态到达的,PVN的生存时间是随机的,PVN本身是弹性可扩展的,另一方面底层物理资源可以动态地加入或离开系统,也可能由于断电或物理故障导致资源不可访问,且物理资源的位置、服务提供能力、负载等也会随着时间的推移而动态变化。例如,当一个PVN释放时,有可能导致某个物理服务器上的负载过低,这时就会触发资源管理器进行资源的迁移,以保证系统的资源利用率。
[0101]由此可见,本发明首先扩展了现有的云服务,为用户提供了完全可编程的虚拟网络抽象。现有的云服务系统主要为用户提供稳定的网络的服务,如路由服务、防火墙服务、负载均衡服务,并没有为用户提供自定义网络的方法和接口。本专利中将虚拟OpenFlow交换机和控制器完全交由用户控制,用户可通过对OpenFlow控制器的编程实现对虚拟网络的管理和控制。
[0102]另外,本发明改进了云服务系统中对虚拟网络的管理机制。本发明的中心OpenFlow控制器基于控制命令向本地OpenFlow交换机下发OpenFlow流表;本地OpenFlow交换机根据流表执行对应于该本地OpenFlow交换机的资源节点的流量转发,因此本发明采用了基于软件定义网络(SDN)的虚拟网络管理机制,SDN具有在逻辑上的集中式控制和对上层应用的感知能力,因此可以将网络控制器与SDN结合起来,充分利用SDN在控制面与数据面分离的架构优势,实现高层服务与底层资源的解耦。
[0103]与现有的云网络架构相比,采用本发明的基于SDN的IaaS云网络可以动态感知底层网络设备的状态变化,并将变化实时反馈给上层的应用,由于上层应用拥有全局的网络视图,因此可以根据预定的策略或用户需求动态地配置和调度底层的网络资源,从而满足云网络服务动态性的要求。
[0104]基于本专利所提供的方法,可以实现一种基于云管理系统的可编程虚拟网络服务系统,并进而实现可编程的网络试验平台,以为研究人员提供实验服务。
[0105]可以通过指令或指令集存储的储存方式将本发明实施方式所提出的创建可编程虚拟网络服务系统的方法存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡等。
[0106]另外,还可以将本发明实施方式所提出的创建可编程虚拟网络服务系统的方法应用到基于闪存(Nand flash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡等。
[0107]综上所述,在本发明实施方式中,PVN服务器,布置于中心管理节点上,用于接收用户的PVN请求,并基于所述用户的PVN请求以及由各个资源节点的本地资源视图所汇总的全局资源视图生成PVN配置信息,并将所述PVN配置信息发送给所述多个PVN代理;所述多个PVN代理,分别布置于相应的资源节点上,用于接收所述PVN配置信息,根据所述PVN配置信息创建PVN网络,并将相应资源节点的本地资源视图上报给PVN服务器;PVN服务器包括用户接口、PVN解析器、PVN映射器、网络数据库和PVN控制器;网络数据库,用于保存所述全局资源视图;用户接口,用于接收所述用户的PVN请求;PVN解析器,用于解析所述PVN请求以获取待占用的虚拟网络资源;PVN映射器用于根据所述全局资源视图将所述待占用的虚拟网络资源映射到实际占用物理资源,并将映射结果发送给PVN控制器;PVN控制器基于所述映射结果生成所述配置信息。
[0108]由此可见,本发明为用户提供了完全可编程的虚拟网络抽象。现有的云服务系统主要为用户提供稳定的网络的服务,如路由服务、防火墙服务、负载均衡服务,并没有为用户提供自定义网络的方法和接口。本专利中可以将虚拟OpenFlow交换机和控制器完全交由用户控制,用户可通过对OpenFlow控制器的编程实现对虚拟网络的管理和控制,从而扩展了现有的云服务。
[0109]另外,本发明的中心OpenFlow控制器基于控制命令向本地OpenFlow交换机下发OpenFlow流表;本地OpenFlow交换机根据流表执行对应于该本地OpenFlow交换机的资源节点的流量转发,因此本发明采用了基于软件定义网络(SDN)的虚拟网络管理机制,SDN具有在逻辑上的集中式控制和对上层应用的感知能力,因此可以将网络控制器与SDN结合起来,充分利用SDN在控制面与数据面分离的架构优势,实现高层服务与底层资源的解耦,从而本发明改进了云服务系统中对虚拟网络的管理机制。
[0110]与现有的云网络架构相比,采用本发明的基于SDN的IaaS云网络可以动态感知底层网络设备的状态变化,并将变化实时反馈给上层的应用,由于上层应用拥有全局的网络视图,因此可以根据预定的策略或用户需求动态地配置和调度底层的网络资源,从而满足云网络服务动态性的要求。
[0111]以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种可编程虚拟网络服务系统,其特征在于,包括:可编程虚拟网络PVN服务器和多个PVN代理;其中: 所述PVN服务器,布置于中心管理节点上,用于接收用户的PVN请求,并基于所述用户的PVN请求以及由各个资源节点的本地资源视图所汇总的全局资源视图生成PVN配置信息,并将所述PVN配置信息发送给所述多个PVN代理; 所述多个PVN代理,分别布置于相应的资源节点上,用于接收所述PVN配置信息,根据所述PVN配置信息创建PVN网络,并将相应资源节点的本地资源视图上报给PVN服务器; 所述PVN服务器包括用户接口、PVN解析器、PVN映射器、网络数据库和PVN控制器;其中网络数据库,用于保存所述全局资源视图;用户接口,用于接收所述用户的PVN请求;PVN解析器,用于解析所述PVN请求以获取待占用的虚拟网络资源;PVN映射器用于根据所述全局资源视图将所述待占用的虚拟网络资源映射到实际占用物理资源,并将映射结果发送给PVN控制器;PVN控制器基于所述映射结果生成所述配置信息。
2.根据权利要求1所述的可编程虚拟网络服务系统,其特征在于,所述PVN控制器包括全局资源监控模块;所述PVN代理包括本地资源监控模块; 所述本地资源监控模块,用于实时监控相应的资源节点的本地资源视图,并上报到所述全局资源监控模块; 所述全局资源监控模块,用于基于所述本地资源视图汇总出全局资源视图,并将所述全局资源视图存储到所述网络数据库。
3.根据权利要求2所述的可编程虚拟网络服务系统,其特征在于,所述PVN控制器还包括中心OpenFlow控制器;所述PVN代理还包括本地OpenFlow交换机; 所述中心OpenFlow控制器,用于基于控制命令向本地OpenFlow交换机下发OpenFlow流表; 本地OpenFlow交换机,用于根据所述流表执行对应于该本地OpenFlow交换机的资源节点的流量转发。
4.根据权利要求3所述的可编程虚拟网络服务系统,其特征在于,所述控制命令包括下列中的至少一个: 多个PVN网络之间的流量隔离控制命令; PVN网络在PVN代理之间的迁徙命令; PVN网络的拓扑发现命令。
【文档编号】H04L29/08GK103997513SQ201410160210
【公开日】2014年8月20日 申请日期:2014年4月21日 优先权日:2014年4月21日
【发明者】林昭文, 梁军学, 李健, 牛红霞, 郑超炯, 马严, 黄小红, 赵钦, 吴军 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1