服务链中的网络吞吐量保证、异常检测和缓解的制作方法

文档序号:31126212发布日期:2022-08-13 03:32阅读:145来源:国知局
服务链中的网络吞吐量保证、异常检测和缓解的制作方法
服务链中的网络吞吐量保证、异常检测和缓解
1.相关申请的交叉引用
2.本技术要求于2019年12月13日提交的、题为“network throughput assurance,anomaly detection and mitigation in service chain”(服务链中的网络吞吐量保证、异常检测和缓解)的第16/713,569号美国非临时专利申请的权益和优先权,该申请的的全部公开内容在此通过引用被明确并入本文。
技术领域
3.本技术总体涉及网络虚拟化,并且具体涉及为虚拟化网络功能的服务链提供吞吐量保证。


背景技术:

4.网络虚拟化将传统上经由硬件交付的网络连接和服务抽象到在管理程序中的物理网络之上运行的逻辑虚拟网络中。可以通过在虚拟机器(vm)上运行的虚拟化网络功能(vnf)来实现网络虚拟化。这些vnf可以处理或以其他方式执行特定的网络功能(例如,防火墙功能或负载平衡功能)。在网络虚拟化中,一个或多个管理程序平台上的多个vnf可以被拼接在一起,以在网络环境中创建虚拟化服务链。例如,服务链可以被用于实现各种网络功能,这些网络功能将消费者连接到一个或多个云服务提供商(例如,amazon webmicrosoft等)。典型的服务链可以包括虚拟形式的路由器、负载平衡器和防火墙。在操作中,网络流量可以穿过云服务提供商和客户端之间的虚拟服务链的各个vnf分支。
5.用户通常预期服务链的特定吞吐量。具体来说,用户期望在管理程序平台上正确配置服务链,并且可以通过各个vnf以及作为一个整体的相应的服务链来实现特定的吞吐量。通常,服务链的基础设施提供商/服务提供商负责确保链的预期吞吐量。然而,由于虚拟网络缺乏可见性,服务提供商目前难以诊断和解决服务链中的问题。特别是,由于在虚拟服务链中使用了多个vnf,并且由于虚拟网络的可见性差,例如,作为向客户提供服务链吞吐量保证的一部分,服务提供商难以识别哪个链路或哪个vnf在服务链中表现异常。
附图说明
6.图1a示出了示例云计算结构;
7.图1b示出了示例雾计算结构;
8.图2a示出了示例网络环境(例如,数据中心)的图;
9.图2b示出了网络环境的另一个示例;
10.图3示出了示例虚拟机器(vm)部署的示意图;
11.图4示出了根据主题技术的各个方面的具有网络吞吐量保证代理的示例虚拟化网络环境;
12.图5示出了示例计算系统;并且
13.图6示出了示例网络设备。
具体实施方式
14.下面详细讨论本公开的各种实施例。尽管讨论了具体实施方式,但是应该理解,仅是出于说明的目的而这样做。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。因此,以下描述和附图是说明性的,并且不应被解释为是限制性的。描述了许多具体细节以提供对本公开的透彻理解。然而,在某些情况下,为了避免使描述模糊,没有描述众所周知的或常规的细节。
15.如本文中所使用的,“一个实施例”或“一实施例”可以指相同的实施例或任意(一个或多个)实施例。此外,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。短语“在一个实施例中”在说明书中各个地方的出现不一定全部指的是同一实施例,也不是与其他实施例互斥的单独或替代的实施例。本文中参照一个实施例描述的特征可以与参照任何实施例描述的特征相结合。
16.在本公开的上下文中以及在使用每个术语的特定上下文中,在本说明书中使用的术语通常具有其在本领域中的普通含义。替代语言和同义词可以用于本文所讨论的术语中的任何一个或多个,并且不应对于术语是否在本文中得到阐述或讨论给予特殊意义。在某些情况下,提供了某些术语的同义词。对一个或多个同义词的记载不排除使用其他同义词。包括本文所讨论的任何术语的示例在内的本说明书中任何地方的示例的使用仅是说明性的,并不旨在进一步限制本公开或任何示例术语的范围和含义。同样,本公开不限于本公开中描述的具体实施例或示例。
17.在无意限制本公开的范围的情况下,以下给出仪器、装置、方法及其相关功能的示例。为了读者的方便,可以在示例中使用标题或副标题,这绝不应该限制本公开的范围。除非另有定义,否则本文所使用的技术和科学术语具有如本公开所属领域的普通技术人员通常所理解的含义。在冲突的情况下,以本文件(包括定义)为准。
18.本公开的附加特征和优点将在下面的描述中得到阐述,并且部分地将从说明书中辨别出,或者可以通过实践本文所公开的原理来获悉。本公开的特征和优点可以通过在本文中特别指出的工具和组合来实现和获得。根据以下描述和所附权利要求,本公开的这些和其他特征将变得更完全清楚,或者可以通过实践本文阐述的原理来获悉。
19.概述
20.在独立权利要求中陈述了本发明的各方面,并且在从属权利要求中陈述了优选特征。一方面的特征可以单独应用于每个方面或与其他方面结合应用于每个方面。
21.本文公开了用于监视虚拟服务链中的虚拟化网络功能的系统、方法和计算机可读存储介质。
22.一种方法可以包括:监视由在多个虚拟节点上运行的多个经拼接的虚拟化网络功能形成的虚拟服务链;内联统计代理能够成虚拟服务链的操作的内联统计;另外,虚拟服务链的实际吞吐量能够从内联统计中识别;接下来,通过将虚拟服务链的实际吞吐量与虚拟服务链的预期吞吐量进行比较,能够为虚拟服务链提供吞吐量保证。
23.在多个虚拟节点下的管理程序层中实现内联统计代理。此外,虚拟化网络功能至
少部分地通过管理程序层被拼接在一起。相应地,可以由管理程序层中的内联统计代理监视在虚拟化网络功能之间传递的数据,以为虚拟服务链生成内联统计。
24.作为为虚拟服务链生成内联统计的一部分,可以对多个虚拟节点按虚拟节点分析在虚拟化网络功能之间传递的数据,以为虚拟服务链中的每个虚拟化网络功能生成内联统计。可以通过比较每个虚拟化网络功能处的入口数据吞吐量与每个虚拟化网络功能处的相应出口数据吞吐量来生成每个虚拟化网络功能的内联统计。
25.虚拟服务链中的每个虚拟化网络功能的内联统计可以与一个或多个相邻虚拟化网络功能的内联统计进行比较;接下来,可以基于对虚拟服务链中的每个虚拟化功能的内联统计与一个或多个相邻虚拟化网络功能的内联统计的比较,为虚拟服务链提供吞吐量保证。相邻虚拟化网络功能可以共享虚拟服务链中的虚拟链接点,以在数据穿过虚拟服务链时允许数据直接在相邻的虚拟化网络功能之间传递。
26.可以将作为每个所述虚拟化网络功能的所述内联统计的一部分而被包括的、每个虚拟化网络功能处的相应出口数据吞吐量与虚拟服务链的预期吞吐量进行比较;接下来,可以基于对每个虚拟化网络功能处的相应出口数据吞吐量与虚拟服务链的预期吞吐量的比较,为虚拟服务链提供吞吐量保证。此外,可以基于对虚拟化网络功能处的出口数据吞吐量与虚拟服务链的预期吞吐量的比较,将虚拟服务链中的虚拟化网络功能识别为在虚拟服务链中表现为异常;接下来,作为为虚拟服务链提供吞吐量保证的一部分,可以将虚拟化网络功能报告为异常。响应于虚拟化网络功能处的出口数据吞吐量低于虚拟服务链的预期吞吐量,可以将虚拟化网络功能识别为异常。
27.可以将虚拟服务链的第一虚拟化网络功能的进入吞吐量与虚拟服务链的预期吞吐量进行比较;接下来,可以基于对虚拟服务链的进入吞吐量与预期吞吐量进行的比较,为虚拟服务链提供吞吐量保证。具体来说,如果进入吞吐量小于预期吞吐量,则按虚拟节点分析在虚拟化网络功能之间传递的数据,以为虚拟服务链提供吞吐量保证。
28.可以在消费者和提供商之间形成虚拟服务链。另外,在从消费者到提供商的方向和从提供商到消费者的方向中的一个或两个方向上提供虚拟服务链的吞吐量保证。附加地,多个虚拟节点的基础设施提供商可以不同于虚拟服务链的网络服务提供商。
29.一种系统可以包括:一个或多个处理器;以及至少一种计算机可读存储介质,其中存储有指令,这些指令当由一个或多个处理器执行时,使一个或多个处理器监视由在多个虚拟节点上运行的多个经拼接的虚拟化网络功能形成的虚拟服务链;这些指令还可以使一个或多个处理器通过内联统计代理生成虚拟服务链的操作的内联统计;可以在多个虚拟节点下的管理程序层中实现内联统计;另外,这些指令可以使一个或多个处理器从内联统计中识别虚拟服务链的实际吞吐量;附加地,这些指令可以使一个或多个处理器通过将虚拟服务链的实际吞吐量与虚拟服务链的预期吞吐量进行比较,来为虚拟服务链提供吞吐量保证。
30.一种其中存储有指令的非暂时性计算机可读存储介质,这些指令当由处理器执行时,使处理器监视由在多个虚拟节点上运行的多个经拼接的虚拟化网络功能形成的虚拟服务链;这些指令还可以使处理器通过内联统计代理生成虚拟服务链的操作的内联统计。虚拟化网络功能可以至少部分地通过管理程序层被拼接在一起,并且在虚拟化网络功能之间传递的数据可以由管理程序层中的内联统计代理监视,以为虚拟服务链生成内联统计;另
外,这些指令可以使处理器从内联统计中识别虚拟服务链的实际吞吐量;附加地,这些指令可以使处理器通过将虚拟服务链的实际吞吐量与虚拟服务链的预期吞吐量进行比较,来为虚拟服务链提供吞吐量保证。
31.当参考以下说明书、权利要求和附图时,前述内容以及其他特征和实施例将变得更加明显。
32.示例实施例的描述
33.所公开的技术解决了本领域中对在虚拟化网络服务链中提供吞吐量保证的需求。特别地,所公开的技术解决了本领域中基于每个网络功能来监视虚拟化网络功能,以有效检测和减轻服务链中的异常的影响的需求。本技术涉及用于在虚拟化网络服务链中提供吞吐量保证、异常检测和异常缓解的系统、方法和计算机可读介质。特别地,本技术涉及基于每个网络功能在虚拟化网络服务链中提供吞吐量保证、异常检测和异常缓解的系统、方法和计算机可读介质。
34.如图1a、图1b、图2a、图2b所示,本文首先公开了对用于网络数据访问和服务的网络环境和结构的描述。然后,如图3至图4所示,接下来将讨论用于实现虚拟机器网络部署并为部署的虚拟化网络服务链提供吞吐量保证的系统、方法和计算机可读介质。然后,如图5和图6所示,讨论以示例设备的简要描述结束。当阐述了各种实施例时,将在本文中描述这些变化。本公开现在转到图1a。
35.图1a示出了示例云计算架构100的示意图。该架构可以包括云102。云102可以包括一个或多个私有云、公共云和/或混合云。此外,云102可以包括云元件104-114。云元件104-114可以包括例如服务器104、虚拟机器(vm)106、一个或多个软件平台108、应用程序或服务110、软件容器112和基础设施节点114。基础设施节点114可以包括各种类型的节点(例如,计算节点、存储节点、网络节点、管理系统等)。
36.云102可以经由云元件104-114提供各种云计算服务,例如,软件即服务(saas)(例如,协作服务、电子邮件服务、企业资源规划服务、内容服务、通信服务等)、基础设施即服务(iaas)(例如,安全服务、联网服务、系统管理服务等)、平台即服务(paas)(例如,网页服务、流服务、应用程序开发服务等)以及其他类型的服务(例如,桌面即服务(daas)、信息技术管理即服务(itaas)、托管软件即服务(msaas)、移动后端即服务(mbaas)等。
37.客户端端点116可以与云102连接以从云102获得一个或多个特定服务。客户端端点116可以经由一个或多个公共网络(例如,互联网)、专用网络和/或混合网络(例如,虚拟专用网络)与元件104-114通信。客户端端点116可以包括具有联网能力的任何设备,例如,膝上型计算机、平板计算机、服务器、台式计算机、智能手机、网络设备(例如,接入点、路由器、交换机等)、智能电视、智能汽车、传感器、gps设备、游戏系统、智能穿戴对象(例如,智能手表等)、消费对象(例如,互联网冰箱、智能照明系统等)、城市或交通系统(例如,交通管制、收费系统等)、物联网(iot)设备、摄像头、网络打印机、交通系统(例如,飞机、火车、摩托车、船等)、或任何智能或连接对象(例如,智能家居、智能建筑、智能零售、智能眼镜等)等。
38.图1b示出了示例雾计算架构150的示意图。雾计算架构150可以包括云层154(云层154包括云102和任何其他云系统或环境)和雾层156(雾层156包括雾节点162)。客户端端点116可以与云层154和/或雾层156通信。架构150可以包括云层154、雾层156和客户端端点116之间的一个或多个通信链路152。信息可以向上流动到云层154和/或向下流动到客户端
端点116。
39.雾层156或“雾”提供传统云网络的计算、存储和联网能力,但更接近端点。雾因此可以将云102扩展到更靠近客户端端点116。雾节点162可以是雾网络的物理实现。此外,雾节点162可以向客户端端点116提供本地或区域服务和/或连接。结果,可以从云102将流量和/或数据卸载到雾层156(例如,经由雾节点162)。雾层156因此可以利用更低的延迟以及其他优点(例如,将数据保持在(一个或多个)本地或区域网络内的安全益处等)提供更快的服务和/或到客户端端点116的连接。
40.雾节点162可以包括任何联网的计算设备(例如,服务器、交换机、路由器、控制器、相机、接入点、网关等)。此外,雾节点162可以被部署在具有网络连接的任何地方(例如,工厂车间、电线杆、铁轨旁、车辆内、石油钻机上、机场内、飞机上、购物中心内、医院里、公园里、停车场里、图书馆里等)。
41.在一些配置中,一个或多个雾节点162可以被部署在雾实例158、160内。雾实例158、160可以是本地或区域云或网络。例如,雾实例158、160可以是区域云或数据中心、局域网、雾节点162的网络等。在一些配置中,一个或多个雾节点162可以被部署在网络内,或者例如被部署为独立节点或单个节点。此外,一个或多个雾节点162可以经由各种拓扑结构(包括例如星形、环形、网状或分层布置)中的链路164彼此互连。
42.在一些情况下,一个或多个雾节点162可以是移动雾节点。移动雾节点可以移动到不同的地理位置、逻辑位置或网络、和/或雾实例,同时保持与云层154和/或端点116的连接。例如,特定的雾节点可以被放置在车辆(例如,飞机或火车)中,它们可以从一个地理位置和/或逻辑位置行驶到不同的地理位置和/或逻辑位置。在这个示例中,特定雾节点可以在位于起始位置时连接到云154的特定物理和/或逻辑连接点,并且在位于目的地位置时切换到云154的不同物理和/或逻辑连接点。因此,特定的雾节点可以在特定的云和/或雾实例中移动,并且因此在不同时间为来自不同位置的端点提供服务。
43.图2a示出了示例网络环境200(例如,数据中心)的示意图。在一些情况下,网络环境200可以包括可以支持和/或托管云102的数据中心。网络环境200可以包括组织220,该组织220可以代表网络环境200的物理层或基础设施(例如,底层)。组织220可以包括脊202(例如,脊路由器或交换机)和叶204(例如,叶路由器或交换机),它们可以互连以在组织220中路由或交换流量。脊202可以与在组织220中的叶204互连。并且,叶204可以将组织220连接到网络环境200的覆盖或逻辑部分,这些部分可以包括应用服务、服务器、虚拟机器、容器、端点等。因此,组织220中的网络连接可以从脊202流动到叶204,反之亦然。叶204和脊202之间的互连可以是冗余的(例如,多个互连)以避免路由故障。在一些实施例中,叶204和脊202可以完全连接,使得任何给定叶连接到每个脊202,并且任何给定脊连接到每个叶204。叶204可以是例如顶部机架(“tor”)交换机、聚合交换机、网关、入口和/或出口交换机、提供商边缘设备和/或任何其他类型的路由或交换设备。
44.叶204可以负责路由和/或桥接租户或客户数据包并应用网络策略或规则。可以由一个或多个控制器216驱动网络策略和规则,和/或由一个或多个设备(例如,叶204)实施或强制执行网络策略和规则。叶204可以将其他元件连接到组织220。例如,叶204可以将服务器206、管理程序208、虚拟机器(vm)210、应用程序212、网络设备214等与组织220连接。这样的元件可以驻留在一个或多个逻辑或虚拟层或网络(例如,覆盖网络)中。在某些情况下,叶
204可以将数据包封装和解封装至这些元件(例如,服务器206)或封装和解封装来自这些元件(例如,服务器206)的数据包,以实现整个网络环境200和组织220的通信。叶204还可以为任何其他设备、服务、租户或工作负载提供对组织220的访问。在某些情况下,连接到叶204的服务器206可以类似地将数据包封装和解封装至叶204并且封装和解封装来自叶204的数据包。例如,服务器206可以包括一个或多个虚拟交换机、或路由器、或通道端点,以用于在(由服务器206托管或被连接到服务器206的)覆盖或逻辑层和(由组织220表示并经由叶204访问的)底层之间贯通数据包。
45.应用程序212可以包括软件应用程序、服务、容器、设备、功能、服务链等。例如,应用程序212可以包括防火墙、数据库、cdn服务器、ids/ips、深度数据包检查服务、消息路由器、虚拟交换机等。可以通过多个端点(例如,服务器206、vm 210等)分发、链接或托管来自应用程序212的应用程序,或者可以完全从单个端点运行或执行来自应用程序212的应用程序。
46.vm 210可以是由管理程序208托管的虚拟机或在服务器206上运行的虚拟机管理器。vm 210可以包括在相应服务器上的客户操作系统上运行的工作负载。管理程序208可以提供创建、管理和/或运行vm 210的软件、固件和/或硬件层。管理程序208可以允许vm 210共享服务器206上的硬件资源,并且服务器206上的硬件资源显示为多个独立的硬件平台。此外,服务器206上的管理程序208可以托管一个或多个vm 210。
47.在一些情况下,vm 210可以被迁移到其他服务器206。服务器206可以类似地被迁移到网络环境200中的其他物理位置。例如,连接到特定叶的服务器可以被更改为连接到不同的或额外的叶。此类配置或部署的更改可以涉及对应用于正在被迁移的资源以及其他网络组件的设置、配置和策略的修改。
48.在一些情况下,一个或多个服务器206、管理程序208和/或vm 210可以代表或驻留在租户或客户空间中。租户空间可以包括与一个或多个客户端或订购者相关联的工作负载、服务、应用程序、设备、网络和/或资源。因此,网络环境200中的流量可以基于特定的租户策略、空间、协议、配置等进行路由。此外,寻址可以在一个或多个租户之间变化。在一些配置中,租户空间可以被划分为逻辑段和/或网络,并与和其他租户相关联的逻辑段和/或网络分离。可以由控制器216、服务器206、叶204等来管理租户之间的寻址、策略、安全和配置信息。
49.可以在逻辑级别、硬件级别(例如,物理的)和/或两者上实现网络环境200中的配置。例如,可以基于端点或资源属性(例如,端点类型和/或应用程序组或配置文件)通过软件定义网络(sdn)框架(例如,以应用程序为中心的基础架构(aci)或vmware nsx)在逻辑级别和/或硬件级别实现配置。为了说明,一个或多个管理员可以通过控制器216在逻辑级别(例如,应用程序或软件级别)定义配置,控制器216可以通过网络环境200实施或传播这种配置。在一些示例中,控制器216可以是在aci框架中的应用程序策略基础设施控制器(apic)。在其他示例中,控制器216可以是用于与其他sdn解决方案相关联的一个或多个管理组件(例如,nsx管理器)。
50.这样的配置可以定义规则、策略、优先级、协议、属性、对象等,以用于在网络环境200中路由和/或分类流量。例如,这样的配置可以定义属性和对象,以用于基于端点组、安全组(sg)、vm类型、桥域(bd)、虚拟路由和转发实例(vrf)、租户、优先级、防火墙规则等来分
类和处理流量。将在下面进一步描述其他示例网络对象和配置。可以基于流量标签、属性或其他特征(例如,与流量相关的协议、与流量相关的epg、与流量相关的sg、与流量相关的网络地址信息等)来实施流量策略和规则。可以由网络环境200中的一个或多个元件(例如,叶204、服务器206、管理程序208、控制器216等)实施这样的策略和规则。如前所述,可以根据一个或多个特定sdn解决方案(例如,cisco aci或vmware nsx)来配置网络环境200。下面简要介绍这些示例sdn解决方案。
51.aci可以通过可扩展的分布式实施来提供以应用为中心、或基于策略的解决方案。aci支持在用于网络、服务器、服务、安全、需求等的声明性配置模型下集成物理和虚拟环境。例如,aci框架实现epg,epg可以包括共享公共配置要求(例如,安全性、qos、服务等)的端点或应用程序的集合。端点可以是虚拟/逻辑或物理设备(例如,连接到网络环境200的vm、容器、主机或物理服务器)。端点可以具有一个或多个属性,例如,vm名称、客户os名称、安全标签、应用程序配置文件等。可以以合约的形式在epg之间(而不是直接在端点之间)应用应用程序配置。叶204可以将传入流量分类为不同的epg。例如,分类可以基于网段标识符,例如,vlan id、vxlan网络标识符(vnid)、nvgre虚拟子网标识符(vsid)、mac地址、ip地址等。
52.在一些情况下,可以通过aci虚拟边缘(ave)实现aci基础设施中的分类,aci虚拟边缘可以在主机(例如,服务器)上运行,例如在服务器上运行的vswitch。例如,ave可以基于指定的属性对流量进行分类,对不同属性epg的数据包进行不同的标识(例如,网段标识(例如,vlan id))。最后,叶204可以基于它们的标识将数据包与它们的属性epg联系起来,并实施策略,这可以由一个或多个控制器216实施和/或管理。叶204可以对来自主机的流量属于哪个epg进行分类,并相应地实施策略。
53.另一个示例sdn解决方案是以vmware nsx为基础。使用vmware nsx,主机可以运行分布式防火墙(dfw),该防火墙可以分类和处理流量。考虑将三种类型的vm(即,应用程序vm、数据库vm和网页vm)放入单个层2网段的情况。可以根据vm类型在网段内提供流量保护。例如,可以允许网页vm之间的http流量,而不允许网页vm与应用程序vm或数据库vm之间的http流量。为了对流量进行分类和实施策略,vmware nsx可以实施安全组,安全组可用于对特定的vm(例如,网页vm、应用程序vm、数据库vm)进行分组。可以配置dfw规则以实施针对特定安全组的策略。为了说明,在前面示例的上下文中,可以将dfw规则配置为阻止网页安全组、应用程序安全组和数据库安全组之间的http流量。
54.现在返回图2a,网络环境200可以经由叶204、服务器206、管理程序208、vm 210、应用程序212和控制器216部署不同的主机(例如,vmware esxi主机、windows hyper-v主机、裸金属物理主机等)。环境200可以与各种管理程序208、服务器206(例如,物理和/或虚拟服务器)、sdn编排平台等互操作。网络环境200可以实施声明性模型以允许该模型与应用程序设计和整体网络策略集成。
55.控制器216可以提供对以下项的集中访问:组织信息、应用程序配置、资源配置、针对sdn基础设施的应用程序级配置建模、与管理系统或服务器的集成等。控制器216可以形成控制平面,该控制平面经由北向api与应用程序接口连接,并且经由南向api与数据平面接口连接。
56.如前所述,控制器216可以为网络环境200中的配置定义和管理(一个或多个)应用
级模型。在一些情况下,也可以由网络中的其他组件管理和/或定义应用程序或设备配置。例如,管理程序或虚拟设备(例如,vm或容器)可以运行服务器或管理工具来管理网络环境200中的软件和服务(包括虚拟设备的配置和设定)。
57.如上所述,网络环境200可以包括一种或多种不同类型的sdn解决方案、主机等。为了清楚和解释的目的,将参考aci框架来描述本公开中的各种示例,并且控制器216可以可交换地被称为控制器、apic或apic控制器。但是,需要注意的是,本文中的技术和概念不限于aci解决方案,还可以在其他结构和场景中被实现,包括其他sdn解决方案以及可能不部署sdn解决方案的其他类型网络。
58.此外,如本文所引用的,术语“主机”可以指服务器206(例如,物理的或逻辑的)、管理程序208、vm 210、容器(例如,应用程序212)等,并且可以运行或包括任何类型的服务器或应用程序解决方案。“主机”的非限制性示例可以包括虚拟交换机或路由器(例如,分布式虚拟交换机(dvs)、ave节点、矢量包处理(vpp)交换机;vcenter和nsx managers;裸金属物理主机;hyper-v主机;vm;docker容器;
59.图2b图示了网络环境200的另一个示例。在该示例中,网络环境200包括连接到组织220中的叶204的端点222。端点222可以是物理的和/或逻辑的或虚拟的实体(例如,服务器、客户端、vm、管理程序、软件容器、应用程序、资源、网络设备、工作负载等)。例如,端点222可以是对象,该对象表示:物理设备(例如,服务器、客户端、交换机等)、应用程序(例如,网页应用程序、数据库应用程序等)、逻辑或虚拟资源(例如,虚拟交换机、虚拟服务设备、虚拟化网络功能(vnf)、vm、服务链等)、运行软件资源的容器(例如,应用程序、设备、vnf、服务链等)、存储空间、工作负载或工作负载引擎等。端点122可以具有地址(例如,身份)、位置(例如,主机、网络段、虚拟路由和转发(vrf)实例、域等)、一个或多个属性(例如,名称、类型、版本、补丁级别、os名称、os类型等)、标签(例如,安全标签)、配置文件等。
60.端点222可以与相应的逻辑组218相关联。逻辑组218可以是逻辑实体,该逻辑实体包含:根据一个或多个属性(例如,vm类型、工作负载类型、应用程序类型等)被分组在一起的(物理的和/或逻辑的或虚拟的)端点、一个或多个要求(例如,策略要求、安全要求、qos要求、客户要求、资源要求等)、资源名称(例如,vm名称、应用程序名称等)、配置文件、平台或操作系统(os)特征(例如,包括客户和/或主机os等的os类型或名称)、关联的网络或租户、一个或多个策略、标签等。例如,逻辑组可以是表示被分组在一起的端点的集合的对象。为了说明,逻辑组1可以包含客户端端点,逻辑组2可以包含网页服务器端点,逻辑组3可以包含应用服务器端点,逻辑组n可以包含数据库服务器端点等。在一些示例中,逻辑组218是aci环境中的epg和/或另一个sdn环境中的其他逻辑组(例如,sg)。
61.可以基于逻辑组218对去往和/或来自端点222的流量进行分类、处理、管理等。例如,逻辑组218可以被用于:对去往或来自端点222的流量进行分类、将策略应用于去往或来自端点222的流量、定义端点222之间的关系、定义端点222的角色(例如,端点是否消费或提供服务等)、将规则应用于去往或来自端点222的流量、将过滤器或访问控制列表(acl))应用于去往或来自端点222的流量、定义针对去往或来自端点222的流量的通信路径、执行与端点222相关联的要求、实施与端点222相关联的安全和其他配置等。
62.在aci环境中,逻辑组218可以是epg,这些epg用于定义aci中的合约。合约可以包括指定epg之间的通信内容和通信方式的规则。例如,合约可以定义:什么提供服务、什么消
费服务、以及哪些策略对象与该消费关系相关。合约可以包括策略,该策略定义通信路径、以及ep或epg之间的通信或关系的所有相关元件。例如,网页epg可以提供客户端epg消费的服务,并且该消费可以受制于过滤器(acl)和包含一个或多个服务(例如,防火墙检查服务和服务器负载平衡)的服务图。
63.图3示出了示例虚拟机(vm)部署310的示意图。在该示例中,主机302可以包括一个或多个vm 316。vm 316可以被配置为在主机302上基于主机上的硬件资源312运行如vnf的工作负载。vm 316可以在由管理程序318提供的虚拟操作平台上的客户操作系统314上运行。每个vm可以运行各自的客户操作系统,该客户操作系统可以与(和主机302上的其他vm相关联的)其他客户操作系统相同或不同。此外,每个vm可以具有一个或多个网络地址(例如,互联网协议(ip)地址)。vm 316可以使用一个或多个网络地址与管理程序318和/或任何远程设备或网络通信。
64.管理程序318可以是创建和运行vm 316的软件层、固件层和/或硬件层。例如,管理程序318可以是用于托管和管理vm 316的虚拟机管理器(vmm)。在vm 316上运行的客户操作系统可以共享由管理程序318创建的虚拟化硬件资源。虚拟化硬件资源可以提供独立硬件组件的假象。此外,虚拟化硬件资源可以表现为物理硬件组件(例如,存储器、存储空间、处理器、网络接口等),并且可以由主机302上的硬件资源312驱动。管理程序318可以具有一个或多个网络地址(例如,互联网协议(ip)地址),以用于与其他设备、组件或网络通信。例如,管理程序318可以具有专用ip地址,它们可以使用该地址来与vm 316和/或任何远程设备或网络进行通信。
65.硬件资源312可以提供由主机302、管理程序318和vm 316提供的底层物理硬件驱动操作和功能。硬件资源312可以包括例如一个或多个存储器资源、一个或多个存储空间资源、一个或多个通信接口、一个或多个处理器、一个或多个电路板、一个或多个扩展卡、一个或多个电源、一个或多个天线、一个或多个外围组件等。
66.主机302还可以包括一个或多个主机操作系统(未示出)。主机操作系统的数量可以因配置而异。例如,一些配置可以包括双引导配置,该双引导配置允许主机302引导到多个主机操作系统中的一个。在其他配置中,主机302可以运行单个主机操作系统。主机操作系统可以在硬件资源312上运行。在一些情况下,管理程序318可以在主机302上的主机操作系统上运行或使用。
67.主机302还可以具有一个或多个网络地址(例如,互联网协议(ip)地址),以用于与其他设备、组件或网络通信。例如,主机302可以具有ip地址,该ip地址被分配给来自硬件资源312的通信接口,它可以使用该ip地址来与vm 316、管理程序318、交换机和/或任何远程设备或网络进行通信。
68.在一些示例中,主机302可以运行分布式功能路由器。例如,主机302上的vm 316可以托管和执行分布式功能路由器的一个或多个功能。在一些情况下,主机302还可以经由vm 316托管多个分布式功能路由器。例如,vm 1可以托管和运行第一分布式功能路由器,并且vm 2可以托管和运行第二分布式功能路由器。第一分布式功能路由器和第二分布式功能路由器可以是不同功能路由器,或者可以是相同功能路由器的实例,可以被配置为用于负载平衡、故障转移、自动缩放等。
69.如前所述,用户通常期望虚拟化网络环境中的虚拟化服务链的特定吞吐量。具体
来说,用户期望在管理程序平台上正确配置服务链,并且通过各个vnf以及作为一个整体的相应服务链可以实现特定的吞吐量。通常,服务链的基础设施提供商/服务提供商负责确保链的预期吞吐量。然而,由于虚拟网络缺乏可见性,服务提供商目前难以诊断和解决服务链中的问题。特别是由于在虚拟服务链中使用了多个vnf,并且由于虚拟网络可见性差,例如,作为向客户提供服务链吞吐量保证的一部分,服务提供商难以识别哪个链路或哪个vnf在服务链中表现异常。
70.本发明包括用于解决这些问题/差异的系统、方法和计算机可读介质。具体而言,本技术涉及用于在虚拟化网络服务链中提供吞吐量保证、异常检测和异常缓解的系统、方法和计算机可读介质。更具体地,本技术涉及用于基于每个网络功能在虚拟化网络服务链中提供吞吐量保证、异常检测和异常缓解的系统、方法和计算机可读介质。
71.图4示出了根据主题技术的各个方面的具有网络吞吐量保证代理401的示例虚拟化网络环境400。可以根据适当的网络架构(例如,图1a和图ib所示的云计算结构100或雾计算结构150)来实现虚拟化网络环境400。此外,可以在适当的网络环境(例如,图2a和2b中所示的示例网络环境200)中实现虚拟化网络环境400。
72.可以至少部分地根据适用的虚拟机器部署(例如,图3中所示的虚拟机(vm)部署310)来形成虚拟化网络环境400。具体而言,虚拟化网络环境400包括交换组织402。交换组织402可以包括实现一个或多个虚拟机器和虚拟功能的物理硬件。具体地,交换组织402可以作为主机运转并且支持在交换组织402顶部运行的管理程序404。可以使用网络接口卡(未示出)连接管理程序404和交换组织402。例如,可以使用物理网络接口卡(pnic)将管理程序404连接到交换组织402。
73.管理程序404根据用于提供虚拟操作平台的适用的层起作用(例如,图3所示的管理程序318),一个或多个vnf可以在该虚拟操作平台上运行。具体而言,管理程序404可以运行以用于创建支持第一vnf 406-1、第二vnf 406-2以及第三vnf 406-3(统称为“vnf 406”)的虚拟操作平台。虽然图4中仅示出了三个vnf 406,但虚拟化网络环境400可以包括更多的vnf或更少的vnf。
74.vnf 406可以形成全部或部分的虚拟服务链。具体地,vnf 406可以(例如,通过管理程序404)被拼接在一起,以形成vnf的虚拟服务链的至少一部分。如本文所使用的,虚拟服务链是这样的一组vnf:该组vnf被拼接在一起以使得vnf基于虚拟服务链中的vnf的布置(例如,按照虚拟服务链中的vnf的顺序)将操作应用于通过虚拟服务链的网络流量。例如,在点408处进入虚拟服务链的流量,作为虚拟服务链的入口流量,可以在点412被引导到第一vnf 406-1以作为到第一vnf 406-1的入口流量。依次地,第一vnf 406-1可以对流量执行一个或多个操作。接下来,在第一vnf 406-1对流量执行一个或多个操作之后,流量可以作为第一vnf 406-1的出口流量在点414处从第一vnf 406-1传出。
75.因为在虚拟服务链中第一vnf 406-1与第二vnf 406-2相邻,所以在点414处离开第一vnf 406-1的第一vnf 406-1的出口流量可以用作第二vnf 406-2的入口流量。具体而言,该流量可以在点416作为入口流量进入第二vnf 406-2。依次地,第二vnf 406-2可以对流量执行一项或多项操作。接下来,在第二vnf 406-2对流量执行一个或多个操作之后,流量可以作为第二vnf 406-2的出口流量在点418处从第二vnf 406-2传出。类似地,该流量可以在点420处作为第三vnf 406-3的入口流量进入第三vnf 406-3,并且在点422处作为第三
vnf 406-3的出口流量从第三vnf 406-3传出。因为第三vnf 406-3是虚拟服务链中的最后一个vnf,所以离开第三vnf 406-3的流量是虚拟服务链的出口流量,并且该流量在点410处离开虚拟服务链。
76.vnf 406可以通过管理程序404被拼接在一起以形成虚拟服务链。具体地,在vnf 406之间传递的流量可以穿过管理程序404。例如,在点414处从第一vnf 406-1传出的流量可以传入管理程序404,并且然后在点416处进入第二vnf 406-2。因此,可以通过在管理程序404中形成的一个或多个链接点来将虚拟服务链中的相邻vnf链接在一起/拼接在一起。更具体地,可以通过管理程序404中的一个或多个链接点在相邻vnf之间直接传递流量,这些链接点将相邻的vnf相互链接。通过经由管理程序404将vnf 406拼接在一起以形成虚拟服务链,可以例如以积木风格的方式组合vnf 406的功能以提供各种网络通讯服务。
77.如本文所使用的,服务链中的相邻vnf包括按照vnf对穿过服务链的数据进行操作的顺序,例如,从流量处理的角度,在服务链中在逻辑上彼此相邻的vnf。例如,在图4所示的环境400中,第一vnf 406-1和第二vnf 406-2彼此相邻。此外,第二vnf 406-2和第三vnf 406-3彼此相邻。基于vnf在虚拟服务链中的位置,一个vnf只能有一个相邻的vnf。例如,第一vnf 406-1只有一个相邻的vnf(第二vnf 406-2),因为第一vnf 406-1是虚拟服务链中的第一个vnf。同样,第三vnf 406-3只有一个相邻的vnf(第二vnf 406-2),因为第三vnf 406-3是虚拟服务链中的最后一个vnf。进一步地,基于vnf在虚拟服务链中的位置,一个vnf可以具有多个相邻的vnf。例如,第二vnf 406-2具有两个相邻的vnf(第一vnf 406-1和第三vnf 406-3)。
78.可以在网络服务的消费者和提供商之间形成图4所示的示例环境400中的虚拟服务链。例如,可以在客户端和基于云的服务提供商之间形成虚拟服务链。此外,由于图4中所示的流量是单向的(例如,从点408到点410),虚拟服务链也可以对在反方向上(例如,从点410到点408)传递的流量执行操作。因此,本文所讨论的用于提供保证的技术可以被应用于穿过虚拟服务链的双向流量。例如,本文所描述的技术可以被应用于:通过虚拟服务链从消费者传递到提供商的流量、以及通过虚拟服务链从提供商传递到消费者的流量。
79.vnf 406的提供商可以不同于交换组织402的提供商。例如,可以由不同于实际基础设施/硬件的提供商(例如,交换组织402)的网络服务提供商提供和维护vnf 406,vnf 406在该网络服务提供商上通过一个或多个vm运行。
80.吞吐量保证代理401可以为虚拟服务链提供保证。具体地,吞吐量保证代理401可以为虚拟服务链提供吞吐量保证。如本文中所使用的,虚拟服务链的吞吐量保证可以包括与虚拟服务链中的网络保证和吞吐量相关的适当信息。例如,吞吐量保证可以包括:与处于或低于虚拟服务链的预期吞吐量的虚拟服务链操作相关的信息、与在虚拟服务链中表现为异常的vnf相关的信息、以及与在虚拟服务链中例如一起操作的vnf相关的其他适当信息。例如,吞吐量保证可以包括对跨服务链中vnf相互关联的吞吐量的指示。在另一个示例中,吞吐量保证可以包括哪个链路(例如,vnf)在服务链中流量下降以及该链路在服务链中的位置。表现为异常的vnf可以包括行为与vnf的预期行为不同的vnf。例如,表现为异常的vnf可以包括:vnf处的实际吞吐量已经降至vnf处的预期吞吐量以下。在另一个示例中,表现为异常的vnf可以包括流量下降的vnf。
81.在图4所示的示例环境400中,吞吐量保证代理401被示为连接到管理程序404。在
连接到管理程序404时,吞吐量保证代理401可以至少部分地在管理程序404中被实现。具体而言,吞吐量保证代理401可以包括在管理程序404中实现的内联统计代理。
82.内联统计代理用于为虚拟服务链生成内联统计。具体地,内联统计代理可以监视穿过虚拟服务链的流量,以生成针对虚拟服务链的内联统计。更具体地,当在管理程序404中实现内联统计代理时,内联统计代理可以监视通过管理程序层传入和传出vnf 406的流量,以生成针对虚拟服务链的内联统计。内联统计可以包括与虚拟服务链中的vnf 406的操作有关的适当信息。例如,内联统计可以包括传入和传出虚拟服务链的流量的实际吞吐量。
83.内联统计代理可以按vnf生成内联统计。具体地,因为内联统计代理可以通过经由管理程序404监视流量来生成内联统计,所以内联统计代理可以按vnf为每个vnf 406生成内联统计。更具体地,内联统计代理可以通过管理程序404分析传入、传出vnf 406和/或在vnf 406之间的数据,以按vnf为每个vnf 406生成内联统计。例如,内联统计代理可以生成针对第二vnf 406-2的内联统计,该内联统计包括在第二vnf 406-2处的入口流量吞吐量(对应于流量流中的点416)。此外,在示例中,内联统计代理可以为第二vnf 406-2生成内联统计,该内联统计包括在第二vnf 406-2处的出口流量吞吐量(对应于流量流中的点418)。在另一个示例中,内联统计代理可以生成针对第一vnf 406-1的内联统计,该内联统计包括第一vnf 406-1的入口流量吞吐量,该入口流量吞吐量是作为整体的整个虚拟服务链的入口流量吞吐量。在另一个示例中,内联统计代理可以生成针对第三vnf 406-3的内联统计,该内联统计包括第三vnf 406-3的出口流量吞吐量,该出口流量吞吐量是作为整体的整个虚拟服务链的出口流量吞吐量。每个vnf 406处的入口流量吞吐量和出口流量吞吐量可以被包括来作为虚拟服务链的实际吞吐量的一部分。
84.在按vnf生成内联统计时,内联统计代理可以基于每个vnf 406处的入口流量吞吐量和出口流量吞吐量来生成内联统计。具体地,内联统计代理可以比较每个vnf 406处的入口流量吞吐量和每个vnf 406处的出口流量吞吐量,以生成针对每个vnf 406的相应的内联统计。例如,如果穿过第一vnf 406-1的入口流量和出口流量之间的吞吐量不同,那么内联统计代理可以生成指示流量在第一vnf 406-1处正在下降的内联统计。
85.内联统计代理可以基于用户/管理员输入为虚拟服务链生成内联统计。例如,vnf的提供商可以提供可用于生成虚拟服务链的内联统计的输入。具体地,统计代理从指示vnf 406和对应的虚拟链路()的用户输入图生成内联统计,例如,形成于服务链的相应流量流的点412处、形成于点414和点416之间、形成于点418和点420之间、以及形成于点422处。此外,内联统计代理可以从描述虚拟服务链内的vnf 406的拓扑配置的配置文件生成内联统计。
86.此外,内联统计代理可以基于虚拟服务链的预期吞吐量和/或一个或多个vnf 406的预期吞吐量来生成内联统计。具体地,内联统计代理可以基于虚拟服务链的预期入口流量吞吐量和/或一个或多个vnf 406的预期入口流量吞吐量来生成内联统计。此外,内联统计代理可以基于虚拟服务链的预期出口流量吞吐量和/或一个或多个vnf 406的预期出口流量吞吐量来生成内联统计。内联统计代理可以使用适当的技术来识别预期吞吐量(例如,出口流量吞吐量和入口流量吞吐量)。具体来说,内联统计代理可以基于适当信息(例如,作为从用户/管理员接收到的输入图或拓扑配置文件的一部分)来识别预期吞吐量。
87.内联统计代理可以周期性地或以其他方式在设定的时间收集统计。在一个示例
中,内联统计代理可以使用最近收集的统计数据点作为收集内联统计的参考点。在另一个示例中,内联统计代理可以使用一组最近收集的统计数据点的移动平均值来收集内联统计信息。
88.吞吐量保证代理401可以基于由内联统计代理生成的内联统计为虚拟服务链提供吞吐量保证。特别地,吞吐量保证代理401可以针对从消费者到网络服务提供商的网络流量为服务链提供吞吐量保证。此外,吞吐量保证代理401可以针对从服务提供商到消费者的流量为服务链提供吞吐量保证。此外,吞吐量保证代理401可以针对服务提供商和消费者之间的双向流量为服务链提供吞吐量保证。
89.在提供吞吐量保证时,吞吐量保证代理401可以为虚拟服务链提供端到端的吞吐量保证。具体地,吞吐量保证代理401可以将虚拟服务链的入口吞吐量与虚拟服务链的出口吞吐量进行比较,以提供端到端的吞吐量保证。更具体地,吞吐量保证代理401可以通过将进入第一vnf 406-1的点408处的吞吐量与离开第三vnf 406-3的点410处的吞吐量进行比较来提供端到端的吞吐量保证。如果输入点408处的吞吐量等于或在输出点410处的吞吐量的阈值范围内,则吞吐量保证代理401可以报告服务链中没有吞吐量异常。阈值范围可以是由用户定义的阈值。
90.此外,吞吐量保证代理401可以通过将每个vnf 406的内联统计与服务链的预期流量吞吐量进行比较来提供吞吐量保证。预期吞吐量可以包括预期吞吐量或预期吞吐量范围(其中一者或两者是消费者期望的或vnf 406的提供商已经保证的)。在将每个vnf 406的内联统计与预期流量吞吐量进行比较时,吞吐量保证代理401可以直接将每个vnf 406处的出口(例如,对应于点414、点418和点422)数据吞吐量和服务链的预期吞吐量进行比较。进而,如果一个或多个vnf 406具有的吞吐量低于预期吞吐量或者在预期吞吐量范围之外,则统计代理可以将相应的一个或多个vnf 406标记为异常或以其他方式提供适当的吞吐量保证。
91.吞吐量保证代理401可以通过比较两个或更多个vnf 406的内联统计来为虚拟服务链提供吞吐量保证。具体地,吞吐量保证代理401可以通过将vnf的内联统计和一个或多个相邻vnf的内联统计进行比较来为虚拟服务链提供吞吐量保证。具体地,吞吐量保证代理401可以将第一vnf 406-1的内联统计与第二vnf 406-2的内联统计进行比较。此外,吞吐量保证代理401可以将第二vnf 406-2的内联统计与第一vnf 406-1和第三vnf 406-3两者的内联统计进行比较。另外,吞吐量保证代理401可以将第三vnf 406-3的内联统计与第二vnf 406-2的内联统计进行比较。参考图4,吞吐量保证代理401可以通过检查每个vnf 406的入口节点和出口节点的吞吐量是相等的或在彼此的阈值范围内,来验证vnf 406-1、vnf 406-2和vnf 406-3不会导致网络吞吐量下降。具体而言,吞吐量保证代理401可以检查:入口点412处的吞吐量等于出口点414处的吞吐量;入口点416处的吞吐量等于出口点414处和出口点418处的吞吐量;并且入口点420处的吞吐量等于出口点418处和出口点422处的吞吐量。如果一个或多个相等不成立,则统计代理可以将多个vnf 406中的涉及不相等的特定vnf报告为导致吞吐量异常的vnf。虽然参考了vnf之间的吞吐量是否相等的比较,但是所描述的关于vnf 406之间的入口吞吐量和出口吞吐量的比较的技术可以是基于阈值进行的比较。例如,如果与入口点412处的吞吐量相比,出口点414处的吞吐量落在阈值之外,那么吞吐量保证代理401可以将第一vnf 406-1识别为异常。如本文所述,适用的阈值可以是由用户定
义的(例如,由用户定义的范围)。
92.在各种实施例中,服务链的预期数据吞吐量可能高于输入点408处的实际流量吞吐量(对应于虚拟服务链的进入吞吐量)。具体而言,第一vnf 406处的服务链的进入吞吐量可能低于虚拟服务链的预期吞吐量。进而,吞吐量保证代理401可以基于虚拟服务链的进入吞吐量低于预期吞吐量来提供吞吐量保证。具体来说,如果虚拟服务链的进入吞吐量低于预期吞吐量,则每个vnf处的相应的吞吐量(例如,入口吞吐量和出口吞吐量)可能低于虚拟服务链的预期吞吐量。结果,即使一个或多个vnf 406的吞吐量下降到虚拟服务链的预期吞吐量的阈值以下,吞吐量保证代理也可以避免将vnf 406标记为异常。
93.相反地,服务链的预期数据吞吐量可能低于输入点408处的实际流量吞吐量(对应于虚拟服务链的进入吞吐量)。具体而言,第一vnf 406处的服务链的进入吞吐量可以高于虚拟服务链的预期数据吞吐量。进而,吞吐量保证代理401可以基于进入吞吐量高于虚拟服务链的预期吞吐量来提供吞吐量保证。具体来说,如果进入吞吐量高于虚拟服务链的预期吞吐量,则相应的吞吐量可以确保每个vnf 406处的吞吐量不降低到虚拟服务链的预期吞吐量的阈值范围以下。
94.此外,如果虚拟服务链的进入吞吐量低于或高于预期吞吐量,则吞吐量保证代理401可以被配置为自动分析每个vnf 406和对应的点412、点414、点416、点418、点420和点422的内联统计。具体地,吞吐量保证代理401可以按vnf比较每个vnf 406的入口流量吞吐量和出口流量吞吐量,以响应于输入吞吐量低于或高于预期吞吐量而识别跨vnf 406的吞吐量的任何潜在下降。接着,如果跨vnf观察到吞吐量下降,吞吐量保证代理401可以将vnf标记为异常。例如,如果进入吞吐量高于预期吞吐量,则吞吐量保证代理401可以分析每个vnf 406的内联统计,以确保跨每个vnf 406的吞吐量不下降到虚拟服务链的预期吞吐量或预期吞吐量的阈值范围以下。
95.在基于服务链中的流量吞吐量的经识别的下降来提供吞吐量保证时,吞吐量保证代理401可以确定服务链中的流量下降点。具体地,吞吐量保证代理401可以收集服务链中的虚拟链路的统计。虚拟链路可以包括:消费者的进入流量和服务链的第一vnf之间的链路、连续vnf之间的链路(例如,对应于服务链中的相邻vnf)、和/或服务链的最后一个vnf与传出流量到服务提供商之间的链路。具体地,吞吐量保证代理401可以收集每个vnf的入口流量统计和出口流量统计(作为生成的内联统计的一部分被包括在内),以确定流量异常点。
96.然后,可以使用经识别的流量异常点来推断故障的确切原因。服务链中故障的示例原因包括:次优放置算法、网络i/o瓶颈、cpu分析、用户错误配置和存储器损坏。具体来说,如果吞吐量保证代理401检测到一个或多个异常(例如,如果服务链中跨vnf的流量下降),则吞吐量保证代理401可以将异常信息反馈到推断代理(例如,作为吞吐量保证代理401的一部分被包括在内)。然后推断代理可以基于环境400运行推断。例如,推断代理可以基于vnf放置、vnf许可、cpu固定(cpu pinning)或numa节点平衡(例如,如用户提供的信息所指示的)进行推断。推断代理进行的推断可以包括与提供吞吐量保证相关的适当推断。例如,推断可以包括:vnf在环境400中被不正确地配置。
97.接着,推断代理可以向用户推断网络吞吐量异常的可能原因。例如,可能的原因可以包括cpu使用、防火墙、以及服务链中的流量下降。
98.在一些示例中,来自推断代理的推断输出将被用于向用户报警。用户报警可以包括推断,以及由统计代理收集的服务链中每个节点的特定吞吐量信息。
99.在一些示例中,来自推断代理的输出可以被用于触发自动更正特征以减轻服务链中的异常。自动更正特征可以作为策略来被实现,其中每种类型的异常触发要在服务链上采取的特定缓解措施。
100.图5图示了计算系统500的结构,其中,系统500的组件使用连接505(例如,总线)彼此电通信。示例系统500包括处理单元(cpu或处理器)510和系统连接505,该系统连接505可以将包括系统存储器515的各种系统组件(例如,只读存储器(rom)520和随机存取存储器(ram)525)耦合到处理器510。系统500可以包括高速存储器的缓存512,该缓存与处理器510直接连接、紧邻或集成为处理器510的一部分。系统500可以将数据从存储器515和/或存储设备530复制到缓存512,以供处理器510快速访问。以此方式,缓存512可提供性能提升,该性能提升避免处理器510在等待数据时延迟。这些和其他模块可以控制或被配置为控制处理器510执行各种动作。也可以使用其他系统存储器515。存储器515可以包括具有不同性能特征的多种不同类型的存储器。处理器510可以包括被配置为用于控制处理器510的任何通用处理器和硬件或软件模块(例如,存储在存储设备530中的模块1 532、模块2 534和模块3 536)以及其中软件指令被合并到实际的处理器设计中的专用处理器。处理器510可以是完全自我容纳的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。
101.为了使用户能够与计算系统500交互,输入设备545可以表示任何数量的输入机制(例如,用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入和语音等)。输出设备535也可以是本领域技术人员已知的若干输出机制中的一种或多种。在一些情况下,多模式系统可以使用户能够提供多种类型的输入,以与计算系统500通信。通信接口540可以总体支配和管理用户输入和系统输出。对任何特定硬件布置的操作没有限制,因此这里的基本特征可以容易地被替换为经改进的硬件或固件布置,如它们被开发的。
102.存储设备530是非易失性存储器,并且可以是硬盘或其他类型的可以存储计算机可访问数据的计算机可读介质(例如,磁带、闪存卡、固态存储设备、数字多功能磁盘、盒式磁带、随机存取存储器(ram)525、只读存储器(rom)520及其组合)。
103.存储设备530可以包括用于控制处理器510的模块532、534、536。其他硬件或软件模块也被考虑在内。存储设备530可以连接到系统连接505。在一个方面,执行特定功能的硬件模块可以包括软件组件,该软件组件被存储在计算机可读介质中,与必要硬件部件(例如,处理器510、连接505、输出设备535等)相关联以执行该功能。
104.图6示出了适合实施交换、路由、负载平衡以及其他联网操作的示例网络设备600。网络设备600包括中央处理单元(cpu)604、接口602和总线610(例如,pci总线)。当在适当的软件或固件的控制下工作时,cpu 604负责执行数据包管理、错误检测和/或路由功能。cpu 604优选地在以下软件的控制下实现所有这些功能:软件包括操作系统和任何适当的应用软件。cpu 604可以包括一个或多个处理器608(例如,来自intel x86系列微处理器的处理器)。在一些情况下,处理器608可以是专门设计的用于控制网络设备600的操作的硬件。在一些情况下,存储器606(例如,非易失性ram、rom等)也形成cpu 604的一部分。然而,存在可以将存储器耦接到系统的多种不同方式。
105.接口602通常作为模块化接口卡(有时称为“线卡”)被提供。通常,接口控制通过网络的数据分组的发送和接收,并且在一些情况下支持与网络设备600一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、电缆接口、dsl接口、令牌环接口等。此外,可提供各种超高速接口,例如,快速令牌环接口、无线接口、以太网接口、千兆以太网接口、atm接口、hssi接口、pos接口、fddi接口、wifi接口、3g/4g/5g蜂窝接口、can bus、lora等。通常,这些接口可以包括适合与适当介质进行通信的端口。在某些情况下,接口还可以包括独立的处理器,并且在某些情况下,还包括易失性ram。独立处理器可以控制通信密集型任务,例如,分组交换、介质控制、信号处理、密码处理和管理。这些接口通过为通信密集型任务提供单独的处理器,而允许主cpu 604有效地执行路由计算、网络诊断、安全功能等。
106.虽然图6所示的系统是本技术的一个具体网络设备,但它绝不是可以实现本技术的唯一网络设备结构。例如,经常使用以下结构:该结构具有单个处理器,该单个处理器处理通信以及路由计算等。此外,其他类型的接口和介质也可以与网络设备600一起使用。
107.不管网络设备的配置如何,网络设备都可以采用一个或多个以下存储器或存储器模块(包括存储器606):该存储器或存储器模块被配置为存储用于通用网络操作的程序指令和用于本文所述的漫游、路由优化和路由功能的机制。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储表,例如,移动性绑定、注册和关联表等。存储器606还可以保存各种软件容器和虚拟化执行环境和数据。
108.网络设备600还可以包括专用集成电路(asic),其可以被配置为执行路由和/或交换操作。asic可以经由总线610与网络设备600中的其他组件通信,以交换数据和信号并协调网络设备600的各种类型的操作,例如,路由、交换和/或数据存储操作。
109.总之,描述了用于在虚拟服务链中提供吞吐量保证的系统、方法和计算机可读介质。可以对在多个虚拟节点上运行的多个拼接的虚拟化网络功能形成的虚拟服务链进行监视。内联统计代理可以生成虚拟服务链的操作的内联统计。此外,可以从内联统计中识别虚拟服务链的实际吞吐量。接下来,可以通过将虚拟服务链的实际吞吐量与虚拟服务链的预期吞吐量进行比较来为虚拟服务链提供吞吐量保证。
110.为了解释清楚,在一些实例中,本技术可以被呈现为包括单独的功能块,这些功能块包括设备、设备部件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。
111.在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含位流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身的介质。
112.根据上述示例的方法可以使用计算机可执行指令来实现,这些计算机可执行指令被存储或以其他方式从计算机可读介质中获得。这些指令可以包括例如指令和数据,该指令和数据使得或以其他方式配置通用计算机、专用计算机或专用处理设备,以执行特定功能或功能组。可以通过网络访问部分所使用的计算机资源。计算机可执行指令可以是例如二进制、中间格式指令(例如,汇编语言、固件或源代码)。可用于存储指令、使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设有非易失性存储器的usb设备、网络存储设备等。
113.实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种形式因素中的任一种。此类形式因素的典型示例包括笔记本电脑、智能手机、小型个
人电脑、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以体现在外围设备或附加卡中。作为进一步的示例,此类功能也可以在不同芯片或在单个设备中执行的不同进程之间的电路板上实现。
114.指令、用于传送这些指令的介质、用于执行这些指令的计算资源以及用于支持这些计算资源的其他结构是用于提供在这些公开内容中描述的功能的手段。
115.尽管使用了各种示例和其他信息来解释所附权利要求范围内的方面,但不应基于此类示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员将能够使用这些示例以推导出各种实施方式。此外,虽然可能已经以特定于结构特征和/或方法步骤示例的语言描述了一些主题,但是应当理解,所附权利要求书中限定的主题不一定限于这些描述的特征或动作。例如,此类功能可以不同地分布或在不同于本文所标识的部件的部件中执行。相反,所描述的特征和步骤被公开为所附权利要求书范围内的系统的部件和方法的示例。
116.记载“至少一者”的权利要求语言指的是集合中的至少一者或指示该集合中的一个成员或该集合中的多个成员满足权利要求。例如,记载“a和b中的至少一者”的权利要求语言表示“a”、“b”、或“a和b”。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1