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 包的概述。
请求更改当前 VNF 包
用户通过请求
change current vnf package,使用 tacker-client 请求 tacker-server 更改 VNF 实例的当前 VNF 包。调用 OpenStack Heat API
收到 tacker-client 的请求后,tacker-server 会将其重定向到 tacker-conductor。在 tacker-conductor 中,请求会再次根据 VNF 实例的内容重定向到适当的 infra-driver(在本例中为 OpenStack infra-driver)。然后,OpenStack infra-driver 调用 OpenStack Heat APIs。
更改 VM 的镜像
OpenStack Heat 根据 API 调用更改 VM 的镜像。
先决条件¶
应安装以下软件包
tacker
python-tackerclient
至少需要一个状态为 INSTANTIATED 的 VNF 实例。有关实例化 VNF 的过程,请参阅 使用用户数据部署 ETSI NFV-SOL VNF 作为 VM。
有关上传 VNF 包的操作,请参阅 VNF 包。
注意
可以通过镜像或卷直接部署 VM。因此,在更新 VM 的镜像时,将存在两种情况。
使用通用 VNF 包和 flavor_id 进行实例化,然后使用相应链接中的 VNF 包执行 change current vnf package 操作,可以以以下两种方式更新 VM 的镜像。
将通过镜像创建的 VM 更改为通过新镜像创建的 VM
将通过卷创建的 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 中设置以下参数
属性名称 |
基数 |
参数描述 |
|---|---|---|
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-vnf和lcm-operation-coordinate-new-vnf是 Tacker 的独特实现,用于模拟 ETSI SOL002 v3.6.1 中的协调接口。主要是一个可以在 VM 创建后与 VM 通信、执行 VM 的特殊自定义或确认 VM 状态的脚本。vimConnectionInfo是一个可选参数。此操作可以指定 VNF 实例的vimConnectionInfo。即使此操作指定与一个 VNF 实例关联的多个vimConnectionInfo,也只会使用其中一个用于生命周期管理操作。无法删除已注册的vimConnectionInfo的键。vnfConfigurableProperties和extensions是可选参数。与更新操作一样,这些值通过对请求参数中设置的值进行 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’ 已更改。