Bug 912059 (plugable-scheduler) - PRD33 - Provide infrastructure for plug-in a schedulers
Summary: PRD33 - Provide infrastructure for plug-in a schedulers
Keywords:
Status: CLOSED ERRATA
Alias: plugable-scheduler
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-scheduler-proxy
Version: 3.2.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 3.3.0
Assignee: Martin Sivák
QA Contact: Ondra Machacek
URL: http://www.ovirt.org/Features/oVirt_E...
Whiteboard: sla
: 827168 (view as bug list)
Depends On:
Blocks: 723056 827168 828591 862091 877209 external-scheduler 975630 975631 1019470
TreeView+ depends on / blocked
 
Reported: 2013-02-17 14:56 UTC by Simon Grinberg
Modified: 2019-11-14 06:20 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Release Note
Doc Text:
Red Hat Enterprise Virtualization Manager now includes a new scheduler to handle VM placement, allowing users to create new scheduling policies, and also write their own logic in Python and include it in a policy. For conceptual explanations of the new scheduler see bug 912076. The infrastructure allowing users to extend the new scheduler, is based on a service called ovirt-scheduler-proxy. The service's purpose is for RHEV admins to extend the scheduling process with custom python filters, weight functions and load balancing modules. The daemon is waiting for engine requests using XML-RPC. Engine request may e one of: - runDiscover: returns an XML containing all available policy units and configurations (configuration is optional). - runFilters: executes a set of filters plugins sequentially (provided as a name list). - runScores: executes a set of weight function plugins sequentially (provided as a name list), then calculate a cost table (using factors) and return it to the engine. - runBalance: executes the balance plugin named {balance name} on the hosts using the given properties_map. Any plugin file {NAME}.py the user writes must implement at least one of the functions (do_filter, do_scores, do_balance). These files reside in $PYTHONPATH/ovirt_scheduler/plugins folder, unless changes in the proxy's configuration file /etc/ovirt/scheduler/scheduler.conf. For more information on user code you can check the provided samples. During the daemon initialization, it will scan this folder to detect user files, and analyze the files for the relevant functionality. The results are kept in the daemon's cache, and provided to the engine when the runDiscover is called. Note that the engine will call it only when it starts up, so in order to introduce a new code, the administrator needs to restart the proxy service, and then RHEV engine. The scheduling proxy is packaged as a separate optional RPM which is not installed by default. After installing it, the admin needs to allow it in RHEV DB by setting ExternalSchedulerEnabled to True using the configuration utility. Important notes: - User provided code is unsupported. - Using user provided code may have a performance impact, so administrators are advised to carefully test their code and the general performance changes before using it in live setups.
Clone Of:
: 975630 (view as bug list)
Environment:
Last Closed: 2014-01-22 16:20:27 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 RHEA-2014:0088 0 normal SHIPPED_LIVE ovirt-scheduler-proxy bug fix and enhancement update 2014-01-22 21:19:50 UTC
oVirt gerrit 17955 0 None None None Never

Description Simon Grinberg 2013-02-17 14:56:43 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: 

1. Creation of an infrastructure to plug-in a scheduler code running within the engine.

1.2 Allow third parties create their own.
1.3 Allow more then one such schedulers in the system.
1.4 Allow concatenation of schedulers within a cluster.

2. Define events on which to call scheduling 

3. Conversion of the current scheduler to use this new infra - A separate BZ will be opened for that. During the transition period allow to choose legacy scheduling or plug able (global config option)

More to come later ...

Comment 3 Andrew Cathrow 2013-06-19 16:53:12 UTC
*** Bug 827168 has been marked as a duplicate of this bug. ***

Comment 4 Doron Fediuck 2013-07-15 16:33:29 UTC
Some clarification.
This BZ is handling the infra that will run code outside of the engine scope.

Comment 10 errata-xmlrpc 2014-01-22 16:20:27 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/RHEA-2014-0088.html


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