v1 Heal 中启用/禁用 Cinder 卷重创建的选项

https://blueprints.launchpad.net/tacker/+spec/v1-heal-cinder-volume

本规范建议在发出 v1 Heal 请求时,添加一个选项以启用或禁用 Cinder 卷的重创建。

问题描述

当前的 v1 Heal 请求始终会重新创建指定的 VNFC 实例及其相关的 Cinder 存储资源,这对于希望保留其存储数据的用户来说不够灵活。v2 Heal 请求已经提供了一个选项来控制此行为。

提议的变更

v1 Heal 请求中现有的 additionalParams 字段将被扩展,以包含一个新的参数,允许用户选择是否重新创建 Cinder 存储资源。

为了实现这一点,将在 tacker.conf 中的 [vnf_lcm] 下添加两个新的参数。如果未定义任何一个参数,现有行为将保持不变。

heal_vnfc_block_storage 设置默认行为。如果 Heal 请求未指定该参数,则使用此值。

heal_include_block_storage_key 设置可以在 Heal 请求的 additionalParams 字段中使用的参数名称。这允许用户将请求格式与 v2 对齐,或者在需要时选择不同的名称。(将其设置为“all”将匹配 v2 请求格式。[1]

通过配置这两个参数,用户可以灵活地调整行为以适应他们的操作需求。

tacker.conf 的示例

[vnf_lcm]
heal_vnfc_block_storage = false
heal_include_block_storage_key = heal_include_storage  # customized name

在这种情况下,使用 tacker-cli 和 additional-param 的 Heal 请求示例

openstack vnflcm heal --vnfc-instance <vnfc_id> --additional-param-file <file_path> -- <vnflcm_id>
{
  "additionalParams":
    {
      "heal_include_storage": true
    }
}

在这种情况下,只有在 Heal 请求中明确指定时,才会重新创建存储。这意味着它适用于大多数用户在 Heal 操作期间希望保留其存储数据的环境。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

升级影响

实现

负责人

主要负责人

Hitomi Koba <hi-koba@kddi.com>

工作项

  • 考虑使 heal_include_block_storage_key 可配置,基于 ETSI-NFV 方向(正在讨论中)。

  • 更新文档 (文档影响)。

  • 更新 OpenStack 驱动程序 (tacker/nfvo/drivers/vim/openstack_driver.py) 以检查 heal_vnfc_block_storageheal_include_block_storage_key 配置值,并相应地分支逻辑。

  • 根据需要修改其他相关部分。

依赖项

测试

添加单元测试。

文档影响

  • 配置选项 [2]

  • ETSI NFV-SOL VNF Healing (v1) [3]

  • NFV 编排 API 参考 (v1) [4]

  • 命令行界面参考 (v1) [5]

参考资料