基于 ETSI NFV-SOL 规范的支持 VNF 更新操作

https://blueprints.launchpad.net/tacker/+spec/support-etsi-nfv-specs

NFV 架构框架内的 ETSI 规范 [1] 描述了基于行业需求、SDN/NFV 厂商和电信运营商反馈的 NFV 开发和使用的主要方面。这些规范包括 REST API 和数据模型架构,供 NFV 用户和开发人员在相关产品中使用。

问题描述

在当前的基于 ETSI NFV-SOL 的 Tacker 实现中,Tacker 使用其自身的 API 来描述 VNF 更新操作,即执行 VNF 应用程序软件修改的能力。

然而,这些操作与当前 ETSI NFV 数据模型不一致。因此,可能缺乏与 第三方 VNF [4] 的兼容性,因为它们是根据 ETSI NFV 规范开发的。支持关键的 ETSI NFV 规范将显著减少 Tacker 集成到电信生产网络的工作量,并简化未来标准的进一步开发和支持。

提议的变更

引入一个新的接口来更新 VNF 实例的信息。

通过此接口提供的操作是:* 修改 VNF

此操作可以更新以下项目:- vnfInstanceName - vnfInstanceDescription - vnfdId - metadata - vimConnectionInfo

1) 修改 VNF 信息操作流程(更改 vnfdId)

先决条件:已创建代表 VNF 实例的资源。用于“修改 VNF”的 VNF 包已在 NFVO 中注册。

../../_images/0119.png

该过程包括以下步骤,如图所示

  1. 客户端向“单个 VNF 实例”资源发送 PATCH 请求。

  2. 如果 VNFM 没有目标 VNF 包,则 VNFM 从 NFVO 获取它。

  3. VNFM 向客户端发送 VNF 生命周期管理操作发生通知,状态为“PROCESSING”,以指示生命周期管理操作的发生。

  4. VNFM 已完成修改操作。

  5. VNFM 向客户端发送 VNF 生命周期管理操作发生通知,状态为“COMPLETED”,以指示生命周期管理操作的完成。

后置条件:成功完成后,VNF 实例的信息已更新。

2) 修改 VNF 信息操作流程(其他更改)

先决条件:已创建表示 VNF 实例的资源。

../../_images/0213.png
  1. 客户端向“单个 VNF 实例”资源发送 PATCH 请求。

  2. VNFM 向客户端发送 VNF 生命周期管理操作发生通知,状态为“PROCESSING”,以指示生命周期管理操作的发生。

  3. VNFM 已完成修改操作。

  4. VNFM 向客户端发送 VNF 生命周期管理操作发生通知,状态为“COMPLETED”,以指示生命周期管理操作的完成。

后置条件:成功完成后,VNF 实例的信息已更新。

备选方案

数据模型影响

修改当前 ‘tacker’ 数据库中的以下表。相应的模式如下详细说明:-

vnf_instances:

vnf_metadata vnf_metadata json

REST API 影响

将添加以下 restFul API。此 restFul API 将基于 ETSI NFV SOL002 [2] 和 SOL003 [3]

  • 名称:修改 VNF 实例
    描述:修改单个 VNF 实例资源。
    方法类型: PATCH
    资源的 URL:/vnflcm/v1/vnf_instances/{vnfInstanceId}
    请求:此资源的资源 URI 变量

    名称

    描述

    VnfModificationRequest

    要修改的 VNF 实例的标识符。

    请求:

    数据类型

    基数

    描述

    VnfModificationRequest

    1

    Scale VNF 操作的参数。

    属性名称

    数据类型

    基数

    受支持于 (V)

    vnfInstanceName

    字符串

    0..1

    vnfInstanceDescription

    字符串

    0..1

    vnfPkgId

    标识符

    1

    vnfdId

    标识符

    1

    vnfConfigurableProperties

    KeyValuePairs

    0..1

    vimConnectionInfo

    VimConnectionInfo

    0..N -> 0..1

    metadata

    KeyValuePairs

    0..1

    extensions

    KeyValuePairs

    0..1

    vnfcInfoModifications

    VnfcInfoModificartions

    0..1

    vnfcInfoModificationsDeleteIds

    标识符

    0..N

    vimConnectionInfoDeleteIds

    标识符

    0..N

    注意

    vnfPkgId 在 SOL 002 /003 v2.6.1 中不可用,但在 v2.4.1 中可用。然而,大多数 NFV 相关设备,例如 NFVO,仍然使用 v2.4.1 API,并且此属性对于执行 VNF 更新操作是必需的。因此,Tacker 将在 Victoria 版本中支持 vnfPkgId。是否继续支持 v2.4.1 API 和属性以供未来版本使用,将根据服务提供商的要求和 NFV 产品的情况而定。

    注意

    vimConnectionInfo 显示每个 VNF 的多个 VIM。然而,由于 ETSI 当前版本对此功能的有限支持,VIM 属性中的条目数不超过 1。

    响应:

    数据类型

    基数

    响应代码

    描述

    n/a

    n/a

    成功 202
    错误 409

    请求已被接受处理,但处理尚未完成。

    注意

    根据 ETSI NFV SOL 文档,尚未针对 Etag 制定 API 请求/响应规范,并且使用 Etag 的事务未由标准化定义。因此,Victoria 版本不支持 错误代码:412 前置条件失败。一旦为此建立了标准规范,它将被安装到 tacker 上。

安全影响

通知影响

其他最终用户影响

在 python-tackerclient 中添加新的 OSC 命令来调用 VNF 实例 API 的 VNF 更新操作。

性能影响

其他部署者影响

先前创建的 VNF 将不允许使用新引入的 API 进行管理。

开发人员影响

实现

负责人

主要负责人

Keiko Kuriu <keiko.kuriu.wa@hco.ntt.co.jp>

工作项

  • 向 Tacker-server 添加新的 REST API 端点,用于 VNF 实例的 VNF 更新操作。

  • 修改 python-tackerclient,以添加新的 OSC 命令,用于调用 VNF 实例 restFul API 的更新操作。

  • 添加新的单元和功能测试。

  • 更改 API Tacker 文档。

依赖项

测试

将为 VNF 实例的 VNF 生命周期管理添加单元和功能测试用例。

文档影响

将添加完整的用户指南,以说明如何使用示例调用 VNF 实例的 VNF 生命周期管理。

参考资料