使用用户数据的 LCM 操作¶
本规范描述了使用 LCM 操作用户数据进行 LCM 操作的方法。
问题描述¶
在 Tacker 中,消费者使用 VNFD 来管理和编排 NFVI 上的网络服务和虚拟化资源。然而,根据 VNF 类型,当前 VNFD 无法描述更多的需求。与实际商业用例相比,在 VNFD 中描述特定的 VNF 部署信息受到限制。
以下是一些实际用例示例。
运营商必须在物理层设计 CPU pinning 分配。
根据 VNF 类型,运营商可能希望附加外部存储而不是 Cinder。
运营商可以根据 VIM/NFVI 的可用性修改 VNF 的高可用性设计。
当前的标准化 [sol001] 不支持在 VNFD 中描述这些配置。另一方面,在实际复杂的用例中,必须考虑上述 VIM 和 NFVI 配置。这种提议的方法实现了 HOT 可以更灵活地描述,并且消费者可以执行满足特定要求的 VNF 部署。
提议的变更¶
注意
此方法论正在 ETSI ISG NFV 中讨论。规范可以根据标准化 [sol014] 进行修改。
本规范的范围侧重于:使用 LCM 操作用户数据设计 LCM 操作方法。消费者为 HOT 提供输入参数的选择。在这种方法中,消费者通过 VNF Package 向 Tacker 提供以下内容:
基础 HOT:原生云编排模板,HOT 在这里指的是通常用于不同 VNFD 中 LCM 操作的 HOT。这个基础 HOT 可以在 OpenStack API 上工作,并由输入参数填充。
LCM 操作用户数据:一个返回键/值数据的脚本,作为用于基础 HOT 的 Heat 输入参数。作为 Heat 输入参数,可以分配在 VNFD 中未静态定义的 OpenStack 参数。(例如,flavor、镜像、硬件加速、驱动程序设置等)。
使用 LCM 操作用户数据的实例化过程¶
作为一个例子,下面描述了使用 LCM 操作用户数据的 VNF 实例化过程。
如上图所示,实例化 VNF 包括以下步骤。
消费者通过 Instantiate VNF API 请求发送 VNF 实例化请求。在此期间,包含基础 HOT、LCM 操作用户数据和 VNFD 的 VNF 包已经上传到 Tacker 中。
存在一个决策过程来选择实例化方法。Tacker 将检查 InstantiateVNFRequest API 中的“additionalParam”值之一,并决定应执行哪个 LCM 方法。如果存在关于 LCM 操作用户数据的标志,例如 -additionalParam “lcm-operation-user-data:file_name.py lcm-operation-user-data-class:class_name”,Tacker 将按照如下所述使用 LCM 操作用户数据进行 VNF 实例化。如果不是,Tacker 将使用当前 OpenStack 中支持的 Tosca-parser 和 Heat-translator 进行处理。
Tacker 将从 VNF 包中获取 VNFD、参数 LCM 操作用户数据和基础 HOT。
Tacker 创建一个镜像文件和 Flavor 并获取 Id。根据 ETSI NFV 文档 [sol003],镜像和 flavor 的创建由 NFVO 插件执行。在本提案中,Tacker 作为 VNFM 处理这些操作,而不是 NFVO,因为这些功能不会在 Tacker 的 Ussuri 版本中引入。
Tacker 运行 LCM 操作用户数据,并使用 ImageId 和 FlavorId 从 VNFD、VNF 实例化请求主体和 NFVO 的授权响应中提取 Heat 输入参数。
外部网络信息可以从 InstatiateVNFRequest API 中提取,并作为程序参数传递。
根据 ETSI NFV 文档,Image Id 和 Flavor Id 从 NFVO 通过 Grant API 的响应传递。在本提案中,Tacker 作为 VNFM 处理这些 Id,而不是 NFVO,因为 Grant API 不会在 Tacker 的 Ussuri 版本中引入。
Tacker 使用 Heat 输入参数和基础 HOT 创建堆栈。
注意
虽然 LCM 操作用户数据包含用于不同 LCM 操作(例如 VNF 更新)的参数映射,但本版本支持 VNF 实例化。
备选方案¶
由于 Tacker 使用 Tosca Parser / Heat translator 和提议的方法在创建使用 VNFD 的 HOT 方面是通用的,因此该提案仅是一种可选方法。如果 VNF 具有超出 VNFD 中描述的内容的特殊要求,那么提议的方法能够更灵活地描述 HOT 是合适的。
数据模型影响¶
无
REST API 影响¶
此提议的功能将与另一个规范中提出的新的 LCM API [nfv_api_spec] 一起使用。
安全性¶
无
通知影响¶
无
其他最终用户影响¶
消费者必须创建参数 LCM 操作用户数据和基础 HOT。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Keiko Kuriu <keiko.kuriu.wa@hco.ntt.co.jp>
- 其他贡献者
Hiroo Kitamura <hiroo.kitamura@ntt-at.co.jp>
工作项¶
实现选择 LCM 方法的决策过程
实现参数 LCM 操作用户数据的运行时环境
实现单元和功能测试
文档
依赖项¶
此方法将与即将到来的 LCM API 开发一起工作 [lcmapi_spec]。
测试¶
使用 LCM 操作用户数据的 VNF 实例化