随着关于网络功能虚拟化(NFV)的讨论持续升温,特别是在移动服务提供商市场,运营商正在尝试虚拟化演进分组核心(EPC)中的关键功能,诸如服务网关(SGW)、PDN网关(PGW)和移动性管理实体(MME)。通过利用现成的x86平台运行这些功能,他们可以从硬件系统中分离软件轨迹,并实现一定程度的供应商独立性。至少原则上是这样。
挑战变得越来越复杂。虽然一些功能只需要相对较低的带宽,并且不需要高容量和高处理能力,但是其他功能需要。对于那些功能来说,x86平台的魅力在于易于扩展和弹性开通能力。但这也是事情开始变得有点棘手的地方。
在许多情况下,虚拟化环境中的扩展性能需要对数据包进行特殊处理。例如,在使用单根输入/输出虚拟化(SR-IOV)等技术执行管理程序和虚拟交换旁路时。通常,企业将使用专门的网络接口卡(NIC),结合硬件加速或NIC级卸载以提高性能。但是要利用这些技术来加速和改进性能,企业需要使用这些特定的卡,这样,就会在软硬件方面带来一定程序被锁定的情况。
换句话说,一旦运营商部署了加速技术,他们就不能简单地将一台服务器交换为任何其他基于x86的服务器。相反,他们需要继续与提供硬件加速和NIC卡的同一家供应商合作,甚至可能从该供应商处购买产品,以确保他们的软件可轻松迁移至具备硬件辅助功能的新一代NIC卡。
接下来,使用NIC卸载、管理程序/内核旁路和其他技术只能提升少量性能时,就需要通过多个服务器来扩展性能了。如果被虚拟化的网络功能是无状态的,则相对容易。然而,如果需要在横向扩展的NFV解决方案上保持状态和负载平衡,则该过程变得更复杂。在后一种情况下,企业将需要一个负载均衡器,以读取与网络功能相关的协议,关联各个接口的流量(如果需要),然后在虚拟化EPC功能的横向扩展实例之间智能地平衡负载。
这个过程让我想起了早期的电子商务和商业互联网,那个时候也是从运行x86的web服务器开始的。随着网站和Web应用的流量增长,那些Web服务器和应用程序需要扩展。这就需要流量在横向扩展解决方案之中达到负载均衡。对于电子商务流量,这需要诸如状态负载均衡器之类的功能来跟踪会话和cookies,以及向Web应用程序或服务器的正确实例发送正确的流量。虽然这最初可以通过基于软件的负载均衡器实现,但是随着流量增长,该过程就需要一个专用设备,可以执行各种任务,包括负载均衡、运行状况检查和负载重新分配等。随着时间的推移,这导致了具有现场可编程门阵列(FPGA)和硬件辅助功能的专用负载均衡器的出现,并最终实现了应用交付控制器。
网络功能虚拟化(NFV)世界是否朝着同一个方向发展呢?如果是,谁将为所有不同的虚拟化网络功能构建负载均衡器?如果每个供应商都提供具有不同虚拟化网络功能(VNF)的解决方案,用于在横向扩展环境中进行负载平衡,那么每个虚拟化EPC功能是否会有特定供应商的负载平衡器呢?
两个场景(即,使用专用加速引擎和NIC用于服务器内的性能改进,以及使用专用的状态负载均衡器设备在服务器之间分配流量)一起使用,引发了一个问题:NFV是否会走向更紧密的供应商绑定之路,而不是供应商具备更大的独立性?在当前的发展轨迹中,结果是肯定的。
原文发布时间为: 2017年3月7日
本文作者:Gigamon首席技术官Shehzad Merchant