Openstack

Automatically Confirm Openstack Instance Resizing

In OpenStack you can resize the VM instance size by changing its flavor. This process will involve rebuilding of the instance and the instance restart after successful rebuild.

Original content from computingforgeeks.com - post 13231

To perform a VM instance resize in OpenStack you will run the openstack server resize command:

openstack server resize --flavor <FLAVOR> <SERVER>

To list available flavors in OpenStack you will run:

# openstack flavor list
+----+------------------------+-------+------+-----------+-------+-----------+
| ID | Name                   |   RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+------------------------+-------+------+-----------+-------+-----------+
| 10 |basic-vps        |  2048 |   20 |         0 |     1 | True             |
| 11 |standard-vps     |  4096 |   40 |         0 |     2 | True             |
| 12 |advanced-vps     |  8192 |   80 |         0 |     2 | True             |
| 13 |business-vps     | 16384 |  160 |         0 |     4 | True             |
| 14 |enterprise-vps   | 32768 |  240 |         0 |     8 | True             |
+----+------------------------+-------+------+-----------+-------+-----------+

Suppose we have an instance with name 31666d86db93e83 , and we want to do a resize from basic-vps to standard-vps, we will run:

openstack server resize --flavor standard-vps 31666d86db93e83

After you resize your OpenStack instance, it will go into the Status of “VERIFY_RESIZE“.

[root@osp# openstack server show 31666d86db93e83
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                               | Value                                                                                                                                                        |
+-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                                                                                                                       |
| OS-EXT-AZ:availability_zone         | nova                                                                                                                                                         |
| OS-EXT-SRV-ATTR:host                | osp.example.com                                                                                                                                              |
| OS-EXT-SRV-ATTR:hostname            | 31666d86db93e83                                                                                                                                              |
| OS-EXT-SRV-ATTR:hypervisor_hostname | osp1.example.com                                                                                                                                             |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000002                                                                                                                                            |
| OS-EXT-SRV-ATTR:kernel_id           |                                                                                                                                                              |
| OS-EXT-SRV-ATTR:launch_index        | 0                                                                                                                                                            |
| OS-EXT-SRV-ATTR:ramdisk_id          |                                                                                                                                                              |
| OS-EXT-SRV-ATTR:reservation_id      | r-th200i68                                                                                                                                                   |
| OS-EXT-SRV-ATTR:root_device_name    | /dev/vda                                                                                                                                                     |
| OS-EXT-SRV-ATTR:user_data           | None                                                                                                                                                         |
| OS-EXT-STS:power_state              | Running                                                                                                                                                      |
| OS-EXT-STS:task_state               | None                                                                                                                                                         |
| OS-EXT-STS:vm_state                 | resized                                                                                                                                                      |
| OS-SRV-USG:launched_at              | 2024-06-15T13:10:15.000000                                                                                                                                   |
| OS-SRV-USG:terminated_at            | None                                                                                                                                                         |
| accessIPv4                          |                                                                                                                                                              |
| accessIPv6                          |                                                                                                                                                              |
| addresses                           | public=192.168.2.4                                                                                                                                           |
| config_drive                        |                                                                                                                                                              |
| created                             | 2024-06-15T12:20:15Z                                                                                                                                         |
| description                         | 31666d86db93e83                                                                                                                                              |
| flavor                              | description=, disk='40', ephemeral='0', , id='linux-standard-vps', is_disabled=, is_public='True', location=, name='linux-standard-vps',                     |
|                                     | original_name='linux-standard-vps', ram='4096', rxtx_factor=, swap='0', vcpus='2'                                                                            |
| hostId                              | 7f9765d5e2e63614bad156c183b0abcde123cbc3eabd730b992eb99e                                                                                                     |
| host_status                         | UP                                                                                                                                                           |
| id                                  | e61991b8-fea6-4cc4-9c70-9661c8aa05df                                                                                                                         |
| image                               | Rocky-Linux-9 (6774019b-df26-4841-8842-689e31aff1d7)                                                                                                         |
| key_name                            | Key31Hash8d0a63da9d8949900d1283215d9fa137                                                                                                                    |
| locked                              | False                                                                                                                                                        |
| locked_reason                       | None                                                                                                                                                         |
| name                                | 31666d86db93e83                                                                                                                                              |
| progress                            | 0                                                                                                                                                            |
| project_id                          | 3dfc8a0aec3d409696daa2c825b85a3f                                                                                                                             |
| properties                          |                                                                                                                                                              |
| security_groups                     | name='e61991b8-fea6-4cc4-9c70-9661c8aa05df1718454311'                                                                                                        |
|                                     | name='allow_all'                                                                                                                                             |
| server_groups                       | []                                                                                                                                                           |
| status                              | VERIFY_RESIZE

From the output we can confirm the instance status is VERIFY_RESIZE. We can manually confirm the resize to change the status to ACTIVE:

openstack server resize --revert 31666d86db93e83

The procedure of manual approval works fine for small use case such as home lab environment. If you have tens to hundreds of instances, manual approval is not efficient.

To automate this approval step, we enable automatic “Confirm Action” once an instance resize request is received. Open the OpenStack Nova Compute default configuration file.

sudo vim /etc/nova/nova.conf

Locate the resize_confirm_window line and set automatic time in seconds to automatically confirm resizes.

#
# Automatically confirm resizes after N seconds. For more information, refer to
# the documentation. (integer value)
# Minimum value: 0
resize_confirm_window=60

In our setting we have configured automatically resize after 60 seconds. This doesn’t require a system administrator to perform any action.

Restart openstack-nova-compute service for the change to be effected.

sudo systemctl restart openstack-nova-compute.service

After 60 seconds all the pending confirmations will be approved by the system. Instance status will the change to ACTIVE.

| status                              | ACTIVE                                                                                                                                                      

Related Articles

Virtualization How To Clone and Use KVM Virtual Machine in Linux Openstack Run FreeBSD on OpenStack Containers Install and Run Fedora CoreOS on KVM / OpenStack Automation How To Install ManageIQ or CloudForms on OpenStack/KVM

Leave a Comment

Press ESC to close