[one-dev] long VMs startup workflows

Carlos Martín Sánchez cmartin at opennebula.org
Mon Feb 24 02:10:10 PST 2014


Hi,

On Sat, Feb 22, 2014 at 2:19 PM, Andrea Gardiman
<andreagardiman at gmail.com>wrote:

> Dear all,
> I'm a student of computer science and for the project for my master thesis
> I need to undestrand in details how some parts of OpenNebula work.
> The problem that this thesis seeks to understand, and perhaps resolve, is
> that the VMs startup workflows take longer than VMs bootup time.
> I need to understand in depth the workflow that OpenNebula executes when an
> user asks to start a VM and in detail, all the phases that are part of that
> workflow. Then I will try to figure out in what phases the problem is or
> the improvement could be done.
> To do so I also will make measurements of the performance of all the phases
> in several different use cases.
>
> I read all the documentation of OpenNebula and I understood in general how
> OpenNebula works.
> I understood that the VM, during the deployment phase, takes the state
> "pending", "prolog", "boot" and finally "running".
>
> But to understand more in depth I need to analyze also the source code,
> but it's hard to figure out what file contains what and what is the goal of
> a certain class.
> Is there documentation that explains how the source code is organized,
> what each class do
> .. etc etc.. ?
> Which source code files or classes do you recommend me to look?
>
> Thanks a lot in advance for the help,
> and I hope that I can make a contribution to this community.
>

Here are some quick thoughts:

You can ignore the time it takes to reach prolog from pending. This is
simply the sched interval set in sched.conf [1]

Most likely you don't need to understand the OpenNebula code. All the
actions that interact with external components are done through the
drivers, and most of the time is spent waiting for the drivers to finish.
These drivers are small scripts intended to be easy to understand and
customize.

For example, if you want to tweak something to improve the prolog phase,
you need to take a look at the TM drivers [2]. For the deployment, the VMM
drivers [3].


The storage configuration is where there is more room for speed
improvement. Try for example to deploy a VM with a persistent image, using
ssh and then nfs TM drivers.
You may want to take a look at the storage addons contributed by the
community [4]

Regards

[1] http://docs.opennebula.org/stable/administration/references/schg.html
[2] http://docs.opennebula.org/stable/administration/storage/sm.html
[3]
http://docs.opennebula.org/stable/administration/virtualization/vmmg.html
[4] https://github.com/OpenNebula

--
Carlos Martín, MSc
Project Engineer
OpenNebula - Flexible Enterprise Cloud Made Simple
www.OpenNebula.org <http://www.opennebula.org/> | cmartin at opennebula.org |
@OpenNebula <http://twitter.com/opennebula>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/dev-opennebula.org/attachments/20140224/13d32d66/attachment-0001.htm>


More information about the Dev mailing list