Bug 1014697

Summary: Scheduling: allow overbooking resources
Product: Red Hat Enterprise Virtualization Manager Reporter: Gilad Chaplik <gchaplik>
Component: ovirt-engineAssignee: Gilad Chaplik <gchaplik>
Status: CLOSED CURRENTRELEASE QA Contact: Artyom <alukiano>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.3.0CC: acathrow, dfediuck, gchaplik, iheim, lpeer, mavital, Rhev-m-bugs, yeylon
Target Milestone: ---   
Target Release: 3.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: sla
Fixed In Version: is28 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: SLA RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1019461, 1049022    

Description Gilad Chaplik 2013-10-02 14:46:47 UTC
Scheduling process is synchronized to avoid overbooking of cluster's resources.
add the cluster ability to avoid synchronizing scheduling requests.

This allows concurrent scheduling requests for the same cluster, and allow handling a large amount scheduling requests, but as the name indicates
may overbook hosts with extra VMs. Depending on the capabilities, the VMs
may fail to run or succeed while overloading the host (which should be
handled by load balancing).

Note that this should be limited to a minimal configurable amount, so if there
are less than X requests they will still be synchronized.

By default, setting overbooking is disabled and hidden, and can be visible by setting a config value.

Comment 1 Artyom 2013-12-19 12:31:34 UTC
Can you please provide information, how I can verify the bug?
Thanks.

Comment 2 Gilad Chaplik 2013-12-19 13:47:20 UTC
(In reply to Artyom from comment #1)
> Can you please provide information, how I can verify the bug?
> Thanks.
Sure Artyom :)

Brief explanation:
Adding a cluster optimization to enable parallel VM scheduling
requests for cluster (skip lock), in case pending requests are
greater than configurable threshold.
By default this feature is hidden from the user (unless
setting config.SchedulerAllowOverBooking to true).

Steps to verify:
1) Enable the feature (config.SchedulerAllowOverBooking).
2) Set config.SchedulerOverBookingThreshold to a reasonable number (3?).
3) Create a time consuming external filter, and restart external scheduling proxy.
4) Restart server to stick config options and new filter.
5) add that filter to cluster policy
6) start serveral VMs (separably or via REST) - running several VM from ui syncronize them, so there's no point of removing the scheduling lock.
7) Once there are more than config.SchedulerOverBookingThreshold waiting to be scheduled, all the VMs will be scheduled together.

Thanks, 
Gilad.

Comment 3 Artyom 2013-12-23 10:14:10 UTC
Verified on is28
Message appear in engine log:
2013-12-22 08:37:33,147 INFO  [org.ovirt.engine.core.bll.scheduling.SchedulingManager] (pool-4-thread-46) [4169c47] scheduler: cluster (cl_33) lock is skipped (cluster is allowed to overbook)
And also after this I can see that vm powering up together:
2013-12-23 12:09:16,303 INFO  [org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo] (DefaultQuartzScheduler_Worker-82) VM test_pool-3 4a78f45c-4eca-4fed-94c9-bbb0c22904b6 moved from WaitForLaunch --> PoweringUp
2013-12-23 12:09:16,304 INFO  [org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo] (DefaultQuartzScheduler_Worker-82) VM test_pool-1 be31d7b0-b0a0-42a8-9ec2-a84596617141 moved from WaitForLaunch --> PoweringUp
2013-12-23 12:09:16,304 INFO  [org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo] (DefaultQuartzScheduler_Worker-82) VM test_pool-2 b3fa0a8b-740f-4b56-8c9f-5c4a9f167a4d moved from WaitForLaunch --> PoweringUp

Comment 4 Itamar Heim 2014-01-21 22:20:57 UTC
Closing - RHEV 3.3 Released

Comment 5 Itamar Heim 2014-01-21 22:26:27 UTC
Closing - RHEV 3.3 Released