Introduction
Apache CloudStack Service Offerings are sets of capabilities that a CloudStack admin makes available to users, defining Instance, Volume and Network specifications to be consumed by users when creating their resources.
Previously, when users deployed a new Instance, the Root Volume definition was included in the Compute Offering, including disk size, IOPS and storage tags. This behaviour is a limitation when users try to change the Instance Root Volume characteristics, as it is a part of the Compute Offering, used alongside the Instance.
To address this behaviour, Root Volume specifications have been decoupled from the Compute Offerings. This new functionality has been introduced in Apache CloudStack 4.17, and users can now choose an existing Disk Offering when creating a new Instance. In addition, a new API call and a new UI button was introduced, which can handle changing the Disk Offering and applying its specifications to the Volume. This includes resizing and migrating the volume to an appropriate storage pool, in accordance with the Disk Offering.
UI Changes
In order to enable users to select a Disk Offering when creating a new Instance, new fields were introduced in the “Add Compute Offering” and “Add Instance” forms.
Add Compute Offering Form
A new toggle button “Compute only disk offering”, has been introduced in the “Add compute offering” form. When it is turned on, the method mentioned above will be used, where the Instance Root Volume will not be linked to a Disk Offering as follows:
Otherwise, when the “compute only disk offering” toggle button is turned off, the admin has the option to link an existing Disk Offering or add a new one as follows:
Add Instance form
While deploying an Instance, the Disk Offering linked to the Compute Offering will be used to create the Root Volume. The following figure shows the Disk Offering selection in the “Add Instance” form.
The “Override root Disk Offering” toggle button is displayed and, by default it is disabled. This function enables users to select a different Disk Offering for the Root Volume of the linked one on the selected Compute Offering. This behaviour can be controlled by the administrator using the “Disk Offering strictness” option when creating a new Compute Offering. If “Disk Offering strictness” option is enabled, “Override root Disk Offering” will be disabled, and users can’t replace or select a different Disk Offering from the one configured by the admin.
Add Disk Offering form
A new toggle button “Disk size strictness” was added to the “Add Disk Offering” form. It restricts users to resize the Volume when it is enabled by the admin when creating a new Disk Offering.
Volume Operations
A new API call “changeOfferingForVolume” was introduced and enables users to change the Disk Offering of an existing Instance. In the UI, when navigating in the Volume view, the “Change disk offering for a volume” button, controls this function. Users can select an existing Disk Offering and, when “Auto migrate volume to another storage pool if required” button is turned on, the Volume will be resized and automatically migrated to an applicable storage pool if required. The “Auto migrate volume to another storage pool if required” and “Shrink OK” toggle buttons need to be turned on to allow the corresponding operation. This is applicable for both Root and Data Volumes.
Scale and Upgrade the Instance
When scaling an Instance to use a Compute Offering linked to a Disk Offering, the Root Volume will be changed to match the new requirements required. This behaviour is similar when changing the Root Volume’s Disk Offering.
For more details about the changes introduced as part of these features please see: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Flexible+service+offerings
Conclusion
The existing model is still fully supported if required, but this improvement gives operators far greater flexibility when it comes to the provisioning and billing for Volumes, also simplifying the operation by changing a Disk Offering.
This new feature is a part of the Apache CloudStack 4.17 LTS and enables administrator and users to choose a Compute and Disk Offering that fit with their needs.
Harikrishna works at ShapeBlue as a Software Engineer, and is also engaged with active development of new features and capabilities for the Apache CloudStack project. He has been working on CloudStack since 2012 and is a committer in this project. Before joining ShapeBlue, Harikrishna worked for Citrix Systems and Accelerite. He holds an M.Tech in Computer Science and Engineering from IIT-Madras.
You can learn more about Harikrishna and his background by reading his Meet The Team blog.