ETSI NFV-SOL VNF Healing

本文档描述了在 Tacker v1 API 中如何修复 VNF。

注意

这是 Tacker v1 API 的文档。有关 Tacker v2 API,请参阅 ETSI NFV-SOL VNF Healing

概述

下图显示了 VNF 修复的概述。

  1. 请求修复 VNF

    用户通过请求 heal VNF,使用 tacker-client 请求 tacker-server 修复 VNF 或所有 VNF。

  2. 调用 OpenStack Heat API

    收到 tacker-client 的请求后,tacker-server 会将其重定向到 tacker-conductor。在 tacker-conductor 中,请求会再次根据实例化参数的内容重定向到适当的基础设施驱动程序(在本例中为 OpenStack 基础设施驱动程序)。然后,OpenStack 基础设施驱动程序调用 OpenStack Heat API。

  3. 重新创建虚拟机

    OpenStack Heat 根据 API 调用重新创建虚拟机。

../_images/etsi_vnf_healing.png

先决条件

应安装以下软件包

  • tacker

  • python-tackerclient

应根据 VIM 管理 注册默认 VIM。

下面使用的 VNF 包(sample_vnf_package_csar.zip)是通过参考 VNF 包 准备的。

从“注册 VIM”到“实例化 VNF”的修复操作的准备过程,基本上参考 ETSI NFV-SOL VNF 部署为使用 TOSCA 的虚拟机ETSI NFV-SOL VNF 部署为使用 LCM 操作用户数据的虚拟机

此过程使用示例 VNF 包。

修复目标 VNF 实例

假设存在以下 VNF 实例,将修复此实例。

$ openstack vnflcm show VNF_INSTANCE_ID

结果

