Atom feed of this document
 

 Chapter 12. Scheduling

Compute uses the nova-scheduler service to determine how to dispatch compute and volume requests. For example, the nova-scheduler service determines which host a VM should launch on. The term "host" in the context of filters means a physical node that has a nova-compute service running on it. The scheduler is configurable through a variety of options.

Compute is configured with the following default scheduler options:

scheduler_driver=nova.scheduler.multi.MultiScheduler
volume_scheduler_driver=nova.scheduler.chance.ChanceScheduler
compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
scheduler_available_filters=nova.scheduler.filters.all_filters
scheduler_default_filters=AvailabilityZoneFilter,RamFilter,ComputeFilter
least_cost_functions=nova.scheduler.least_cost.compute_fill_first_cost_fn
compute_fill_first_cost_fn_weight=-1.0

Compute is configured by default to use the Multi Scheduler, which allows the admin to specify different scheduling behavior for compute requests versus volume requests.

The volume scheduler is configured by default as a Chance Scheduler, which picks a host at random that has the cinder-volume service running.

The compute scheduler is configured by default as a Filter Scheduler, described in detail in the next section. In the default configuration, this scheduler will only consider hosts that are in the requested availability zone (AvailabilityZoneFilter), that have sufficient RAM available (RamFilter), and that are actually capable of servicing the request (ComputeFilter).

From the resulting filtered list of eligible hosts, the scheduler will assign a cost to each host based on the amount of free RAM (nova.scheduler.least_cost.compute_fill_first_cost_fn), will multiply each cost value by -1 (compute_fill_first_cost_fn_weight), and will select the host with the minimum cost. This is equivalent to selecting the host with the maximum amount of RAM available.


loading table of contents...