diff --git a/05-osm-usage.md b/05-osm-usage.md index b84c91ae072c8871b98290a1f360f8fa75e0b92b..efd1e9a2ed21b36513b5ee58ab710b151275d98d 100644 --- a/05-osm-usage.md +++ b/05-osm-usage.md @@ -2340,3 +2340,80 @@ sudo nc -l -p 90 sudo nc 90 # All the packets from src vnf to dest vnf should route only through the mid vnf. ``` + +## How to perform Vertical Scaling of VNFs in OSM +#### Functionality Overview +Vertical scaling allows you to dynamically adjust the resource allocation (CPU, memory, storage) of a deployed VNF instance to meet changing demands. This can improve resource utilization and application performance. + +![vertical_scaling_of_VNFs](assets/vertical_scale.png) + +**Workflow** +- **Identify Scaling Need:** Based on monitoring data or application requirements, determine the need to scale the VNF instance vertically. + +- **Select New Flavor:** Choose the appropriate flavor from the VNFD that offers the desired resource configuration (CPU, memory, storage) for the VNF. + +- **Trigger Scaling Operation:** Use the OSM client command or the NGUI interface to initiate the vertical scaling process. + +- **OSM Processing:** OSM validates the request and instructs the VIM (Virtual Infrastructure Manager) to adjust resource allocation for the VDU. + +- **VNF Reconfiguration:** The VIM reprovisions the VDU with the new flavor, potentially involving a software update on the VNF instance. + +- **Verification:** Once the scaling operation is complete, you can verify the new resource allocation of the VDU and the overall performance of the VNF instance. + +#### VNFD Requirements + +The VNFD is a critical component for vertical scaling. It must include the following elements: + +- software-version: + - Vertical scaling often involves changing the VNF software version to accommodate different resource requirements. The VNFD should allow specifying the software version associated with each flavor. +- virtual-compute-desc: + - The VNFD should define the VDUs (virtualized components) that make up the VNF. Each VDU should specify the supported flavor options with varying resource configurations (CPU, memory). +- virtual-storage-desc: + - The VNFD should define the required virtual storage under the aforementioned key. + + ```yaml + software-version: 2.9 + virtual-compute-desc: + - id: hackfest_basic-VM-compute + virtual-cpu: + num-virtual-cpu: 1 + virtual-memory: + size: '1' + virtual-storage-desc: + - id: hackfest_basic-VM-storage + size-of-storage: 10 + ``` + +#### Vertical Scaling Operations + +There are two primary ways to trigger vertical scaling of a VNF instance in OSM. + +**Important Note:** Regardless of the chosen method (OSM client or NGUI), ensure the new flavor provides sufficient resources for the VNF to function correctly. + +1. OSM Client: + + - The OSM client provides a command-line interface for various operations, including vertical scaling. You can use the following command to initiate vertical scaling: + + ```yaml + osm ns-update --updateType VERTICAL_SCALE --vnf --vnfd-name --vdu + ``` + + - Parameters: + - NS_NAME: Name of the OSM Network Service instance. + - MEMBER_VNF_INDEX (or VNFINSTANCEID): Identifier of the VNF member within the NS or the VNFD instance ID. + - VNFDID (or VNFD_NAME): Identifier of the VNFD or its name. + - VDUID: ID of the specific VDU within the VNFD to be scaled. + +2. NGUI (Next Generation User Interface): + + - If available in your OSM deployment, the NGUI offer's a graphical interface to trigger vertical scaling operations. + - Navigate to OSM dashboard and click Action button then chose `NS Update` option, this will opn a new window shown below in image. + + - In `NS Update` option provide the inputs and click on apply, this will trigger the Vertical scale operation for the selected VNFs vdu. + + - In `NS Update` option provide the inputs and click on apply, this will trigger the Vertical scale operation for the selected VNFs vdu. + + - ![vertical_scale_update](assets/600px_vertical_scale_update.png) + +- ![vertical_scale_update2](assets/600px_vertical_scale_update_2.png) + diff --git a/assets/600px_vertical_scale_update.png b/assets/600px_vertical_scale_update.png new file mode 100644 index 0000000000000000000000000000000000000000..946cc28b9628c2d7704783c93dffee67cb089fa5 Binary files /dev/null and b/assets/600px_vertical_scale_update.png differ diff --git a/assets/600px_vertical_scale_update_2.png b/assets/600px_vertical_scale_update_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8cbb188e4158ea37b984338f777bdac92c2a2445 Binary files /dev/null and b/assets/600px_vertical_scale_update_2.png differ diff --git a/assets/vertical_scale.png b/assets/vertical_scale.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1cc2c710fbc8d8bd260577b3731b81bcefb97a Binary files /dev/null and b/assets/vertical_scale.png differ