用于解决链路故障的技术的制作方法

文档序号:17290931发布日期:2019-04-03 03:57阅读:270来源:国知局
用于解决链路故障的技术的制作方法

本公开一般涉及云计算。特别地,介绍一种用于解决在云计算环境中提供的第一虚拟化网络功能(vnf)和第二vnf之间的链路上发生的链路故障的技术。该技术可在方法、计算机程序、设备和系统中实施。



背景技术:

近年来,网络功能虚拟化(nfv)已经演变成是利用虚拟化技术来将网络功能的类别虚拟化为可连接或者可链接在一起以便创建网络服务的功能块的网络体系结构概念。

在传统网络中,网络功能(nf)实现通常紧密耦合到它们在其上运行的物理基础设施。nfv将网络功能的软件实现从它们利用的计算、存储和网络资源解耦,并且虚拟化通过虚拟化层将网络功能与这些资源隔离。解耦展露了新的实体集合,所谓的虚拟化网络功能(vnf)。vnf可与其它vnf和/或物理网络功能(pnf)链接以便实现网络服务。

vnf是网络功能的软件实现,并且可部署在网络功能虚拟化基础设施(nfvi)上。vnf一般负责处置在由nfvi提供的硬件基础设施顶部之上执行的一个或多个虚拟机(vm)上运行的特定网络功能。nfvi涵盖一起提供在其上部署vnf的基础设施资源的所有硬件(例如,计算、存储和网络,包括路由器和交换机)和软件(例如,管理程序)组件。nfvi可横跨若干个位置,例如数据中心。网络功能虚拟化管理和编排(nfv-mano)体系结构框架通常用于管理nfvi,并编排网络服务和vnf所需的资源的分配。nfv-mano框架中采用的典型实体包括负责vnf实例的生命周期管理的vnf管理器(vnfm)、负责控制和管理nfvi资源的虚拟化基础设施管理器(vim)以及负责跨越多个vim的nfvi资源的编排和网络服务的生命周期管理的nfv编排器(nfvo)。例如,在etsigsnfv002v1.1.1(2013-10)、etsigsnfv-man001v1.1.1(2014-12)、etsigsnfv-inf005v1.1.1(2014-12)和etsigsnfv-rel001v1.1.1(2015-01)中定义了nfv体系结构框架、nvf-mano和进一步要求。

诸如例如电信系统的许多如今的系统一般要求高度可用性。在此类系统中采用的网络连接必须设计成使得在网络链路故障的情况下,在毫秒级别内使另一个链路可用,从而使得对于服务用户看不到任何服务干扰。在nfvi中,第一vnf和第二vnf之间的网络链路可涉及各种类型的不同组件。特别地,在第一vnf上,在建立网络链路方面可涉及来宾操作系统(os)、虚拟网络接口卡(vnic)、虚拟交换机和物理网络接口卡(pnic)。在pnic之后,可涉及例如一个或多个物理交换机(例如,架顶式(tor)交换机、列末式(eor)交换机或聚合交换机)、虚拟路由器、网关路由器以及广域网(wan)。这同样适用于网络链路的相对端,即,适用于第二vnf,其是服务链中的下一个vnf。第一vnf和第二vnf之间的链路故障可能会因为这些组件中的任何一个组件发生故障而出现。可基于例如在第一和第二vnf之间发送的心跳(heartbeat)消息来检测链路故障。

为了高度可用性,如今的系统通常支持允许执行从一个vnf到作为备份冗余地保持可用的另一个vnf的故障转移(failover)的冗余度机制。例如,如果第一vnf检测到第二vnf没有响应(这基本上可能会出于两个原因而发生:第一和第二vnf之间的网络链路停工(down),或者由于第二vnf本身中的软件失灵而导致第二vnf没有响应),那么第一vnf可决定执行到第三vnf的故障转移,第三vnf是第二vnf的备份实例。由此可解决链路故障。在另一方面,第一vnf可决定等待直到通过系统恢复(即,修复)第一vnf和第二vnf之间的链路(如果可能的话)。这可通过例如分配从第一vnf到第二vnf的新链路(即,不同的网络路径)的nfvi的管理实体(例如,vim)来进行。

图1-3中示意性地示出现有故障转移机制的典型操作。在图1中,将第一vnf表示为vnf-a,将第二vnf表示为vnf-x,并将第三(即,备份)vnf表示为vnf-y。例如,图1中所指示的刺激可对应于心跳消息。在图1-3中,以下缩写适用:

-t0表示链路故障实际发生的时间。

-t1表示vnf-a检测到链路故障的时间。

-t2表示vnf-a执行从vnf-x到vnf-y的故障转移的时间。

-t2’表示通过系统(例如,通过分配从vnf-a到vnf-x的新链路(例如,不同的网络路径)的nfvi的管理实体)完成链路的恢复的时间。

-t2’’表示开始执行从vnf-x到vnf-y的故障转移以便保持在t3内的最后可能时间。

-t3表示到达最大允许链路故障时间的时间。

-δtr表示通过系统恢复链路所需的时间。

-δtf表示完成故障转移所需的时间。

-δts表示在通过vnf-a检测之后的最大允许链路故障时间。

在以上各值中,以下关系适用:

-t3=t1+δts

-t2’=t1+δtr

-t2’’=t3-δtf

-t2=min(t2’,t2’’)

在传统pnf系统(它们不利用虚拟化)中,δtr通常是已知的固定值。在另一方面,利用vnf,δtr通常既不已知也不固定。δtf和δts对于vnf-a是已知的,并且可能是固定的或取决于当前业务负载。在应用等级执行故障转移并完成恢复的时间可能会取决于例如涉及的vnf的缓冲器容量或业务负载状况而不同。

