Bug 912076 (external-scheduler) - PRD33 - Implement a plug-in scheduler implementation that interfaces to external scheduler via scheduling API and SDK
Summary: PRD33 - Implement a plug-in scheduler implementation that interfaces to exte...
Keywords:
Status: CLOSED ERRATA
Alias: external-scheduler
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: RFEs
Version: 3.2.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 3.3.0
Assignee: Gilad Chaplik
QA Contact: Ondra Machacek
URL: http://www.ovirt.org/Features/oVirtSc...
Whiteboard: sla
Depends On: plugable-scheduler 975630
Blocks: 516905 826626 975631 1019470
TreeView+ depends on / blocked
 
Reported: 2013-02-17 16:24 UTC by Simon Grinberg
Modified: 2019-08-15 03:40 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Release Note
Doc Text:
Red Hat Enterprise Virtualization Manager includes a new scheduler to handle the placement of virtual machines, allowing users to create new scheduling policies and write their own logic in Python and include that logic in a policy. The new oVirt scheduler serves virtual machine scheduling requests during migration or while virtual machine are running. Scheduling is performed by applying hard constraints and soft constraints to get the optimal host for that request at a given point of time. Scheduling Policy Elements * Filter: a basic logic unit that filters out hypervisors that do not satisfy the hard constraints for placing a given virtual machine. * Weight function: a function that calculates a score for a given host based on the internal logic of the function. Weight functions are a method for implementing soft constraints in the scheduling process. Since these are weights, a lower score is considered to be better. * Load balancing module: code implementing logic for distributing loads. To date, the definition of a load was mostly CPU related, which could be resolved by migrating a virtual machine. The new scheduler allows users to write their own logic to handle other load types such as network and I/O by other means such as integrating with third-party systems. Scheduling Process Outline Every cluster has a scheduling policy. To date, there were three main policies - None, Even distribution, and Power saving - and now administrators can create their own policies or use the built-in policies. Each policy contains a list of filters, one or more weight functions and a single load-balancing module. The scheduling process takes all relevant hosts and runs them through the relevant filters of a specific policy. Note that filter order is meaningless. The filtered host list is then used as an input to the relevant weight functions of that policy, which creates a cost table. The cost table indicates the host with the lowest weight (cost), which is the optimal solution for the given request. Multiple weight functions may be prioritized using a factor. Adding User Code See Bug #912059 for more information on adding code. Important Notes - New scheduling policies created by administrators are not validated by the system. This may end up with unexpected results, so it is highly important to verify that a new policy is not introducing issues or instability to the system. - User-provided code is unsupported. - Using user-provided code may affect performance, so administrators are advised to carefully test their code and the general performance changes.
Clone Of:
: 975631 (view as bug list)
Environment:
Last Closed: 2014-01-21 17:14:00 UTC
oVirt Team: SLA
Target Upstream Version:
Embargoed:
sgrinber: Triaged+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2014:0038 0 normal SHIPPED_LIVE Important: Red Hat Enterprise Virtualization Manager 3.3.0 update 2014-01-21 22:03:06 UTC
oVirt gerrit 16108 0 None None None Never

Description Simon Grinberg 2013-02-17 16:24:14 UTC
This bug is a placeholder for this functionality and a detailed requirements list will be provided later. This is opened now to triage and block all the RFE's that depend on this infrastructure. 

Basic concepts are: 
- The end user scheduler is isolated from the engine and the DB - unlike the actual plug-in. 
- Must provide a way to collect enough info to form a decision
- The API should have the option to create binding to a scripting language TBD (SDK) 

The plug-in is based on the infra in bug 912059	that provide infrastructure for scheduler plug in that is running within the engine scope. So the plugin is running within the engine scope while providing interface to an external interface.

Comment 4 Cheryn Tan 2013-09-30 01:51:38 UTC
Hi Doron, can you please proofread the description in the Doc Text field for accuracy? I've tried to cover this bug and bug 912059 with one release note text. If you think they should be addressed separately, let me know.

Comment 5 Doron Fediuck 2013-09-30 09:00:18 UTC
(In reply to Cheryn Tan from comment #4)
> Hi Doron, can you please proofread the description in the Doc Text field for
> accuracy? I've tried to cover this bug and bug 912059 with one release note
> text. If you think they should be addressed separately, let me know.

Hi Cheryn,
Thanks. I updated the text, and as you can see I think bug 912059 should provide the details for adding user code. The current bug handles the new scheduler implementation.

Comment 7 errata-xmlrpc 2014-01-21 17:14:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2014-0038.html


Note You need to log in before you can comment on or make changes to this bug.