Bug 1007282

Summary: Vm try to run on host with overloaded RAM when only RAM filter is used. And vm is pinned to overloaded host.
Product: Red Hat Enterprise Virtualization Manager Reporter: Ondra Machacek <omachace>
Component: ovirt-engineAssignee: Martin Sivák <msivak>
Status: CLOSED CURRENTRELEASE QA Contact: Lukas Svaty <lsvaty>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.3.0CC: acathrow, dfediuck, eedri, iheim, lpeer, mavital, omachace, Rhev-m-bugs, srevivo, yeylon
Target Milestone: ---Keywords: Triaged
Target Release: 3.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: sla
Fixed In Version: is19 Doc Type: Bug Fix
Doc Text:
Cause: There was a leftover policy unaware check for pin to host hidden in the process. Consequence: Pin to host was enforced even though the cluster policy did not contain Pin To Host policy unit. Fix: Check removed. Result: Everything in the scheduling now uses only the configured policy units.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-21 22:18:38 UTC 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: 1026487    
Attachments:
Description Flags
allow automatic migration engine log
none
dont allow migration engine log none

Description Ondra Machacek 2013-09-12 08:49:58 UTC
Created attachment 796691 [details]
allow automatic migration engine log

Description of problem:
There are two hosts in cluster and cluster use only RAM filter policy.
host1 has overloaded RAM, host2 is not overloaded.
There is vm which is pinned to host1, if this vm is started, it tries to run
on host1, which has overloded RAM.

Version-Release number of selected component (if applicable):
is12

How reproducible:
always

Steps to Reproduce:
1. Have two hosts in one cluster. This cluster use policy which use only RAM filter.
2. Create vm which is pinned to host1
3. Overload host1 RAM resources ( I had 99% ) (host2 had ~6%)
4. Start vm.

Actual results:
Vm tries to run on host1.

Expected results:
Vm run on host2

Additional info:

Comment 1 Ondra Machacek 2013-09-12 08:50:34 UTC
Created attachment 796692 [details]
dont allow migration engine log

Comment 2 Doron Fediuck 2013-09-16 14:02:47 UTC
Ondra,
what is the difference between the 2 logs?
The 2nd one being failed by the engine:

2013-09-12 10:47:35,204 WARN  [org.ovirt.engine.core.bll.RunVmCommand] (pool-5-thread-49) CanDoAction of action RunVm failed. Reasons:VAR__ACTION__RUN,VAR__TYPE__VM,VAR__ACTION__RUN,VAR__TYPE__VM,VAR__ACTION__RUN,VAR__TYPE__VM

Also, we need more data on the actual memory calculations;
what optimizations did you use (rqm load / balloon / ksm / etc).

Comment 3 Ondra Machacek 2013-09-18 12:37:57 UTC
I tried it on is15, and I was able to reproduce only when vm has checked option
'do not allow migration'.
When there is vm with this checked, then vm try to run on host1 even when the
scheduler don't use pin-to-host filter, but only RAM filter.

When vm has checked 'allow auto/man migration', then vm starts on host2.

I didn't use any memory optimizations, disabled memory page sharing, no ksm, no
balooning.

The first log is with vm which has checked 'allow auto/man migration'.
The second log is with vm which has checked 'do not allow migration'.

Comment 5 Lukas Svaty 2013-10-31 08:45:38 UTC
tested in is20.2

Comment 6 Itamar Heim 2014-01-21 22:18:38 UTC
Closing - RHEV 3.3 Released

Comment 7 Itamar Heim 2014-01-21 22:24:59 UTC
Closing - RHEV 3.3 Released