图1示出现有故障转移机制的基本操作。当vnf-a在时间t1识别在到vnf-x的连接中的链路故障时,vnf-a算出δtf、δts、t2和t3,并开始在时间t2期满的故障转移计时器。如果δtr不是已知的,那么它视为是“∞”。在故障转移计时器期满时,vnf-a执行从vnf-x到vnf-y的故障转移。

如图2所示,在情形t2’<t2’’中,此类故障转移机制一般很奏效,这是因为,在这种情况下,已经通过系统在时间t2=t2’恢复(即,修复)链路。由于故障转移计时器也在时间t2期满,所以vnf-a可在时间t2决定执行从vnf-x到vnf-y的故障转移不再是必要的,由此避免无用的故障转移。

在另一方面,如果δtr是未知的(“∞”)或大于δts-δtf(即,在情形t2’’<t2’中),那么即使在t3之前可通过系统完成链路的恢复,现有故障转移机制仍在时间t2=t2’开始故障转移计时器,如图3的示例性情形所示。在这种情况下,尽管更合适的是跳过故障转移并等待链路恢复,但是仍执行故障转移。在网络链路不可通过系统自动恢复或者链路故障是由于vnf-x的软件失灵引起的情况下,出现现有故障转移机制的另一个特有的行为。在这些情况下,在开始执行从vnf-x到vnf-y的故障转移之前,vnf-a不起作用等到时间t2。

在传统pnf系统中,通常通过调谐在不同网络等级调节故障转移的故障转移计时器值(设置期满时间t2)来避免不必要的故障转移。但是,这在vnf系统中是不实用的,在vnf系统中,在其上部署vnf的网络基础设施的特性并不是先验已知的,并且其中将vnf从底层硬件基础设施的特性解耦,从而使得故障转移计时器的任何协调的调谐都不实用。因此,复杂且易于出错的规程必须在每个vnf部署处执行以便在考虑当前基础设施的情况下配置和调谐故障转移计时器,或者提供的网络服务可能经历不必要的故障转移,从而严重地降低服务可用性。



技术实现要素:

因此,存在对于避免上文论述的一个或多个问题或其它问题的用于解决链路故障的技术的需要。

根据第一方面,提供一种用于解决在云计算环境中提供的第一vnf和第二vnf之间的链路上发生的链路故障的方法。该方法由第一vnf执行,并且包括:接收包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知;以及取决于链路恢复状态信息触发动作以便解决链路故障。

链路恢复状态信息可使得第一vnf能够确定哪个动作最适合于解决链路故障,例如哪个动作最快地和/或花最少的努力解决链路故障。例如,链路故障状态信息可指示,链路的恢复当前在进行中,链路的恢复已经完成,或者链路的恢复根本不可能。链路的恢复根本不可能有可能是由于第二vnf的软件失灵造成的,第二vnf的软件失灵无法通过云计算环境的管理实体(例如,vim)自动解决,并且其相反地需要例如通过数据中心中的服务人员来人工干预。当链路停工并且无法建立从第一vnf到第二vnf的备选网络路径时,链路的恢复也可能会不可能。当链路临时停工并且已经例如通过云计算环境的管理实体(例如,vim)建立从第一vnf到第二vnf的备选网络路径时,可指示链路的恢复已完成。当链路当前停工并且已经例如通过云计算环境的管理实体(例如,vim)启动建立从第一vnf到第二vnf的备选网络路径的过程(但尚未完成),可指示链路的恢复在进行中。

在一个变型中,链路恢复状态信息可包括指示在其内可预期链路的恢复的估计时间的估计恢复时间。可例如通过云计算环境的管理实体(例如,vim或vnfm)基于在云计算环境中遭遇的过去的链路故障恢复时间来确定估计恢复时间,如将在下文更详细地描述。链路恢复状态信息还可包括诸如平均的(medium)恢复时间、方差等的统计信息。

由第一vnf触发的动作可取决于与链路故障通知一起接收的具体链路恢复状态信息而不同。例如,动作可包括:等待链路恢复;执行由第三vnf替换第二vnf的故障转移;或者如果没有以别的方式需要采取动作来解决链路故障,那么只是丢弃链路故障通知。第三vnf可以是在云计算环境中冗余地保持可用的第二vnf的备份实例。

如果链路恢复状态信息指示链路的恢复在进行中,那么动作可包括:如果估计恢复时间保持在最大允许链路故障时间(即,t3)内,那么等待链路恢复。在另一方面,如果估计恢复时间没有保持在最大允许链路故障时间(即,t3)内,那么动作可包括触发执行由第三vnf替换第二vnf的故障转移。如果链路恢复状态信息指示链路的恢复不可能,那么动作可包括触发执行由第三vnf替换第二vnf的故障转移。如果链路恢复状态信息指示链路的恢复已经完成,那么动作可包括丢弃链路故障通知。在后一种情况下,可能不需要采取进一步动作来解决链路故障。

在一个变型中,由第一vnf执行的方法还可包括:检测链路故障;以及如果在接收到链路故障通知之前检测到链路故障,那么在允许在最大允许链路故障时间内完成故障转移的时间(例如,在t2’’)开始触发执行由第三vnf替换第二vnf的故障转移的故障转移计时器。如果在这种情况下,链路恢复状态信息指示链路的恢复在进行中或已完成,那么动作可包括停止故障转移计时器。在这种情况下,链路故障可能已经解决(链路的恢复已完成),或者可基于估计恢复时间触发执行故障转移(链路的恢复在进行中),从而使得不再需要通过故障转移计时器来触发执行故障转移。

在另外变型中,该方法可包括:在接收到链路故障通知之前,订阅接收链路故障通知。因此,可利用基于订阅的模型,其需要先发送订阅请求之后才能接收到链路故障通知。可通过第一vnf将订阅请求发送给云计算环境的管理实体(例如,vim或vnfm),然后从该管理实体将链路故障通知传送给第一vnf。

