From 70a6d5ab2687d22f2520757fe7b38e9d71cb85f8 Mon Sep 17 00:00:00 2001 From: Hiroo Kitamura Date: Wed, 6 Jan 2021 17:12:24 +0900 Subject: [PATCH] Add doc of ETSI VNF Scaling Usage guide for ETSI NFV-SOL VNF Scaling is added in user docs. Change-Id: I649d2407e18d19161a629b8dbfa4e9c7b2f9c9fd --- doc/source/user/etsi_vnf_scaling.rst | 311 +++++++++++++++++++++++++++ doc/source/user/index.rst | 1 + 2 files changed, 312 insertions(+) create mode 100644 doc/source/user/etsi_vnf_scaling.rst diff --git a/doc/source/user/etsi_vnf_scaling.rst b/doc/source/user/etsi_vnf_scaling.rst new file mode 100644 index 000000000..02209acea --- /dev/null +++ b/doc/source/user/etsi_vnf_scaling.rst @@ -0,0 +1,311 @@ +======================== +ETSI NFV-SOL VNF Scaling +======================== + +This document describes how to scale VNF in Tacker. + +Prerequisites +------------- + +The following packages should be installed: + +* tacker +* python-tackerclient + +A default VIM should be registered according to +:doc:`../cli/cli-legacy-vim`. + +The VNF Package(sample_vnf_pkg.zip) used below is prepared +by referring to :doc:`./vnf-package`. + +Execute up to "Instantiate VNF" in the procedure of +:doc:`./etsi_vnf_deployment_as_vm_with_tosca` or +:doc:`./etsi_vnf_deployment_as_vm_with_user_data`. +In other words, the procedure after "Terminate VNF" is not executed. + + +VNF scaling procedure +--------------------- + +As mentioned in Prerequisites, the VNF must be instantiated +before performing scaling. + +Details of CLI commands are described in +:doc:`../cli/cli-etsi-vnflcm`. + +There are two main methods for VNF scaling. + +* Scale out VNF +* Scale in VNF + + +How to identify ASPECT_ID +~~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to execute scaling, it is necessary to specify +ASPECT_ID, which is the ID for the target scaling group. +First, the method of specifying the ID will be described. + +ASPECT_ID is described in VNFD included in the VNF Package. +In the following VNFD excerpt, **VDU1_scale** +corresponds to ASPECT_ID. + +.. code-block:: yaml + + node_templates: + VDU1: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: VDU1 + description: VDU1 compute node + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 3 + capabilities: + virtual_compute: + properties: + requested_additional_capabilities: + properties: + requested_additional_capability_name: m1.tiny + support_mandatory: true + target_performance_parameters: + entry_schema: test + virtual_memory: + virtual_mem_size: 512 MB + virtual_cpu: + num_virtual_cpu: 1 + virtual_local_storage: + - size_of_storage: 3 GB + + ...snip VNFD... + + policies: + - scaling_aspects: + type: tosca.policies.nfv.ScalingAspects + properties: + aspects: + VDU1_scale: + name: VDU1_scale + description: VDU1 scaling aspect + max_scale_level: 2 + step_deltas: + - delta_1 + + - VDU1_initial_delta: + type: tosca.policies.nfv.VduInitialDelta + properties: + initial_delta: + number_of_instances: 1 + targets: [ VDU1 ] + + - VDU1_scaling_aspect_deltas: + type: tosca.policies.nfv.VduScalingAspectDeltas + properties: + aspect: VDU1_scale + deltas: + delta_1: + number_of_instances: 1 + targets: [ VDU1 ] + + - instantiation_levels: + type: tosca.policies.nfv.InstantiationLevels + properties: + levels: + instantiation_level_1: + description: Smallest size + scale_info: + VDU1_scale: + scale_level: 0 + instantiation_level_2: + description: Largest size + scale_info: + VDU1_scale: + scale_level: 2 + default_level: instantiation_level_1 + + - VDU1_instantiation_levels: + type: tosca.policies.nfv.VduInstantiationLevels + properties: + levels: + instantiation_level_1: + number_of_instances: 1 + instantiation_level_2: + number_of_instances: 3 + targets: [ VDU1 ] + + ...snip VNFD... + + +.. note:: See `NFV-SOL001 v2.6.1`_ annex A.6 for details about ASPECT_ID. + + +How to scale out VNF +~~~~~~~~~~~~~~~~~~~~ + +Execute Scale CLI command and check the number of stacks +before and after scaling. +This is to confirm that the number of stacks has increased +after Scale-out. +See `Heat CLI reference`_. for details on Heat CLI commands. + + +Stack information before scale-out: + +.. code-block:: console + + $ openstack stack list --nested -c 'ID' -c 'Stack Name' -c 'Stack Status' -c 'Parent' + + +Result: + +.. code-block:: console + + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | ID | Stack Name | Stack Status | Parent | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | 43b183c8-53cc-430f-b4e8-b0e1adc4e702 | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx-rlitsss7zfsx-oa4wsjz5yfcf | CREATE_COMPLETE | b96169b5-d692-4b5c-81b2-86010775180e | + | b96169b5-d692-4b5c-81b2-86010775180e | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx | CREATE_COMPLETE | 6f48a8cf-0acb-4271-ae72-562c903f5381 | + | 6f48a8cf-0acb-4271-ae72-562c903f5381 | vnflcm_edd306c3-647c-412c-a033-74aa40118038 | CREATE_COMPLETE | None | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + + +Scale-out VNF can be executed by the following CLI command. + +.. code-block:: console + + $ openstack vnflcm scale --type SCALE_OUT --aspect-id VDU1_scale VNF_INSTANCE_ID + + +Result: + +.. code-block:: console + + Scale request for VNF Instance edd306c3-647c-412c-a033-74aa40118038 has been accepted. + + +Stack information after scale-out: + +.. code-block:: console + + $ openstack stack list --nested -c 'ID' -c 'Stack Name' -c 'Stack Status' -c 'Parent' + + +Result: + +.. code-block:: console + + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | ID | Stack Name | Stack Status | Parent | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | 44c364a0-1928-4717-bd95-43a74a5fe520 | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx-prjzcxxskx4i-bwx6egqcdlqg | CREATE_COMPLETE | b96169b5-d692-4b5c-81b2-86010775180e | + | 43b183c8-53cc-430f-b4e8-b0e1adc4e702 | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx-rlitsss7zfsx-oa4wsjz5yfcf | UPDATE_COMPLETE | b96169b5-d692-4b5c-81b2-86010775180e | + | b96169b5-d692-4b5c-81b2-86010775180e | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx | UPDATE_COMPLETE | 6f48a8cf-0acb-4271-ae72-562c903f5381 | + | 6f48a8cf-0acb-4271-ae72-562c903f5381 | vnflcm_edd306c3-647c-412c-a033-74aa40118038 | CREATE_COMPLETE | None | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + + +Stack details: + +.. code-block:: console + + $ openstack stack resource list b96169b5-d692-4b5c-81b2-86010775180e + +---------------+--------------------------------------+---------------+-----------------+----------------------+ + | resource_name | physical_resource_id | resource_type | resource_status | updated_time | + +---------------+--------------------------------------+---------------+-----------------+----------------------+ + | rlitsss7zfsx | 43b183c8-53cc-430f-b4e8-b0e1adc4e702 | VDU1.yaml | UPDATE_COMPLETE | 2021-01-06T05:24:50Z | + | prjzcxxskx4i | 44c364a0-1928-4717-bd95-43a74a5fe520 | VDU1.yaml | CREATE_COMPLETE | 2021-01-06T05:24:49Z | + +---------------+--------------------------------------+---------------+-----------------+----------------------+ + + $ openstack stack resource list 43b183c8-53cc-430f-b4e8-b0e1adc4e702 + +----------------+--------------------------------------+------------------------+-----------------+----------------------+ + | resource_name | physical_resource_id | resource_type | resource_status | updated_time | + +----------------+--------------------------------------+------------------------+-----------------+----------------------+ + | VDU1 | 82fd8c7d-7a55-449e-b563-457c6c59e9ac | OS::Nova::Server | CREATE_COMPLETE | 2021-01-06T05:15:35Z | + +----------------+--------------------------------------+------------------------+-----------------+----------------------+ + + $ openstack stack resource list 44c364a0-1928-4717-bd95-43a74a5fe520 + +----------------+--------------------------------------+------------------------+-----------------+----------------------+ + | resource_name | physical_resource_id | resource_type | resource_status | updated_time | + +----------------+--------------------------------------+------------------------+-----------------+----------------------+ + | VDU1 | 073fc301-49a5-41ff-953f-5fa6736414ed | OS::Nova::Server | CREATE_COMPLETE | 2021-01-06T05:24:49Z | + +----------------+--------------------------------------+------------------------+-----------------+----------------------+ + + +It can be seen that the child-stack (ID: 44c364a0-1928-4717-bd95-43a74a5fe520) +with the parent-stack (ID: b96169b5-d692-4b5c-81b2-86010775180e) +is increased by the scaling out operation. + + +How to scale in VNF +~~~~~~~~~~~~~~~~~~~ + +Execute Scale CLI command and check the number of stacks +before and after scaling. +This is to confirm that the number of stacks has decreased +after Scale-in. +See `Heat CLI reference`_. for details on Heat CLI commands. + + +Stack information before scale-in: + +.. code-block:: console + + $ openstack stack list --nested -c 'ID' -c 'Stack Name' -c 'Stack Status' -c 'Parent' + + +Result: + +.. code-block:: console + + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | ID | Stack Name | Stack Status | Parent | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | 44c364a0-1928-4717-bd95-43a74a5fe520 | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx-prjzcxxskx4i-bwx6egqcdlqg | CREATE_COMPLETE | b96169b5-d692-4b5c-81b2-86010775180e | + | 43b183c8-53cc-430f-b4e8-b0e1adc4e702 | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx-rlitsss7zfsx-oa4wsjz5yfcf | UPDATE_COMPLETE | b96169b5-d692-4b5c-81b2-86010775180e | + | b96169b5-d692-4b5c-81b2-86010775180e | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx | UPDATE_COMPLETE | 6f48a8cf-0acb-4271-ae72-562c903f5381 | + | 6f48a8cf-0acb-4271-ae72-562c903f5381 | vnflcm_edd306c3-647c-412c-a033-74aa40118038 | CREATE_COMPLETE | None | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + + +Scale-in VNF can be executed by the following CLI command. + +.. code-block:: console + + $ openstack vnflcm scale --type SCALE_IN --aspect-id VDU1_scale VNF_INSTANCE_ID + + +Result: + +.. code-block:: console + + Scale request for VNF Instance edd306c3-647c-412c-a033-74aa40118038 has been accepted. + + +Stack information after scale-in: + +.. code-block:: console + + $ openstack stack list --nested -c 'ID' -c 'Stack Name' -c 'Stack Status' -c 'Parent' + + +Result: + +.. code-block:: console + + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | ID | Stack Name | Stack Status | Parent | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + | 44c364a0-1928-4717-bd95-43a74a5fe520 | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx-prjzcxxskx4i-bwx6egqcdlqg | UPDATE_COMPLETE | b96169b5-d692-4b5c-81b2-86010775180e | + | b96169b5-d692-4b5c-81b2-86010775180e | vnflcm_edd306c3-647c-412c-a033-74aa40118038-VDU1_scale_group-5w6gwjuqjpsx | UPDATE_COMPLETE | 6f48a8cf-0acb-4271-ae72-562c903f5381 | + | 6f48a8cf-0acb-4271-ae72-562c903f5381 | vnflcm_edd306c3-647c-412c-a033-74aa40118038 | CREATE_COMPLETE | None | + +--------------------------------------+-----------------------------------------------------------------------------------------------------+-----------------+--------------------------------------+ + + +There were two child-stacks(ID: 44c364a0-1928-4717-bd95-43a74a5fe520 +and ID: 43b183c8-53cc-430f-b4e8-b0e1adc4e702) with +a parent-stack(ID: b96169b5-d692-4b5c-81b2-86010775180e), +it can be seen that one of them is decreased by the scale-in operation. + + +.. _NFV-SOL001 v2.6.1 : https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/001/02.06.01_60/gs_NFV-SOL001v020601p.pdf +.. _Heat CLI reference : https://docs.openstack.org/python-openstackclient/latest/cli/plugin-commands/heat.html diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index 7517c731c..91df32bf3 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -55,6 +55,7 @@ Use cases etsi_containerized_vnf_usage_guide.rst etsi_vnf_error_handling.rst etsi_vnf_healing.rst + etsi_vnf_scaling.rst containerized_vnf_usage_guide.rst ../reference/mistral_workflows_usage_guide.rst multisite_vim_usage_guide.rst