OpenStack的子项目Tacker是NFV管理器,用于监视、配置NFV和管理NFV全生命周期。基于通用性考虑,Tacker对VNF的监视、配置、管理都是基于插件方式来实现,集成不同的厂商VNF需要进行开发对应的插件来适配各个厂商,在Tacker中这插件称之为mgmt_driver。本文将详细讲解tacker整个集成的流程,并重点讲解mgmt_driver插件的开发方法。
如下图所示,其中PluginA和PluginB 就是Tacker与 VNFA和VNFB进行对接的插件,主要负责与VNF和EMS交互,完成实例化、扩所容、升级、终止等生命周期操作相关的业务协商和配置。
Tacker集成VNF的流程
集成分为五个步骤。
1.收集厂商VNF的基本信息和资源信息,信息包含image、CPU、memory、disk、网络构成等。
2.根据收集的VNF信息进行Template的设计。
Template根据TOSCA规范进行了一部分自定义。在tacker /samples/tosca-templates/vnfd/下可以看到很多模板的示例,可以进行参照。这边给出一个示例。
注:详细的语法不是本文讨论的重点。在今后的分享中,会陆续的介绍。
3.根据收集的VNF信息进行配置文件的设计。VNF配置文件采用Yaml格式,内容字段由厂家自定义。配置文件中的内容,需要在后文中介绍的mgmt_drvier插件中进行解析,并根据解析出来的内容,对VNF进行配置。
4.根据收集的VNF信息进行策略文件的设计。目前策略文件,定义在中VNF Template中,以后会独立出来,可以灵活的调整的策略。
5. 根据VNF的配置需求,进行VNF配置插件的开发。插件是否需要开发,是由VNF来决定的,如果VNF不需要进行一些初始化配置、业务配置,则不需要进行插件的开发。
插件的开发
Tacker框架中,对插件定义了如下表的接口,在插件的开发的时候,需要对接口进行实现或重写,实现方式可以由VNF厂家自己实现,也可以参照ETSI规范或者相关企业标准实现。
概要的部署方式如下:
1) 实现上面的各个接口之后,将插件代码放在如下位置。
tacker/vnfm/mgmt_drivers/
2) 修改tacker/setup.cfg配置文件。
注: {your driver name}替换成插件的文件名称。{your driver class name}替换为插件文件类的名称。
3) 将代码部署到环境中。
4)修改/usr/etc/tacker/tacker.conf配置文件
目前tacker的mgmt_driver插件,只能在VNF实例化、更新、删除的时候,进行VNF的预处理和后处理,在扩缩容的时候,无法对进行VNF的预处理和后处理,而在实际的应用场景中,扩缩容的时候同样需要对VNF的进行配置,所以后续需要在mgmt_driver增加新的接口来处理扩缩容等场景下和VNF的交互。
转载自: 苏研大云人