3.4.2 与 VNF弹性设计相关的 vPE实例
vPE是一种复合 VNF,它由至少两类被集成到协调系统中的多个 VNF实例构成。可以将vPE转发和控制平面功能划分为两类截然不同的VNF。单个 vPE实例将由多个转发平面 VNF和至少两个控制平面 VNF构成。转发平面 VNF实例通过在多台虚拟机(VM)之间分配客户接口和流量来实现可扩展性。这种设计通过属于整个业务流的小子集在独立转发VNF实例上实现, 从而支持向外扩展。当更多客户被添加到 vPE时,我们可以添加新的转发VNF实例以适应客户 数量增长。通过在服务器发生故障时缩小“爆炸半径”3也可以提供更好的弹性。为了实现这一点,需要将各种转发 VNF实例分配给城域集群的多台服务器。客户可以使用单宿主或多宿主访问链路连接入网。大多数客户使用单宿主访问,因为访问通常是客户网络总成本的主要因素。为了高 可用性而购买第二条访问链路的成本是很高的,对正常运行时间要求高的大型场所来说,客户只 能选择双宿访问模式。
图 3.13给出 3种用于在多个转发 VNF实例上分配转发平面功能的不同设计方案。
对于拥有双宿主访问链路的客户来说,使用多个转发 VNF实例非常简单。每条访问链路将连接到转发 VNF的独立实例,将在客户路由器和每个 VNF实例之间建立 BGP会话,从而支持负载均衡设计。如果转发VNF实例 1失败,则流量将以无中断方式迁移到转发 VNF实例 2上, 如图 3.13(a)所示。
对于仅拥有连通网络的单条访问链路客户来说,使用多个转发实例更加困难。存在两种设计方案,如图 3.13(b)和图 3.13(c)所示。第一种方案是一种针对两个转发VNF实例的主—备设计。网络云数据中心结构将终止接入线路并管理两条连接,每条连接对应两个转发VNF实例中的一个。CE路由器与转发 VNF实例 1之间只存在 1路 BGP会话。如果转发 VNF实例 1失败,则流量将会停止。需要建立新的 BGP会话来转发 VNF实例 2,且在短暂中断后恢复流量。第二种方案是负载均衡设计,其中,CE路由器将在单接入链路上使用 VLAN,并为两个转发 VNF实例维护两路独立 BGP会话,如图3.13(c)所示。该方案支持负载均衡设计,允许在两个转发VNF实例中的任何一个发生故障时实现流量无中断故障恢复。此方案要求客户实现能够利用云中负载均 衡流量转发的新设计。主—备转发器 VNF实例设计也存在缺点。第一,服务行为与单宿主设计中的服务行为并不完全相同。第二,使用静态路由的客户将无法利用主—备设计方案。第三,主— 备设计方案的成本更高,因为它需要为备用转发 VNF实例预留 vPE容量。
由于需要对路由规模进行控制,因而 vPE实例的控制平面要保持相对集中。控制平面VNF需要具有 1∶ 1冗余备份,以避免在导致整个控制平面失效的单台服务器发生故障时,整台 vPE无法正常工作。主—备设计是解决此类问题的一种方法。主—备控制平面VNF实例需要部署在城域集群内地理位置分散的服务器上。这将要求主—备同步逻辑在主、备控制平面 VNF之间的低时延城域连接上工作。由于传统路由器软件设计采用了存在于背板上的主、备用部件,因而预期时延非常低(<100µs)。通常,城域距离链路的时延变化范围为1~5ms。因此,需要重新设计控制平面冗余软件逻辑,以应对增加的时延。
图3.13分布式转发VNF实例
配置管理自动化以及 vPE的激活、停用和移动将与 VNF相关。即使采用与 VNF相关的逻辑,转发平面 VNF实例的移动也会导致服务不连续(中断)。解决方案之一是在多宿主设计中为中间盒VNF提供连续(不间断)的转发能力,其中,单个客户端点与两个不同转发VNF实例建立连接。3.4.1节中描述的服务质量管理功能(速率整形)问题迫使人们采用两个转发 VNF实例的主—备设计方案,而不是负载均衡设计方案。这是由于每个vPE转发 VNF实例与最终客户之间存在着BGP会话。转发 VNF实例的移动将会造成 BGP会话重置,从而导致短时间中断。我们能做的最佳工作就是对BGP定时器进行管理,将中断持续时间维持在10s。如果电路故障时间非常短, 则将BGP定时器设置过低会导致不必要的 BGP重置 4。
总之,中间盒VNF设计非常复杂,需要与 VNF有关的逻辑,以使设计具有弹性。当将网络虚拟化与在传统云运行的 Web服务进行比较时,这一点经常会被忽略。Web服务使用主机 VNF,因而完全可以依赖云平台功能来实现弹性。