Summary

A cloud compute scheduler needs to implement core policies of the infrastructure in order to effectively manage workloads in a datacenter environment. Policies such as matching workloads to compute resources, managing the power and thermal environment, scheduling decisions based upon security requirements and optimal Service Level Agreements (e.g. Quality of Service) are required for best data center utilization. Workload placement also needs to meet any requirements imposed by networking and storage capabilities. This blueprint describes a scheduler designed to meet these requirements.

Release Note

The scheduler will be incorporated initially as a simple engine with a default policy plug-in. This simple scheduler can then be extended with more complex plug-ins that take advantage of policies and constraints stored in the system DataBase.

Rationale

This blueprint proposes an effort to incorporate into OpenStack a robust, richly featured scheduler for optimal workload placement and lifecycle management.

User stories

Major data center operators require core levels of functionality for use in complex environments. Functionality should start with dense workload placement and then move on to considerations involving power, thermal, security, and SLA.

Assumptions

  1. The scheduler is distributed (meaning each instance is stateless) and shares a common store for current state. This common store is also used to hold policies and constraints.
  2. Replaceable modules are required to support various algorithms for policy and constraint evaluation. I.E., no one single algorithm can be used for all situations. For example, different customers will want to put more emphasis on power vs. QoS or vice versa.

Design

The Policy & Constraint based Scheduler (PCS) will be a plug-in that extends the capability of the current Nova scheduler. The PCS will work in conjunction with the Network and Volume controllers to provide robust, reliable, trusted, and transparent scheduling decisions. Not only does the PCS have to work, but its algorithms must deliver repeatable, reliable, fast, predictable, and consistent results.

Key Requirements

Diagram of the Scheduler pc_sched.png

Elements

Basic flow

Implementation

This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes

Should cover changes required to the UI, or specific UI that is required to implement this

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.

Migration

Include:

Test/Demo Plan

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec

Wiki: PC_scheduler (last edited 2011-04-14 20:37:05 by Don Dugger)