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 scheduler_weight_classes=nova.scheduler.weights.all_weighers ram_weight_multiplier=1.0
Compute. Configured to use the multi-scheduler, which allows the admin to specify different scheduling behavior for compute requests versus volume requests.
Volume scheduler. Configured as a chance scheduler, which picks a host at random that has the cinder-volume service running.
Compute scheduler. Configured 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
).