Jump to: navigation, search

Difference between revisions of "Nova/SchedulingBasedOnInstanceResourceQuota"

Line 5: Line 5:
 
== Overview ==
 
== Overview ==
 
Nova provides the ability to set CPU time consumption percent for instances https://wiki.openstack.org/wiki/InstanceResourceQuota. For instance, setting '''Quota/Period''' with a ratio of 1/6 will result in instances using 1/6 of vcpu. We need to find a way for the scheduler to take this into account during scheduling.
 
Nova provides the ability to set CPU time consumption percent for instances https://wiki.openstack.org/wiki/InstanceResourceQuota. For instance, setting '''Quota/Period''' with a ratio of 1/6 will result in instances using 1/6 of vcpu. We need to find a way for the scheduler to take this into account during scheduling.
 +
 +
{| class="wikitable"
 +
|-
 +
! Drivers !! Support !! Furture
 +
|-
 +
| Libvirt || Supported || Supported
 +
|-
 +
| XenApi || Not Supported || Example
 +
|-
 +
| HyperV || Not Supported || Example
 +
|}
  
 
== Proposals ==
 
== Proposals ==

Revision as of 10:06, 25 March 2014

Scheduling based on Instance Resource Quota

User Storie

Operator wants Nova scheduler take Instances with resource quota enable into account.

Overview

Nova provides the ability to set CPU time consumption percent for instances https://wiki.openstack.org/wiki/InstanceResourceQuota. For instance, setting Quota/Period with a ratio of 1/6 will result in instances using 1/6 of vcpu. We need to find a way for the scheduler to take this into account during scheduling.

Drivers Support Furture
Libvirt Supported Supported
XenApi Not Supported Example
HyperV Not Supported Example

Proposals

Isolated aggregate

  • 'Ready with Havana

A first solution could be to reserve some specific hosts for a particular flavor and then configuring cpu allocation with the desired ratio.

How to use it

Context: For a flavor with a resource limited to 1/6 vcpu

  1. Configure the scheduler with filters 'AggregateCoreFilter' and 'AggregateInstanceExtraSpecFilter'
  2. Create a flavor and set the 'aggregate_instance_extra_specs:flavor_type' metadata to 'tiny_flavor' (or another value)
  3. Create an aggregate to isolate a resource limited flavor and set the 'cpu_allocation_ratio' metadata of this aggregate to 6.
  4. Set the 'flavor_type' metadata of this aggregate to 'tiny_flavor'

Problems

  • Dedicated hosts for flavor: host provisioning.
  • Impact of important number of VMs per host: workload density (to be studied with Neutron/Nova).
  • What about other drivers? currently only libvirt support this feature.

Add new metric `cpu_used`

  • To be discussed in the community