在一个变型中,第一vnf从中接收链路故障通知的云计算环境的管理实体可以是控制第一vnf的vnfm。然后,第一vnf可订阅在vnfm处接收链路故障通知。在另一个变型中,第一vnf从中接收链路故障通知的管理实体可以是控制在其中部署第一vnf的nfvi的vim。然后,第一vnf可订阅在vim处接收链路故障通知。

可从etsigsnfv002v1.1.1(2013-10)、etsigsnfv-man001v1.1.1(2014-12)、etsigsnfv-inf005v1.1.1(2014-12)和etsigsnfv-rel001v1.1.1(2015-01)或其任何后续版本的意义来理解术语vnf、vnfm、vim、nfvi、nfvo和nfv。从这些标准的意义来说,要恢复的链路可以是虚拟链路(vl)。但是,将理解,本公开不应局限于这些标准,并且本文中介绍的技术可在具有相当的结构的其它框架中实践。

根据第二方面,提供一种用于支持在云计算环境中提供的第一vnf和第二vnf之间的链路上发生的链路故障的解决方案的方法。该方法由在云计算环境中提供的管理实体执行,并且包括:接收包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知;以及将链路故障通知转发给在云计算环境中提供的接收实体。

根据第二方面的方法从管理实体(例如,vnfm)的角度定义一种方法,它可以是对于根据第一方面(例如,由第一vnf执行)的方法的补充。如此,第二方面的方法也可包括关于第一方面的方法描述的适用于第二方面的方法的那些方面,并且反之亦然。因此,在下文中省略了不必要的重复。

管理实体可从在云计算环境中提供的另一个管理实体接收链路故障通知(即,链路故障通知可能不是由第二方面的管理实体本身生成)。由于该管理实体接收链路故障通知并将它转发给第一vnf,所以可以说该管理实体是在将链路故障通知传送给第一vnf中的中间实体。

如在第一方面的方法中一样,链路恢复状态信息可包括指示在其内可预期链路的恢复的估计时间的估计恢复时间。

在一个变型中,管理实体可以是控制第一vnf的vnfm,并且接收实体可以是第一vnf。在另一个变型中,管理实体可以是控制在其中部署第一vnf的nfvi的vim,并且接收实体可以是控制第一vnf的vnfm。在又一个变型中,管理实体可以是nfvo,并且接收实体可以是控制第一vnf的vnfm。

如果接收实体是第一vnf并且利用基于订阅的模型,那么可订阅接收实体以便从管理实体接收链路故障通知。例如,在接收到链路故障通知之前,接收实体可能已经向管理实体发送订阅请求,以便在管理实体处获得注册以便接收链路故障通知。

根据第三方面,提供一种用于支持在云计算环境中提供的第一vnf和第二vnf之间的链路上发生的链路故障的解决方案的方法。该方法由在云计算环境中提供的管理实体执行,并且包括:接收发生链路故障的通知;触发包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知的生成;以及将链路故障通知转发给在云计算环境中提供的接收实体。

根据第三方面的方法从管理实体(例如,vim)的角度定义一种方法,它可以是对于根据第一方面的方法或根据第二方面的方法的补充。如此,第三方面的方法也可包括关于第一和第二方面的方法描述的适用于第三方面的方法的那些方面,并且反之亦然。在下文中省略了不必要的重复。

发生链路故障的通知可指示发生的故障的类型,以及可选地,在建立在其处发生故障的链路时涉及的组件(例如,vnic、pnic、虚拟/物理交换机、虚拟/物理路由器等)。可基于由发生链路故障的通知所指示的信息生成包含在链路故障通知中的链路恢复状态信息。

如在第一和第二方面的方法中一样,链路恢复状态信息可包括指示在其内可预期链路的恢复的估计时间的估计恢复时间。在一个实现中,可基于在云计算环境中遭遇的过去的链路故障恢复时间来确定估计恢复时间。例如,可按照之前遭遇的恢复时间的平均值(即,δtr)来算出估计恢复时间,或者可将估计恢复时间定义为是之前遭遇的恢复时间的最大值。在另一个示例中,可按照之前遭遇的恢复时间的加权平均值来算出估计恢复时间,其中权重可以是具体链路故障的出现概率,例如在具体网络连接点或段上的链路故障的出现概率。之前遭遇的恢复时间可包括所有过去的链路故障的恢复时间(即,独立于链路故障类型),或者可只包括一个或多个特定链路故障类型的过去链路故障的恢复时间。出于该目的,可根据链路故障类型将链路故障恢复时间归类。在另一个实现中,估计恢复时间可仅仅是一个预定义值。将理解,除了估计恢复时间之外,链路恢复状态信息还可包括诸如平均的恢复时间、方差等的统计信息。

在该方法的一个变型中,在每次接收到关于链路的当前恢复状态发生变化的通知时,可重复触发链路故障通知的生成和转发链路故障通知。在另一个变型中,可周期性地执行(例如以预定时间间隔重复)链路故障通知的生成和转发链路故障通知、或只是转发链路故障通知。

在一个实现中,根据第三方面的管理实体可以是控制第一vnf和第二vnf中的至少一个vnf的vnfm。在这种情况下,可从第一vnf和第二vnf中的至少一个vnf接收发生链路故障的通知和/或关于链路的当前恢复状态发生变化的通知。通知可以是分别从第一vnf和/或第二vnf发送的事件。

在该实现的一个变型中,第一vnf和第二vnf可驻留在相同数据中心中,并且可在相同数据中心中的vnfm的控制下的多个vnf当中。在这种情况下,接收实体可以是第一vnf。在该实现的另一个变型中,第一vnf和第二vnf可驻留在不同数据中心中。在这种情况下,第一vnf可处于第一vnfm的控制下,并且第二vnf可处于第二vnfm的控制下。那么,根据第三方面的管理实体可以是第二vnfm,并且可从第二vnf接收发生链路故障的通知和/或关于链路的当前恢复状态发生变化的通知。在这种情况下,接收实体可以是负责编排的nfvo。因此,可将生成的链路故障通知从第二vnfm转发给nfvo,而nfvo又可将链路故障通知转发给第一vnfm,第一vnfm最终将它转发给第一vnf。因此,从第二方面的意义来说,nfvo和第一vnfm均可充当中间实体。

