Scheduler Decision Framework

Registered by justinsb on 2011-03-15

Our current schedulers are relatively simple; however we know that we would like much more sophisticated scheduling policies both for CloudServers compatibility and for the evolution of OpenStack.

I had a personal need for a scheduler that would put a compute node near to the volume it would be using, so implemented eday's proposal around hierarchical naming to define a topology that then fed a simple constraint solver. The constraint solver was intended to work even when querying the underlying data was expensive.

I can discuss my proposed approach in more detail, but I think we should try to agree an approach to more advanced scheduling, in particular where criteria may be conflicting with each other.

In addition, a more sophisticated scheduler ties in with the multi-zone and distributed-scheduler work, and can also open up very interesting cloud-bursting / federation possibilities.

The constraint scheduler branch is here:
https://code.launchpad.net/~justin-fathomdb/nova/constraint-scheduler

And my 'colocation' scheduler is here:
https://code.launchpad.net/~justin-fathomdb/nova/schedule-compute-near-volume

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Medium
Drafter:
justinsb
Direction:
Approved
Assignee:
justinsb
Definition:
Obsolete
Series goal:
None
Implementation:
Started
Milestone target:
None
Started by
Vish Ishaya on 2011-05-09
Completed by
Vish Ishaya on 2011-10-25

Related branches

Sprints

Whiteboard

I am interested in writing an Energy Aware scheduler for Open Stack. This poster explains the work I have been doing in my PhD: http://jws7.net/cloudmonitor/Poster.pdf

If anyone is interested in chatting about this idea, please drop me an email. Contact details on the poster. -- James

I would like to see this using the same framework as sandy and ed's scheduler work. It would be excellent to provide as an example advanced scheduler. --vish

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.