得益于云计算的发展,网络流量正在成倍增长,服务提供商为了满足最终用户和企业的需求正承受着巨大的压力,所以他们借助软件定义网络(SDN)和网络功能虚拟化(NFV)来提高服务敏捷性和运行效率。

nfv网络虚拟化实现了(OPNFV如何实现网络功能虚拟化)(1)

开源软件以及成为应对这些挑战的关键因素,在本篇文章中我们将关注开源项目OPNFV,它是一个运营商级NFV开源平台。

大背景

OPNFV是由Linux基金会支持的,聚集了供应商,云计算和基础设施厂商,定义新型平台的开发者和用户,整合现有开源构件与新组件并测试、开发、部署NFV的开源项目。

OPNFV是一个合作项目,包括服务提供商如AT&T、中国移动、NTT、意大利电信、沃达丰,IT厂商包括Brocade,Cisco,Dell,HP,华为,IBM,Intel,Juniper,NEC,诺基亚,红帽。

这些业界领导者共同的目标是通过构建一个运营商级的平台来推动NFV的演进,重点是确保多个开源组件的互操作性、一致性和高性能。在这方面,OPNFV与多个项目持续集成并测试推动技术发展。

OPNFV并不只是旨在开发和建立标准,而是与各种标准组织如ETSI的NFV互联网标准组织、IEEE、ONF等密切合作,以此实现标准的NFV参考平台。

OPNFV最初的重点是虚拟化技术设施,考虑到OpenStack作为虚拟基础设施的管理,下图描述了最初OPNFV的关注点:

nfv网络虚拟化实现了(OPNFV如何实现网络功能虚拟化)(2)

OPNFV最初的目标是组装一套最小的可供实际部署的基础设施,包括软件操作系统(操作系统Nova,KVM),存储(OpenStack Glance和Cinder),网络(OpenDaylight,OVS和ONOS),基础设施(RabbitMQ,PaceMaker,MySQL),操作(OpenStack Horizon,Keystone,Heat),测试(OpenStack Tempest,Robot,Rally)。

OPNFV的首个版本是ARNO,2015年6月发布,下个版本将是Brahmaputra,预计2016年初发布。在ARNO版本中,ISO镜像可以通过Fuel部署或者Foreman部署工具部署,该版本包括各种开源组件如OpenStack(Juno版本),OpenDaylight(Helium SR3版本),支持CEPH和KVM等技术。

nfv网络虚拟化实现了(OPNFV如何实现网络功能虚拟化)(3)

上图总结了OPNFV的用法和相关过程,用户可以自己添加新的开源组件来增强功能,适应新的用例或者运行自定义虚拟网络函数参考平台。

OPNFV安装过程可以分为两个阶段,第一阶段是建立虚拟基础设施管理器(VIM)。第二阶段是OPNFV具体安装和维护,如常见的配置、系统测试等。

OPNFV项目

OPNFV项目可以有很多种:(一)需求项目(二)开发项目(三)集成和测试项目(四)文档。

需求项目关注的是识别和解决与上游项目如OpenStack,OpenDaylight等的差距,这些项目是由需求决定用例,确保上游组件能够满足运营商级NFV部署需求,因此这些项目通常包括用例的输出,差距分析,需求、架构和实施计划。

下图所示是需求项目的范围:

nfv网络虚拟化实现了(OPNFV如何实现网络功能虚拟化)(4)

以下是对上面罗列出的项目的简单总结:

DPACC:提高VM-centric通信性能一直是学术界和产业界关注的焦点,该项目重点是建立一个VNF数据平面加速的架构,主要包括VNF API可移植性以及包括硬件和加速器在内的环境中的资源管理功能。

Promise:Promise项目是一个资源预定和管理项目,旨在加强NFV的实现,Promise专注于服务提供商的需求。运营商需要保留一组资源以备不虞,这些需求能够解决容量管理系统如计算、网络、存储等资源池问题。

Copper:Copper成立的初衷是定义特定的用例,它提供了各种例子包括本地和geo-redundancy,安全控制等。Copper旨在确保虚拟基础设施符合VNF开发人员或用户的需求。

Doctor:由于电信部署高可用性需求的增强,模块/节点的冗余配置等需要维护和管理。有3个典型用例表明在NFV自动化故障和维护中需求和解决方案,它们分别是(a)自动恢复(由关键错误导致)(b)基于故障预测的恢复(防止服务停止处理警告)(c)VM退休(当H/W维护时管理服务)。Doctor是一个故障管理项目,其重心是与OpenStack密切合作开发一个克服管理和维护的缺点的架构。

Multisite:NFV基础设施在很多用例中都能用上,分布在多个geoproject-one-tablegraphical位置,这样的分布式部署需要协调多个虚拟基础设施管理(VIMs),可能会跟支持跨数据中心网络(虚拟和物理基础设施)管理应用程序冗余,策略管理有所不同。该项目重点是增强OpenStack对多点NFV部署的支持。

nfv网络虚拟化实现了(OPNFV如何实现网络功能虚拟化)(5)