在另一个实现中,根据第三方面的管理实体可以是控制在其中部署第一和第二vnf中的至少一个vnf的nfvi的vim,其中从nfvi接收发生链路故障的通知和/或关于链路的当前恢复状态发生变化的通知。在这种情况下,接收实体可以是控制第一vnf的vnfm或备选地是第一vnf本身。在这种情况下,通知可以是从在nfvi的物理硬件资源上执行的vm发送的事件,其中vm可以是在其上执行第一或第二vnf的vm。

如果第一vnf和第二vnf之间的链路是可恢复的,那么vim可在第一vnf和第二vnf之间分配新链路(例如,不同的网络路径)以便恢复链路。在一个可能实现中,vim可在满足定义最大允许链路故障时间的链路选择参数的约束下选择新链路。可例如通过实例化第一和第二vnf的用户来定义链路选择参数以便确保链路恢复保持在得到保证的恢复时间内,从而使得第一vnf和第二vnf之间的链路故障对于服务用户是不可见的。链路选择参数在第一vnf和第二vnf的部署时间是可配置的,例如,当在网络服务实例化流中定义第一vnf和第二vnf实例之间的vl时,可在虚拟链路描述符(vld)中定义链路选择参数。

在第一vnf和第二vnf之间分配新链路的vim可以是控制在其中部署第一和第二vnf中的至少一个vnf的nfvi并将链路故障通知转发给控制第一vnf的vnfm的vim。在这种情况下,vim可向vnfm发送告知vnfm开始执行从第二vnf到第三vnf的故障转移以便保持在最大允许链路故障时间内的最后可能时间的通知。例如,可在接近于达到时间t2’’时或在时间t2’’发送通知。vnfm可将该通知转发给第一vnf。

根据第四方面,提供有一种计算机程序产品。该计算机程序产品包括程序代码部分,当在一个或多个计算装置(例如,处理器或处理器的分布式集合)上执行该计算机程序产品时,程序代码部分用于执行第一、第二和第三方面中的至少一个方面的方法。该计算机程序产品可存储在诸如半导体存储器、dvd、cd-rom等的计算机可读记录介质上。

根据第五方面,提供一种用于解决在云计算环境中提供的第一vnf和第二vnf之间的链路上发生的链路故障的计算单元,其中在该计算单元上执行第一vnf。该计算单元包括至少一个处理器和至少一个存储器,所述至少一个存储器包含可由所述至少一个处理器执行的指令,以使得第一vnf可进行操作以:接收包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知;以及取决于链路恢复状态信息触发动作以便解决链路故障。

根据第六方面,提供一种用于支持在云计算环境中提供的第一vnf和第二vnf之间的链路上发生的链路故障的解决方案的计算单元,其中在该计算单元上执行管理实体。该计算单元包括至少一个处理器和至少一个存储器,所述至少一个存储器包含可由所述至少一个处理器执行的指令,以使得管理实体可进行操作以:接收包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知;以及将链路故障通知转发给在云计算环境中提供的接收实体。

根据第七方面,提供一种用于支持在云计算环境中提供的第一vnf和第二vnf之间的链路上发生的链路故障的解决方案的计算单元,其中在该计算单元上执行管理实体。该计算单元包括至少一个处理器和至少一个存储器,所述至少一个存储器包含可由所述至少一个处理器执行的指令,以使得管理实体可进行操作以:接收发生链路故障的通知;触发包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知的生成;以及将链路故障通知转发给在云计算环境中提供的接收实体。

根据第五、第六和第七方面的计算单元可配置成执行在本文中介绍的任何对应方法和方法步骤。

根据第八方面,提供有一种系统,其包括第五方面的计算单元以及第六方面的计算单元和第七方面的计算单元中的至少一个计算单元。

附图说明

这里,下文参考附图描述本文中介绍的技术的实施例,附图中:

图1示出序列图中现有技术故障转移机制的基本操作;

图2示出在对于情形t2’<t2’’的时间线中现有技术故障转移机制的基本操作;

图3示出在对于情形t2’>t2’’的时间线中现有技术故障转移机制的基本操作;

图4示意性地示出实现其中部署vnf的nfv体系结构框架的示例性云计算环境;

图5示意性地示出nfv-mano框架的体系结构;

图6a至6c示出根据本公开的计算单元的示例性组成;

图7a和7b示出在其上执行第一vnf的计算单元的模块组成以及可由第一vnf执行的对应方法实施例;

图8a和8b示出在其上执行充当中间实体的管理实体的计算单元的模块组成以及可由该管理实体执行的对应方法实施例;

图9a和9b示出在其上执行触发生成链路故障通知的管理实体的计算单元的模块组成以及可由该管理实体执行的对应方法实施例;

图10示出在对于情形tlf’’’’<t1的时间线中本文介绍的技术的操作;

图11示出在对于情形t1≤tlf’’’’≤t2的时间线中本文介绍的技术的操作;

图12示出在对于情形t2≤tlf’’’’≤t3的时间线中本文介绍的技术的操作;

图13示出在对于情形tlf’’’’>t3的时间线中本文介绍的技术的操作;

图14示出在对于情形tlf’’’’<t1和tlf’’’’+δtert>t3的序列图中本文介绍的技术的操作;

图15示出在对于情形tlf’’’’<t1和δtert=∞的序列图中本文介绍的技术的操作;

图16示出在对于情形tlf’’’’<t1和tlf’’’’+δtert<t3的序列图中本文介绍的技术的操作;

图17示出在对于情形t1≤tlf’’’’≤t2和tlf’’’’+δtert>t3的序列图中本文介绍的技术的操作;

