On Sat, Oct 15, 2011 at 11:05:09PM +0200, Dan Kenigsberg wrote:
On Sat, Oct 15, 2011 at 10:34:55PM +0200, Yaniv Kaul wrote:
On 10/15/2011 10:19 PM, Dan Kenigsberg wrote:
<SNIP> >I find it quite awkward for ovirt-engine to send code to MOM. It is not like the >programmers of ovirt-engine are smarter than you and could devise a better >policy. It *is* important to have "ballooning profiles" attached to guests (e.g. >"this VM is holy, do not balloon unless host is in deep manure") or hosts ("keep >100Mb free at all costs"). I think that defining the available profiles is the >business of MOM - no one can do it better. > >Dan.
I disagree, for one reason - the engine has an overall view of the system, not just of a single node. However, I haven't found yet where it can be advantage. I'm sure there are such cases, though. The knowledge of an operating system, its properties (to which user it belongs, its priority, is it related to another VM, ...) probably has some value.
Sure, but these should be a finite set policies and their parameters. Management layer should be provided with useful knobs and handles, not the ability to push generic code.
See my other response for why I don't think it is scalable to expose simple knobs for each and every slight behavior modification we wish to perform.
Can you ever envisage ovirt-engine compiling a completely new policy on its own volition? This would require AI capabilities out of its current scope. The Engine may have several policies dumped in its database, and it would have to apply one of them to a host every time it changes to Up. The only advantage I see in this is that introducing a new policy in a new Engine version is simpler, and does not require updating all of its nodes.
ovirt-engine would most certainly not self-program its own policy. My thinking is that as a community, we would design a library of policies that are useful for implementing a set of supported operating profiles (eg. aggressive overcommitment, no overcommitment (SLA/guaranteed performance), power saving, maintenance, etc). These policy files could be pushed (with modifications to certain tunable parameters as required) to the appropriate nodes according to user instructions or as deemed necessary by ovirt-engine. MOM's job is merely to enforce whatever policy is given to it. To start with, we'll probably just have a single policy (the current one) but I think we should keep ourselves open to expansion.