支持基于 ETSI NFV-SOL 的错误处理¶
https://blueprints.launchpad.net/tacker/+spec/support-etsi-nfv-specs
NFV 架构框架内的 ETSI 规范 [1] 描述了基于行业需求、SDN/NFV 厂商和电信运营商反馈的 NFV 开发和使用的主要方面。这些规范包括 REST API 和数据模型架构,供 NFV 用户和开发人员在相关产品中使用。
问题描述¶
在当前的基于 ETSI NFV-SOL 的 Tacker 实现中,Tacker 执行自身的错误处理操作,以响应 VNFM 遇到的错误。
然而,这些操作与当前 ETSI NFV 数据模型不一致。因此,可能与根据 ETSI NFV 规范开发的 第三方 VNFs [3] 缺乏兼容性。支持关键的 ETSI NFV 规范将显著减少 Tacker 集成到电信生产网络的工作量,并简化未来标准的进一步开发和支持。
提议的变更¶
引入一个新的接口,用于撤销 VNF 实例的 VNF 生命周期管理操作。通过此接口提供的操作是
回滚
1) LCM 资源回滚流程¶
先决条件:操作状态应设置为“FAILED_TEMP”状态。此外,正在进行的生命周期管理操作应为 VNF 实例化或扩展。
该过程包括以下步骤,如每个部分所示。
1-1) 发送通知¶
VNFM 预先保存了消费者通过“Subscription API”发送的回调 URL。
根据生命周期管理操作的进度状态,发送 API 通知 (Notify) 以通知状态更改并更新内部 operation_status。
接收到通知的节点返回 204 NO CONTENT 表示成功,并掌握 VNFM 的序列状态。
VNFM 使用 VNF 回滚通知的状态如下
ROLLING_BACK
ROLLED_BACK
后置条件:当回滚操作成功完成时,操作状态将更改为“ROLLEDBACK”状态。
1-2) 回滚 LCM 操作¶
当收到回滚请求时,VNFM 在终止时正常运行以停止生命周期操作。当回滚操作在 VNF 实例化期间执行时,VNFM 会删除所有 VM 和资源。
当回滚操作针对扩展执行时,VNFM 会删除扩展操作过程中指定的所有 VM 和资源。
用户需要通过 VNF 配置单独实现回滚子操作。对于扩展,VNFM 会启动 VNF 配置以进行回滚。实例化不启动 VNF 配置。
后置条件:当回滚成功完成时,实例化状态仅对“实例化 VNF”过渡到 NOT_INSTANTIATED 状态。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
将添加以下 RESTful API。此 RESTful API 将基于 ETSI NFV SOL002 和 SOL003 [2]。
- 名称:回滚 VNF 操作描述:请求回滚 VNF 生命周期操作方法类型: POST资源的 URL:/vnflcm/v1/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback请求:此资源的资源 URI 变量
名称
描述
vnfLcmOpOccId
相关 VNF 生命周期管理操作发生的标识符。
响应:数据类型
基数
响应代码
描述
n/a
n/a
成功 202错误 404 409请求已被接受处理,但处理尚未完成。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
在 python-tackerclient 中添加新的 OSC 命令,以调用 VNF 实例 API 的回滚操作。
性能影响¶
无
其他部署者影响¶
先前创建的 VNF 将不允许使用新引入的 API 进行管理。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Keiko Kuriu <keiko.kuriu.wa@hco.ntt.co.jp>
工作项¶
为 VNF 实例的 LCM 通知接口向 Tacker-server 添加新的 REST API 端点。
修改 python-tackerclient 以添加新的 OSC 命令,用于调用 VNF 实例 RESTful API 的回滚操作。
添加 Tacker 消费 Rest API 以获取通知的功能
添加新的单元和功能测试。
更改 API Tacker 文档。
依赖项¶
为了执行回滚操作,消费者应提前调用订阅操作 [4],以便获取与目标 LCM 操作相关的“vnfLcmOpOccId”。
测试¶
将为 VNF 实例的 VNF 生命周期管理添加单元和功能测试用例。
文档影响¶
将添加完整的用户指南,以说明如何使用示例调用 VNF 实例的 VNF 生命周期管理。