图18示出在对于情形t1≤tlf’’’’≤t2和δtert=∞的序列图中本文介绍的技术的操作;

图19示出在对于情形t1≤tlf’’’’≤t2和tlf’’’’+δtert<t3的序列图中本文介绍的技术的操作;

图20示出在对于情形t2≤tlf’’’’≤t3的序列图中本文介绍的技术的操作;以及

图21示出在对于通过vnfm生成链路故障通知的情形的序列图中本文介绍的技术的操作。

具体实施方式

在以下描述中,出于解释而非限制的目的,阐述了特定细节以便提供对本公开的充分理解。本领域技术人员将明白,可在不脱离这些特定细节的其它实施例中实践本公开。例如,虽然将关于etsigsnfv002v1.1.1(2013-10)、etsigsnfv-man001v1.1.1(2014-12)、etsigsnfv-inf005v1.1.1(2014-12)和etsigsnfv-rel001v1.1.1(2015-01)描述以下实施例,但是将理解的是,本公开不应局限于这些标准,并且可以用其任何后续版本或在具有可比得上的结构的其它框架中实践本文中介绍的技术。

本领域技术人员还将明白,可利用个别硬件电路、利用结合程序化微处理器或通用计算机运作的软件、利用一个或多个专用集成电路(asic)和/或利用一个或多个数字信号处理器(dsp)来实现本文下面解释的步骤、服务和功能。还将明白,当在方法的方面描述本公开时,它也可在一个或多个处理器以及耦合到所述一个或多个处理器的一个或多个存储器中实施,其中在由所述一个或多个处理器执行时用执行本文中公开的步骤、服务和功能的一个或多个程序来编码所述一个或多个存储器。

图4示意性地示出实现根据estigsnfv002v1.1.1(2013-10)的nfv体系结构框架的示例性云计算环境400,在其中部署了vnf402以便在两个端点之间创建网络服务。用虚线将网络服务指示为是转发图。网络服务可包括多个vnf402,它们可根据转发图在服务链中链接在一起。vnf402是网络功能的软件实现,并且部署在nfvi404上。nfvi404涵盖一起提供云计算环境400的硬件基础设施资源的所有硬件(例如,计算、存储和网络,包括路由器和交换机)组件。nfvi404包括例如通过提供在其上执行vnf402的vm来提供虚拟计算、存储和网络资源的虚拟化层,由此将vnf的执行从nfvi404的物理计算、存储和网络资源解耦。

图5示意性地示出根据etsigsnfv-man001v1.1.1(2014-12)的对应nfv-mano框架500的体系结构,并且因此提供可在其中执行本文中介绍的技术的框架。nfv-mano框架500用于管理nfvi404,并编排网络服务和vnf402所需的资源的分配。例如,nfv-mano框架500可包括:负责vnf实例的生命周期管理(例如,vnf实例化、vnf终止等)的一个或多个vnfm502;负责控制和管理nfvi资源(例如,vm分配、vm终止、vm之间的网络链路创建等)的一个或多个vim504;以及负责跨越多个vim504的nfvi资源的编排和网络服务的生命周期管理的nfvo506。在图5中示出的示例中,只描绘了单个vnfm502和单个vim504。利用接口nf-vi508实行vim504和nfvi404之间的通信,利用接口vnfm-vi510实行vim504和vnfm502之间的通信,并利用接口venf-vnfm512实行vnfm502和vnf402之间的通信。在nfv-mano框架中,这些接口又称为参考点。

图6a示出可在其上执行vnf402的计算单元610的示例性组成。计算单元610可包括至少一个处理器612和至少一个存储器614,其中所述至少一个存储器614包含可由所述至少一个处理器612执行的指令,以使得计算单元610可进行操作以便实行本文中参考第一vnf402描述的方法步骤。

图6b示出计算单元620的示例性组成。计算单元620可包括至少一个处理器622和至少一个存储器624,其中所述至少一个存储器624包含可由所述至少一个处理器622执行的指令,以使得计算单元620可进行操作以便实行本文中参考在将链路故障通知传送给第一vnf402中充当中间实体的管理实体描述的方法步骤。

图6c示出计算单元630的示例性组成。计算单元630可包括至少一个处理器632和至少一个存储器634,其中所述至少一个存储器634包含可由所述至少一个处理器632执行的指令,以使得计算单元630可进行操作以便实行本文中参考触发链路故障通知的生成的管理实体描述的方法步骤。

将理解,在诸如云计算环境400的云体系结构中,计算单元610、620和630可以是物理计算单元,但是也可以例如是诸如vm的虚拟化计算单元。还将理解,计算单元610、620和630不一定必须是独立计算单元,而是可作为在单个或多个计算单元上以软件和/或硬件实现(作为物理或虚拟)的组件而实现。

图7a示意性地示出计算单元610的示例性模块组成,并且图7b示出可由根据本公开的计算单元610执行的对应方法实施例。该方法可由在计算单元610上执行的第一vnf402执行,并且专用于解决在云计算环境400中提供的第一vnf402和第二vnf402之间的链路上发生的链路故障。下文中将参考图7a和7b描述计算单元610的基本操作。

在步骤s702中,计算单元610的接收模块702接收包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知。链路恢复状态信息可使得第一vnf402能够确定执行哪个动作最适合于解决链路故障,例如哪个动作最快速地和/或以最少的努力解决链路故障。例如,链路恢复状态信息可指示,链路的恢复当前在进行中、链路的恢复已经完成、或者链路的恢复根本不可能。链路的恢复根本不可能是由于第二vnf402的软件失灵引起的,第二vnf402的软件失灵无法通过vim504自动解决,而是需要通过例如服务人员的人工干预。当链路停工并且无法通过vim504建立从第一vnf402到第二vnf402的备选网络路径时,链路的恢复也可是不可能的。当链路临时停工并且已经通过vim504建立从第一vnf402到第二vnf402的备选网络路径时,可指示链路的恢复已完成。当链路当前停工并且已经通过vim504启动建立从第一vnf402到第二vnf402的备选网络路径的过程(但尚未完成),可指示链路的恢复在进行中。

