作者: 赵怡
1. Tacker部分驱动代码
Tacker创建,更新,删除等管理监控NFV虚拟机的代码主要在vm/plugin.py文件中。
除了对数据库的操作外, 最主要的是调用几个driver驱动来实现上述创建,更新,删除等管理监控NFV虚拟机。
从master版最新代码(2016/5/13)来看, 涉及到的driver驱动有infra_drivers(用于部署NFV), mgmt_drivers(用于配置管理NFV),monitor_drivers(用于监控NFV),以及nfvo_driver(用于配置和获取VIM信息)
VM driver
NFVO driver
infra_driver
infra driver作用在于创建,更新,删除NFV虚拟机。
从代码上看,目前支持通过heat编排模块API来管理NFV虚拟机, 或者直接通过novaAPI来管理NFV虚拟机。涉及到的主要主要API有: create, create_wait, update, update_wait, delete, delete_wait等。
mgmt_driver
mgmt driver作用在于配置NFV虚拟机。比如用户希望在启动NFV虚拟机时,通过ssh配置防火墙规则。
那么用户可以自己写mgmt driver, 实现mgmt_call等接口。 这里可以把相关防火墙配置放到上述的TOSCA YAML文件中灵活配置, 通过mgmt drvier来获取配置并通过ssh命令下发给NFV虚拟机。
主要API有: mgmt_url, mgmt_call, mgmt_create_pre, mgmt_create_post,mgmt_update_pre, mgmt_update_post, mgmt_delete_pre, mgmt_delete_post, mgmt_get_config等。
monitor_driver
monitor driver作用在于监控NVF虚拟机的健康状态。目前已经有的monitor监控驱动有ping和httpping.
ping驱动是用linux命令 ping -c count-W timeout -i interval MGMT_IP方式来监控可达性。
http_ping驱动是用python库中的urlopen URL方式来监控web页面的可达性。
主要API有: monitor_url, monitor_call, monitor_get_config等。
nfvo_driver
最近新增了nfvo_driver, 对nfvo进行操作。 目前实现了部分功能, 如对VIM(目前这里只有openstack驱动)进行创建, 更新,删除操作, 代码上看目前Openstack VIM创建就是通过keystone来注册认证OpenStack, 然后获得OpenStack的一些基本信息, 如regions列表, 存入Tacker中用于安置部署。
主要API有: create_vim, update_vim, delete_vim等。
2. Tacker RestFul API
Tacker API的定义在K版和L/master版上有一点小的命名区别, K版中的device_templates对应了L版中的vnfds, 而K版中的devices对应了L版中的vnfs。
以下为master分支上的Tacker RestFul API定义:
Lists information for Tacker API version. GET / List API versions - Lists information about Tacker API version. Response: {
"versions": [ {
"status": "CURRENT", "id": "v1.0", "links": [ {
"href": "http://10.18.160.13:8888/v1.0", "rel": "self" } ] } ] }
GET /v1.0/vnfds List vnfds - List vnfds stored in the VNF catalog. Response: {
"vnfds": [ {
"service_types": [ {
"service_type": "vnfd", "id": "378b774d-89f5-463 |