+-----------------------------+----------------------------------------------------------------------------------------------------------------------+
| Field                       | Value                                                                                                                |
+-----------------------------+----------------------------------------------------------------------------------------------------------------------+
| ID                          | c3f9c200-7f52-42c5-9c64-6032faa3faf8                                                                                 |
| Instantiated Vnf Info       | {                                                                                                                    |
|                             |     "flavourId": "simple",                                                                                           |
|                             |     "vnfState": "STARTED",                                                                                           |
|                             |     "scaleStatus": [                                                                                                 |
|                             |         {                                                                                                            |
|                             |             "aspectId": "worker_instance",                                                                           |
|                             |             "scaleLevel": 0                                                                                          |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "extCpInfo": [                                                                                                   |
|                             |         {                                                                                                            |
|                             |             "id": "d7c14d6f-3bac-4e11-a512-5101b4933545",                                                            |
|                             |             "cpdId": "VDU1_CP1",                                                                                     |
|                             |             "extLinkPortId": null,                                                                                   |
|                             |             "associatedVnfcCpId": "b0f677ce-93db-416a-839b-998707338d14",                                            |
|                             |             "cpProtocolInfo": []                                                                                     |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "e3513495-c555-4a1f-a9cc-07a0feae2720",                                                            |
|                             |             "cpdId": "VDU2_CP1",                                                                                     |
|                             |             "extLinkPortId": null,                                                                                   |
|                             |             "associatedVnfcCpId": "9da6945b-d9a3-4001-a03a-7b239b7e7084",                                            |
|                             |             "cpProtocolInfo": []                                                                                     |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "53c187aa-d05c-4995-9518-3119ac02ee66",                                                            |
|                             |             "cpdId": "VDU1_CP2",                                                                                     |
|                             |             "extLinkPortId": null,                                                                                   |
|                             |             "associatedVnfcCpId": "b0f677ce-93db-416a-839b-998707338d14",                                            |
|                             |             "cpProtocolInfo": [                                                                                      |
|                             |                 {                                                                                                    |
|                             |                     "layerProtocol": "IP_OVER_ETHERNET",                                                             |
|                             |                     "ipOverEthernet": {                                                                              |
|                             |                         "macAddress": null,                                                                          |
|                             |                         "ipAddresses": [                                                                             |
|                             |                             {                                                                                        |
|                             |                                 "type": "IPV4",                                                                      |
|                             |                                 "subnetId": "d290cae3-0dbc-44a3-a043-1a50ded04a64",                                  |
|                             |                                 "isDynamic": false,                                                                  |
|                             |                                 "addresses": [                                                                       |
|                             |                                     "22.22.1.10"                                                                     |
|                             |                                 ]                                                                                    |
|                             |                             }                                                                                        |
|                             |                         ]                                                                                            |
|                             |                     }                                                                                                |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "9fcec4e1-e808-4dc6-b048-79ec88d0aa40",                                                            |
|                             |             "cpdId": "VDU2_CP2",                                                                                     |
|                             |             "extLinkPortId": null,                                                                                   |
|                             |             "associatedVnfcCpId": "9da6945b-d9a3-4001-a03a-7b239b7e7084",                                            |
|                             |             "cpProtocolInfo": [                                                                                      |
|                             |                 {                                                                                                    |
|                             |                     "layerProtocol": "IP_OVER_ETHERNET",                                                             |
|                             |                     "ipOverEthernet": {                                                                              |
|                             |                         "macAddress": null,                                                                          |
|                             |                         "ipAddresses": [                                                                             |
|                             |                             {                                                                                        |
|                             |                                 "type": "IPV4",                                                                      |
|                             |                                 "subnetId": "d290cae3-0dbc-44a3-a043-1a50ded04a64",                                  |
|                             |                                 "isDynamic": false,                                                                  |
|                             |                                 "addresses": [                                                                       |
|                             |                                     "22.22.1.20"                                                                     |
|                             |                                 ]                                                                                    |
|                             |                             }                                                                                        |
|                             |                         ]                                                                                            |
|                             |                     }                                                                                                |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "extVirtualLinkInfo": [                                                                                          |
|                             |         {                                                                                                            |
|                             |             "id": "91bcff6d-4703-4ba9-b1c2-009e6db92a9c",                                                            |
|                             |             "resourceHandle": {                                                                                      |
|                             |                 "vimConnectionId": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                           |
|                             |                 "resourceId": "3019b1e7-99d8-4748-97ac-104922bc78d9",                                                |
|                             |                 "vimLevelResourceType": null                                                                         |
|                             |             },                                                                                                       |
|                             |             "extLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "6b7c0b3a-cc2d-4b94-9f6f-81df69a7cc2f",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                   |
|                             |                         "resourceId": "972a375d-921f-46f5-bfdb-19af95fc49e1",                                        |
|                             |                         "vimLevelResourceType": null                                                                 |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "9fcec4e1-e808-4dc6-b048-79ec88d0aa40"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "02d867e7-b955-4b4a-b92f-c78c7ede63bf",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                   |
|                             |                         "resourceId": "b853b5c5-cd97-4dfb-8750-cac6e5c62477",                                        |
|                             |                         "vimLevelResourceType": null                                                                 |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "9fcec4e1-e808-4dc6-b048-79ec88d0aa40"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "a96d2f5b-c01a-48e1-813c-76132965042c",                                                            |
|                             |             "resourceHandle": {                                                                                      |
|                             |                 "vimConnectionId": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                           |
|                             |                 "resourceId": "589a045a-65d9-4f4d-a9b3-35aa655374d0",                                                |
|                             |                 "vimLevelResourceType": null                                                                         |
|                             |             }                                                                                                        |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "extManagedVirtualLinkInfo": [                                                                                   |
|                             |         {                                                                                                            |
|                             |             "id": "8f9d8da0-2386-4f00-bbb0-860f50d32a5a",                                                            |
|                             |             "vnfVirtualLinkDescId": "internalVL1",                                                                   |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": null,                                                                             |
|                             |                 "resourceId": "0e498d08-ed3a-4212-83e0-1b6808f6fcb6",                                                |
|                             |                 "vimLevelResourceType": "OS::Neutron::Net"                                                           |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "f5de777b-22e9-480a-a044-5359cc8b6263",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "ddb45b78-385d-4c18-aec3-10bf6bafb840",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "a98f1c4b-f4c9-4603-8813-4a9dbb003950"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "d754bcb0-5ab4-4715-9469-e946ec69733e",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "29de4ae6-1004-4607-9023-818efacba3ce",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "c408c3a8-924b-4570-a896-ddb5bd56d14a"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "11d68761-aab7-419c-955c-0c6497f13692",                                                            |
|                             |             "vnfVirtualLinkDescId": "internalVL2",                                                                   |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": null,                                                                             |
|                             |                 "resourceId": "38a8d4ba-ac1b-41a2-a92b-ff2a3e5e9b12",                                                |
|                             |                 "vimLevelResourceType": "OS::Neutron::Net"                                                           |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "1b664cfb-6c8b-4f02-a535-f683fe414e31",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "2215cb28-9876-4c43-a71d-c63ae42a7ab4",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "f16e20d7-cb86-4b4d-a4fa-f27802eaf628"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "65c35b4c-1a8b-4495-a396-73d09f4cebea",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "0019f288-38b3-4247-89fc-51ecf7663401",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "269b2b44-7577-45b5-8038-1e67d34dea41"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "vnfcResourceInfo": [                                                                                            |
|                             |         {                                                                                                            |
|                             |             "id": "b0f677ce-93db-416a-839b-998707338d14",                                                            |
|                             |             "vduId": "VDU1",                                                                                         |
|                             |             "computeResource": {                                                                                     |
|                             |                 "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                           |
|                             |                 "resourceId": "2bd41386-1971-425c-9f27-310c7a4d6181",                                                |
|                             |                 "vimLevelResourceType": "OS::Nova::Server"                                                           |
|                             |             },                                                                                                       |
|                             |             "storageResourceIds": [],                                                                                |
|                             |             "vnfcCpInfo": [                                                                                          |
|                             |                 {                                                                                                    |
|                             |                     "id": "c86cef0a-150d-4eff-a21f-a48c6fcfa258",                                                    |
|                             |                     "cpdId": "VDU1_CP1",                                                                             |
|                             |                     "vnfExtCpId": "6b7c0b3a-cc2d-4b94-9f6f-81df69a7cc2f",                                            |
|                             |                     "vnfLinkPortId": "f2105dd9-fed4-43dd-8d74-fcf0199cb716"                                          |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "426c0473-2de1-42dc-ae1f-ff4cf4d8b29b",                                                    |
|                             |                     "cpdId": "VDU1_CP2",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "9925668e-ceea-45ef-817a-25d19572a494",                                         |
|                             |                     "cpProtocolInfo": [                                                                              |
|                             |                         {                                                                                            |
|                             |                             "layerProtocol": "IP_OVER_ETHERNET",                                                     |
|                             |                             "ipOverEthernet": {                                                                      |
|                             |                                 "macAddress": null,                                                                  |
|                             |                                 "ipAddresses": [                                                                     |
|                             |                                     {                                                                                |
|                             |                                         "type": "IPV4",                                                              |
|                             |                                         "subnetId": "d290cae3-0dbc-44a3-a043-1a50ded04a64",                          |
|                             |                                         "isDynamic": false,                                                          |
|                             |                                         "addresses": [                                                               |
|                             |                                             "22.22.1.10"                                                             |
|                             |                                         ]                                                                            |
|                             |                                     }                                                                                |
|                             |                                 ]                                                                                    |
|                             |                             }                                                                                        |
|                             |                         }                                                                                            |
|                             |                     ]                                                                                                |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "a98f1c4b-f4c9-4603-8813-4a9dbb003950",                                                    |
|                             |                     "cpdId": "VDU1_CP3",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "f5de777b-22e9-480a-a044-5359cc8b6263"                                          |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "f16e20d7-cb86-4b4d-a4fa-f27802eaf628",                                                    |
|                             |                     "cpdId": "VDU1_CP4",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "1b664cfb-6c8b-4f02-a535-f683fe414e31"                                          |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "89dd97c3-ef2d-4df5-a18a-f542e573a5bd",                                                    |
|                             |                     "cpdId": "VDU1_CP5",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "1a8d6c49-40bb-4f24-96e7-6efba6001671"                                          |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "9da6945b-d9a3-4001-a03a-7b239b7e7084",                                                            |
|                             |             "vduId": "VDU2",                                                                                         |
|                             |             "computeResource": {                                                                                     |
|                             |                 "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                           |
|                             |                 "resourceId": "777515dd-35c9-4f06-ad6b-f79323097e0f",                                                |
|                             |                 "vimLevelResourceType": "OS::Nova::Server"                                                           |
|                             |             },                                                                                                       |
|                             |             "storageResourceIds": [],                                                                                |
|                             |             "vnfcCpInfo": [                                                                                          |
|                             |                 {                                                                                                    |
|                             |                     "id": "12ea4352-66a5-47a4-989f-d4d06d5bab1a",                                                    |
|                             |                     "cpdId": "VDU2_CP1",                                                                             |
|                             |                     "vnfExtCpId": "02d867e7-b955-4b4a-b92f-c78c7ede63bf",                                            |
|                             |                     "vnfLinkPortId": "6043706d-6173-40ef-8bc5-519868ce9fe4"                                          |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "b6a56d88-da99-4036-872f-f10759b00ed8",                                                    |
|                             |                     "cpdId": "VDU2_CP2",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "bfd0d3ad-1f9c-4102-b446-c7f33881b136",                                         |
|                             |                     "cpProtocolInfo": [                                                                              |
|                             |                         {                                                                                            |
|                             |                             "layerProtocol": "IP_OVER_ETHERNET",                                                     |
|                             |                             "ipOverEthernet": {                                                                      |
|                             |                                 "macAddress": null,                                                                  |
|                             |                                 "ipAddresses": [                                                                     |
|                             |                                     {                                                                                |
|                             |                                         "type": "IPV4",                                                              |
|                             |                                         "subnetId": "d290cae3-0dbc-44a3-a043-1a50ded04a64",                          |
|                             |                                         "isDynamic": false,                                                          |
|                             |                                         "addresses": [                                                               |
|                             |                                             "22.22.1.20"                                                             |
|                             |                                         ]                                                                            |
|                             |                                     }                                                                                |
|                             |                                 ]                                                                                    |
|                             |                             }                                                                                        |
|                             |                         }                                                                                            |
|                             |                     ]                                                                                                |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "c408c3a8-924b-4570-a896-ddb5bd56d14a",                                                    |
|                             |                     "cpdId": "VDU2_CP3",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "d754bcb0-5ab4-4715-9469-e946ec69733e"                                          |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "269b2b44-7577-45b5-8038-1e67d34dea41",                                                    |
|                             |                     "cpdId": "VDU2_CP4",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "65c35b4c-1a8b-4495-a396-73d09f4cebea"                                          |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "bb1ed2d3-da19-4b45-b326-cf9e76fd788a",                                                    |
|                             |                     "cpdId": "VDU2_CP5",                                                                             |
|                             |                     "vnfExtCpId": null,                                                                              |
|                             |                     "vnfLinkPortId": "46cd8f09-d877-491b-8928-345ec6461637"                                          |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "vnfVirtualLinkResourceInfo": [                                                                                  |
|                             |         {                                                                                                            |
|                             |             "id": "b3244c22-2365-476e-bc7b-40cbaee45ce1",                                                            |
|                             |             "vnfVirtualLinkDescId": "internalVL1",                                                                   |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": null,                                                                             |
|                             |                 "resourceId": "0e498d08-ed3a-4212-83e0-1b6808f6fcb6",                                                |
|                             |                 "vimLevelResourceType": "OS::Neutron::Net"                                                           |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "f5de777b-22e9-480a-a044-5359cc8b6263",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "ddb45b78-385d-4c18-aec3-10bf6bafb840",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "a98f1c4b-f4c9-4603-8813-4a9dbb003950"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "d754bcb0-5ab4-4715-9469-e946ec69733e",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "29de4ae6-1004-4607-9023-818efacba3ce",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "c408c3a8-924b-4570-a896-ddb5bd56d14a"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "c9182342-bfc4-4ba8-9e26-02fd0565db4d",                                                            |
|                             |             "vnfVirtualLinkDescId": "internalVL2",                                                                   |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": null,                                                                             |
|                             |                 "resourceId": "38a8d4ba-ac1b-41a2-a92b-ff2a3e5e9b12",                                                |
|                             |                 "vimLevelResourceType": "OS::Neutron::Net"                                                           |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "1b664cfb-6c8b-4f02-a535-f683fe414e31",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "2215cb28-9876-4c43-a71d-c63ae42a7ab4",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "f16e20d7-cb86-4b4d-a4fa-f27802eaf628"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "65c35b4c-1a8b-4495-a396-73d09f4cebea",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "0019f288-38b3-4247-89fc-51ecf7663401",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "269b2b44-7577-45b5-8038-1e67d34dea41"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "81ed1791-a1c2-46fb-a999-dd9d601b06ec",                                                            |
|                             |             "vnfVirtualLinkDescId": "internalVL3",                                                                   |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": null,                                                                             |
|                             |                 "resourceId": "",                                                                                    |
|                             |                 "vimLevelResourceType": null                                                                         |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "1a8d6c49-40bb-4f24-96e7-6efba6001671",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "84d7fc8c-fb52-4593-875b-bf303ec5fc8c",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "89dd97c3-ef2d-4df5-a18a-f542e573a5bd"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "46cd8f09-d877-491b-8928-345ec6461637",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "65650d05-a562-4c5f-84d2-e9304ef68377",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "bb1ed2d3-da19-4b45-b326-cf9e76fd788a"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "1d1a0824-5c4d-461e-9a29-5e72db1e5855",                                                            |
|                             |             "vnfVirtualLinkDescId": "91bcff6d-4703-4ba9-b1c2-009e6db92a9c",                                          |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                           |
|                             |                 "resourceId": "3019b1e7-99d8-4748-97ac-104922bc78d9",                                                |
|                             |                 "vimLevelResourceType": "OS::Neutron::Net"                                                           |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "f2105dd9-fed4-43dd-8d74-fcf0199cb716",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "f0cf8bfd-261a-4c54-b783-42cce6d90859",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "c86cef0a-150d-4eff-a21f-a48c6fcfa258"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "6043706d-6173-40ef-8bc5-519868ce9fe4",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "6a349003-66a1-4bfa-bd4b-83705957482a",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "12ea4352-66a5-47a4-989f-d4d06d5bab1a"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "d8fc6199-c9d6-4e74-b896-c44018fa4382",                                                            |
|                             |             "vnfVirtualLinkDescId": "a96d2f5b-c01a-48e1-813c-76132965042c",                                          |
|                             |             "networkResource": {                                                                                     |
|                             |                 "vimConnectionId": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                           |
|                             |                 "resourceId": "589a045a-65d9-4f4d-a9b3-35aa655374d0",                                                |
|                             |                 "vimLevelResourceType": "OS::Neutron::Net"                                                           |
|                             |             },                                                                                                       |
|                             |             "vnfLinkPorts": [                                                                                        |
|                             |                 {                                                                                                    |
|                             |                     "id": "9925668e-ceea-45ef-817a-25d19572a494",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "53700068-3c4b-444b-b4eb-bbaa887a0e28",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "426c0473-2de1-42dc-ae1f-ff4cf4d8b29b"                                           |
|                             |                 },                                                                                                   |
|                             |                 {                                                                                                    |
|                             |                     "id": "bfd0d3ad-1f9c-4102-b446-c7f33881b136",                                                    |
|                             |                     "resourceHandle": {                                                                              |
|                             |                         "vimConnectionId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                   |
|                             |                         "resourceId": "136f1448-feb7-480d-8d92-15d7e4d02f37",                                        |
|                             |                         "vimLevelResourceType": "OS::Neutron::Port"                                                  |
|                             |                     },                                                                                               |
|                             |                     "cpInstanceId": "b6a56d88-da99-4036-872f-f10759b00ed8"                                           |
|                             |                 }                                                                                                    |
|                             |             ]                                                                                                        |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "vnfcInfo": [                                                                                                    |
|                             |         {                                                                                                            |
|                             |             "id": "b9b73267-40ce-468f-87ab-a6653cee664f",                                                            |
|                             |             "vduId": "VDU1",                                                                                         |
|                             |             "vnfcState": "STARTED"                                                                                   |
|                             |         },                                                                                                           |
|                             |         {                                                                                                            |
|                             |             "id": "1842c052-b6af-45bb-b976-f99cd1212182",                                                            |
|                             |             "vduId": "VDU2",                                                                                         |
|                             |             "vnfcState": "STARTED"                                                                                   |
|                             |         }                                                                                                            |
|                             |     ],                                                                                                               |
|                             |     "additionalParams": {                                                                                            |
|                             |         "lcm-operation-user-data": "./UserData/lcm_user_data.py",                                                    |
|                             |         "lcm-operation-user-data-class": "SampleUserData"                                                            |
|                             |     }                                                                                                                |
|                             | }                                                                                                                    |
| Instantiation State         | INSTANTIATED                                                                                                         |
| Links                       | {                                                                                                                    |
|                             |     "self": {                                                                                                        |
|                             |         "href": "https://:9890/vnflcm/v1/vnf_instances/c3f9c200-7f52-42c5-9c64-6032faa3faf8"                 |
|                             |     },                                                                                                               |
|                             |     "terminate": {                                                                                                   |
|                             |         "href": "https://:9890/vnflcm/v1/vnf_instances/c3f9c200-7f52-42c5-9c64-6032faa3faf8/terminate"       |
|                             |     },                                                                                                               |
|                             |     "scale": {                                                                                                       |
|                             |         "href": "https://:9890/vnflcm/v1/vnf_instances/c3f9c200-7f52-42c5-9c64-6032faa3faf8/scale"           |
|                             |     },                                                                                                               |
|                             |     "heal": {                                                                                                        |
|                             |         "href": "https://:9890/vnflcm/v1/vnf_instances/c3f9c200-7f52-42c5-9c64-6032faa3faf8/heal"            |
|                             |     },                                                                                                               |
|                             |     "changeExtConn": {                                                                                               |
|                             |         "href": "https://:9890/vnflcm/v1/vnf_instances/c3f9c200-7f52-42c5-9c64-6032faa3faf8/change_ext_conn" |
|                             |     }                                                                                                                |
|                             | }                                                                                                                    |
| VIM Connection Info         | [                                                                                                                    |
|                             |     {                                                                                                                |
|                             |         "id": "79a97d01-e5f3-4eaa-b2bc-8f513ecb8a56",                                                                |
|                             |         "vimId": null,                                                                                               |
|                             |         "vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_2",                                                                 |
|                             |         "interfaceInfo": {                                                                                           |
|                             |             "endpoint": "http://127.0.0.1/identity"                                                                  |
|                             |         },                                                                                                           |
|                             |         "accessInfo": {                                                                                              |
|                             |             "region": "RegionOne",                                                                                   |
|                             |             "tenant": "1994d69783d64c00aadab564038c2fd7",                                                            |
|                             |             "password": "devstack",                                                                                  |
|                             |             "username": "nfv_user"                                                                                   |
|                             |         },                                                                                                           |
|                             |         "extra": {}                                                                                                  |
|                             |     },                                                                                                               |
|                             |     {                                                                                                                |
|                             |         "id": "700a68db-0789-49e0-97d5-9824d5eeb272",                                                                |
|                             |         "vimId": "c637c425-62e8-432f-94f4-bff8d3323e29",                                                             |
|                             |         "vimType": "openstack",                                                                                      |
|                             |         "interfaceInfo": {},                                                                                         |
|                             |         "accessInfo": {},                                                                                            |
|                             |         "extra": {}                                                                                                  |
|                             |     }                                                                                                                |
|                             | ]                                                                                                                    |
| VNF Configurable Properties |                                                                                                                      |
| VNF Instance Description    |                                                                                                                      |
| VNF Instance Name           | vnf-c3f9c200-7f52-42c5-9c64-6032faa3faf8                                                                             |
| VNF Package ID              | c92757ec-1408-481a-91f7-7f3b2831eb28                                                                                 |
| VNF Product Name            | Sample VNF                                                                                                           |
| VNF Provider                | Company                                                                                                              |
| VNF Software Version        | 1.0                                                                                                                  |
| VNFD ID                     | b1bb0ce7-ebca-4fa7-95ed-4840d7000321                                                                                 |
| VNFD Version                | 1.0                                                                                                                  |
| metadata                    | tenant=nfv                                                                                                           |
+-----------------------------+----------------------------------------------------------------------------------------------------------------------+

注意

“VNF 实例名称”的值对应于 Heat 管理的“堆栈名称”。在本手册中,它对应于 vnf-c3f9c200-7f52-42c5-9c64-6032faa3faf8

VNF 修复流程

先决条件修复目标 VNF 实例 中所述,在修复之前必须实例化 VNF。

CLI 命令的详细信息在 使用 v1 Tacker 进行 VNF 生命周期管理 中描述。

VNF 修复有两种主要方法。

  • 修复整个 VNF

  • 使用 VNFC 实例指定修复

注意

VNFC 是“VNF 组件”,并且一个 VNFC 基本对应于 VNF 中的一个 VDU。有关 VNFC 的更多信息,请参阅 NFV-SOL002 v2.6.1

如何修复整个 VNF

在修复整个 VNF 时,将从 Tacker 到 Heat 执行以下 API。有关 Heat API 的详细信息,请参阅 Heat API 参考

  • 堆栈删除

  • 堆栈创建

执行 Heat CLI 命令,并在修复之前和之后检查堆栈的“ID”和“堆栈状态”。这是为了确认堆栈“ID”在修复之前和之后发生了变化,并且重新创建已成功完成。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考

修复前堆栈信息

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

结果

+--------------------------------------+---------------------------------------------+-----------------+
| ID                                   | Stack Name                                  | Stack Status    |
+--------------------------------------+---------------------------------------------+-----------------+
| 00d1871d-4acc-4d6b-99bc-cc68ad0b8a6a | vnflcm_c3f9c200-7f52-42c5-9c64-6032faa3faf8 | CREATE_COMPLETE |
+--------------------------------------+---------------------------------------------+-----------------+

执行整个 VNF 的修复

$ openstack vnflcm heal VNF_INSTANCE_ID

结果

Heal request for VNF Instance 0c3644ff-b207-4a6a-9d3a-d1295cda153a has been accepted.

修复后堆栈信息

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

结果

+--------------------------------------+---------------------------------------------+-----------------+
| ID                                   | Stack Name                                  | Stack Status    |
+--------------------------------------+---------------------------------------------+-----------------+
| c220dd92-034e-4e7f-bea3-e5e7e95b145c | vnflcm_c3f9c200-7f52-42c5-9c64-6032faa3faf8 | CREATE_COMPLETE |
+--------------------------------------+---------------------------------------------+-----------------+

注意

“ID”已从修复前的 ID 更改。“堆栈状态”过渡到 CREATE_COMPLETE。

如何使用 VNFC 实例指定修复

修复目标 VNF 实例 中的“已实例化 Vnf 信息”中提取 vnfcResourceInfo -> id 的值。这是 VNFC 实例 ID。

$ openstack vnflcm show c3f9c200-7f52-42c5-9c64-6032faa3faf8 \
 -f json | jq '."Instantiated Vnf Info".vnfcResourceInfo[].id'
"b0f677ce-93db-416a-839b-998707338d14"
"9da6945b-d9a3-4001-a03a-7b239b7e7084"

本手册展示了将 VDU1 作为 VNFC 进行修复的示例。在本手册中,b0f677ce-93db-416a-839b-998707338d14 对应于 VDU1 的 VNFC 实例 ID。

当使用 VNFC 实例指定修复时,将从 Tacker 到 Heat 执行以下 API。有关 Heat API 的详细信息,请参阅 Heat API 参考

  • 堆栈资源标记为不健康

  • 堆栈更新

执行 Heat CLI 命令,并在修复之前和之后检查 VDU1 的 physical_resource_id 和 resource_status。这是为了确认此 VDU1 的资源 ID 在修复之前和之后发生了变化,并且重新创建已成功完成。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考

注意

请注意,Tacker 管理的“vnfc-instance-id”和 Heat 管理的“physical-resource-id”是不同的。

修复前 VDU1 信息

$ openstack stack resource show HEAT_STACK_ID VDU1_SERVER_NAME \
  -c physical_resource_id -c resource_name -c resource_status -c resource_type
$ openstack stack resource show HEAT_STACK_ID VDU1_VOLUME_NAME \
  -c physical_resource_id -c resource_name -c resource_status -c resource_type

结果

+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| physical_resource_id | ed781426-c59d-4c32-8bc3-e26144167220 |
| resource_name        | VDU1                                 |
| resource_status      | CREATE_COMPLETE                      |
| resource_type        | OS::Nova::Server                     |
+----------------------+--------------------------------------+
+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| physical_resource_id | 2d4715e6-1e0e-449e-91b5-a6c162adbb39 |
| resource_name        | VDU1-VirtualStorage                  |
| resource_status      | CREATE_COMPLETE                      |
| resource_type        | OS::Cinder::Volume                   |
+----------------------+--------------------------------------+

使用 VNFC 实例修复可以控制修复的 VNFC(s) 是否重新创建相关的 Cinder 块存储。

这通过 Heal 请求中的 additionalParams 内部的可选键来完成。键名称由运算符可配置,并且如果请求省略该键,则应用可配置的默认值 [Conf-Options]。

  • 请求键(可配置):从 additionalParams 读取的键由 VNFM 上的 [vnf_lcm] heal_include_block_storage_key 配置。默认情况下,它是 tacker_extension_heal_include_block_storage

  • 默认行为(可配置):如果请求不包含该键,则行为由 [vnf_lcm] heal_vnfc_block_storage 决定。

警告

默认行为(当未提供该键时)和键名称本身取决于 tacker.conf。如果您不确定,请联系您的环境管理员。

在下面的示例中,参数名称显示为 tacker_extension_heal_include_block_storage

示例:重新创建存储(布尔值 true)

{
  "additionalParams": {
    "tacker_extension_heal_include_block_storage": true
  }
}

示例:不重新创建存储(布尔值 false)

{
  "additionalParams": {
    "tacker_extension_heal_include_block_storage": false
  }
}

修复 VDU1

$ openstack vnflcm heal VNF_INSTANCE_ID --vnfc-instance VNFC_INSTANCE_ID \
     --additional-param-file heal-params.json \

结果

Heal request for VNF Instance c3f9c200-7f52-42c5-9c64-6032faa3faf8 has been accepted.

注意

可以在“--vnfc-instance”选项中指定多个 VNFC 实例 ID。

修复后 VDU1 信息

$ openstack stack resource show HEAT_STACK_ID VDU1_SERVER_NAME \
  -c physical_resource_id -c resource_name -c resource_status -c resource_type
$ openstack stack resource show HEAT_STACK_ID VDU1_VOLUME_NAME \
  -c physical_resource_id -c resource_name -c resource_status -c resource_type

结果

+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| physical_resource_id | ed781426-c59d-4c32-8bc3-e26144167220 |
| resource_name        | VDU1                                 |
| resource_status      | UPDATE_COMPLETE                      |
| resource_type        | OS::Nova::Server                     |
+----------------------+--------------------------------------+

重新创建存储

+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| physical_resource_id | 2d4715e6-1e0e-449e-91b5-a6c162adbb39 |
| resource_name        | VDU1-VirtualStorage                  |
| resource_status      | UPDATE_COMPLETE                      |
| resource_type        | OS::Cinder::Volume                   |
+----------------------+--------------------------------------+

不重新创建存储

+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| physical_resource_id | 2d4715e6-1e0e-449e-91b5-a6c162adbb39 |
| resource_name        | VDU1-VirtualStorage                  |
| resource_status      | CREATE_COMPLETE                      |
| resource_type        | OS::Cinder::Volume                   |
+----------------------+--------------------------------------+

注意

“physical_resource_id”未从修复前的 ID 更改。“resource_status”过渡到 UPDATE_COMPLETE。