链路恢复状态信息可包括指示在其内可预期链路的恢复的估计时间的估计恢复时间(本文中以下表示为δtert)。可通过vim504或vnfm502基于在云计算环境400中遭遇的过去的链路故障恢复时间来确定估计恢复时间。链路恢复状态信息还可包括诸如平均的恢复时间、方差等的统计信息。

第一vnf402可经由接口venf-vnfm512从vnfm502接收链路故障通知。在接收到链路故障通知之前,第一vnf402可能已经订阅在vnfm502处接收链路故障通知。备选地,可设想,第一vnf402可直接从vim504接收链路故障通知。尽管在图5中没有示出vim504和vnf402之间的直接接口,但是将理解,可额外提供对应接口。在这种情况下,可订阅第一vnf402以在vim504处接收故障通知。

在步骤s704中,取决于链路恢复状态信息,计算单元610的触发模块704触发动作以便解决链路故障。如果链路恢复状态信息指示链路的恢复在进行中,那么动作可包括:如果估计恢复时间保持在最大允许链路故障时间(即,t3)内,那么等待链路恢复。在另一方面,如果估计恢复时间没有保持在最大允许链路故障时间(即,t3)内,那么动作可包括触发执行由第三vnf402替换第二vnf402的故障转移。如果链路恢复状态信息指示链路的恢复不可能,那么动作可包括触发执行由第三vnf402替换第二vnf402的故障转移。如果链路恢复状态信息指示链路的恢复已经完成,那么动作可包括丢弃链路故障通知。在后一种情形中,可能不需要采取进一步动作来解决链路故障。

第一vnf402本身可检测链路故障,并且如果在接收到链路故障通知之前检测到链路故障,那么可在允许在最大允许链路故障时间内完成故障转移的时间(即,在t2’’)开始触发执行由第三vnf402替换第二vnf402的故障转移的故障转移计时器。如果在这种情况下,链路恢复状态信息指示链路的恢复在进行中或已完成,那么动作可包括停止故障转移计时器。在这种情况下,可能已经解决链路故障(链路的恢复已完成),或者可基于估计恢复时间触发执行故障转移(链路的恢复在进行中),从而使得可能不再需要通过故障转移计时器来触发执行故障转移。

图8a示意性地示出计算单元620的示例性模块组成,并且图8b示出可由根据本公开的计算单元620执行的对应方法实施例。该方法可由在计算单元620上执行的管理实体来执行,并且专用于支持在第一vnf402和第二vnf402之间的链路上发生的链路故障的解决方案。如上文所解释,管理实体在将链路故障通知传送给第一vnf402中充当中间实体。例如,管理实体可以是vnfm502、vim504或nfvo506。下文将参考图8a和8b描述计算单元620的基本操作。

在步骤s802中,计算单元620的接收模块802接收包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知;并且进一步地,在步骤s804中,计算单元620的转发模块804将链路故障通知转发给在云计算环境400中提供的接收实体。例如,如果管理实体是vnfm502,那么接收实体可以是第一vnf402;如果管理实体是vim504,那么接收实体可以是vnfm502;并且如果管理实体是nfvo506,那么接收实体可以是vnfm502。链路故障通知可以与上文关于图7a和7b引用的链路故障通知相同。

图9a示意性地示出计算单元630的示例性模块组成,并且图9b示出可由根据本公开的计算单元630执行的对应方法实施例。该方法可由在计算单元630上执行的管理实体来执行,并且专用于支持在第一vnf402和第二vnf402之间的链路上发生的链路故障的解决方案。如上文所解释,管理实体触发链路故障通知的生成。例如,管理实体可以是vim504或vnfm502。下文将参考图9a和9b描述计算单元630的基本操作。

在步骤s902中,计算单元630的接收模块902接收发生链路故障的通知。通知可指示发生的故障的类型以及可选地在建立在其处发生故障的链路中所涉及的组件(例如,vnic、pnic、虚拟/物理交换机、虚拟/物理路由器等)。如果管理实体是vim504,那么通知可以是从在nfvi404的物理硬件资源上执行的vm发送的事件,其中vm是在其上执行第一vnf402或第二vnf402的vm。如果管理实体是vnfm502,那么通知可以是从第一vnf402或第二vnf402发送到vnfm502的事件。

在步骤s904中,计算单元630的触发模块904触发包括指示链路的当前恢复状态的链路恢复状态信息的链路故障通知的生成。链路故障通知可以与上文关于图7a和7b以及8a和8b引用的链路故障通知相同。因此,链路恢复状态信息可包括指示在其内可预期链路的恢复的估计时间的估计恢复时间(δtert)。可基于在云计算环境400中遭遇的过去的链路故障恢复时间来确定估计恢复时间。例如,可按照之前遭遇的恢复时间的平均值(即,δtr)来算出估计恢复时间,或者可将估计恢复时间定义为是之前遭遇的恢复时间的最大值。在另一个示例中,可按照之前遭遇的恢复时间的加权平均值来算出估计恢复时间,其中权重可以是具体链路故障的出现概率,例如在具体网络连接点或段上的链路故障的出现概率。之前遭遇的恢复时间可包括所有过去的链路故障的恢复时间(即,独立于链路故障类型),或者可只包括一个或多个具体链路故障类型的过去链路故障的恢复时间。出于该目的,可根据链路故障类型将链路故障恢复时间归类。备选地,估计恢复时间可以仅仅是一个预定义值。将理解,除了估计恢复时间之外,链路恢复状态信息还可包括诸如平均的恢复时间、方差等的统计信息。

