IBM PowerVC is an advanced virtualization and cloud management offering that is built on OpenStack for various workload that runs on IBM Power Systems.
Storwize QoS throttling is a feature to configure the QoS throttle values for the volumes managed by IBM Storwize, was supported by PowerVC since PowerVC 1.4.4 release. In this blog we will talk about what do we mean by QoS throttling, how and where its used and what are the different ways user can configure QoS throttling using PowerVC.
What is QoS throttling ?
Throttling is a mechanism to control the amount of resources that are used when the system is processing I/O operations on supported objects. If a throttle is defined, the system either processes the I/O, or delays the processing of the I/O to free resources for more critical I/O operations. Storwize allows to set the QoS throttle value at pool level or volume level. PowerVC supports the configuring the QoS throttling only at volume level.
What are the business use cases for QoS throttling ?
Enterprise datacentres can use the QoS throttle values to guarantee that performance of their critical workload is not degraded. It is also used by different cloud providers to create multiple workload profile plans based on different QoS allocation, and have different charging and support mechanism.
- Provision the volume with the assigned QoS throttle values.
- Retype the volume to modify the QoS throttle value from one template to another.
How to configure QoS throttling ?
Storwize controller allows the volume to set the QoS throttle values in iops or mbps units.
Using PowerVC storage template user can set the QoS throttle value as below:-
- IOPS: Assigns the constant given throttle value in IOPS unit value for the volume provisioned.
- MBPS: Assigns the constant given throttle value in mbps value for the volume provisioned.
- IOPS_PER_GB: Introduced in PowerVC 2.0.1. Allows the user to configure the dynamic throttle value in IOPS based on volume size in GB. For eg if the value is set to 300 iops_per_gb. If the volume is created with size 10 GB, then 3000 IOPS will be allocated to the volume, if the volume is created with 20GB using the same template, then 6000 IOPS will be allocated. This provides the flexibility to assign different throttle value based on volume size.
Setting I/O Throttle property in storage template
Lets see how we can enable I/O Throttle property in PowerVC storage template and how the property is reflected in volume’s metadata that are created in PowerVC.
1. Navigate to ‘Templates’ page under ‘Storages’ section and scroll to ‘Performance characteristics’ section.
Select ‘Throttle I/O’ checkbox.
2. Select ‘I/O Throttle Type’ as IOPS
for the storage template based on the requirement.
3. Assign a value to ‘I/O Throttle rate’ property after selection of I/O throttle type.
4. User can change the other parameter values based on his requirement and click on ‘Create’ button to create storage template.
Volume creation using I/O Throttle based storage templates:
1. Navigate to ‘Data volumes’ page under ‘Storages’ section and click on ‘Create’ button.
2. Creation of data volume with Throttle type ‘IOPS’ storage template
(a) Storage template creation with ‘IOPS’ throttle type
(b) Data volume creation with IOPS storage template
3. Creation of data volume with Throttle type ‘MBPS’ storage template:
(a) Storage template creation with ‘MBPS’ throttle type
(b) Data volume creation with MBPS storage template
4. Creation of data volume with Throttle type ‘IOPS_PER_GB’ storage template:
(a) Storage template creation with ‘IOPS_PER_GB’ throttle type
(b) Data volume creation with IOPS_PER_GB storage template
Use cases applicable for QoS throttle
Below are some of the operations supported with this feature:
- Create the volume: User can create the volume with the give QoS throttle value by selecting the defined storage template.
- Clone Volume : User can now clone the volume, the cloned volume will have the same QoS throttle value as the source storage template. If clone volume is used by specifying the target storage template, clone volume will allocate the IOPS value based on target storage template.
- Modify the Volume QoS value: Use the Retype volume operation to change/unset the QoS throttle value from one template to another.
- Resize Volume: If volume has assigned QoS value coming from IOPS_PER_GB, when the volume is resized the IOPS value will be updated based on the new size.
Hope this information helped, for any queries reach out :)
1. Ramyasree Sankepally
2. Chhavi Agarwal