The scheduler maps the nova-API calls to the appropriate openstack components. It runs as a daemon named nova-schedule and picks up a compute/network/volume server from a pool of available resources depending upon the scheduling algorithm in place. A scheduler can base its decisions on various factors such as load, memory, physical distance of the availability zone, CPU architecture, etc. The nova scheduler implements a pluggable architecture.
Currently the nova-scheduler implements a few basic scheduling algorithms:
chance: In this method, a compute host is chosen randomly across availability zones.
availability zone: Similar to chance, but the compute host is chosen randomly from within a specified availability zone.
simple: In this method, hosts whose load is least are chosen to run the instance. The load information may be fetched from a load balancer.
