<div dir="ltr">Hi,<div><br></div><div>On Sat, Feb 22, 2014 at 2:19 PM, Andrea Gardiman <span dir="ltr"><<a href="mailto:andreagardiman@gmail.com" target="_blank">andreagardiman@gmail.com</a>></span> wrote:<br></div><div class="gmail_extra">

<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Dear all,</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">I'm a student of computer science and for the project for my master thesis</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">I need to undestrand in details how some parts of OpenNebula work.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">The problem that this thesis seeks to understand, and perhaps resolve, is</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">that the VMs startup workflows take longer than VMs bootup time.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">I need to understand in depth the workflow that OpenNebula executes when an</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">user asks to start a VM and in detail, all the phases that are part of that</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">workflow. Then I will try to figure out in what phases the problem is or</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">the improvement could be done.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">To do so I also will make measurements of the performance of all the phases</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">in several different use cases.</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">I read all the documentation of OpenNebula and I understood in general how</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">OpenNebula works.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">I understood that the VM, during the deployment phase, takes the state</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">"pending", "prolog", "boot" and finally "running".</span><div><br></div><div>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.<br style="font-family:arial,sans-serif;font-size:13px">


Is there<span style="font-family:arial,sans-serif;font-size:13px"> documentation</span><span style="font-family:arial,sans-serif;font-size:13px"> that explains how the source code is organized, what each class do</span><br style="font-family:arial,sans-serif;font-size:13px">


<span style="font-family:arial,sans-serif;font-size:13px">.. etc etc.. ?</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Which source code files or classes do you recommend me to look?</span><br style="font-family:arial,sans-serif;font-size:13px">


<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Thanks a lot in advance for the help,</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">and I hope that I can make a contribution to this community.</span></div>

</div></blockquote><div><br></div><div>Here are some quick thoughts:</div><div><br></div><div>You can ignore the time it takes to reach prolog from pending. This is simply the sched interval set in sched.conf [1]</div><div>

<br></div><div>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.</div>

<div><br></div><div>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].</div><div><br></div><div><br></div><div>

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.</div><div>You may want to take a look at the storage addons contributed by the community [4]</div>

<div><br></div><div>Regards</div><div><br></div><div>[1] <a href="http://docs.opennebula.org/stable/administration/references/schg.html">http://docs.opennebula.org/stable/administration/references/schg.html</a> </div><div>

[2] <a href="http://docs.opennebula.org/stable/administration/storage/sm.html">http://docs.opennebula.org/stable/administration/storage/sm.html</a><br></div><div>[3] <a href="http://docs.opennebula.org/stable/administration/virtualization/vmmg.html">http://docs.opennebula.org/stable/administration/virtualization/vmmg.html</a><br>

</div><div>[4] <a href="https://github.com/OpenNebula">https://github.com/OpenNebula</a></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">--<br><div>Carlos Martín, MSc<br>Project Engineer</div><div>OpenNebula - Flexible Enterprise Cloud Made Simple<br>

</div></div></div></div><div><a href="http://www.opennebula.org/" target="_blank" style="font-family:arial,sans-serif;font-size:13px">www.OpenNebula.org</a><span style="color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"> </span><span style="color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px">|</span><span style="color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"> </span><a href="mailto:cmartin@opennebula.org" target="_blank" style="font-family:arial,sans-serif;font-size:13px">cmartin@opennebula.org</a><span style="color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"> </span><span style="color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px">|</span><span style="color:rgb(136,136,136);font-family:arial,sans-serif;font-size:13px"> </span><a href="http://twitter.com/opennebula" target="_blank" style="font-family:arial,sans-serif;font-size:13px">@OpenNebula</a> </div>

</div></div></div>