Resource Scheduler:OpenStack现有的资源调度解决方案认为是一组有限的参数,如CPU和内存。然而,随着这些参数的变化,对于某些特定电信应用程序,它需要考虑网络信息。该项目的目标是在考虑到网络信息资源隔离的情况下,开发一种高效的资源调度程序。

Prediction:有效避免失败的故障预测系统。该预测系统由数据收集器,预测和管理模块构成。数据收集工具如OpenStack Celiometer、加强版收集器Monasca如Zabbix,Nagios,Cacti。预测子系统使用实时分析和机器学习技术提供的数据收集器。基于该预测,系统会将适当的通知发送到管理模块。

协作开发

OPNFV的协作开发项目旨在将源码与现有开源/持续的开源项目相结合,接下来提供这些项目的简要概述。

nfv网络虚拟化实现了(OPNFV如何实现网络功能虚拟化)(6)

1、开放网络操作系统架构(ONOSFW)

ONOS SDN控制器是由一堆代码实现的与OpenStack集成,从而实现控制器性能增强,包括ML2,L3,服务插件和驱动。

2、OpenVSwitch (OVS) for NFV:

该协作开发计划是OvS项目在软件加速用户空间中改善OvS的性能,增强电信级NFV部署的适用性。

**3、OpenContrail **

该项目将使OpenContrail成为OPNFV部署虚拟网络技术的选择,该项目的主要任务是将OpenContrail构件集成到OPNFV基础设施,并确保在各种安装项目上的支持。

4、Moon Security

这个项目提出了一种Moon安全管理系统来满足用户的安全需求,它将安全管理通过各种机制如授权访问控制、网络防火墙、存储隔离、易处理日志记录等执行。

5、Fast Datapath

软件快速路径服务质量指标项目专注于公共事业和图书馆的发展,通过NFV技术设施(NFVI)具有低延迟、高绩效包处理路径等优点,VNFs可以测量电信流量和性能关键指标(kpi),检测和报告违规行为。具有衡量数据平面KPIs流量质量的能力,不管数据平面是基于硬件或软件实现的。

6、Kernel-based Virtual Machine (KVM)

NFV监控在NFVI中提供了重要功能,现有的虚拟机监控程序设计的初衷并不一定能满足NFVI的要求,需要根据NFV的特性补充后期的工作。

7、OpenDaylight服务功能链(ODL SFC)

服务功能链(SFC)能够定义网络服务列表(如:防火墙、NAT、QoS),这些服务组合在一起形成一个服务的网络链,该项目提供了在NFV环境实施项目中的ODL SFC基础设施。

集成测试

OPNFV包括系统集成(CI),测试项目包括功能测试和性能测试:

Octopus:OPNFV和许多开源项目合作,通常情况下,这些项目是独立开发和测试的,这些项目的用例不会覆盖NFV-specific用例,因此,这些项目的集成可能揭露出一些缺陷,Octopus第一个旨在整合这些开源项目。

BootStrap/Get Started:这个项目组装并测试OPNFV基础设施组件最小的能运行VNFs的组合,基本上该项目提供的解决方案,能使现有的安装程序自动安装和配置所需的组件和配置工具,并执行一组基本的系统测试,它以Linux系统中安装的Ubuntu 14.04/Cento 7操作系统为基础。

VSPerf:该项目旨在描述虚拟交换机(VSwitch)的性能,VSPerf致力于开发VSwitch测试架构和所有相关的测试,这有助于验证使用VSwitch的NFV电信级部署。

Functest:Functest被用于测试用例中设置测试工具,包括性能测试,并将测试用例整合到CI。

Yardstick:这个项目将从VNF角度验证NFVI,它提供了两个解决系统功能和性能测试的用例。

Q-Tip:Q-Tip是OPNFV性能基准测试套件,旨在描述平台中的裸机组件。

IPV6:这个项目将在OPNFV平台中创建一个启用IPv6的meta-distribution,并促进IPv6 OPNFV的演进。IPv6项目的可交付成果是自动化脚本、安装、用户指南、差距分析和建议。

Pharos:该项目侧重于建立NFV测试能力。这个测试设备由OPNFV社区不同公司提供,同时考虑全世界各学科和技术环境,努力创建一个规范的OPNFV-compliant测试环境,以及工具、流程和文档,它是一个可以用来支持集成、测试、协作开发的项目。

潜在的需求/开发项目

该项目需要系统可视化,这些是管理员、应用程序开发人员和网络管理的要求,在当前NFV部署中,对服务、基础设施管理、虚拟网络拓扑、虚拟和物理网络元素、流表、统计数据和配置,各级的工具在堆栈上提供可视化功能。

在某些用例中,这些工具缺乏一些重要特性,看着流表进行故障排除极具挑战性,我认为有必要简化可视化、发展基础元素、可视化构建模块问题。

因此,第一幅图将指定一组理想的可视化工具,要求考虑不同方面的可视化NFV部署,并启动与上游项目协作开发,以实现这些需求。

,