在步骤s906中,计算单元630的转发模块906将生成的链路故障通知转发给在云计算环境400中提供的接收实体。如果管理实体是vim504,那么接收实体可以是vnfm502或第一vnf402。如果管理实体是vnfm502,那么接收实体可以是第一vnf402。

可在每次接收到关于链路的当前恢复状态发生变化的通知时重复触发链路故障通知的生成。与发生链路故障的通知类似,如果管理实体是vim504,那么该通知可以是从在nfvi404的物理硬件资源上执行的vm发送的事件,其中vm是在其上执行第一或第二vnf402的vm。如果管理实体是vnfm502,那么通知可以是从第一vnf402和/或第二vnf402发送到vnfm502的事件。也可周期性地执行(例如以预定时间间隔重复)链路故障通知的生成。

如果在第一vnf402和第二vnf402之间的链路可恢复,那么vim504可在第一vnf402和第二vnf402之间分配新链路(例如,不同的网络路径)以便恢复链路。在这种情况下,vim可在满足定义最大允许链路故障时间的链路选择参数的约束下选择新链路。可例如通过实例化第一vnf402和第二vnf402的用户来定义链路选择参数,以便确保链路恢复保持在被保证的恢复时间内,从而使得第一vnf402和第二vnf402之间的链路故障对于服务用户是不可见的。链路选择参数在第一vnf402和第二vnf402的部署时间是可配置的,例如当在网络服务实例化流中定义第一vnf和第二vnf实例之间的虚拟链路(vl)时,可在虚拟链路描述符(vld)中定义链路选择参数。

vim504可向vnfm502发送告知vnfm502开始执行从第二vnf402到第三(即,备份)vnf402的故障转移以便保持在最大允许链路故障时间内的最后可能时间的通知。例如,可在接近于到达时间t2’’时或在时间t2’’发送通知。vnfm502可将该通知转发给第一vnf402,而第一vnf402又可在确定要被触发以便解决链路故障的动作时考虑它。

以下图10到13示出对于可在第一vnf402处接收链路故障通知的不同可能时间点的本文中介绍的技术的操作,并汇总了可通过第一vnf402取决于在接收的链路故障通知中指示的估计恢复时间δtert触发的对应动作。

对于进一步描述,假设,通过nfvi404检测在第一vnf402和第二vnf402之间的链路上发生的链路故障,并且nfvi404向vim504发送发生链路故障的通知。然后,vim504触发包括估计恢复时间δtert的链路故障通知的生成,并将生成的链路故障通知转发给vnfm502。而vnfm502又将链路故障通知转发给第一vnf402。

在图10-13中,将第一vnf402表示为vnf-a,将第二vnf402表示为vnf-x,并将第三(即,备份)vnf402表示为vnf-y。值δtert=∞表示,vim504已发现,链路的自动恢复是不可能的。t1f’’’’表示在第一vnf402处接收链路故障通知的时间。

图10示出在对于情形t1f’’’’<t1的时间线中本文介绍的技术的操作。如这里所指示,如果δtert=0,那么不需要动作,因为在vnf-a识别链路故障之前,链路故障已经恢复。如果δtert=∞,那么显然链路故障将不会被修复,并且因此可立即(或者在例如t1)开始到vnf-y的故障转移,即,无需等到t2才开始故障转移。在所有其它情形中,即,如果δtert<∞,那么可存储t1f’’’’,并且可在时间t1确定最合适的动作。

图11示出在对于情形t1≤t1f’’’’≤t2的时间线中本文介绍的技术的操作。如这里所指示,如果δtert=0,那么链路故障已经恢复,并且因此,vnf-a可尝试重新连接到vnf-x。如果故障转移计时器已经开始,那么可停用计时器。如果δtert=∞,那么显然链路故障将不会被修复,并且因此,可立即开始到vnf-y的故障转移。如果t3<t1f’’’’+δtert,那么也可立即开始到vnf-y的故障转移。在另一方面,如果t3≥t1f’’’’+δtert,那么可停用已经开始的故障转移计时器,并且可等待直到链路故障恢复,因为链路故障将在t3之前被修复。

图12示出在对于情形t2≤t1f’’’’≤t3的时间线中本文介绍的技术的操作。如这里所指示,如果δtert=0,那么链路故障已经恢复,并且因此,vnf-a可尝试重新连接到vnf-x。如果故障转移计时器已经开始,那么可停用计时器。如果δtert=∞,那么显然链路故障将不会修复,并且因此,可立即开始到vnf-y的故障转移。如果t3≥tlf’’’’+δtert,那么可停用已经开始的故障转移计时器,并且可等待直到链路故障恢复,因为链路故障将在t3之间被修复。在另一方面,如果t3<tlf’’’’+δtert,那么可等待直到链路故障恢复,并且如果δtert≤δtf,那么可停用进行中的故障转移计时器。如果δtert>δtf,那么可立即开始到vnf-y的故障转移。如果已经开始故障转移,那么可只是丢弃链路故障通知。

图13示出在对于情形t1f’’’’>t3的时间线中本文介绍的技术的操作。如这里所指示,如果δtert=0,那么链路故障已经恢复,并且因此,vnf-a可尝试重新连接到vnf-x。如果故障转移计时器已经开始,那么可停用计时器。如果δtert=∞,那么显然链路故障将不会被修复,并且因此,可立即开始到vnf-y的故障转移。如果δtert≤δtf,那么可等待直到链路故障恢复,并且可停用进行中的故障转移计时器。如果δtert>δtf,那么可立即开始到vnf-y的故障转移。如果故障转移已经开始,那么可只是丢弃链路故障通知。

以下图14-21示出在强调在涉及的nfv体系结构框架的不同实体之间的交互的序列图中本文中介绍的技术的操作的示例。如在图10-13中一样,将第一vnf402表示为vnf-a,将第二vnf402表示为vnf-x,并将第三(即,备份)vnf402表示为vnf-y。值δtert=∞表示,vim504已发现链路的自动恢复是不可能的。图14-21中指示的刺激可对应于例如心跳消息。

