ETSI NFV-SOL VNF 变更当前 VNF 包

本文档描述了如何在 Tacker v2 API 中更改 VNF 的当前 VNF 包。

注意

本文档的内容已确认使用以下 VNF 包有效。

请参考以下示例。

如果您使用这些示例,您需要添加以下文件

  • Definitions/etsi_nfv_sol001_common_types.yaml

  • Definitions/etsi_nfv_sol001_vnfd_types.yaml

  • Files/images/cirros-0.5.2-x86_64-disk.img

这些示例会进行以下更新

  • VDU1

    • 更改镜像

    • 更改网络

  • VDU2

    • 更改镜像

    • 更改规格

  • VDU3

    • 无更改

概述

下图显示了更改当前 VNF 包的概述。

  1. 请求更改当前 VNF 包

    用户通过请求 change current vnf package,使用 tacker-client 请求 tacker-server 更改 VNF 实例的当前 VNF 包。

  2. 调用 OpenStack Heat API

    收到 tacker-client 的请求后,tacker-server 会将其重定向到 tacker-conductor。在 tacker-conductor 中,请求会再次根据 VNF 实例的内容重定向到适当的 infra-driver(在本例中为 OpenStack infra-driver)。然后,OpenStack infra-driver 调用 OpenStack Heat APIs。

  3. 更改 VM 的镜像

    OpenStack Heat 根据 API 调用更改 VM 的镜像。

../../../../_images/chg_vnfpkg1.svg

先决条件

应安装以下软件包

  • tacker

  • python-tackerclient

至少需要一个状态为 INSTANTIATED 的 VNF 实例。有关实例化 VNF 的过程,请参阅 使用用户数据部署 ETSI NFV-SOL VNF 作为 VM

有关上传 VNF 包的操作,请参阅 VNF 包

注意

可以通过镜像或卷直接部署 VM。因此,在更新 VM 的镜像时,将存在两种情况。

使用通用 VNF 包和 flavor_id 进行实例化,然后使用相应链接中的 VNF 包执行 change current vnf package 操作,可以以以下两种方式更新 VM 的镜像。

  1. 将通过镜像创建的 VM 更改为通过新镜像创建的 VM

  2. 将通过卷创建的 VM 更改为通过新卷创建的 VM

更改当前 VNF 包

如前提条件中所述,在执行更改当前 VNF 包之前,必须先创建 VNF。

在执行更改当前 vnf 包之前,您需要上传要更改的 VNF 包。

CLI 命令的详细信息在 v2 Tacker 的 VNF 生命周期管理 中描述。

为了更改当前 VNF 包,您需要在运行更改 VNF 包命令之前准备一个 JSON 格式的定义文件。

sample_param_file.json

