Chapter 6. Creating an instance with a guaranteed minimum bandwidth QoS You can create instances that request a guaranteed minimum bandwidth by using a Quality of Service (QoS) policy. QoS policies with a guaranteed minimum bandwidth rule are assigned to ports on a specific physical network. When you create an instance that uses the configured port, the Compute scheduling service selects a host for the instance that satisfies this request. The Compute scheduling service checks the Placement service for the amount of bandwidth reserved by other instances on each physical interface, before selecting a host to deploy an instance on. Note To execute openstack client commands on the cloud, you must specify the name of the cloud detailed in your clouds.yaml file. You can specify the name of the cloud by using one of the following methods: Use the --os-cloud option with each command, for example: Use this option if you access more than one cloud. Create an environment variable for the cloud name in your bashrc file: Limitations/Restrictions You can only assign a guaranteed minimum bandwidth QoS policy when creating a new instance. You cannot assign a guaranteed minimum bandwidth QoS policy to instances that are already running, as the Compute service only updates resource usage for an instance in placement during creation or move operations, which means the minimum bandwidth available to the instance cannot be guaranteed. Prerequisites A QoS policy is available that has a minimum bandwidth rule. For more information, Using Quality of Service (QoS) policies to manage data traffic in the Configuring networking services guide. The administrator has created a project for you and they have provided you with a clouds.yaml file for you to access the cloud. You have installed the python-openstackclient package. Procedure List the available QoS policies: Check the rules of each of the available policies to determine which has the required minimum bandwidth: Create a port from the appropriate policy: Create an instance, specifying the NIC port to use: An "ACTIVE" status in the output indicates that you have successfully created the instance on a host that can provide the requested guaranteed minimum bandwidth. 6.1. Removing a guaranteed minimum bandwidth QoS from an instance If you want to lift the guaranteed minimum bandwidth QoS policy restriction from an instance, you can detach the interface. Note To execute openstack client commands on the cloud, you must specify the name of the cloud detailed in your clouds.yaml file. You can specify the name of the cloud by using one of the following methods: Use the --os-cloud option with each command, for example: Use this option if you access more than one cloud. Create an environment variable for the cloud name in your bashrc file: Prerequisites The administrator has created a project for you and they have provided you with a clouds.yaml file for you to access the cloud. You have installed the python-openstackclient package. Procedure To detach the interface, enter the following command:

Commands:
openstack flavor list --os-cloud <cloud_name>
`export OS_CLOUD=<cloud_name>`
openstack network qos policy list
-------------------------------------- --------- -------- ---------+ | ID | Name | Shared | Default | Project | -------------------------------------- --------- -------- ---------+ | 6d771447-3cf4-4ef1-b613-945e990fa59f | policy2 | True | False | ba4de51bf7694228a350dd22b7a3dc24 | | 78a24462-e3c1-4e66-a042-71131a7daed5 | policy1 | True | False | ba4de51bf7694228a350dd22b7a3dc24 | | b80acc64-4fc2-41f2-a346-520d7cfe0e2b | policy0 | True | False | ba4de51bf7694228a350dd22b7a3dc24 | -------------------------------------- --------- -------- ---------+
openstack network qos policy show policy0
------------- ---------------------------------------------------------------------------------------+ | Field | Value | ------------- ---------------------------------------------------------------------------------------+ | description | | | id | b80acc64-4fc2-41f2-a346-520d7cfe0e2b | | is_default | False | | location | cloud= ', project.domain_id=, project.domain_name='Default , project.id= ba4de51bf7694228a350dd22b7a3dc24 , project.name= admin , region_name= regionOne , zone= | | name | policy0 | | project_id | ba4de51bf7694228a350dd22b7a3dc24 | | rules | [{ min_kbps : 100000, direction : egress , id : d46218fe-9218-4e96-952b-9f45a5cb3b3c , qos_policy_id : b80acc64-4fc2-41f2-a346-520d7cfe0e2b , type : minimum_bandwidth }, { min_kbps : 100000, direction : ingress , id : 1202c4e3-a03a-464c-80d5-0bf90bb74c9d , qos_policy_id : b80acc64-4fc2-41f2-a346-520d7cfe0e2b , type : minimum_bandwidth }] | | shared | True | | tags | [] | ------------- ---------------------------------------------------------------------------------------+
openstack port create port-normal-qos --network net0 --qos-policy policy0
openstack server create --flavor cirros256 --image cirros-0.3.5-x86_64-disk --nic port-id=port-normal-qos --wait qos_instance
openstack flavor list --os-cloud <cloud_name>
`export OS_CLOUD=<cloud_name>`
openstack server remove port <vm_name|vm_id> <port_name|port_id>