CN113316769A - 网络功能虚拟化中使用基于规则反馈的事件优先级的方法 - Google Patents
网络功能虚拟化中使用基于规则反馈的事件优先级的方法 Download PDFInfo
- Publication number
- CN113316769A CN113316769A CN201980088924.2A CN201980088924A CN113316769A CN 113316769 A CN113316769 A CN 113316769A CN 201980088924 A CN201980088924 A CN 201980088924A CN 113316769 A CN113316769 A CN 113316769A
- Authority
- CN
- China
- Prior art keywords
- event
- derived condition
- network
- condition
- derived
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000009471 action Effects 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims description 17
- 238000009826 distribution Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 30
- 230000006855 networking Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- OOXMVRVXLWBJKF-DUXPYHPUSA-N n-[3-[(e)-2-(5-nitrofuran-2-yl)ethenyl]-1,2,4-oxadiazol-5-yl]acetamide Chemical compound O1C(NC(=O)C)=NC(\C=C\C=2OC(=CC=2)[N+]([O-])=O)=N1 OOXMVRVXLWBJKF-DUXPYHPUSA-N 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 4
- 238000012913 prioritisation Methods 0.000 description 4
- 230000005641 tunneling Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
事件收集器实现了一种利用来自事件处理器的反馈来确定转发到该事件处理器的事件的优先级的方法。该方法包括:响应于规则引擎中的成功匹配动作从事件处理器接收反馈,该反馈包括派生条件,该派生条件是在规则的匹配部分中存储的条件的广义版本;确定派生条件是否存储在事件优先级器中;以及响应于事件优先级器中不存在派生条件,将派生条件与初始到期定时器和命中计数器一起存储在事件优先级器中;以及响应于在事件优先级器中存在派生条件,更新事件优先级器中的派生条件的命中计数器和到期定时器。
Description
技术领域
本发明的实施例涉及网络功能虚拟化领域;并且更具体地,涉及管理与网络功能虚拟化相关的事件的优先级。
背景技术
网络功能虚拟化(NFV)是一种将虚拟化应用于网络节点的操作的技术。NFV可以虚拟化网络设备功能,以将它们与给定网络设备及其硬件的操作分开。然后可以在相关联的网络设备的本地或远程执行网络设备功能。
虚拟化网络功能或VNF可以由位于通用计算系统、一组服务器、交换机和/或存储设备之上的一个或多个运行不同软件和进程的虚拟机组成。VNF可以在云计算环境中分布和实施。通过这种方式,网络节点的功能不需要定制的专用硬件组件实现每个网络功能。
VNF提供了资源利用方面的优势,其使网络功能能够在更优化使用网络内资源的位置执行。例如,可以在数据中心而不是在网络设备处执行更复杂或资源密集的网络功能,从而使网络设备能够利用更少的资源,从而降低网络设备的组件成本。
然而,由于VNF功能是远程执行的,因此VNF会产生附加的通信开销来将数据中继到网络设备以及从网络设备中继数据。用于管理VNF的附加基础设施会降低计算效率的一些增益,并且可以提高网络中的带宽利用率。
发明内容
在一个实施例中,事件收集器实现了一种利用来自事件处理器的反馈来确定转发到该事件处理器的事件的优先级的方法。该方法包括:响应于规则引擎中的成功匹配动作,接收来自事件处理器的反馈,该反馈包括派生条件,该派生条件是在规则的匹配部分中存储的条件的广义版本;确定派生条件是否存储在事件优先级器中;以及响应于事件优先级器中不存在派生条件,将派生条件与初始到期定时器和命中计数器一起存储在事件优先级器中;以及响应于在事件优先级器中存在派生条件,更新事件优先级器中的派生条件的命中计数器和到期定时器。
在另一实施例中,计算设备实现了事件收集器利用来自事件处理器的反馈来确定转发到该事件处理器的事件的优先级的方法。计算设备包括其中存储有事件收集器的非暂时性机器可读介质,以及耦合到非暂时性机器可读介质的处理器。处理器执行事件收集器。事件收集器响应于规则引擎中的成功匹配动作,接收来自事件处理器的反馈。反馈包括派生条件,该派生条件是规则的匹配部分中存储的条件的广义版本。事件收集器确定派生条件是否存储在事件优先级器中,响应于事件优先级器中不存在派生条件,将派生条件与初始到期定时器和命中计数器一起存储在事件优先级器中,并响应于在事件优先级器中存在派生条件,更新事件优先级器中的派生条件的命中计数器和到期定时器。
附图说明
通过参考以下用于说明本发明实施例的描述和附图,可以最佳地理解本发明。在附图中:
图1是网络功能虚拟化架构的一个实施例的示意图。
图2是事件处理器和事件收集器的一个实施例的框图。
图3是编排的基础设施205、事件收集器203和事件处理器201之间的过程序列的一个示例实施例的示意图。
图4是事件处理器和事件收集器设备的过程的一个实施例的框图。
图5是用于事件处理的过程的一个实施例的示意图。
图6是事件收集器转发事件的操作的一个实施例的示意图。
图7A示出了根据本发明的一些实施例的示例性网络内的网络设备(ND)之间的连接性以及ND的三种示例性实现。
图7B示出了根据本发明一些实施例的用于实现专用网络设备的示例方式。
图7C示出了根据本发明的一些实施例的可以耦合虚拟网元(VNE)的各种示例性方式。
图7D示出了根据本发明一些实施例的在每个ND上具有单个网络单元(NE)的网络,在该直接方案中,对比了(传统路由器常用的)传统分布式方法与用于维护可达性和转发信息(也被称为网络控制)的集中式方法。
图7E示出了根据本发明的一些实施例的以下简单情况:每个ND实现单个NE,而集中式控制平面将不同ND中的多个NE抽象为(表示)虚拟网络之一中的单个NE。
图7F示出了根据本发明的一些实施例的以下情况:在不同ND上实现多个VNE并且多个VNE彼此耦合,以及集中式控制平面将上述多个VNE加以抽象,使得它们表现为虚拟网络之一中的单个VNE。
图8示出了根据本发明的一些实施例的具有集中式控制平面(CCP)软件850的通用控制平面设备。
具体实施方式
以下描述描述了用于改进网络功能虚拟化的事件处理操作的方法和装置。改进的事件处理包括一种方法,事件收集器通过该方法从外部事件处理器收集反馈以创建数据结构,该数据结构用于确定转发到同一事件处理器的事件的优先级。在规则引擎中成功匹配动作之后,向事件收集器发送来自事件处理器的反馈。反馈包含规则的匹配部分中存储的条件的广义版本。事件收集器将这些广义条件以及每个条目的到期定时器和命中计数器存储在数据结构(例如,事件优先级器)中。在一些实施例中,可以不使用到期定时器。当多于一次收到相同的广义条件时,重置到期定时器。每次接收到广义条件时,递增命中计数器。事件收集器可以将这个数据结构的大小限制在特定数量的广义条件,使用到期定时器或其他方式来实现这一点。事件收集器针对事件优先级器中与事件相匹配的所有广义条件使用命中计数器的总和、平均值、中值、众数或类似函数来确定该事件的优先级。事件收集器将进入的事件保留在优先级队列中以供内部处理或外部分发,使用由事件优先级器分配的事件优先级来确定事件出列和处理/转发的顺序(例如,优先级越高,事件越早被处理/转发)。
在以下描述中,阐述了大量的具体细节,例如逻辑实现、操作码(opcode)、用于指定运算数的手段、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/整合选择,以提供对本发明的更全面的理解。然而,本领域技术人员将意识到,本发明可以在没有这些具体细节的情况下实施。在其他实例中,并未详细示出控制结构、门级别电路和全软件指令序列,以不使本发明模糊。利用所包括的描述,本领域普通技术人员将能够在不进行过度试验的情况下实现恰当的功能。
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括该特定特征、结构或特性。此外,这些短语不必指同一实施例。此外,当结合实施例描述具体特征、结构或特性时,应认为结合其他实施例(不管是否是显式描述的)来实现这种特征、结构或特性是在本领域技术人员的知识内的。
在本文中,括号中的文本和具有虚线边界(例如,长划点虚线、短划线虚线、点虚线、以及点)的框可以用于示出向本发明实施例添加附加特征的可选操作。然而,这种标注不应当被视为意味着:在本发明的某些实施例中,他们是仅有的选项或可选操作,和/或具有实线边界的框不是可选的。
在以下描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语不旨在作为彼此的同义词。“耦合”用于指示两个或更多个元件可以彼此直接或可以不彼此直接物理或电学接触、彼此协作或交互。“连接”用于指示在彼此耦合的两个或更多个元件之间建立通信。
电子设备使用机器可读介质(也被称为计算机可读介质)来存储和(内部和/或在网络上与其他电子设备)传输代码(其由软件指令构成,且有时被称为计算机程序代码或计算机程序)和/或数据,机器可读介质是例如机器可读存储介质(例如,磁盘、光盘、固态驱动器、只读存储器(ROM)、闪存设备、相变存储器)和机器可读传输介质(也被称为载体)(例如,电、光、无线电、声或其他形式的传播信号——例如载波、红外信号)。因此,电子设备(例如,计算机)包括硬件和软件,例如,一个或多个处理器的集合(例如,其中处理器是微处理器、控制器、微控制器、中央处理单元、数字信号处理器、专用集成电路、现场可编程门阵列、其他电子电路、前述一项或多项的组合),其耦合到一个或多个机器可读存储介质以存储用于在该处理器集合上执行的代码和/或以存储数据。例如,电子设备可以包括包含代码在内的非易失性存储器,因为即使在电子设备关闭(当掉电时)时非易失性存储器也可以保持代码/数据,以及在打开电子设备时,通常将要由该电子设备的处理器执行的该部分代码从较慢的非易失性存储器中拷贝到该电子设备的易失性存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))中。通常的电子设备还包括用于与其他电子设备建立网络连接(以使用传播信号来发射和/或接收代码和/或数据)的一个或多个物理网络接口的集合。例如,物理NI的集合(或物理NI的集合与执行代码的处理器集合的组合)可以执行任何格式化、编码或转换,以允许电子设备(通过有线和/或无线连接)发送和接收数据。在一些实施例中,物理NI可以包括能够通过无线连接从其他电子设备接收数据和/或经由无线连接将数据送出到其他设备的无线电电路。该无线电电路可以包括适合于射频通信的发射机、接收机和/或收发机。无线电电路可以将数字数据转换为具有适当参数(例如,频率、定时、信道、带宽等)的无线电信号。然后,无线电信号可以经由天线发射给适当的接收者。在一些实施例中,物理NI的集合可以包括网络接口控制器(NIC),也称为网络接口卡、网络适配器或局域网(LAN)适配器。通过将电缆插入连接到NIC的物理端口,NIC可以便于将电子设备连接到其他电子设备,从而允许它们进行有线通信。本发明实施例的一个或多个部分可以使用软件、固件、和/或硬件的不同组合来实现。
网络设备(ND)是将网络上其它电子设备(例如,其它网络设备、端用户设备)加以通信互联的电子设备。一些网络设备是为多个联网功能(例如,路由、桥接、交换、层2聚合、会话边界控制、服务质量、和/或订户管理)提供支持、和/或为多应用服务(例如,数据、语音、和视频)提供支持的“多服务网络设备”。
图1是网络功能虚拟化架构的一个实施例的示意图。所示的网络功能虚拟化(NFV)架构是通过示例的方式提供的,以说明实施例的上下文。NFV架构包括NFV管理和编排(NFVMANO)架构(例如,由欧洲电信标准协会(ETSI)NFV工作组定义的NFV MANO)。NFV MANO在云和类似的计算环境中组织虚拟网络功能(VNF)的生命周期管理。
NFV MANO由不同的功能块组成。不同的功能块使用事件来确定使用可用的虚拟化资源所要采取的动作。事件可以是任何传达一些与指示器相关的数据的消息(例如:VNF负载为50%,内存消耗为容量的95%,或类似信息)。
NFV MANO 101管理VNF 103和相关联的组件。这些组件包括元件管理(EM)105。EM105为VNF 103提供配置、故障管理、记帐、收集和安全性。EM 105可以从与底层虚拟化资源相关的VNF管理器(VNFM)107接收与其任务相关的事件和其他信息。EM 104基于从VNF 103收集到的数据向VNFM 107发送事件。
VNFM 107管理一个或多个VNF实例103的生命周期。VNFM从底层基础设施(例如,从一个或多个虚拟化基础设施管理器(VIM)113)以及从具有与VNF 103相关的信息的EM 105接收事件。VNFM107还可以使用该信息来采取动作(例如:修复、扩展和配置)。
网络功能虚拟化协调器(NFVO)109管理和协调网络服务,其包括一个或多个VNF103以及它们之间的连接性。在一些实施例中,策略管理NFVO行为。NFVO可以从VNFM 107接收事件,并考虑到由运营支持系统/业务支持系统(OSS/BSS)层111定义的规则而采取动作。NFV架构的这些功能块通过参考点(例如,表示状态转移(REST)接口)连接。NFV事件可能发生在VNF 103中或其底层(虚拟化)基础设施中。例如,NFV事件可以通过Ve-Vnfm参考点进行传输,Ve-Vnfm参考点可以被拆分为Ve-Vnfm-em和Ve-Vnfm-vnf。
参考点(例如,Ve-Vnfm参考点)描述了一组应用编程接口(API)。例如,五个API可以服务于Ve-Vnfm参考点,其中,这些API中的三个可以生成VNF事件。在该示例中,可以生成从VNFM 107到EM 105的性能管理事件、从VNFM 107到EM 105的故障管理事件、以及从EM105或VNF 103到VNFM 107的指示器。
Or-Vnfm参考点定义了如何将经由Ve-Vnfm参考点收集到的事件信息发送给NFVO109。VNFM 107可以进行一些聚合或关联,然后经由Or-Vnfm参考点将该事件信息转发到NFVO 109。VNFM 107可以被视为充当来自底层VNF 103和VNFI 113的事件的代理。因此,NFV MANO允许事件通知以不同的方向流向不同的组件(例如,从VNFM 107到EM 105、从EM105到VNFM 107、从VNFM 107到NFVO 109、以及类似的事件移动)。这意味着更集中的组件(例如,NFVO 109)最终可以从不同的编排资源(例如,VNF 103、网络服务、网络功能虚拟化基础没施(NFVI)115资源)接收大量事件。
NFVO 109可以利用策略或规则来确定对网络条件变化的反应。这些策略和规则的实施可以由规则引擎完成。规则引擎通过检查条件(例如,当事件或一些其他触发器发生时)并在条件满足时采取动作来工作。规则可以演变为复杂且相互依存的。在一些实施例中,NFVO 109包括被称为VNF事件流传输(VES)的统一事件收集和流传输实现。
NFVI115由部署VNF103的存在点组成。NFVI115与VNF103和VIM113一起工作以提供资源供VNF103执行。NFVI115在硬件上提供了虚拟化层,以抽象出可由VNF103使用的硬件资源。硬件资源可以分布在多个计算或联网设备上。
NFV架构在事件处理方面存在若干个问题。从许多源(例如,VNFM)107收集事件的NFV实体通常会针对其管理的资源(例如,VNF 103/Ems 105和VIM 113)接收和聚合许多事件。在较大的NFV基础设施中,这些事件的体量可能相当大。服务提供商最感兴趣的是:最大化此类事件的处理能力、优化响应时间(即,减少事件发生和基于其信息做出编排决策之间的时间)。然而,当前的NFV架构无法实现这一目标。实施例实现了目标,使得重要事件被优先考虑并从事件收集器(例如,VNFM 107)转发到事件处理器(例如,NFVO 109)。
此外,网络和网络基础设施是动态的。编排规则(或策略)可能经常在网络基础设施中发生变化,导致在某一时间相关的事件在随后的时间变得不太相关。因此,为VNFM 107上的事件预先分配静态优先级并不理想,因为系统将无法动态地响应环境变化(例如,给定类型的事件变得与编排策略的变化更相关)。现有的NFV MANO框架没有为事件提供优先化方案。
实施例克服了现有技术的局限性并解决了上述问题。实施例提供了一种事件处理器(例如,NFVO 109)指导事件收集器(例如,VNFM 107)的方法,在该事件收集器上的事件导致网络中的决策并指示(或暗示)应优先考虑哪些事件类型。该暗示基于规则引擎中的匹配规则,事件处理器可以利用这些规则。例如,NFVO 109可以通过VNFM 107从所有VNF 103接收大量有关带宽利用率的事件,但它们仅与区域Y中给定类型的VNF X相关(例如,用于按比例放大/缩小)。
为了解决转发优先级,实施例提供了优先级队列。优先级队列可以以任何形式实现(例如,使用基于堆的数据结构)。事件收集器和事件处理器的交互可以由可配置的优先级队列代理,以帮助首先转发重要事件。事件优先级将基于由事件处理器中继的信息在事件收集器中分配,并且优先级较高的事件将首先被处理(并可选择地聚合/关联)和转发。
为了解决具有变化的规则的动态环境,实施例提供了一种机制,其中,事件处理器不断地向事件收集器提供暗示(反馈),使得优先级队列可以自动调整。当针对给定规则采取动作时,基于从规则引擎获得的条件,在事件处理器中生成该反馈。换句话说,每当由于事件而使用(匹配)规则时,事件收集器都会被告知这一点,使得它可以调谐其行为。事件收集器将保留负责匹配进入事件并为其分配优先级的数据结构。
实施例提供了优于现有技术的优点。实施例使NFV系统能够基于对规则引擎的使用动态地确定事件的优先级。优点包括:缩短网络中针对重要事件的响应时间;适应变化的网络条件,使得优先化不会过时;低开销,因为实施例使用低复杂性和优化的数据结构和算法,而不是更复杂、更难实现的学习系统。
图2是事件处理器和事件收集器的一个实施例的框图。该图示出了事件处理器201和事件收集器203以及其他组件的元件之间的关系。事件处理器201和事件收集器203可以是NFV架构中的任何事件处理组件和任何事件收集组件。这些组件可以经由编排的基础设施205与NFV架构的其他组件进行通信。
事件处理器201包括动作处理组件209、规则引擎211和事件处理组件213。这些组件的操作在下文中关于图3-6进行描述。规则引擎211与规则数据库207通信,规则数据库207可以具有任何格式,并且可以是能够存储和取回规则引擎211应用的规则的任何类型的数据库。这些规则可以针对要采取的相关动作或一组相关动作定义一组标准。如本文所使用的“集合”指代包括一个项目的任何正整数个的项目。规则可以包括系统管理员定义的策略、本文讨论的派生条件和类似类型的规则。事件收集器203包括事件收集组件217和事件优先化组件215。类似地,这些组件的操作在下文中关于图3-6进行描述。
将参照其他附图的示例实施例来描述流程图中的操作。然而,应当理解的是,流程图中的操作可以由本发明中除了参照其他附图描述的那些实施例之外的实施例来执行,且本发明的参照这些其他附图讨论的实施例可以执行与参照流程图来讨论的那些实施例不同的操作。
充当偶数处理器设备201和事件收集器203的NFV架构的组件可以在特定计算或网络设备处实现,或者可以在云计算环境中实现。所有功能和组件都可能受到虚拟化(例如,NFVO可以在与VNFM分开的节点中运行)。这不会改变实施例的内部工作,但可能会对实现参考点的接口的实现方式(例如,远程REST接口相对于直接函数调用)产生影响。
图3是编排的基础设施205、事件收集器203和事件处理器201之间的过程序列的一个示例实施例的示意图。可以响应于编排的基础设施205生成最初发送给事件收集器203的事件而启动实施例的过程。事件收集器203可以基于定时器清除到期或派生条件,基于事件优先级器分配事件优先级,并将事件存储在适当的优先级队列中。事件收集器从优先级队列中取回下一个事件,并将该事件分发给事件处理器201。事件处理器201基于由规则引擎确定的匹配规则来处理事件。事件处理器201还可以确定匹配规则的派生条件,并将其作为反馈提供给事件收集器203。然后,事件收集器203针对派生条件更新事件优先级。参照图4-6更详细地描述该序列。
图4是事件处理器和事件收集器设备的过程的一个实施例的框图。事件处理器响应于接收到事件而操作,并对该事件执行动作(框401)。事件处理器可以是NFV架构中能够处理事件的任何组件。类似地,事件收集器可以是NFV架构中能够生成和/或收集和转发事件的任何组件。在一些实施例中,事件处理器对所接收到的事件应用预处理(框403)。事件的预处理可以包括过滤事件、调整或修改事件、或类似动作,所述类似动作可以基于类型、来源或类似标准应用于所有事件或特定事件。
事件处理器(例如,NFVO)处理来自事件收集器(例如,VNFM)的事件,并且基于规则引擎对事件的处理,如果事件与一个或多个规则相匹配,则决定基于该事件在网络中采取动作(框405)。例如,NFVO可能决定扩大VNF(即,创建VNF的另一个实例),因为NFVO接收到触发规则的动作的事件。规则将由匹配条件和动作组成,因为NFVO实现了规则引擎,该规则引擎具有一组定义的规则以应用于所接收到的事件。在一个示例中,规则可以是“如果区域X中的一个VNF具有CPU使用率超过85%的5个或更多个观察值(条件),则将创建同一VNF的另一个实例(动作)。”
另外,事件处理器向事件收集器发送反馈(框407)。例如,每次NFVO使用事件来采取动作时,NFVO可以将规则匹配的特殊派生的条件发送回VNFM。该反馈信息在本文中被称为“派生条件”,其可以与来自VNF和VIM的进入事件相匹配。该派生条件可以针对每个规则预先配置,或者可以通过将原始条件转换为其派生形式的试探法获得,例如,通过从原始条件中移除标量和聚合信息。
继续以上先前的示例,NFVO使用的原始条件是“如果区域X中的一个VNF具有CPU使用率超过85%的5个或更多个观察值”。然后,在这种情况下,派生条件是“如果事件是关于区域X中VNF的CPU使用率”。换言之,从原始条件中删除了标量条件元素(“超过85%的使用率”)和聚合/关联元素(“具有5个或更多个观察值”),使得仅派生广义条件。在一些实施例中,该派生条件也是由操作者针对每个规则预先配置的,使得不需要派生过程。依赖于NFV架构环境和操作者的意图,派生方法可以具有不同的特性。
事件收集器管理从事件处理器接收到的反馈(框451)。事件收集器可以在被称为事件优先级器的数据结构中存储具有命中计数器和到期定时器的派生条件。该数据结构的类型可以包括但不限于派生条件列表、管理树结构或类似的数据结构。该数据结构使事件收集器能够基于来自事件处理器的反馈和配置来评估进入事件是否与之前看到的模式相匹配。
到期定时器的实现可以依赖于事件收集器的架构。如果使用事件驱动架构,则到期时间可以是在事件环路中注册的定时器。在其他架构中,基于时间戳的机制可以用于在接收到事件时在验证时跳过和移除派生条件,或用于周期性地清理事件优先级器。通过该到期定时器,事件优先级器充当时间感知最近最少使用的缓存(TLRU)。在一些实施例中,事件优先级器还可以被限制为特定大小,以避免可能损害性能的昂贵查找。从事件优先级器获得的命中计数器值用于确定事件的优先级。事件本身被存储在优先级队列中,如下文进一步描述的。
事件收集器还使用事件优先级器管理规则更新和到期。当事件收集器从事件处理器接收派生条件时(框453),事件收集器检查派生条件是否已经存储在事件优先级器中(框455)。如果事件优先级器中确实存在派生条件,则重置其到期定时器并增加命中计数器(框459)。如果事件优先级器中不存在派生条件,则将派生条件添加到事件优先级器并将到期定时器设置为默认值,并且将命中计数器设置为1(框457)。
移除达到到期定时器的规则。这使得系统行为动态化。到期定时器机制保证事件优先级器不会变得过载或陈旧。在其他实施例中,事件优先级器可以使用其他机制来移除陈旧或未使用的规则。
图5是用于事件处理的过程的一个实施例的示意图。该过程可以响应于事件收集器接收到的新事件而被触发(框501)。当新事件发生在NFV架构中并被事件收集器接收时,它们与由事件收集代理存储在事件优先级器中的一组派生条件相匹配(框503)。如果所接收到的事件与存储在事件优先级器中的派生条件或类似规则相匹配(例如,来自区域X中的VNF的CPU通知),则使用与该派生条件相关联的命中计数器来确定事件的优先级。如果事件与多于一个派生条件或规则相匹配,则用于优先化的值是所有匹配规则的计数器的函数(框505)。该函数可以是计数器的总和、平均值、中值、众数或类似函数,所述类似函数应用于计数器以派生事件优先级值。
然后,将接收到的事件存储在一组优先级队列中的一个中(框509)。优先级队列可以是按分配给事件的优先级值排序的类似堆的数据结构。优先级队列可以用于选择要处理的下一个事件,以用于事件收集器的内部目的(例如,聚合/关联)或用于最终分发到事件处理器。
只要存储事件的优先级基于事件优先级器的输出,并且只要这些优先级队列具有严格的顺序(例如,队列A中的事件总是在队列B中的事件之前被服务),出于任何目的,在事件收集设备中可以同时使用多于一个优先级队列。事件收集代理基于任何可配置标准来确定将事件放置在可用优先级队列中的哪一个中(框507)。在一个示例中,可以利用多个优先级队列来避免事件饥饿。如果只处理高优先级事件,则可能永远不会处理低优先级事件。事件收集器可以选择将部分时间(例如,70%)专用于处理一个队列中的高优先级事件,而将较少时间量(例如,30%)专用于存储在另一队列中的低优先级事件。
图6是事件收集器转发事件的操作的一个实施例的示意图。当事件收集器检测到发送事件的需求时(框601),选择优先级队列之一(框603)。在一个示例中,事件收集器包括确定何时发送事件的异步事件环路。在一些情况下,有来自由事件收集器服务的事件处理器的显式请求。在一个示例中,事件收集代理可以实现预先配置的策略,例如上面示例中提及的70%-30%拆分。事件收集代理从所选择的优先级队列中选择具有最高优先级的事件并向事件处理器发送所选择的事件(框605)。
图7A示出了根据本发明的一些实施例的示例性网络内的网络设备(ND)之间的连接性以及ND的三种示例性实现。图7A示出了ND 700A-700H,以及它们借助于700A-700B、700B-700C、700C-700D、700D-700E、700E-700F、700F-700G和700A-700G之间的线路的连接性,以及700H和700A、700C、700D和700G中的每一个的连接性。这些ND是物理设备,且这些ND之间的连接性可以是无线的或有线的(通常被称为链路)。从ND 700A、700E和700F延伸的附加线示出了:这些ND担当网络的进入点和离开点(且从而这些ND有时被称为边缘ND;而其他ND可以被称为核心ND)。
图7A中的两个示例性ND实施方式是:1)使用定制专用集成电路(ASIC)和专用操作系统(OS)的专用网络设备702;以及2)使用通用现成(COTS)处理器和标准OS的通用网络设备704。
专用网络设备702包括联网硬件710,其包括一个或多个处理器712的集合、转发资源714(其通常包括一个或多个ASIC和/或网络处理器)、以及物理网络接口(NI)716(通过其进行网络连接,例如ND 700A-700H之间的连接性所显示的那些)、以及其中存储有联网软件720的非暂时性机器可读存储介质718。在操作期间,联网软件720可以由联网硬件710来执行,以实例化一个或多个联网软件实例722的集合。联网软件实例722中的每一个,以及联网硬件710中执行该联网软件实例的那部分(是专用于该联网软件实例的硬件和/或由该联网软件实例与其他联网软件实例722暂时共享的硬件的时间片)形成单独的虚拟网络元件730A-730R。虚拟网络元件(VNE)730A-730R中的每一个包括控制通信和配置模块732A-732R(有时被称为本地控制模块或控制通信模块)以及转发表734A-734R,使得给定的虚拟网络元件(例如,730A)包括控制通信和配置模块(例如,732A)、一个或多个转发表(例如,734A)的集合、以及联网硬件710中执行虚拟网络元件(例如,730A)的那部分。网络软件720可以包括本文所述的事件处理器和/或事件收集器765,作为NFV软件和基础设施的一部分。
专用网络设备702经常在物理上和/或逻辑上被视为包括:1)ND控制平面724(有时称为控制平面),包括执行控制通信和配置模块732A-732R的处理器712;以及2)ND转发平面726(有时称为转发平面、数据平面或媒体平面),包括使用转发表734A-734R和物理NI716的转发资源714。作为ND是路由器(或实现路由功能)的示例,ND控制平面724(执行控制通信和配置模块732A-732R的处理器712)通常负责参与控制如何路由(例如,数据的下一跳和该数据的输出物理NI)数据(例如,分组)并负责在转发表734A-734R中存储该路由信息,以及ND转发平面726负责在物理NI 716上接收该数据并基于转发表734A-734R将该数据转发出物理NI 716中的适当的物理NI。
图7B示出了根据本发明一些实施例的用于实现专用网络设备702的示例方式。图7B示出了包括卡738(通常是可热插拔的)在内的专用网络设备。尽管在一些实施例中,卡738具有两种类型(作为ND转发平面726来工作的一个或多个(有时被称为线路卡)、以及进行工作以实现ND控制平面724的一个或多个(有时被称为控制卡)),备选实施例可以将功能结合到单个卡上和/或包括附加卡类型(例如,一种附加类型的卡被称为服务卡、资源卡、或多应用卡)。服务卡可以提供特殊处理(例如,层4到层7服务(例如,防火墙、互联网协议安全(IPsec)、安全套接字层(SSL)/传输层安全(TLS)、入侵检测系统(IDS)、对等(P2P)、基于IP的语音(VoIP)会话边界控制器、移动无线网关(网关通用分组无线电服务(GPRS)支持节点(GGSN)、演进分组核心(EPC)网关))。作为示例,服务卡可以用于终止IPsec隧道,并执行伴随的认证和加密算法。这些卡通过示出为背板736的一个或多个互联机制耦合在一起(例如,第一全网格耦合线路卡以及第二全网格耦合所有卡)。
返回图7A,通用网络设备704包括硬件740,硬件740包括一个或多个处理器742(其经常是COTS处理器)的集合和物理NI746、以及其中存储有软件750的非暂时性机器可读存储介质748。在操作期间,处理器742执行软件750以实例化一个或多个应用764A-764R的一个或多个集合。软件750可以包括本文所述的事件处理器和/或事件收集器765,作为NFV软件和基础设施的一部分。虽然一个实施例不实现虚拟化,但是备选实施例可以使用不同形式的虚拟化。例如,一个这样的备选实施例中,虚拟化层754表示操作系统的内核(或在基础操作系统上执行的简化版),其允许建立多个被称为软件容器762A-762R的多个实例,每个软件容器可以用于执行应用764A-764R的集合中的一个(或多个)应用;其中多个软件容器(也被称为虚拟化引擎、虚拟专用服务器或监狱(jail))是用户空间(通常是虚拟内存空间),它们彼此分离并与其中运行操作系统内核的空间分开;以及其中,除非明确允许,否则在给定用户空间中运行的应用集合不能访问其他进程的内存。在另一个这种备选实施例中,虚拟化层754表示监管程序(有时称为虚拟机盟视器(VMM))或在主机操作系统之上执行的监管程序,并且应用764A-764R的集合中的每一个运行在实例762A-762R内的客户操作系统之上,其称为运行在监管程序之上的虚拟机(在一些情况下,可以将其视为紧密隔离的软件容器形式)——客户操作系统和应用可能不知道它们在虚拟机上运行而不是在“裸机”主机电子设备上运行,或者通过半虚拟化,操作系统和/或应用可以意识到存在虚拟化以用于优化目的。在其他备选实施例中,一个、一些或所有应用程序被实现为单内核,其可以通过直接与应用程序仅编译有限的、提供应用程序所需的特定OS服务的一组库(例如,来自库操作系统(LibOS),包括OS服务的驱动程序/库)来生成。由于单内核可以实现为直接在硬件740上、直接在监管程序上(在这种情况下,单内核有时被描述为在LibOS虚拟机内运行)、或者在软件容器中运行,实施例可以完全由如下的单内核来实现:直接运行在由虚拟化层754表示的监管程序上的单内核、运行在由实例762A-762R表示的软件容器内的单内核、或者单内核和上述技术的组合(例如,单内核和虚拟机都直接运行在监管程序之上,单内核和在不同软件容器内运行的应用的集合)。
一个或多个应用764A-764R的一个或多个集合的实例化以及虚拟化(如果实现的话)统称为软件实例752。每个应用764A-764R集合、相应的虚拟化构造(例如,实例762A-762R)(如果实现的话)、以及执行它们的硬件740的部分(是专用于该执行的硬件和/或临时共享的硬件的时间片),形成单独的虚拟网元760A-760R。
虚拟网元760A-760R执行与虚拟网元730A-730R类似的功能——例如,类似于控制通信和配置模块732A和转发表734A(硬件740的这种虚拟化有时被称为网络功能虚拟化(NFV))。因此,NFV可以用于将很多网络设备类型统一到工业标准高容量服务器硬件、物理交换机、和物理储存设备,它们可以位于数据中心、ND、和客户住宅设备(CPE)中。虽然用对应于一个VNE 760A-760R的每个实例762A-762R来说明本发明的实施例,但是备选实施例可以以更精细的粒度级实现这种对应关系(例如,线卡虚拟机虚拟化线卡,控制卡虚拟机虚拟化控制卡等);应当理解的是,本文参照实例762A-762R与VNE的对应关系描述的技术也适用于使用这种更精细的粒度级和/或单核的实施例。
在某些实施例中,虚拟化层754包括提供与物理以太网交换机类似的转发服务的虚拟交换机。具体地,该虚拟交换机在实例762A-762R和物理NI746之间以及可选地在实例762A-762R之间转发业务;另外,该虚拟交换机可以在按策略不允许彼此通信的VNE760A-760R之间实施网络隔离(例如,通过支持虚拟局域网(VLAN))。
图7A中的第三示例性ND实现是混合网络设备706,其在单个ND或ND内的单个卡中包括定制ASIC/专有OS和COTS处理器/标准OS。在这种混合网络设备的某些实施例中,平台VM(即,实现专用网络设备702的功能的VM)可以向混合网络设备706中存在的联网硬件提供准虚拟化。
不管ND的上述示例实现如何,当考虑由ND实现的多个VNE中的单个一个VNE时,或者在NV当前仅实现单个VNE的情况下,缩写的术语网元(NE)有时被用于指代该VNE。同样在全部上述示例实现中,每个VNE(例如,VNE730A-730R、VNE760A-760R、以及混合网络设备706中的那些)在物理NI(例如,716、746)上接收数据并将该数据转发出物理NI(例如,716、746)中的恰当物理NI。例如,实现IP路由器功能的VNE基于IP分组中的一些IP首部信息来转发IP分组;其中IP首部信息包括源IP地址、目的IP地址、源端口、目的端口(其中“源端口”和“目的端口”在此指代协议端口,与ND的物理端口相对)、传输协议(例如,用户数据报文协议(UDP)、传输控制协议(TCP)和差异化服务编码点(DSCP)值。
图7C示出了根据一些实施例的可以耦合VNE的各种示例性方式。图7C示出了在ND700A中实现的VNE 770A.1-770A.P(以及可选地,VNE 770A.Q-770A.R)以及ND 700H中的VNE770H.1。在图7C中,VNE 770A.1-P彼此分离,从某种意义上说,它们可以接收来自ND 700A外部的分组并转发ND 700A外部的分组;VNE 770A.1与VNE 770H.1耦合,并且因此它们在它们各自的ND之间传送分组;VNE 770A.2-770A.3可以在它们本身之间可选地转发分组,而无需将它们转发到ND 700A外部;并且VNE 770A.P可以可选地是VNE链中的第一个,该VNE链包括VNE 770A.Q,然后是VNE 770A.R(这有时被称为动态服务链,其中,VNE系列中的每个VNE提供不同的服务——例如,一个或多个层4-层7网络服务)。尽管图7C示出了VNE之间的各种示例性关系,备选实施例可以支持其他关系(例如,更多/更少的VNE、更多/更少的动态服务链、具有一些公共VNE和一些不同VNE的多个不同动态服务链)。
图7A的ND例如可以形成互联网或私有网络的一部分;以及其他电子设备(未示出,例如端用户设备,包括工作站、膝上型计算机、上网本、平板电脑、掌上上型计算机、移动电话、智能电话、平板手机、多媒体电话、基于网际协议的语音(VoIP)电话、终端、便携式媒体播放器、GPS单元、可穿戴设备、游戏系统、机顶盒、支持互联网的家用电器)可以耦合到网络(直接或通过诸如接入网之类的其他网络),以通过网络(例如,互联网或覆盖(例如,隧道传输)在互联网上的虚拟私有网络(VPN))彼此通信(直接或通过服务器)和/或访问内容和/或服务。这种内容和/或服务通常由属于服务/内容提供商的一个或多个服务器(未示出)或参与对等(P2P)服务的一个或多个端用户设备(未示出)来提供,且可以包括例如公开网页(例如,自由内容、商店前端页面、搜索服务)、私有网页(例如,提供电子邮件服务的用户名/密码访问网页)、和/或基于VPN的公司网络。例如,端用户设备可以耦合(例如,通过(无线或有线)耦合到接入网的客户住宅设备)到边缘ND,边缘ND耦合(例如,通过一个或多个核心ND)到其他边缘ND,该其他边缘ND耦合到充当服务器的电子设备。然而,通过计算和存储虚拟化,在图7A中作为ND操作的一个或多个电子设备也可以托管一个或多个这样的服务器(例如,在通用网络设备704的情况下,一个或多个软件实例762A-762R可以作为服务器操作;对于混合网络设备706也是如此;在专用网络设备702的情况下,一个或多个这样的服务器也可以在由处理器712执行的虚拟化层上运行);在这种情况下,服务器被称为与该ND的VNE位于同一地点。
虚拟网络是提供网络服务(例如,L2和/或L3服务)的物理网络(例如,图7A中的那个物理网络)的逻辑抽象。虚拟网络可以被实现为在底层网络(例如,L3网络,如使用隧道(例如,通用路由封装(GRE)、层2隧道传输协议(L2TP)、IPSec)来创建覆盖网络的网际协议(IP)网络)上提供网络服务(例如,层2(L2,数据链路层)和/或层3(L3,网络层)服务)的覆盖网络(有时被称为网络虚拟化覆盖)。
网络虚拟化边缘(NVE)位于底层网络的边缘,并参与实施网络虚拟化;NVE的面向网络侧使用底层网络通过隧道发送帧至其他NVE并且通过隧道从其他NVE接收帧;NVE的面向外部侧向网络外部的系统发送数据并从网络外部的系统接收数据。虚拟网络实例(VNI)是NVE上虚拟网络的特定实例(例如,ND上的NE/VNE、ND上NE/VNE的一部分,在ND中通过仿真将该NE/VNE划分为多个VNE);一个或多个VNI可以在NVE上实例化(例如,作为ND上的不同VNE)。虚拟接入点(VAP)是NVE上用于将外部系统连接到虚拟网络的逻辑连接点;VAP可以是通过逻辑接口标识符(例如,VLAN ID)识别的物理或虚拟端口。
网络服务的示例包括:1)以太网LAN仿真服务(一种基于以太网的多点服务,类似于互联网工程任务组(IETF)多协议标签交换(MPLS)或以太网VPN(EVPN)服务),其中,外部系统通过底层网络上的LAN环境跨网络互连(例如,NVE为不同的此类虚拟网络提供单独的L2 VNI(虚拟交换实例),以及跨底层网络的L3(例如,IP/MPLS)隧道封装);以及2)虚拟化IP转发服务(从服务定义的角度来看,类似于IETF IP VPN(例如,边界网关协议(BGP)/MPLSIPVPN)),其中,外部系统通过底层网络上的L3环境跨网络互连(例如,NVE为不同的此类虚拟网络提供单独的L3 VNI(转发和路由实例),以及跨底层网络的L3(例如,IP/MPLS)隧道封装))。网络服务还可以包括服务质量能力(例如,业务分类标记、业务调节(conditioning)和调度)、安全能力(例如,用于保护客户终端免受源自网络的攻击的过滤器,以避免有缺陷的路由公告)、以及管理能力(例如,完全检测和处理)。
图7D示出了根据本发明一些实施例的在图7A的每个ND上具有单个网元的网络,且在该直观方案中,对比了(传统路由器常用的)传统分布式方法与用于保持可达性和转发信息(也被称为网络控制)的集中式方法。具体地,图7D示出了具有与图7A的ND 700A-700H相同连接性的网元(NE)770A-770H。
图7D示出了分布式方法772跨NE 770A-770H分配用于生成可达性和转发信息的责任;换言之,邻居发现和拓扑发现的过程是分布式的。
例如,在使用专用网络设备702的情况下,ND控制平面724的控制通信和配置模块732A-732R通常包括可达性和转发信息模块以实现一个或多个路由协议,例如,外部网关协议(例如,边界网关协议(BGP)、内部网关协议(IGP)(例如,开放最短路径优先(OSPF)、中间系统到中间系统(IS-IS)、路由信息协议(RIP))、标签分发协议(LDP)、资源预留协议(RSVP)、以及RSVP-流量工程(TE):用于LSP隧道的RSVP的扩展,以及通用多协议标签交换(GMPLS)信令RSVP-TE,其与其他NE通信以交换路由,然后基于一个或多个路由度量选择那些路由。从而,NE 770A-770H(例如,执行控制通信和配置模块732A-732R的处理器712)通过分布式地确定网络内的可达性并计算其各自的转发信息来执行其参与控制如何路由(例如,数据的下一跳以及该数据的输出物理NI)数据(例如,分组)的责任。路由和邻接关系存储在ND控制平面724上的一个或多个路由结构中(例如,路由信息库(RIB)、标签信息库(LIB)、一个或多个邻接关系结构)。ND控制平面724使用基于路由结构的信息(例如,邻接关系和路由信息)对ND转发平面726编程。例如,ND控制平面724将邻接关系和路由信息编程到ND转发平面726上的一个或多个转发表734A-734R(例如,转发信息库(FIB)、标签转发信息库(LFIB)、以及一个或多个邻接关系结构)中。对于层2转发,ND可以存储一个或多个桥接表,该一个或多个桥接表用于基于该数据中的层2信息来转发数据。尽管上面的示例使用了专用网络设备702,相同的分布式方法772可以实现在通用网络没备704和混合网络设备706上。
图7D示出了集中式方法774(也被称为软件定义联网(SDN)),其将做出与从底层系统(该底层系统向所选目的地转发业务)发送业务的位置有关的决定的系统加以解耦合。所示出的集中式方法774具有用于在集中式控制平面776(有时被称为SDN控制模块、控制器、网络控制器、开放流控制器、SDN控制器、控制平面节点、网络虚拟化机构、或管理控制实体)中生成可达性和转发信息的责任,并从而使得邻居发现和拓扑发现的过程是集中式的。集中式控制平面776具有针对数据平面780(有时被称为基础架构层、网络转发平面、或转发平面(其不应当与ND转发平面相混淆))的南向接口(south boundinterface)782,该数据平面780包括NE770A-770H(有时被称为交换机、转发元件、数据平面元件、或节点)。集中式控制平面776包括网络控制器778,网络控制器778包括确定网络内的可达性并通过南向接口782向数据平面780的NE770A-770H分发转发信息的集中式可达性和转发信息模块779(其可以使用开放流协议)。从而,网络情报(networkintelligence)被集中在通常与ND分离的电子设备上执行的集中式控制平面776中。
例如,在数据平面780中使用专用网络设备702的情况下,ND控制平面724的每个控制通信和配置模块732A-732R通常包括提供南向接口782的VNE侧的控制代理。在该情况下,ND控制平面724(执行控制通信和配置模块732A-732R的处理器712)通过与集中式控制平面776通信的控制代理来执行其参与控制如何路由(例如,数据的下一跳和该数据的输出物理NI)数据(例如,分组)的责任,以从集中式可达性和转发信息模块779接收转发信息(以及在一些情况下的可达性信息)(应当理解:在本发明的一些实施例中,除了与集中式控制平面776通信之外,控制通信和配置模块732A-732R还可以在确定可达性和计算转发信息时扮演某个角色——尽管不像分布式方法情况下那么多;这样的实施例通常被视为落入集中式方法774中,但也可以被视为是混合方法)。集中式控制平面776可以包括如本文所述的事件处理器和/或事件收集器781或其作为由集中式控制平面776管理的NFV软件和基础设施的一部分的方面。
尽管上述示例使用了专用网络设备702,可以使用通用网络设备704和混合网络设备706来实现同样的集中式方法774(例如,每个VNE760A-760R通过与集中式控制平面776通信来执行其控制如何路由(例如,该数据的下一跳和该数据的输出物理NI)数据(例如,分组)的责任,以从集中式可达性和转发信息模块779接收转发信息(以及在一些情况下,可达性信息);应当理解:在本发明的一些实施例中,除了与集中式控制平面776通信之外,VNE760A-760R还可以在确定可达性和/或计算转发信息时扮演某个角色——尽管不像分布式方法情况下那么多)。事实上,对SDN技术的使用可以增强通常在通用网络设备704或混合网络设备706实现中使用的NFV技术,因为NFV能够通过提供其上可以运行SDN软件的基础架构来支持SDN,且因为NFV和SDN都打算利用商品服务器硬件和物理交换机。
图7D还示出了集中式控制平面776具有针对应用层786的北向接口784,在应用层786中驻留有应用788。集中式控制平面776具有针对应用788来形成虚拟网络792(有时被称为逻辑转发平面、网络服务、或覆盖网络(且数据平面780的NE770A-770H是底层网络))的能力。从而,集中式控制平面776保持所有ND和所配置的NE/VNE的全局视图,且其将虚拟网络高效地映射到底层ND(包括当物理网络通过硬件(ND、链路、或ND组件)故障、添加、或移除来改变时保持这些映射)。
尽管图7D示出了与集中式方法774不同的分布式方法772,在本发明的某些实施例中,网络控制的工作可以用不同方式分布或者这二者可以结合。例如:1)实施例通常可以使用集中式方法(SDN)774,但具有委托给NE的特定功能(例如,分布式方法可以用于实现故障监控、性能监控、保护切换和邻居和/或拓扑发现的原语中的一项或多项);或2)本发明的实施例可以经由集中式控制平面和分布式协议二者来执行邻居发现和拓扑发现,并且比较结果在它们不一致的地方引发异常。这种实施例一般被视为落入集中式方法774中,但也可以被视为是混合方法。
尽管图7D示出了每个ND700A-700H实现单个NE770A-770H的简单情况,应当理解:参照图7D描述的网络控制方法同样适用于一个或多个ND 700A-700H实现多个VNE(例如,VNE 730A-730R、VNE 760A-760R、在混合网络设备706中的那些)的网络。备选地或附加地,网络控制器778还可以对在单个ND中实现多个VNE加以仿真。具体地,取代(或除了)在单个ND中实现多个VNE(之外),网络控制器778(还)可以将单个ND中的VNE/NE的实现呈现为虚拟网络792中的多个VNE(在同一个虚拟网络792中的全部、不同虚拟网络792中的每一个、或某种组合)。例如,网络控制器778可以使得ND在底层网络中实现单个VNE(NE),然后对集中式控制平面776内的该NE的资源进行逻辑分割,以在虚拟网络792中呈现不同的VNE(其中,底层网络中的这些不同VNE共享底层网络中ND上的单个VNE/NE实现的资源)。
另一方面,图7E和图7F分别示出了NE和VNE的示例性抽象,网络控制器778可以将其作为不同的虚拟网络792的一部分来呈现。图7E示出了根据本发明的一些实施例的以下简单情况:ND700A-700H中的每一个ND实现NE770A-770H中的单个NE(参见图7D),而集中式控制平面776将不同ND中的多个NE(NE770A-770C和770G-770H)抽象为(以表示)图7D的虚拟网络792之一中的单个NE770I。图7E示出了:在该虚拟网络中,NE770I耦合到NE770D和770F,NE770D和770F二者都依然耦合到NE770E。
图7F示出了根据本发明一些实施例的以下情况:在不同ND(ND700A和ND700H)上实现多个VNE(VNE770A.1和VNE770H.1)并且多个VNE彼此耦合,以及集中式控制平面776将这些多个VNE加以抽象,使得他们表现为图7D的虚拟网络792之一中的单个VNE770T。从而,NE或VNE的抽象可以跨多个ND。
尽管本发明的一些实施例将集中式控制平面776实现为单个实体(例如,单个电子设备上运行的软件的单个实例),备选实施例可以出于冗余和/或可扩缩性的目的将功能分散在多个实体上(例如,在不同电子设备上运行的软件的多个实例)。
类似于网络设备实现,可以用各种方式(例如,专用设备、通用(例如,COTS)设备、或混合设备)来实现集中式控制平面776上运行的电子设备,且从而实现包括集中式可达性和转发信息模块779的网络控制器778。这些电子设备将类似地包括处理器、一个或多个物理NI的集合、以及其上存储有集中式控制平面软件的非暂时性机器可读存储介质。例如,图8示出了包括硬件840的通用控制平面设备804,硬件840包括一个或多个处理器842(其通常是COTS处理器)的集合和物理NI 846、以及其中存储有集中式控制平面(CCP)软件850的非暂时性机器可读存储介质848。非暂时性机器可读存储介质可以将本文所述的事件处理器和/或事件收集器881存储为NFV软件和基础设施的一部分。
在使用计算虚拟化的实施例中,处理器842通常执行软件以实例化虚拟化层854(例如,在一个实施例中,虚拟化层854表示操作系统的内核(或在基本操作系统上执行的填充程序),其允许创建多个称为软件容器(表示单独的用户空间,也称为虚拟化引擎、虚拟专用服务器或监狱)的实例862A-862R,每个实例可用于执行一个或多个应用的集合;在另一实施例中,虚拟化层854表示监管程序(有时称为虚拟机监视器(VMM))或在主机操作系统之上执行的监管程序,并且应用运行在由监管程序运行的称为虚拟机的实例862A-862R(在一些情况下,可以将其视为软件容器的紧密隔离形式)内的客户操作系统之上;在另一实施例中,应用被实现为单内核,其可以通过直接与应用仅编译有限的、提供应用所需的特定OS服务的一组库(例如,来自库操作系统(LibOS),包括OS服务的驱动程序/库)来生成,并且单内核可以直接在硬件840上运行,直接在由虚拟化层854表示的管理程序上运行(在这种情况下,单内核有时被描述为在LibOS虚拟机中运行),或在由实例862A-862R之一表示的软件容器中运行)。同样,在使用计算虚拟化的实施例中,在操作期间,CCP软件850的实例(示为CCP实例876A)在虚拟化层854之上执行(例如,在实例862A内)。在不使用计算虚拟化的实施例中,作为单内核或者在主机操作系统上,CCP实例876A在“裸机”通用控制平面设备804上执行。CCP实例876A的实例化以及虚拟化层854和实例862A-862R(如果实现的话)统称为软件实例852。
在一些实施例中,CCP实例876A包括网络控制器实例878。网络控制器实例878包括:集中式可达性和转发信息模块实例879(其是向操作系统提供网络控制器778的上下文并与各种NE通信的中间件层)、以及中间件层上的CCP应用层880(有时被称为应用层)(提供各种网络操作所要求的情报,例如协议、网络情景察觉、以及用户接口)。在更为抽象的级别上,集中式控制平面776中的该CCP应用层880使用虚拟网络视图(网络的逻辑视图)来工作,且中间件层提供从虚拟网络到物理视图的转换。
集中式控制平面776基于针对每个流的CCP应用层880计算和中间件层映射向数据平面780发送相关消息。流可以被定义为分组集合,其报头与给定的比特模式相匹配;从这个意义上说,传统的IP转发也是基于流的转发,其中,例如,流由目的地IP地址定义;然而,在其他实现中,用于流定义的给定比特模式可以在分组报头中包括更多字段(例如,10个或更多个)。数据平面780的不同ND/NE/VNE可以接收不同消息,且从而接收不同的转发信息。数据平面780处理这些消息,并将适当的流信息和对应动作编程到适当NE/VNE的转发表(有时被称为流表)中,然后NE/VNE将进入的分组映射到转发表中表示的流,并基于转发表中的匹配来转发分组。
诸如开放流之类的标准定义了用于消息的协议以及用于处理分组的模型。用于处理分组的模型包括:报头解析、分组分类、以及做出转发决定。报头解析描述了如何基于已知的协议集合来解释分组。一些协议字段用于构建匹配结构(或键),该匹配结构(或键)将在分组分类中使用(例如,第一键字段可以是源媒体访问控制(MAC)地址,以及第二键字段可以是目的MAC地址)。
分组分类涉及在存储器中执行查找,以通过基于转发表条目的匹配结构、或键来确定转发表中的哪个条目(也被称为转发表条目或流条目)最佳匹配分组对分组进行分类。可能的是,转发表条目中表示的很多流可以对应于/匹配分组;在该情况下,系统通常被配置为根据定义方案从很多转发表条目中确定一个转发表条目(例如,选择匹配的第一个转发表条目)。转发表条目包括匹配标准的特定集合(值集合或通配符、或者对分组的什么部分应当与特定值/多个特定值/通配符进行比较的指示、如匹配能力所定义的——针对分组报头中的特定字段或者对于某个其他分组内容)以及在接收到匹配分组时针对数据平面要采取的一个或多个动作的集合。例如,动作可以是:针对使用特定端口的分组,将报头推压到分组上,对分组进行泛洪(flood),或简单地丢弃该分组,。从而,具有特定传输控制协议(TCP)目的地端口的IPv4/IPv6分组的转发表条目可以包含指定这些分组应当被丢弃的动作。
基于在分组分类期间标识的转发表条目,做出转发决定并执行动作通过针对分组来执行在匹配的转发表条目中标识的动作集合来发生。
然而,当未知分组(例如,如开放流用语中使用的“错失分组”或“匹配错失”)到达数据平面780处时,通常向中心控制平面776转发该分组(或分组报头和内容的子集)。然后集中式控制平面776将转发表条目编程到数据平面780中,以容纳属于该未知分组的流的分组。一旦集中式控制平面776将特定转发表条目编程到数据平面780中,则具有匹配凭证的下一个分组将匹配该转发表条目并采取与所匹配条目相关联的动作集合。
虽然在若干实施例的意义上描述了本发明,本领域技术人员将会认识到:本发明不限于所描述的实施例,而是可利用在所附权利要求的精神和范围内的修改和改变来实现。本描述因此被视为是说明性的,而非限制性的。
Claims (18)
1.一种由事件收集器实现的利用来自事件处理器的反馈来确定转发到所述事件处理器的事件的优先级的方法,所述方法包括:
响应于规则引擎中的成功匹配动作从所述事件处理器接收反馈,所述反馈包括派生条件,所述派生条件是在规则的匹配部分中存储的条件的广义版本;
确定所述派生条件是否存储在事件优先级器中;
响应于所述事件优先级器中不存在所述派生条件,将所述派生条件与初始到期定时器和命中计数器一起存储在所述事件优先级器中;以及
响应于所述事件优先级器中存在所述派生条件,更新所述事件优先级器中所述派生条件的所述命中计数器和到期定时器。
2.根据权利要求1所述的方法,还包括:
响应于接收到所述派生条件的后续发生,重置派生条件的到期定时器。
3.根据权利要求2所述的方法,还包括:
响应于接收到所述派生条件的后续发生,递增所述命中计数器。
4.根据权利要求1所述的方法,还包括:
基于匹配派生条件,使用优先级值来确定所接收到的事件的优先级。
5.根据权利要求4所述的方法,其中,所述优先级值是匹配派生条件的所述命中计数器的总和、中值、平均值或众数。
6.根据权利要求1所述的方法,还包括:
将所接收到的事件存储在一组优先级队列中的一个中,以分发给所述事件处理器。
7.根据权利要求1所述的方法,还包括:
通过使用预先配置的策略确定下一个事件所源自的优先级队列;以及
转发来自所述优先级队列的下一个事件。
8.根据权利要求1所述的方法,还包括:
通过规则引擎处理事件,并执行与所述事件相匹配的动作。
9.根据权利要求8所述的方法,还包括:
确定针对匹配规则的所述派生条件。
10.一种计算设备,用于实现事件收集器利用来自事件处理器的反馈来确定转发到所述事件处理器的事件的优先级的方法,所述计算设备包括:
非暂时性机器可读介质,其中存储有所述事件收集器;以及
处理器,耦合到所述非暂时性机器可读介质,所述处理器执行所述事件收集器,所述事件收集器响应于规则引擎中的成功匹配动作,接收来自所述事件处理器的反馈,所述反馈包括派生条件,所述派生条件是在规则的匹配部分中存储的条件的广义版本;确定所述派生条件是否存储在事件优先级器中;响应于所述事件优先级器中不存在所述派生条件,将所述派生条件与初始到期定时器和命中计数器一起存储在所述事件优先级器中;以及响应于在所述事件优先级器中存在所述派生条件,更新所述事件优先级器中所述派生条件的所述命中计数器和所述到期定时器。
11.根据权利要求10所述的计算设备,其中,所述事件收集器响应于接收到所述派生条件的后续发生,重置派生条件的到期定时器。
12.根据权利要求11所述的计算设备,其中,所述事件收集器响应于接收到所述派生条件的后续发生,递增所述命中计数器。
13.根据权利要求10所述的计算设备,其中,所述事件收集器基于匹配派生条件,使用优先级值来确定所接收到的事件的优先级。
14.根据权利要求13所述的计算设备,其中,所述优先级值是匹配派生条件的所述命中计数器的总和、中值、平均值或众数。
15.根据权利要求10所述的计算设备,其中,所述事件收集器将所接收到的事件存储在一组优先级队列中的一个中,以分发给所述事件处理器。
16.根据权利要求10所述的计算设备,还包括:
事件处理器,用于通过使用预先配置的策略确定下一个事件所源自的优先级队列,并转发来自所述优先级队列的下一个事件。
17.根据权利要求16所述的计算设备,其中,所述事件处理器通过规则引擎处理事件,并执行与所述事件相匹配的动作。
18.根据权利要求17所述的计算设备,其中,所述事件处理器进一步确定针对匹配规则的所述派生条件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2019/050280 WO2020148569A1 (en) | 2019-01-14 | 2019-01-14 | Methods for event prioritization in network function virtualization using rule-based feedback |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113316769A true CN113316769A (zh) | 2021-08-27 |
Family
ID=65444293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980088924.2A Pending CN113316769A (zh) | 2019-01-14 | 2019-01-14 | 网络功能虚拟化中使用基于规则反馈的事件优先级的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220121504A1 (zh) |
EP (1) | EP3912034A1 (zh) |
CN (1) | CN113316769A (zh) |
WO (1) | WO2020148569A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710434A (zh) * | 2022-03-11 | 2022-07-05 | 深圳市风云实业有限公司 | 一种基于OpenFlow交换机的多级流表构建方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665868B1 (en) * | 2000-03-21 | 2003-12-16 | International Business Machines Corporation | Optimizing host application presentation space recognition events through matching prioritization |
CN101617297A (zh) * | 2006-11-28 | 2009-12-30 | 思科技术公司 | 多处理器存储区域网络中的虚拟化支持 |
US20110119219A1 (en) * | 2009-11-17 | 2011-05-19 | Naifeh Gregory P | Method and apparatus for analyzing system events |
US20120102503A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Green computing via event stream management |
US20170085501A1 (en) * | 2015-09-21 | 2017-03-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to speed up flow routing in sdn network |
CN107209736A (zh) * | 2015-02-13 | 2017-09-26 | 高通股份有限公司 | 用于提供对易失性存储器维护事件的内核调度的系统和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1305931B1 (en) * | 2000-08-04 | 2006-06-28 | Avaya Technology Corp. | Method and system for demand driven recognition of connection oriented transactions |
JP6318751B2 (ja) * | 2014-03-20 | 2018-05-09 | 富士通株式会社 | 情報処理装置、アクション切替方法、及びアクション切替プログラム |
-
2019
- 2019-01-14 CN CN201980088924.2A patent/CN113316769A/zh active Pending
- 2019-01-14 EP EP19705821.7A patent/EP3912034A1/en active Pending
- 2019-01-14 WO PCT/IB2019/050280 patent/WO2020148569A1/en unknown
- 2019-01-14 US US17/422,685 patent/US20220121504A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665868B1 (en) * | 2000-03-21 | 2003-12-16 | International Business Machines Corporation | Optimizing host application presentation space recognition events through matching prioritization |
CN101617297A (zh) * | 2006-11-28 | 2009-12-30 | 思科技术公司 | 多处理器存储区域网络中的虚拟化支持 |
US20110119219A1 (en) * | 2009-11-17 | 2011-05-19 | Naifeh Gregory P | Method and apparatus for analyzing system events |
US20120102503A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Green computing via event stream management |
CN107209736A (zh) * | 2015-02-13 | 2017-09-26 | 高通股份有限公司 | 用于提供对易失性存储器维护事件的内核调度的系统和方法 |
US20170085501A1 (en) * | 2015-09-21 | 2017-03-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to speed up flow routing in sdn network |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710434A (zh) * | 2022-03-11 | 2022-07-05 | 深圳市风云实业有限公司 | 一种基于OpenFlow交换机的多级流表构建方法 |
CN114710434B (zh) * | 2022-03-11 | 2023-08-25 | 深圳市风云实业有限公司 | 一种基于OpenFlow交换机的多级流表构建方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220121504A1 (en) | 2022-04-21 |
EP3912034A1 (en) | 2021-11-24 |
WO2020148569A1 (en) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110945837B (zh) | 优化sdn中的服务节点监视 | |
EP3437269B1 (en) | Efficient method to aggregate changes and to produce border gateway protocol link-state (bgp-ls) content from intermediate system to intermediate system (is-is) link-state database | |
US11283862B2 (en) | Apparatus and method for subscription-based resource throttling in a cloud environment | |
US11663052B2 (en) | Adaptive application assignment to distributed cloud resources | |
CN112262549A (zh) | 用于sdn控制器集群的稳健的节点故障检测机制 | |
US11671483B2 (en) | In-band protocol-based in-network computation offload framework | |
EP3935814A1 (en) | Dynamic access network selection based on application orchestration information in an edge cloud system | |
US11563698B2 (en) | Packet value based packet processing | |
EP3903198B1 (en) | Efficient mechanism for executing software-based switching programs on heterogenous multicore processors | |
US11296999B2 (en) | Sliding window based non-busy looping mode in cloud computing | |
EP3804236A1 (en) | Method and apparatus for optimized dissemination of layer 3 forwarding information in software defined networking (sdn) networks | |
CN113316769A (zh) | 网络功能虚拟化中使用基于规则反馈的事件优先级的方法 | |
US20240015108A1 (en) | Method and system for efficient input/output transfer in network devices | |
US20230421473A1 (en) | Method and system for efficient input/output transfer in network devices | |
Priano et al. | Exploring Routing and Quality of Service in Software-Defined Networks: Interactions with Legacy Systems and Flow Management | |
WO2021111455A1 (en) | Improving software defined networking controller availability using machine learning techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |