
--Apple-Mail=_89F8B2D6-58F8-414F-A85A-238907D35FA4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8
On 4 Apr 2017, at 12:10, Roy Golan <rgolan@redhat.com> wrote: =20 =20 =20 On Tue, Apr 4, 2017 at 12:49 PM Yaniv Kaul <ykaul@redhat.com = <mailto:ykaul@redhat.com>> wrote: On Tue, Apr 4, 2017 at 12:29 PM, Roy Golan <rgolan@redhat.com = <mailto:rgolan@redhat.com>> wrote: I'm working on a POC lately on a change to stats collection and = retrieval by VDSM. The moto is to cut all we can from host/vm stats = (possibly caps) and report only core-business stuff to the engine. = Engine will retrieve the rest through a 3rd party provider (nevermind what is it atm)
=20 Being backward compatible by design, I have to support 2 API versions = for Host.getStats , '4.1' and '4.2'. Except from supplying less parameters, I want VDSM to do less stuff. = It doesn't need to sample what it doesn't report. In other words I want = '4.1-sampling' and '4.2-sampling' =20 # Introducing 'configuration' Verb: =20 As engine knows always(Hosted Engine as well) what cluster version =
=20 Host.configure(config=3D{version: 4.2} =20 Consider this verb, pre-activating using 'Host.getCaps' to set the = context. It will set the righjt sampling method, and other stuff if needed then = API endpoints will have the right permutation of the api to answer it. =20 4.2 host can operate in 4.1 mode: Host.configure(config=3D{version: 4.1} =20 Issue: moving a 4.2 host from 4.2 cluster to 4.1 is a problem since = engine needs to know this is a new vdsm that has the verb available. One = way to overcome that is to fire the verb for every host regardless of =
=20 Isn't it solved by host re-installation? =20 We allow maintenance + change host cluster so not always. Was this = changed?=20 =20 =20 # Engine: Engine will have a handling of the verb per version. Host/Vms monitoring should be changed - I suggest to move out of the = monitoring code the whole stats collection as it is a different task = which is orthogonal to 'monitoring' and in 4.2 more than before. =20 =20 I know configuration for VDSM has been discussed before and there are =
I hope it=E2=80=99s the same one as for VM stats, collectd:) this host belongs to, it can configure VDSM to operate in cluster = version mode. why not running it in parallel for one version? the version and disregard an error that implies the verb doesn't exist. probably tons of ways to do it. When you share your thoughts please = remember that configuration is a by-product of the effort.
=20 How do we persist this level on VDSM? Or we don't, and if VDSM is = restarted it is again back to 4.1 mode until Engine tells it otherwise? Y. =20 Must persist it somehow otherwise there is a race when the engine will = send send a stats request and will get the wrong answer. I'm wondering = if using differnt endpoints is the right solution here to prevent that = from happening.=20 method: Host.getStats version: 4.1=20
would it be a problem? assuming that the code is easily started/stopped = within vdsm, we can just change the behavior based on receiving one or = the other verb for the first time after vdsm starts Thanks, michal
=20 =20 =20 Nevertheless it can be potentially beneficial to more functions in =
vdsm.
=20 Thanks, Roy =20 =20 _______________________________________________ Devel mailing list Devel@ovirt.org <mailto:Devel@ovirt.org> http://lists.ovirt.org/mailman/listinfo/devel = <http://lists.ovirt.org/mailman/listinfo/devel> =20 _______________________________________________ Devel mailing list Devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/devel
--Apple-Mail=_89F8B2D6-58F8-414F-A85A-238907D35FA4 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div = class=3D"">On 4 Apr 2017, at 12:10, Roy Golan <<a = href=3D"mailto:rgolan@redhat.com" class=3D"">rgolan@redhat.com</a>> = wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div = dir=3D"ltr" class=3D""><br class=3D""><br class=3D""><div = class=3D"gmail_quote"><div dir=3D"ltr" class=3D"">On Tue, Apr 4, 2017 at = 12:49 PM Yaniv Kaul <<a href=3D"mailto:ykaul@redhat.com" = class=3D"">ykaul@redhat.com</a>> wrote:<br class=3D""></div><blockquote= class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_extra gmail_msg"><div class=3D"gmail_quote gmail_msg">On = Tue, Apr 4, 2017 at 12:29 PM, Roy Golan <span dir=3D"ltr" = class=3D"gmail_msg"><<a href=3D"mailto:rgolan@redhat.com" = class=3D"gmail_msg" target=3D"_blank">rgolan@redhat.com</a>></span> = wrote:<br class=3D"gmail_msg"><blockquote class=3D"gmail_quote = gmail_msg" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_msg">I'm working on a POC lately on a change to stats = collection and retrieval by VDSM. The moto is to cut all we can from = host/vm stats (possibly caps) and report only core-business stuff to the = engine. Engine will retrieve the rest through a 3rd party = provider</div></div></blockquote></div></div></div></blockquote></div></di= v></div></blockquote><blockquote type=3D"cite" class=3D""><div = class=3D""><div dir=3D"ltr" class=3D""><div = class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 = 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_extra gmail_msg"><div = class=3D"gmail_quote gmail_msg"><blockquote class=3D"gmail_quote = gmail_msg" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_msg">(nevermind what is it atm)<br = class=3D"gmail_msg"></div></div></blockquote></div></div></div></blockquot= e></div></div></div></blockquote><div><br class=3D""></div>I hope it=E2=80= =99s the same one as for VM stats, collectd:)</div><div><br = class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div = dir=3D"ltr" class=3D""><div class=3D"gmail_quote"><blockquote = class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_extra gmail_msg"><div class=3D"gmail_quote = gmail_msg"><blockquote class=3D"gmail_quote gmail_msg" style=3D"margin:0 = 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_msg"><br = class=3D"gmail_msg"></div><div class=3D"gmail_msg">Being backward = compatible by design, I have to support 2 API versions for Host.getStats = , '4.1' and '4.2'.<br class=3D"gmail_msg"></div><div = class=3D"gmail_msg">Except from supplying less parameters, I want VDSM = to do less stuff. It doesn't need to sample what it doesn't report. In = other words I want '4.1-sampling' and '4.2-sampling'<br = class=3D"gmail_msg"><br class=3D"gmail_msg"></div><div = class=3D"gmail_msg"># Introducing 'configuration' Verb:<br = class=3D"gmail_msg"><br class=3D"gmail_msg"></div><div = class=3D"gmail_msg">As engine knows always(Hosted Engine as well) what = cluster version this host belongs to, it can configure VDSM to operate = in cluster version mode.<br = class=3D"gmail_msg"></div></div></blockquote></div></div></div></blockquot= e></div></div></div></blockquote><div><br class=3D""></div>why not = running it in parallel for one version?</div><div><br = class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div = dir=3D"ltr" class=3D""><div class=3D"gmail_quote"><blockquote = class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_extra gmail_msg"><div class=3D"gmail_quote = gmail_msg"><blockquote class=3D"gmail_quote gmail_msg" style=3D"margin:0 = 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_msg"><br = class=3D"gmail_msg"> Host.configure(config=3D{version: 4.2}<br = class=3D"gmail_msg"></div><div class=3D"gmail_msg"><br = class=3D"gmail_msg"></div><div class=3D"gmail_msg">Consider this verb, = pre-activating using 'Host.getCaps' to set the context.<br = class=3D"gmail_msg">It will set the righjt sampling method, and other = stuff if needed then API endpoints will have the right permutation of = the api to answer it.<br class=3D"gmail_msg"><br = class=3D"gmail_msg"></div><div class=3D"gmail_msg">4.2 host can operate = in 4.1 mode:<br class=3D"gmail_msg"> = Host.configure(config=3D{version: 4.1}<br class=3D"gmail_msg"><br = class=3D"gmail_msg"></div><div class=3D"gmail_msg">Issue: moving a 4.2 = host from 4.2 cluster to 4.1 is a problem since engine needs to know = this is a new vdsm that has the verb available. One way to overcome that = is to fire the verb for every host regardless of the version and = disregard an error that implies the verb doesn't exist.<br = class=3D"gmail_msg"></div></div></blockquote><div class=3D"gmail_msg"><br = class=3D"gmail_msg"></div></div></div></div><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_extra gmail_msg"><div = class=3D"gmail_quote gmail_msg"><div class=3D"gmail_msg">Isn't it solved = by host re-installation?</div></div></div></div></blockquote><div = class=3D""><br class=3D""></div><div class=3D"">We allow = maintenance + change host cluster so not always. Was this changed? = <br class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin:0 = 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_extra gmail_msg"><div = class=3D"gmail_quote gmail_msg"><div class=3D"gmail_msg"><br = class=3D"gmail_msg"></div><blockquote class=3D"gmail_quote gmail_msg" = style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_msg"><br class=3D"gmail_msg"></div><div = class=3D"gmail_msg"># Engine:<br class=3D"gmail_msg"></div><div = class=3D"gmail_msg">Engine will have a handling of the verb per = version.<br class=3D"gmail_msg"></div><div class=3D"gmail_msg">Host/Vms = monitoring should be changed - I suggest to move out of the monitoring = code the whole stats collection as it is a different task which is = orthogonal to 'monitoring' and in 4.2 more than before.<br = class=3D"gmail_msg"><br class=3D"gmail_msg"><br = class=3D"gmail_msg"></div><div class=3D"gmail_msg">I know configuration = for VDSM has been discussed before and there are probably tons of ways = to do it. When you share your thoughts please remember that = configuration is a by-product of the effort.<br = class=3D"gmail_msg"></div></div></blockquote><div class=3D"gmail_msg"><br = class=3D"gmail_msg"></div></div></div></div><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_extra gmail_msg"><div = class=3D"gmail_quote gmail_msg"><div class=3D"gmail_msg">How do we = persist this level on VDSM? Or we don't, and if VDSM is restarted it is = again back to 4.1 mode until Engine tells it = otherwise?</div></div></div></div></blockquote></div></div></div></blockqu= ote><blockquote type=3D"cite" class=3D""><div class=3D""><div dir=3D"ltr" = class=3D""><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" = style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_extra gmail_msg"><div class=3D"gmail_quote = gmail_msg"><div = class=3D"gmail_msg">Y.</div></div></div></div></blockquote><div = class=3D""><br class=3D""></div><div class=3D"">Must persist it somehow = otherwise there is a race when the engine will send send a stats request = and will get the wrong answer. I'm wondering if using differnt = endpoints is the right solution here to prevent that from happening. <br = class=3D""></div><div class=3D""> method: Host.getStats version: = 4.1 <br class=3D""></div></div></div></div></blockquote><div><br = class=3D""></div>would it be a problem? assuming that the code is easily = started/stopped within vdsm, we can just change the behavior based on = receiving one or the other verb for the first time after vdsm = starts</div><div><br = class=3D""></div><div>Thanks,</div><div>michal</div><div><br = class=3D""></div><div><blockquote type=3D"cite" class=3D""><div = class=3D""><div dir=3D"ltr" class=3D""><div class=3D"gmail_quote"><div = class=3D""> <br class=3D""></div><blockquote = class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_extra gmail_msg"><div class=3D"gmail_quote = gmail_msg"><div class=3D"gmail_msg"><br class=3D"gmail_msg"></div><div = class=3D"gmail_msg"> </div><blockquote class=3D"gmail_quote = gmail_msg" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"></blockquote></div></div></div><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_extra gmail_msg"><div = class=3D"gmail_quote gmail_msg"><blockquote class=3D"gmail_quote = gmail_msg" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div dir=3D"ltr" class=3D"gmail_msg"><div = class=3D"gmail_msg">Nevertheless it can be potentially beneficial to = more functions in vdsm.<br class=3D"gmail_msg"></div><div = class=3D"gmail_msg"><br class=3D"gmail_msg"></div><div = class=3D"gmail_msg">Thanks,<br class=3D"gmail_msg"></div><div = class=3D"gmail_msg">Roy<br class=3D"gmail_msg"></div><div = class=3D"gmail_msg"><br class=3D"gmail_msg"></div></div> <br class=3D"gmail_msg"></blockquote></div></div></div><div dir=3D"ltr" = class=3D"gmail_msg"><div class=3D"gmail_extra gmail_msg"><div = class=3D"gmail_quote gmail_msg"><blockquote class=3D"gmail_quote = gmail_msg" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex">_______________________________________________<br= class=3D"gmail_msg"> Devel mailing list<br class=3D"gmail_msg"> <a href=3D"mailto:Devel@ovirt.org" class=3D"gmail_msg" = target=3D"_blank">Devel@ovirt.org</a><br class=3D"gmail_msg"> <a href=3D"http://lists.ovirt.org/mailman/listinfo/devel" = rel=3D"noreferrer" class=3D"gmail_msg" = target=3D"_blank">http://lists.ovirt.org/mailman/listinfo/devel</a><br = class=3D"gmail_msg"></blockquote></div><br = class=3D"gmail_msg"></div></div> </blockquote></div></div> _______________________________________________<br class=3D"">Devel = mailing list<br class=3D""><a href=3D"mailto:Devel@ovirt.org" = class=3D"">Devel@ovirt.org</a><br = class=3D"">http://lists.ovirt.org/mailman/listinfo/devel</div></blockquote=
</div><br class=3D""></body></html>=
--Apple-Mail=_89F8B2D6-58F8-414F-A85A-238907D35FA4--