[one-ecosystem] help for source code

Simon Boulet simon at nostalgeek.com
Tue May 1 19:35:34 PDT 2012


Hi Carlos

On Fri, Apr 27, 2012 at 5:51 AM, Carlos Martín Sánchez
<cmartin at opennebula.org> wrote:
>
> If you have 10 pending VMs, the current code will retrieve the list of VMs,
> Hosts and ACL rules once, and perform the matching and deployments. If the
> scheduling is triggered 10 times, the Host & ACL list will have to be
> retrieved 10 times. There is also the problem of the capacity: if two
> separate scheduling actions are triggered at the same time, both may send a
> total of 2 VMs to a host that has only capacity for 1.

Yes, of course, perhaps forcing a reschedule each time a VM is
deployed through a deploy hook isn't ideal for every scenario. But I
think being able to manually wake up the scheduler can be very handful
in some cases.

>
> Anyway, please open a feature request at our dev. portal and we will
> consider it for next releases.
>
>
> About the host filtering using this pre & post scripts, if I understood
> correctly, that functionality is already implemented as REQUIREMENTS and
> RANK:
>

The PRE_SCHED and POST_SCHED scripts would allow for more flexible and
dynamic scheduling. For example, one that want to add custom RANK
according to the Host disk i/o performance (I think the new Datastore
can do this, I haven't look at it yet),  according to the host
environment temperature (ex. prevent deploying on a host that is
located in a hot spot of the DC), or filter out hosts that have low
uptime, etc.

In my scenario, I have a set of very specific disk images that are
available only on certain hosts and that I can't transfer. My idea is
to implement a PRE_SCHED script, parse the VM template that is to be
deployed for images definitions, lookup which hosts can fulfill the
special disk image requirement, and feed the scheduler with the list
of hosts that have the image.

I've found Open Nebula to be very flexible / easy to hack into thanks
to the different drivers implementation, expect for the scheduler
which requires editing C++ code and recompiling.

Simon


More information about the Ecosystem mailing list