以下另外缩写词适用:

-tlf’表示nfvi404检测到链路故障的时间。

-tlf’’表示在vim504处接收发生链路故障的通知的时间。

-tlf’’’表示在vnfm502处接收发生链路故障通知的时间。

-tlf’’’’表示在第一vnf402处接收链路故障通知的时间。

图14示出在对于情形tlf’’’’<t1和tlf’’’’+δtert>t3的示例中本文介绍的技术的操作。在该示例中,vnf-a确定在t3之前恢复是不可能的,因为δtert的值太大,并且因此,vnf-a在时间t1开始到vnf-y的故障转移,即,无需等到时间t2。当vnf-a稍后(即,在t3之后,此时已经通过故障转移解决了链路故障)接收到指示δtert=0的另一个通知时,丢弃该通知。

图15示出在对于情形tlf’’’’<t1和δtert=∞的示例中本文介绍的技术的操作。在该示例中,vnf-a确定恢复根本不可能,并且因此,vnf-a立即开始到vnf-y的故障转移,即,无需等到时间t2。当vnf-a稍后(即,在t3之后,此时已经通过故障转移解决了链路故障时)接收到指示δtert=0的另一个通知时,丢弃该通知。

图16示出在对于情形tlf’’’’<t1和tlf’’’’+δtert<t3的示例中本文介绍的技术的操作。在该示例中,vnf-a确定在t3之前恢复是可能的,因为δtert的值足够小,并且因此,vnf-a等待直到它接收到接收指示δtert=0的另一个通知。一旦接收到该通知,vnf-a便重新连接到vnf-x。

图17示出在对于情形t1≤tlf’’’’≤t2和tlf’’’’+δtert>t3的示例中本文介绍的技术的操作。在该示例中,vnf-a确定在t3之前恢复是不可能的,因为δtert的值太大,并且因此,vnf-a立即开始到vnf-y的故障转移,即,无需等到时间t2。还有,由于vnf-a已经在时间t1开始故障转移计时器,因此丢弃故障转移计时器,因为故障转移已经在进行中。当vnf-a稍后(即,在t3之后,此时已经通过故障转移解决了链路故障)接收到指示δtert=0的另一个通知时,丢弃该通知。

图18示出在对于情形t1≤tlf’’’’≤t2和δtert=∞的示例中本文介绍的技术的操作。在该示例中,vnf-a确定恢复根本不可能,并且因此,vnf-a立即开始到vnf-y的故障转移,即,无需等到时间t2。还有,由于vnf-a已经在时间t1开始故障转移计时器,因此丢弃故障转移计时器,因为故障转移已经在进行中。当vnf-a稍后(即,在t3之后,此时已经通过故障转移解决了链路故障)接收到指示δtert=0的另一个通知时,丢弃该通知。

图19示出在对于情形t1≤tlf’’’’≤t2和tlf’’’’+δtert<t3的示例中本文介绍的技术的操作。在该示例中,vnf-a确定在t3之前恢复是可能的,因为δtert的值足够小,并且因此,vnf-a等待直到它接收到指示δtert=0的另一个通知。一旦接收到该通知,vnf-a便重新连接到vnf-x。还有,由于vnf-a已经在时间t1开始故障转移计时器,因此丢弃故障转移计时器,因为恢复是可能的。

图20示出在对于情形t2≤tlf’’’’≤t3的示例中本文介绍的技术的操作。在该示例中,当已经开始到vnf-y的故障转移时接收到链路故障通知。因此只是丢弃通知。当vnf-a稍后(即,当已经通过故障转移解决了链路故障时)接收到指示δtert=0的另一个通知时,也丢弃该通知。

图21示出在对于通过vnfm502生成链路故障通知的情形的示例中本文介绍的技术的操作。在该示例中,通过vnfm502检测链路故障,并且进一步确定链路故障不可恢复。vnfm502相应地向vnf-a发送指示δtert=∞的链路故障通知。因此,vnf-a确定恢复根本不可能,并且立即开始到vnf-y的故障转移,即,无需等到时间t2。还有,由于vnf-a已经在时间t1开始故障转移计时器,因此丢弃故障转移计时器,因为故障转移已经在进行中。

如根据以上实施例变得明显,本公开提供一种用于解决在第一vnf和第二vnf之间的链路上发生的链路故障的技术。介绍的技术可保证,即使底层网络基础设施的特性不可知,网络功能仍正确地工作。第一vnf可自动适应底层网络基础设施,并且不再需要如现有故障转移机制中的故障转移计时器的手动调谐。

可实现改善的服务内性能,因为第一vnf可避免不必要的故障转移,并实现得以告知由系统承担的恢复动作的最佳策略。可使得第一vnf能够确定更合适的是等待链路恢复还是立即执行由第三(即,备份)vnf替换第二vnf的故障转移。因此,可避免不必要的故障转移,并且如果真的需要故障转移,那么可尽可能快地开始(即,无需等到故障转移计时器期满),由此减少对于解决链路故障所需的时间。通过减少网络中的故障转移的数量,也可更容易地标识网络链路中的故障的根本原因。

还可能考虑到,从第二vnf到第三vnf的故障转移具有代价,因为有时某些操作可能无法完成并且必须重启,例如数据的事务性更新、批量处理等。因此,通过第一vnf可决定如果这能在特定时间内完成则等待链路再次复工(up)的事实,可在考虑执行故障转移并且稍后复原回来的总代价与等待一定已知时间以便修复链路之间作出权衡。

相信,根据以上描述将全面理解本文中介绍的技术的优点,并且将明白,在不脱离本发明的范围或不牺牲它的所有有利效果的情况下,可在其示例性方面的形式、构造和布置方面作出各种改变。由于本文中介绍的技术能够以许多方式而被改变,所以将意识到,本发明应当仅受随附权利要求的范围限制。

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