管理覆盖网络中的数据流的方法和系统的制作方法_3

文档序号:8398039阅读:来源:国知局
于其处理和存储资源,主机可W运行几百个VMW及一个或多个为VM 转发数据的虚拟转发部件。系统400中的主机还包括附接到主机或集成于主机的一个或多 个NIC。
[0055] 如图所示,在此示例中,系统400的主机402包括若干虚拟机410和412、虚拟转 发部件414W及NIC416。VM410和412由主机402的系统管理程序化ypervisor,未示 出)运行。在一个实施例中,VM410和412是运行客户端和/或服务器应用的终端系统。 VM410和412可W通过虚拟转发部件414彼此通信或与在系统400的其它主机中运行的其 它终端系统进行通信。VM410和412可W属于数据中也环境中的同一租户或不同租户。在 一个实施例中,虚拟转发部件414隔离不同租户的VM,使得进出一个租户的VM的数据流不 能被另一租户的VM看到。
[0056] 图4的左下侧描述了虚拟转发部件414的示例的更详细的图。如图所示,虚拟转 发部件414包括交换逻辑418、配置数据库420、转发表422、若干缓冲器428、W及若干端口 430、432和434。交换逻辑418是控制平面,其确定对针对虚拟转发部件414的进入数据分 组执行的动作。在一个实施例中,网络控制器408通过例如使用针对安全信道436的协议 (例如,开放流的penFlow)协议)向交换逻辑418提供流条目,而配置交换逻辑418。交换 逻辑418填充或更新转发表422,转发表422是指明进入数据分组要被转发到的虚拟转发部 件的端口的数据平面。为了填充或更新转发表422,交换逻辑418使用存储在配置数据库 420中的信息的一些。存储在配置数据库420中的信息被用于配置虚拟转发部件414-- 多个端口、数据流映射、通道、覆盖网络的视图W及网络策略(例如,端口隔离、端口安全、 服务质量怕〇巧等),仅举几个例子。在一个实施例中,网络控制器408使用针对配置通道 438的协议(例如,开放vSwitch数据库(0VSDB)协议)提供信息W存储在配置数据库420 中。
[0057] 端口 430、432和434是虚拟转发部件414的虚拟端口或虚拟接口(VIF)。虚拟转 发部件414通过该些端口接收或发送分组。在此示例中,端口 430被配置为从VM410接收 分组W及向VM410发送分组。端口 432被配置为从VM412接收分组W及向VM412发送 分组。端口 434被配置为从NIC416接收分组W及向NIC416发送分组。特别地,通过端 口 434进出虚拟转发部件414的分组包括向运行在系统400的其它主机中的终端系统发送 或从其接收的分组。
[0058] 虚拟转发部件414的缓冲器428被配置为存储分组。在一个实施例中,一些缓冲 器428是配置为存储进入的分组的入口缓冲器。一些缓冲器428是出口缓冲器,其配置为 在对分组作出转发决定之后但在将分组发送到虚拟转发部件414之外之前存储分组。在一 个实施例中,虚拟转发部件414使用缓冲器428控制数据率或实现QoS。
[0059] 网络控制器408是软件定义网络控制器,其配置为在网络401内作出路由决定。 网络控制器408建立一个或多个诸如信道436和438的安全信道来配置运行在主机中的虚 拟转发部件W及建立虚拟转发部件之间的链路(例如通道)的通信属性。虽然网络控制器 408被描绘为分离组件,但网络配置功能可W替代地W独立或分布的形式实施在系统400 中的一个或多个主机中。网络控制器408可W提供高可用性。
[0060] 如上所述,网络控制器408还管理运行在网络401上的覆盖网络。在一个实施例 中,覆盖网络连接运行在系统400的主机中的VM。具体地,网络控制器408将覆盖网络分配 给租户,使得运行在主机中的租户的VM可W经由所分配的覆盖网络彼此通信。
[0061] 在一个实施例中,网络控制器408使用终止在系统400中的主机的虚拟转发部件 处的通道实现覆盖网络。网络控制器408监视主机W检测VM的提供和迁移。当用于特定 租户的VM被提供在或迁移到特定主机中时,网络控制器408指令该特定主机的虚拟转发部 件与该特定租户的其它VM所运行在的其它主机中的虚拟转发部件建立通道。替代地,网络 控制器408可W指令该其它主机中的虚拟转发部件启动与该特定主机中的虚拟转发部件 的通道的建立。虚拟转发部件如所指令地建立通道,除非虚拟转发部件已经建立了该样的 通道。
[006引在一个实施例中,网络控制器408创建和更新VM、VM位置、覆盖网络和通道之间的 映射(未示出)。网络控制器408可W向VM分配网络地址(例如,因特网协议(I巧和媒介 访问控制(MAC)地址),并使用所述网络地址来识别VM。网络控制器408可W使用VM运行 在其中的主机的网络地址作为VM的位置。网络控制器408可W向覆盖网络分配网络标识 符W唯一地识别覆盖网络。在一个实施例中,网络标识符是24比特的值,其可W唯一地识 别超过1600万个覆盖网络。网络控制器408可W使用主机的网络地址(例如,NIC的端口 的IP和MAC地址)W识别通道的端点。在一个实施例中,网络控制器408通过填充或更新 主机的配置数据库而向主机中的虚拟转发部件提供映射。
[0063]运行在系统400中的虚拟转发部件使用所提供的映射W转发进入的分组。如图所 示,虚拟转发部件414的配置数据库420包括网络控制器408提供的映射,在此示例中,其 被描绘为一个或多个表439。在一个实施例中,表439包括运行在主机402中的VM。每个 VM经由网络标识符与覆盖网络关联。在该表中,运行在主机402中的特定VM与该特定VM 可W与其通信的一个或多个VM(例如,与该特定VM共享同一网络标识符的VM)相关联。该 样的VM可W位于主机402中或其它主机中。表中每一对特定VM与所关联的VM识别数据 流,因为该特定VM是该数据流的分组的源点,该对中的另一VM是该数据流中的分组的目的 地。换言之,该特定VM的网络地址和该关联的VM的网络地址识别数据流。除了该对VM的 网络地址之外,网络标识符对于唯一地识别数据流可能也是必要的,因为不同覆盖网络的 地址空间可能重叠。
[0064] 当特定VM和所关联的VM运行在系统400的不同主机中时,该两个VMW及它们的 网络标识符所识别的数据流与通道关联。如上所述,通道由两个主机的网络地址标识。因 此,数据流与两个主机的网络地址相关联。当特定VM和所关联的VM运行在同一主机402 中时,该两个VM所标识的数据流可W不必与通道关联,因为该数据流的分组不需要离开主 机 402。
[0065] 当虚拟转发部件414将数据流的分组从运行在主机402中的VM转发到运行在另 一主机(例如,主机404)中的VM时,虚拟转发部件414使用映射识别与该数据流相关联的 通道,并通过所识别的通道发送分组。换言之,虚拟转发部件414利用通道报头封装分组, 通道报头包括主机402的网络地址作为源地址W及主机404的网络地址作为目的地地址。 通道报头还包括与此数据流关联的网络标识符,W唯一地识别通道端点。此通道的一端是 虚拟转发部件414,因为虚拟转发部件414用通道报头封装该数据流的分组。此通道的另一 端是运行在主机404中的虚拟转发部件(未示出),其解封装该数据流的分组。换言之,运 行在主机404中的虚拟转发部件在将分组传递到运行在主机404中的目的地VM之前,从分 组剥除通道报头和网络标识符。需要注意的是,虚拟转发部件414不需要依赖于广播或多 播来找到目的地VM的位置,因为网络控制器408提供了该位置。
[0066] 当虚拟转发部件414将数据流从运行在主机402中的VM转发到运行在系统400的 其它主机中的其它VM时,虚拟转发部件414通过端口 434将数据流发送到NIC416。图4 的右下侧描述了NIC416的示例的更具体的图。如图所示,在此示例中,NIC416包括NIC 控制器440和表442。在一个实施例中,NIC控制器440被配置为不仅查看从虚拟转发部件 414接收的封装分组的通道报头,还查看网络标识符和封装分组的内部报头,W便将数据流 映射到通道。该样的映射被描绘为表442。在表442中,数据流(由封装的分组的源和目的 地地址W及它们的网络标识符标识)与通过其发送数据流的通道关联。一个或多个网络标 识符可W与单个通道关联,因为单个通道的端点可W巧管一个或多个覆盖网络的VM。
[0067] 当虚拟转发部件414转发数据流时,虚拟转发部件414将每个数据流与缓冲器428 之一关联。用于数据流的缓冲器允许虚拟转发部件414W每个流为基础控制数据率或实现 QoS。当数据流的源和目的地是主机402中的VM时,虚拟转发部件414使用与此数据流关 联的缓冲器来为此数据流控制数据率或实现QoS。当存在超过其两个目的地是运行在系统 400的其它主机中的VM的数据流时,虚拟转发部件414使用与数据流关联的缓冲器来为该 些数据流控制数据率或实现QoS。
[0068] 在一个实施例中,虚拟转发部件414对缓冲器428分配不同的优先等级,并因此将 该些优先等级分配到不同的数据流。通过该些具有不同优先等级的缓冲器,一个实施例的 虚拟转发部件414实现增强的传输选择巧T巧W及基于优先级的流控制(PFC)。
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1