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.

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                                                                                                                                                      

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

Let’s clarify the differences between merge requests (commonly called pull requests in GitHub), releases, release candidates (RCs), tags, and branches […]

Kind (which in full means “Kubernetes IN Docker”), is a command line tool that enables you to run Kubernetes clusters […]

Are you looking for an easy way to migrate packages from one cPanel server to a new cPanel server? In […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.