{
  "vnfdId": "50656e7a-9726-414c-87e7-bfdabca8d761",
  "additionalParams": {
    "upgrade_type": "RollingUpdate",
    "lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
    "lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
    "vdu_params": [
      {
        "vdu_id": "VDU1",
        "old_vnfc_param": {
          "cp_name": "VDU1_CP1",
          "username": "ubuntu",
          "password": "ubuntu"
        },
        "new_vnfc_param": {
          "cp_name": "VDU1_CP1",
          "username": "ubuntu",
          "password": "ubuntu"
        }
      },
      {
        "vdu_id": "VDU2",
        "old_vnfc_param": {
          "cp_name": "VDU2_CP1",
          "username": "ubuntu",
          "password": "ubuntu"
        },
        "new_vnfc_param": {
          "cp_name": "VDU2_CP1",
          "username": "ubuntu",
          "password": "ubuntu"
        }
      }
    ]
  },
  "extVirtualLinks": [
    {
      "id": "988e3a9d-f9fe-40fa-9850-ce578a1005d5",
      "resourceId": "0cefe3d4-6729-41c5-bd39-277fd9ece3d3",
      "extCps": [
        {
          "cpdId": "VDU1_CP1",
          "cpConfig": {
            "VDU1_CP1_1": {
              "cpProtocolData": [
                {
                  "layerProtocol": "IP_OVER_ETHERNET",
                  "ipOverEthernet": {
                    "ipAddresses": [
                      {
                        "type": "IPV4",
                        "numDynamicAddresses": 1
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]
}

您可以在 additionalParams 中设置以下参数

additionalParams

属性名称

基数

参数描述

upgrade_type

1

文件更新操作方法的类型。指定 Blue-Green 或 Rolling update。

lcm-operation-coordinate-old-vnf

0..1

模拟旧 VNF 的 CoordinateVNF 行为的脚本的文件路径。

lcm-operation-coordinate-new-vnf

0..1

模拟新 VNF 的 CoordinateVNF 行为的脚本的文件路径。

vdu_params

1..N

要更新的目标 VDU 的 VDU 信息。

> vdu_id

1

要更新的目标 VDU 的 VDU 名称。

> old_vnfc_param

0..1

旧 VNFC 连接信息。用于 CoordinateVNF 操作中为了应用配置到 VNFC 的 ssh 连接。

>> cp_name

1

要更新的旧 VNFC 的连接点名称。

>> username

1

要更新的旧 VNFC 的用户名。

>> password

1

要更新的旧 VNFC 的密码。

> new_vnfc_param

0..1

新的 VNFC 连接信息。用于 CoordinateVNF 操作中为了应用配置到 VNFC 的 ssh 连接。

>> cp_name

1

要更新的新 VNFC 的连接点名称。

>> username

1

要更新的新 VNFC 的用户名。

>> password

1

要更新的新 VNFC 的密码。

external_lb_param

0..1

需要配置更改的负载均衡器信息。仅适用于 OpenStack VIM 的 Blue-Green 部署过程。

> ip_address

1

负载均衡器服务器的 IP 地址。

> username

1

负载均衡器服务器的用户名。

> password

1

负载均衡器服务器的密码。

lcm-operation-user-data

0..1

要使用的 UserData 文件名。

lcm-operation-user-data-class

0..1

要使用的 UserData 类名。

注意

sample_param_file.json 可用于更改由 OS::Heat::AutoScalingGroup 和单个 VDU 创建的镜像。

  • vnfdId 是您上传的新 VNF 包的 VNFD id。

  • lcm-operation-coordinate-old-vnflcm-operation-coordinate-new-vnf 是 Tacker 的独特实现,用于模拟 ETSI SOL002 v3.6.1 中的协调接口。主要是一个可以在 VM 创建后与 VM 通信、执行 VM 的特殊自定义或确认 VM 状态的脚本。

  • vimConnectionInfo 是一个可选参数。此操作可以指定 VNF 实例的 vimConnectionInfo。即使此操作指定与一个 VNF 实例关联的多个 vimConnectionInfo,也只会使用其中一个用于生命周期管理操作。无法删除已注册的 vimConnectionInfo 的键。

  • vnfConfigurablePropertiesextensions 是可选参数。与更新操作一样,这些值通过对请求参数中设置的值进行 JSON Merge Patch 与当前值进行更新。

  • extVirtualLinks 是一个可选参数。此操作可以更改 VNF 实例的外部 CP。

注意

当前,此操作仅支持 Change Current VNF Package 的某些功能。

  • 有几种方法可以更新 VDU,但 Bobcat 版本的 Tacker 仅支持 RollingUpdate 类型。您可以通过 upgrade_type 参数进行设置。

  • 目前仅支持更新 VM 的镜像和修改外部网络。

  • 当前不支持的更新

    • 此 API 当前不支持根据 VNF 包增加或减少 VNFc 的数量。

    • 不支持整个 VDU 的添加和删除操作。

    • 在 ETSI 的定义中,外部和内部网络(例如 extVirtualLinks、extManagedVirtualLinks)可以被修改。此当前 API 仅支持修改外部网络的运算,不支持以下运算。

      • 添加和删除外部网络。

      • 修改、添加和删除内部网络。

如何将通过镜像创建的 VM 更改为通过新镜像创建的 VM

执行更改当前 VNF 包 CLI 命令。完成此更改操作后,您应该通过 Heat CLI 命令检查资源状态。

1. 检查操作前后堆栈的 ‘ID’ 和 ‘Stack Status’。这是为了确认操作前后堆栈 ‘ID’ 已更改,并且堆栈更新已成功更新。

2. 检查操作前后 VDU 及其父资源的 ‘physical_resource_id’ 和 ‘resource_status’。这是为了确认操作前后 ‘physical_resource_id’ 没有更改,并且 ‘resource_status’ 已成功更新。

3. 检查操作前后 VDU 的 ‘image’ 信息。这是为了确认 VDU 已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考

注意

单个 VM 和由 OS::Heat::AutoScalingGroup 创建的 VM 都支持从镜像到镜像的更改。单个 VM 直接由顶层 heat 模板中定义的 OS::Nova::Server 创建。

  • 操作前检查点 1

    操作前的堆栈信息

    $ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
    

    结果

    +--------------------------------------+------------------------------------------+-----------------+
    | ID                                   | Stack Name                               | Stack Status    |
    +--------------------------------------+------------------------------------------+-----------------+
    | e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1 | vnf-1eaf3446-00ed-4a19-869c-1ce9650c8ace | CREATE_COMPLETE |
    +--------------------------------------+------------------------------------------+-----------------+
    
  • 操作前检查点 2

    操作前的堆栈资源信息

    $ openstack stack resource list e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1
    

    结果

    +---------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type              | resource_status | updated_time         |
    +---------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | VDU1_scale    | 03afe647-8f93-42ec-a443-953b550c3b3e | OS::Heat::AutoScalingGroup | CREATE_COMPLETE | 2024-03-07T08:38:19Z |
    | VDU2          | 3feac610-44aa-4c8f-8aa7-1ea2e24e2076 | OS::Nova::Server           | CREATE_COMPLETE | 2024-03-07T08:38:19Z |
    | VDU2_CP1      | d0c460e6-7277-4787-8a90-65bd82a6c663 | OS::Neutron::Port          | CREATE_COMPLETE | 2024-03-07T08:38:19Z |
    +---------------+--------------------------------------+----------------------------+-----------------+----------------------+
    

    操作前由 OS::Heat::AutoScalingGroup 创建的 VDU 的父信息

    $ openstack stack resource list 03afe647-8f93-42ec-a443-953b550c3b3e
    

    结果

    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type             | resource_status | updated_time         |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | bipqh2pbsnhf  | 443d6bec-c8af-46bf-8619-46037f4fbfe7 | base_hot_nested_VDU1.yaml | CREATE_COMPLETE | 2024-03-07T08:38:20Z |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    

    操作前由 OS::Heat::AutoScalingGroup 创建的 VDU 信息

    $ openstack stack resource list 443d6bec-c8af-46bf-8619-46037f4fbfe7
    

    结果

    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type     | resource_status | updated_time         |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | VDU1          | 8d0c4585-8bac-4fe4-bbff-48586432b671 | OS::Nova::Server  | CREATE_COMPLETE | 2024-03-07T08:38:20Z |
    | VDU1_CP1      | 91f4b13d-7eb0-4a32-9d5e-7d5bff865330 | OS::Neutron::Port | CREATE_COMPLETE | 2024-03-07T08:38:20Z |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    
  • 操作前检查点 3

    操作前由 OS::Heat::AutoScalingGroup 创建的 VDU 详细信息

    $ openstack stack resource show 443d6bec-c8af-46bf-8619-46037f4fbfe7 \
      VDU1 -f json | jq .attributes.image.id
    

    结果

    "fc0f50c7-2e46-4f87-8498-203e0b37f03c"
    

    操作前单个 VDU 详细信息

    $ openstack stack resource show e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1 \
      VDU2 -f json | jq .attributes.image.id
    

    结果

    "fc0f50c7-2e46-4f87-8498-203e0b37f03c"
    
  • 执行更改当前 VNF 包

    整个 VNF 的更改当前 VNF 包执行

    $ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \
      ./sample_param_file.json --os-tacker-api-version 2
    

    结果

    Change Current VNF Package for VNF Instance 1eaf3446-00ed-4a19-869c-1ce9650c8ace has been accepted.
    
  • 操作后检查点 1

    操作后的堆栈信息

    $ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
    

    结果

    +--------------------------------------+------------------------------------------+-----------------+
    | ID                                   | Stack Name                               | Stack Status    |
    +--------------------------------------+------------------------------------------+-----------------+
    | e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1 | vnf-1eaf3446-00ed-4a19-869c-1ce9650c8ace | UPDATE_COMPLETE |
    +--------------------------------------+------------------------------------------+-----------------+
    

    注意

    “堆栈状态”过渡到 UPDATE_COMPLETE。

  • 操作后检查点 2

    操作后的堆栈资源信息

    $ openstack stack resource list e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1
    

    结果

    +---------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type              | resource_status | updated_time         |
    +---------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | VDU1_scale    | 03afe647-8f93-42ec-a443-953b550c3b3e | OS::Heat::AutoScalingGroup | UPDATE_COMPLETE | 2024-03-07T09:06:48Z |
    | VDU2          | 3feac610-44aa-4c8f-8aa7-1ea2e24e2076 | OS::Nova::Server           | UPDATE_COMPLETE | 2024-03-07T09:06:36Z |
    | VDU2_CP1      | d0c460e6-7277-4787-8a90-65bd82a6c663 | OS::Neutron::Port          | CREATE_COMPLETE | 2024-03-07T08:38:19Z |
    +---------------+--------------------------------------+----------------------------+-----------------+----------------------+
    

    注意

    VDU(single) 的 ‘resource_status’ 变为 UPDATE_COMPLETE。

    操作后由 OS::Heat::AutoScalingGroup 创建的 VDU 的父信息

    $ openstack stack resource list 03afe647-8f93-42ec-a443-953b550c3b3e
    

    结果

    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type             | resource_status | updated_time         |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | bipqh2pbsnhf  | 443d6bec-c8af-46bf-8619-46037f4fbfe7 | base_hot_nested_VDU1.yaml | UPDATE_COMPLETE | 2024-03-07T09:07:27Z |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    

    注意

    ‘resource_status’ 变为 UPDATE_COMPLETE。

    操作后由 OS::Heat::AutoScalingGroup 创建的 VDU 信息

    $ openstack stack resource list 443d6bec-c8af-46bf-8619-46037f4fbfe7
    

    结果

    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type     | resource_status | updated_time         |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | VDU1          | 8d0c4585-8bac-4fe4-bbff-48586432b671 | OS::Nova::Server  | UPDATE_COMPLETE | 2024-03-07T09:06:50Z |
    | VDU1_CP1      | a3772d47-6bb4-48a9-b13e-ced8379ef27e | OS::Neutron::Port | CREATE_COMPLETE | 2024-03-07T09:06:49Z |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    

    注意

    VDU(created by OS::Heat::AutoScalingGroup) 的 ‘resource_status’ 变为 UPDATE_COMPLETE。

  • 操作后检查点 3

    操作后由 OS::Heat::AutoScalingGroup 创建的 VDU 详细信息

    $ openstack stack resource show 443d6bec-c8af-46bf-8619-46037f4fbfe7 \
      VDU1 -f json | jq .attributes.image.id
    

    结果

    "8958b374-1b69-485b-a8f5-561f00e3605f"
    

    注意

    您可以检查 ‘image’->’id’ 已从 ‘fc0f50c7-2e46-4f87-8498-203e0b37f03c’ 更改为 ‘8958b374-1b69-485b-a8f5-561f00e3605f’。

    操作后单个 VDU 详细信息

    $ openstack stack resource show e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1 \
      VDU2 -f json | jq .attributes.image.id
    

    结果

    "6217d94a-8ca1-462c-9af9-b00b2d343bee"
    

    注意

    您可以检查 ‘image’->’id’ 已从 ‘fc0f50c7-2e46-4f87-8498-203e0b37f03c’ 更改为 ‘6217d94a-8ca1-462c-9af9-b00b2d343bee’。

如何将通过卷创建的 VM 更改为通过新卷创建的 VM

执行更改当前 VNF 包 CLI 命令。完成此更改操作后,您应该通过 Heat CLI 命令检查资源状态。

1. 检查操作前后堆栈的 ‘ID’ 和 ‘Stack Status’。这是为了确认操作前后堆栈 ‘ID’ 已更改,并且堆栈更新已成功更新。

2. 检查 VDU 及其父资源的 ‘physical_resource_id’ 和 ‘resource_status’。这是为了确认操作前后 VDU 的 ‘physical_resource_id’ 已更改,VDU 的父资源的 ‘physical_resource_id’ 在操作前后没有更改,并且 VDU 的 ‘resource_status’ 已成功创建,VDU 的父资源的 ‘resource_status’ 已成功更新。

3. 检查操作前后 VDU 的 ‘volume’ 信息。这是为了确认 VDU 已成功更改。

注意

单个 VM 和由 OS::Heat::AutoScalingGroup 创建的 VM 都支持从卷到卷的更改。

  • 操作前检查点 1

    操作前的堆栈信息

    $ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
    

    结果

    +--------------------------------------+------------------------------------------+-----------------+
    | ID                                   | Stack Name                               | Stack Status    |
    +--------------------------------------+------------------------------------------+-----------------+
    | 79094df8-d9d7-4268-833b-2a76d0ead296 | vnf-50ce2a1e-d750-4ae8-bde4-eb241e8801f0 | CREATE_COMPLETE |
    +--------------------------------------+------------------------------------------+-----------------+
    
  • 操作前检查点 2

    操作前的堆栈资源信息

    $ openstack stack resource list 79094df8-d9d7-4268-833b-2a76d0ead296
    

    结果

    +---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | resource_name       | physical_resource_id                 | resource_type              | resource_status | updated_time         |
    +---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | VDU2                | 8ddea18a-d569-42f1-b050-0fdbbbdaab87 | OS::Nova::Server           | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU2_CP1            | f6045bfb-088c-40be-a248-5db6dde9bd7a | OS::Neutron::Port          | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU2-VirtualStorage | 1629cb2e-6b49-4bbe-9fb6-00bade772d24 | OS::Cinder::Volume         | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU2-VolumeType     | 5041cec1-592c-44d2-9c75-0e4432e65e27 | OS::Cinder::VolumeType     | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU1_scale          | 436ac8b9-e379-4d03-8d59-0f15edb94330 | OS::Heat::AutoScalingGroup | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU1-VolumeType     | ce6338a2-9257-4f90-a909-88caa217255f | OS::Cinder::VolumeType     | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    +---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    

    操作前由 OS::Heat::AutoScalingGroup 创建的 VDU 的父信息

    $ openstack stack resource list 436ac8b9-e379-4d03-8d59-0f15edb94330
    

    结果

    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type             | resource_status | updated_time         |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | grvgmrc6lxyr  | a80e3f43-09a0-455e-838e-a05768d4c662 | base_hot_nested_VDU1.yaml | CREATE_COMPLETE | 2024-03-08T06:50:10Z |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    

    操作前由 OS::Heat::AutoScalingGroup 创建的 VDU 信息

    $ openstack stack resource list a80e3f43-09a0-455e-838e-a05768d4c662
    

    结果

    +---------------------+--------------------------------------+--------------------+-----------------+----------------------+
    | resource_name       | physical_resource_id                 | resource_type      | resource_status | updated_time         |
    +---------------------+--------------------------------------+--------------------+-----------------+----------------------+
    | VDU1                | da61a8f3-9560-480b-82c2-a0585499e172 | OS::Nova::Server   | CREATE_COMPLETE | 2024-03-08T06:50:10Z |
    | VDU1_CP1            | f8c09276-28f1-4c03-b8ba-b83e09c8344b | OS::Neutron::Port  | CREATE_COMPLETE | 2024-03-08T06:50:10Z |
    | VDU1-VirtualStorage | 966bb1b2-97b4-490e-9232-8dc74531b362 | OS::Cinder::Volume | CREATE_COMPLETE | 2024-03-08T06:50:10Z |
    +---------------------+--------------------------------------+--------------------+-----------------+----------------------+
    
  • 操作前检查点 3

    操作前由 OS::Heat::AutoScalingGroup 创建的 VDU 详细信息

    $ openstack stack resource show a80e3f43-09a0-455e-838e-a05768d4c662 \
      VDU1 -f json | jq '.attributes."os-extended-volumes:volumes_attached"[].id'
    

    结果

    "966bb1b2-97b4-490e-9232-8dc74531b362"
    

    操作前单个 VDU 详细信息

    $ openstack stack resource show 79094df8-d9d7-4268-833b-2a76d0ead296 \
      VDU2 -f json | jq '.attributes."os-extended-volumes:volumes_attached"[].id'
    

    结果

    "1629cb2e-6b49-4bbe-9fb6-00bade772d24"
    
  • 执行更改当前 VNF 包

    整个 VNF 的更改当前 VNF 包执行

    $ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \
      ./sample_param_file.json --os-tacker-api-version 2
    

    结果

    Change Current VNF Package for VNF Instance 50ce2a1e-d750-4ae8-bde4-eb241e8801f0 has been accepted.
    
  • 操作后检查点 1

    操作后的堆栈信息

    $ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
    

    结果

    +--------------------------------------+------------------------------------------+-----------------+
    | ID                                   | Stack Name                               | Stack Status    |
    +--------------------------------------+------------------------------------------+-----------------+
    | 79094df8-d9d7-4268-833b-2a76d0ead296 | vnf-50ce2a1e-d750-4ae8-bde4-eb241e8801f0 | UPDATE_COMPLETE |
    +--------------------------------------+------------------------------------------+-----------------+
    

    注意

    “堆栈状态”过渡到 UPDATE_COMPLETE。

  • 操作后检查点 2

    操作后的堆栈资源信息

    $ openstack stack resource list 79094df8-d9d7-4268-833b-2a76d0ead296
    

    结果

    +---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | resource_name       | physical_resource_id                 | resource_type              | resource_status | updated_time         |
    +---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    | VDU2_CP1            | f6045bfb-088c-40be-a248-5db6dde9bd7a | OS::Neutron::Port          | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU2-VolumeType     | 5041cec1-592c-44d2-9c75-0e4432e65e27 | OS::Cinder::VolumeType     | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU1_scale          | 436ac8b9-e379-4d03-8d59-0f15edb94330 | OS::Heat::AutoScalingGroup | UPDATE_COMPLETE | 2024-03-08T07:15:35Z |
    | VDU1-VolumeType     | ce6338a2-9257-4f90-a909-88caa217255f | OS::Cinder::VolumeType     | CREATE_COMPLETE | 2024-03-08T06:50:09Z |
    | VDU2-VirtualStorage | bed6a71d-7858-4787-abd9-6cf617d775a3 | OS::Cinder::Volume         | CREATE_COMPLETE | 2024-03-08T07:14:40Z |
    | VDU2                | 516b5746-ab84-4c9f-be50-a670f0dea338 | OS::Nova::Server           | CREATE_COMPLETE | 2024-03-08T07:15:16Z |
    +---------------------+--------------------------------------+----------------------------+-----------------+----------------------+
    

    注意

    VDU(single) 的 ‘resource_status’ 变为 CREATE_COMPLETE。并且 ‘physical_resource_id’ 从 ‘8ddea18a-d569-42f1-b050-0fdbbbdaab87’ 更改为 ‘516b5746-ab84-4c9f-be50-a670f0dea338’。

    操作后由 OS::Heat::AutoScalingGroup 创建的 VDU 的父信息

    $ openstack stack resource list 436ac8b9-e379-4d03-8d59-0f15edb94330
    

    结果

    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type             | resource_status | updated_time         |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    | grvgmrc6lxyr  | a80e3f43-09a0-455e-838e-a05768d4c662 | base_hot_nested_VDU1.yaml | UPDATE_COMPLETE | 2024-03-08T07:16:14Z |
    +---------------+--------------------------------------+---------------------------+-----------------+----------------------+
    

    注意

    ‘resource_status’ 变为 UPDATE_COMPLETE。

    操作后由 OS::Heat::AutoScalingGroup 创建的 VDU 信息

    $ openstack stack resource list a80e3f43-09a0-455e-838e-a05768d4c662
    

    结果

    +---------------------+--------------------------------------+--------------------+-----------------+----------------------+
    | resource_name       | physical_resource_id                 | resource_type      | resource_status | updated_time         |
    +---------------------+--------------------------------------+--------------------+-----------------+----------------------+
    | VDU1-VirtualStorage | d5fb9aba-14d2-4cab-bc67-b8f12ad42bf5 | OS::Cinder::Volume | CREATE_COMPLETE | 2024-03-08T07:13:44Z |
    | VDU1                | 983befe6-f09e-4b44-b620-84eee3e74c8f | OS::Nova::Server   | UPDATE_COMPLETE | 2024-03-08T07:15:37Z |
    | VDU1_CP1            | e2e05017-1a4c-4a95-b30d-819adeda943c | OS::Neutron::Port  | CREATE_COMPLETE | 2024-03-08T07:15:37Z |
    +---------------------+--------------------------------------+--------------------+-----------------+----------------------+
    

    注意

    VDU(created by OS::Heat::AutoScalingGroup) 的 ‘resource_status’ 变为 UPDATE_COMPLETE。并且 ‘physical_resource_id’ 从 ‘da61a8f3-9560-480b-82c2-a0585499e172’ 更改为 ‘983befe6-f09e-4b44-b620-84eee3e74c8f’。

  • 操作后检查点 3

    操作后由 OS::Heat::AutoScalingGroup 创建的 VDU 详细信息

    $ openstack stack resource show a80e3f43-09a0-455e-838e-a05768d4c662 \
      VDU1 -f json | jq '.attributes."os-extended-volumes:volumes_attached"[].id'
    

    结果

    "d5fb9aba-14d2-4cab-bc67-b8f12ad42bf5"
    

    注意

    您可以检查 ‘os-extended-volumes:volumes_attached’->’id’ 已从 ‘966bb1b2-97b4-490e-9232-8dc74531b362’ 更改为 ‘d5fb9aba-14d2-4cab-bc67-b8f12ad42bf5’。

    操作前单个 VDU 详细信息

    $ openstack stack resource show 79094df8-d9d7-4268-833b-2a76d0ead296 \
      VDU2 -f json | jq '.attributes."os-extended-volumes:volumes_attached"[].id'
    

    结果

    "bed6a71d-7858-4787-abd9-6cf617d775a3"
    

    注意

    您可以检查 ‘os-extended-volumes:volumes_attached’->’id’ 已从 ‘1629cb2e-6b49-4bbe-9fb6-00bade772d24’ 更改为 ‘bed6a71d-7858-4787-abd9-6cf617d775a3’。

如何更改 VM 的规格

执行更改当前 VNF 包 CLI 命令。完成此更改操作后,您应该通过 Heat CLI 命令检查资源状态。

1. 检查操作前后 VDU 的 ‘flavor’ 信息。这是为了确认 VDU 的规格已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考

  • 操作前检查点 1

    操作前 VDU 详细信息

    $ openstack stack resource show e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1 VDU2 \
      -f json | jq .attributes.flavor
    

    结果

    {
      "vcpus": 1,
      "ram": 512,
      "disk": 1,
      "ephemeral": 0,
      "swap": 0,
      "original_name": "m1.tiny",
      "extra_specs": {
        "hw_rng:allowed": "True"
      }
    }
    
  • 执行更改当前 VNF 包

    整个 VNF 的更改当前 VNF 包执行

    $ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \
      ./sample_param_file.json --os-tacker-api-version 2
    

    结果

    Change Current VNF Package for VNF Instance 50ce2a1e-d750-4ae8-bde4-eb241e8801f0 has been accepted.
    
  • 操作后检查点 1

    操作后 VDU 详细信息

    $ openstack stack resource show e7067b0c-1b48-4ca7-a8e2-92ffcbc553f1 VDU2 \
      -f json | jq .attributes.flavor
    

    结果

    {
      "vcpus": 1,
      "ram": 2048,
      "disk": 20,
      "ephemeral": 0,
      "swap": 0,
      "original_name": "m1.small",
      "extra_specs": {
        "hw_rng:allowed": "True"
      }
    }
    

    注意

    您可以检查 ‘attributes.flavor’ 已更改。在此示例中,它已更改如下。

    • ‘attributes.flavor.ram’ 已从 ‘512’ 更改为 ‘2048’

    • ‘attributes.flavor.disk’ 已从 ‘1’ 更改为 ‘20’

    • ‘attributes.flavor.original_name’ 已从 ‘m1.tiny’ 更改为 ‘m1.small’

如何更改外部网络

执行更改当前 VNF 包 CLI 命令。完成此更改操作后,您应该通过 Heat CLI 命令检查资源状态。

1. 检查外部网络资源的数量或 ‘physical_resource_id’。在添加和删除的情况下,这是为了确认操作前后资源数量已更改。在修改的情况下,这是为了确认 ‘physical_resource_id’ 已更改。

2. 检查操作前后 VDU 的 ‘address’ 信息。这是为了确认 VDU 的外部网络已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考

  • 操作前检查点 1

    操作前的外部网络信息

    $ openstack stack resource list 443d6bec-c8af-46bf-8619-46037f4fbfe7 \
      --filter type='OS::Neutron::Port'
    

    结果

    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type     | resource_status | updated_time         |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | VDU1_CP1      | 91f4b13d-7eb0-4a32-9d5e-7d5bff865330 | OS::Neutron::Port | CREATE_COMPLETE | 2024-03-07T08:38:20Z |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    
  • 操作前检查点 2

    操作前的外部网络详细信息

    $ openstack stack resource show 443d6bec-c8af-46bf-8619-46037f4fbfe7 VDU1 \
      -f json | jq .attributes.addresses
    

    结果

    {
      "net0": [
        {
          "version": 4,
          "addr": "10.10.0.156",
          "OS-EXT-IPS:type": "fixed",
          "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:38:11:9d"
        }
      ]
    }
    
  • 执行更改当前 VNF 包

    整个 VNF 的更改当前 VNF 包执行

    $ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \
      ./sample_param_file.json --os-tacker-api-version 2
    

    结果

    Change Current VNF Package for VNF Instance 1eaf3446-00ed-4a19-869c-1ce9650c8ace has been accepted.
    
  • 操作后检查点 1

    操作后的外部网络信息

    $ openstack stack resource list 5d6d3b48-4743-404f-a9a3-31750915d1fe \
      --filter type='OS::Neutron::Port'
    

    结果

    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | resource_name | physical_resource_id                 | resource_type     | resource_status | updated_time         |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    | VDU1_CP1      | a3772d47-6bb4-48a9-b13e-ced8379ef27e | OS::Neutron::Port | CREATE_COMPLETE | 2024-03-07T09:06:49Z |
    +---------------+--------------------------------------+-------------------+-----------------+----------------------+
    

    注意

    外部网络资源的 ‘updated_time’ 已更改。在此示例中,‘VDU1_CP1’ 已更改。

  • 操作后检查点 2

    操作后的外部网络详细信息

    $ openstack stack resource show 5d6d3b48-4743-404f-a9a3-31750915d1fe VDU1 \
      -f json | jq .attributes.addresses
    

    结果

    {
      "net1": [
        {
          "version": 4,
          "addr": "10.10.1.8",
          "OS-EXT-IPS:type": "fixed",
          "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:15:a5:58"
        }
      ]
    }
    

    注意

    您可以检查 ‘attributes.addresses’ 已更改。在此示例中,‘net1’ 已更改。