最近,NFV(网络功能虚拟化)是电信运营商和云开发者念叨最多的热词。本文将对NFV以及OpenStack Tacker项目,特别是其中的Health Monitor功能做一次简单的梳理。
NFV 网络功能虚拟化
目前,由于电信运营商网络包括大量的专有硬件设备,如果运营商想要推出一个新的网络服务,如负载均衡或防火墙,就往往需要购置各种新硬件,之后再为这些新“盒子”匹配合适的空间和电力。
能否以软件的方式解决这些问题?于是乎,NFV来了。
通过将硬件与虚拟化技术结合,NFV可以实现所有的网络功能。所以,以独立于(特定)硬件实现软件定义网络功能的理念称为NFV,也就是网络功能虚拟化。
另一方面,软件实现了网络功能,这里如果去掉硬件的话,就可以称为虚拟网络功能(VNF Virtual Network Function)。
听起来挺绕,是不是?让我们以一个场景来了解NFV,VNF的实际意义。
上图是一个由防火墙、负载均衡、相同的Web应用服务器构成的典型高可用的方案,其中防火墙和负载均衡是实际的硬件设备,也就是说,这是一个非NFV架构的典型例子。
而在上图中,将硬件的防火墙和负载均衡更换为软件运行的虚机,这里用软件实现了防火墙或其他网络功能,就可称为虚拟网络功能(VNF)。而将专有硬件移除,使用软件与虚机\裸机结合的概念与架构,则可称为网络功能虚拟化(NFV)。
NFV可以提供许多好处,包括:
- 降低硬件设备成本
- 使用单一平台应对不同应用、用户和租户的可用性(简化网络配置)
- 网络服务可以迅速按需扩展与缩小
NFV MANO(管理与编排)是什么?
正如在NFV的三重好处中我们所提到的,NFV可以轻松扩展或缩小网络服务,这就是需要有实体来运行与管理。为此,欧洲电信标准协会行业规范组(ETSI ISG)定义了NFV MANO框架。
NFV MANO主要功能模块:
- NFV Orchestrator(NFV编排):用于部署新的网络服务,如:防火墙
- VNF Manager:对VNF实例的生命周期进行管理
- Virtualized Infrastructure Manager (VIM)虚拟基础设备管理:控制和管理NFV基础设备,如:计算、存储和网络资源
OpenStack Tacker 组件
Tacker是始于2015 年 3 月 的OpenStack 孵化项目。用于OpenStack中 NFV编排和VNF 的管理。完全基于欧洲电信标准协会行业规范组(ETSI ISG)定义的MANO框架。在Tacker中,OpenStack Nova、 Neutron、Cinder等组件集体作为 VIM虚拟基础设备管理。
Tacker主要有以下模块与功能:
VNF Manger
- 为用户提供VNF Catalog。VNF Catalog存储着由最终用户上传的VNF descriptor。
- 对NFV实例进行基本的生命周期管理
- 有利于VNF的初始配置
NFV编排
- 提供基于端到端部署的 VNFs 平台模板
- 提供了横跨 VIMs 编排 VNFs灵活性
- Tacker通常需要TOSCA模板作为输入 VNF管理器以编排 VNFs。TOSCA模板构成 VNF descriptor和网络服务descriptor,目前 Tacker 仅支持VNF descriptor。
Tacker的Health Monitoring (健康监测)
当前版本的Tacker的监测是去Ping 运行NFV的虚机IP,Tacker的开发者将为下一代的监测框架努力,包括:
- 即插即用的驱动程序来监测虚机
- 提高对更多事件和行为的监测驱动可用性
- 当Tacker无法到达虚机时,将自动重启
这些功能让监测框架在生产环境中也是可用的。Ping 和HTTP Ping监测驱动在默认配置下就已提供。用户可通过参数,如端口号、网址等,以检查监测虚机的可达性。Tacker值得注意的下一件事是auto scaling功能,预计在Liberty版本中实现。
参考
https://wiki.openstack.org/wiki/tacker
https://blueprints.launchpad.net/tacker/