[haizea-commit] r525 - trunk/doc/manual

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Mon Sep 29 05:33:09 CDT 2008


Author: borja
Date: 2008-09-29 05:33:04 -0500 (Mon, 29 Sep 2008)
New Revision: 525

Modified:
   trunk/doc/manual/analysing.tex
   trunk/doc/manual/install.tex
   trunk/doc/manual/intro.tex
   trunk/doc/manual/leases.tex
   trunk/doc/manual/manual.tex
   trunk/doc/manual/opennebula.tex
   trunk/doc/manual/quickstart.tex
   trunk/doc/manual/simulation.tex
   trunk/doc/manual/utils.tex
   trunk/doc/manual/whatis.tex
Log:
Minor corrections to manual.

Modified: trunk/doc/manual/analysing.tex
===================================================================
--- trunk/doc/manual/analysing.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/analysing.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -11,7 +11,7 @@
 ...
 \end{wideshellverbatim}
 
-Haizea currently includes no tools to easily convert this datafile into an easily readable format (like a graph) although these will eventually be added to Haizea. For now, if you want to access the data collected by Haizea, you will have to do so programatically. The data file contains a pickled \texttt{AccountingData} object (see module \texttt{haizea.resourcemanager.accounting}) with all the information collected during a simulation experiment. An example of how this file is unpickled, and some of its information accessed, can be found in function \texttt{haizea\_convert\_data} in module \texttt{haizea.cli.commands}.
+Haizea currently includes no tools to easily convert this datafile into an easily readable format (like a graph) although these will eventually be added to Haizea. For now, if you want to access the data collected by Haizea, you will have to do so programmatically. The data file contains a pickled \texttt{AccountingData} object (see module \texttt{haizea.resourcemanager.accounting}) with all the information collected during a simulation experiment. An example of how this file is unpickled, and some of its information accessed, can be found in function \texttt{haizea\_convert\_data} in module \texttt{haizea.cli.commands}.
 
 The \texttt{StatsData} object contains the following information:
 

Modified: trunk/doc/manual/install.tex
===================================================================
--- trunk/doc/manual/install.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/install.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -11,7 +11,7 @@
 \item mxDateTime 3.1.0 (\url{http://www.egenix.com/products/python/mxBase/mxDateTime/}), part of the eGenix.com mx Base Distribution).
 \item Optional: pysqlite (\url{http://oss.itsystementwicklung.de/trac/pysqlite/}). This package is only necessary if you want to use the OpenNebula modules.
 \item Optional: Mako Templates for Python 0.2.2 (\url{http://www.makotemplates.org/}). This package is only necessary if you want to automate running multiple simulation experiments (if this doesn't make any sense, you can skip this prerequisite for now; you will be pointed to this prerequisite again in the documentation when you get to running multiple experiments).
-\item Optional: Psyco 1.6 (\url{http://psyco.sourceforge.net/}). This package optimizes the execution of Python code, resulting in the simulation code running much faster. You can skip this prerequisite if you are not going to use Haizea to run simulations, or if you are only going to run short simulations.
+\item Optional: Psyco 1.6 (\url{http://psyco.sourceforge.net/}). This package optimises the execution of Python code, resulting in the simulation code running much faster. You can skip this prerequisite if you are not going to use Haizea to run simulations, or if you are only going to run short simulations.
 \end{itemize}
 
 Note that mxDateTime, pysqlite, Mako, and Psyco are all available as packages (DEB, RPM, etc.) on most Linux distributions. If you don't install any of the optional dependencies, Haizea will still run fine, but some functionality may not be available, as noted above.

Modified: trunk/doc/manual/intro.tex
===================================================================
--- trunk/doc/manual/intro.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/intro.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -1,9 +1,14 @@
 
-Bla bla bla
+This document is The Haizea Manual, the primary source of documentation for the Haizea lease manager (\url{http://haizea.cs.uchicago.edu/}). Documentation on features that are in development can be found in our development website at PhoenixForge (\url{http://phoenixforge.cs.uchicago.edu/haizea}). 
 
-\section*{How to read this manual}
+This manual can be read as a tutorial introduction to Haizea or as a reference guide. To read it as a tutorial, read Chapters~\ref{chap:whatis} to~\ref{chap:quickstart} sequentially (if you are already familiar with what Haizea and resource leases are, you can skip directly to Chapter~\ref{chap:install}). Additionally, Chapter~\ref{chap:opennebula} provides both a tutorial-like introduction and a short reference guide on using Haizea with the OpenNebula virtual infrastructure manager (\url{http://www.opennebula.org/}). The remaining chapters and appendices are not meant to be read sequentially but, rather, consulted as a reference guide when information is needed on a specific option, functionality, etc.
+
+If you need any help when getting started in Haizea, or need additional information on any of the contents of this manual, please don't hesitate to contact us through our mailing list. You can find instructions on how to subscribe on our website (\url{http://haizea.cs.uchicago.edu/}) in the ``Support'' page.
+
 \section*{Document conventions}
 
+The following conventions are observed in this manual:
+
 \begin{shellverbatim}
 echo 'This shows something you have to type into your console'
 \end{shellverbatim}

Modified: trunk/doc/manual/leases.tex
===================================================================
--- trunk/doc/manual/leases.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/leases.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -1,6 +1,6 @@
-Let's say you need computational resources...
+Let's say you need computational resources\ldots
 
-Maybe you're a scientist who needs to run some simulations. You have specific hardware requirements, but you're not particularly picky about when the simulations run, and probably won't even notice if they are interrupted at some point, as long as they finish running (correctly) at some point, maybe before a given deadline. A job scheduler, and a compute cluster, would probably be a good fit for you.
+Maybe you're a scientist who needs to run some simulations. You have specific hardware requirements, but you're not particularly picky about when the simulations run, and probably won't even notice if they are interrupted at some point, as long as they finish running (correctly) at some point, maybe before a given deadline. A cluster managed by a job scheduler would probably be a good fit for you.
 
 You could also be a software developer who wants to test his or her code on a pristine machine, which you would only need for a relatively short period of time. Plus, every time you use this machine, you'd like it to start up with the exact same pristine software environment. Oh, and you want your machine now. As in \emph{right now}. One option could be to install a virtual machine (VM) manager (such as Xen, VMWare, etc.) to start up these pristine machines as VMs on your own machine. Even better, you could go to a cloud (like Amazon EC2, \url{http://www.amazon.com/ec2/}, or the Science Clouds, \url{http://workspace.globus.org/clouds/}) and have those VMs appear automagically somewhere else, so you don't have to worry about setting up the VM manager or having a machine powerful enough to run those VMs.
 
@@ -63,7 +63,7 @@
 \includegraphics{images/lease_be2.png}
 \end{center}
 
-Furthermore, your lease may be running a program unattended which can be safely paused for a while (since no one is interactively using the lease resources). By requesting a preemptible lease, you allow your resources to be preempted by higher-priority leases, like advance reservations:
+Furthermore, your lease may be running an unattended program which can be safely paused for a while (since no one is interactively using the lease resources). By requesting a preemptible lease, you allow your resources to be preempted by higher-priority leases, like advance reservations:
 
 \begin{center}
 \includegraphics{images/lease_be3.png}

Modified: trunk/doc/manual/manual.tex
===================================================================
--- trunk/doc/manual/manual.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/manual.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -41,7 +41,7 @@
 \part{Using Haizea}
 
 \chapter{Installing Haizea}
-
+\label{chap:install}
 \input{install}
 
 \chapter{Quickstart guide}
@@ -49,7 +49,7 @@
 \input{quickstart}
 
 \chapter{Running scheduling simulations}
-
+\label{chap:opennebula}
 \input{simulation}
 
 \chapter{Haizea and OpenNebula}

Modified: trunk/doc/manual/opennebula.tex
===================================================================
--- trunk/doc/manual/opennebula.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/opennebula.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -1,9 +1,9 @@
-OpenNebula (\url{http://www.opennebula.org/}) is a virtual infrastructure manager that enables the dynamic deployment and re-allocation of virtual machines on a pool of physical resources. Haizea can be used to extend OpenNebula's scheduling capabilities, allowing it to support advance reservation of resources and queuing of best effort requests. OpenNebula and Haizea complement each other, since OpenNebula provides all the enactment muscle (OpenNebula can manage Xen and KVM VMs on a cluster, with VMWare support to follow shortly) and Haizea provides the scheduling brains. Using both of them together is simple, since Haizea acts as a drop-in replacement for OpenNebula's scheduling daemon. 
+OpenNebula (\url{http://www.opennebula.org/}) is a virtual infrastructure manager that enables the dynamic deployment and re-allocation of virtual machines on a pool of physical resources. Haizea can be used to extend OpenNebula's scheduling capabilities, allowing it to support advance reservation of resources and queueing of best effort requests. OpenNebula and Haizea complement each other, since OpenNebula provides all the enactment muscle (OpenNebula can manage Xen and KVM VMs on a cluster, with VMWare support to follow shortly) and Haizea provides the scheduling brains. Using both of them together is simple, since Haizea acts as a drop-in replacement for OpenNebula's scheduling daemon. 
 
 This chapter explains how to use OpenNebula and Haizea together, and explains how to submit requests to OpenNebula to use Haizea's scheduling capabilities.
 
 \begin{warning}
-Please remember that, although we have tested Haizea considerably with OpenNebula 1.0, Haizea is still a technology preview and, thus, not a good choice for production environments (yet). There are a couple of known issues and limitations which are listed at the end of this document. If you need to use OpenNebula in a production environment, and don't need any of Haizea's scheduling features (advance reservations, queuing of requests, etc.), you may want to use OpenNebula's default scheduler instead.
+Please remember that, although we have tested Haizea considerably with OpenNebula 1.0, Haizea is still a technology preview and, thus, not a good choice for production environments (yet). There are a couple of known issues and limitations which are listed at the end of this document. If you need to use OpenNebula in a production environment, and don't need any of Haizea's scheduling features (advance reservations, queueing of requests, etc.), you may want to use OpenNebula's default scheduler instead.
 \end{warning}
 
 \section{Installing OpenNebula and Haizea}

Modified: trunk/doc/manual/quickstart.tex
===================================================================
--- trunk/doc/manual/quickstart.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/quickstart.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -1,4 +1,4 @@
-This chapter provides a quick hands-on introduction to using Haizea in simulation mode. Even if you intend to use Haizea in combination with another system, such as OpenNebula, you may still find this guide useful to familiarize yourself with the Haizea configuration file and command-line interface. This chapter assumes that Haizea is installed on your system. If you have arrived at this chapter directly, you may want to read Chapter~\ref{chap:whatis} (``What is Haizea?'') first, although you should still be able to follow the instructions in this chapter without reading Chapter~\ref{chap:whatis} first.
+This chapter provides a quick hands-on introduction to using Haizea in simulation mode. Even if you intend to use Haizea in combination with another system, such as OpenNebula, you may still find this guide useful to familiarise yourself with the Haizea configuration file and command-line interface. This chapter assumes that Haizea is installed on your system. If you have arrived at this chapter directly, you may want to read Chapter~\ref{chap:whatis} (``What is Haizea?'') first, although you should still be able to follow the instructions in this chapter without reading Chapter~\ref{chap:whatis} first.
 
 \section{The \texttt{haizea} command}
 
@@ -177,7 +177,7 @@
 Notice how the above corresponds to the previous figure. In particular, notice the following:
 
 \begin{itemize}
- \item  When the AR lease request is received, Haizea looks at the schedule and determines that the only way to schedule the AR lease is to preempt the best-effort lease. However, instead of canceling that lease, it will just reschedule it so it is suspended right before the AR lease start. Note that Haizea will always try to minimize the number of preemption (in this case, we're forcing the situation for demonstration purposes) by assigning the AR lease to resources that are available without preempting other leases.
+ \item  When the AR lease request is received, Haizea looks at the schedule and determines that the only way to schedule the AR lease is to preempt the best-effort lease. However, instead of cancelling that lease, it will just reschedule it so it is suspended right before the AR lease start. Note that Haizea will always try to minimise the number of preemption (in this case, we're forcing the situation for demonstration purposes) by assigning the AR lease to resources that are available without preempting other leases.
  \item Shortly before the AR lease starts, the best-effort lease is suspended (the time required to do this is estimated by Haizea based on an option in the configuration file). When the AR lease ends at 14:00, Haizea begins resuming the suspended best-effort lease.
 \end{itemize}
 
@@ -194,7 +194,7 @@
 ...
 \end{wideshellverbatim}
 
-Rerun Haizea. Now, when the AR lease arrives at 13:15, the scheduler will realize it has to preempt the best-effort lease to make room for the AR lease, but will no longer be able to suspend it. The only option is to cancel the best-effort lease and resubmit it to the queue:
+Rerun Haizea. Now, when the AR lease arrives at 13:15, the scheduler will realise it has to preempt the best-effort lease to make room for the AR lease, but will no longer be able to suspend it. The only option is to cancel the best-effort lease and resubmit it to the queue:
 
 \begin{wideshellverbatim}
 [2006-11-25 13:15:00.00] SCHED   Preempting lease #1...
@@ -215,7 +215,7 @@
 \includegraphics{images/quickstart_leasegraph4.png}
 \end{center}
 
-Notice how, although suspending a lease is a disruptive activity which can delay the completion time of a best-effort request, it is still much better than completely canceling a request and waiting for enough resources to accommodate the entire (uninterrupted) duration of the lease.
+Notice how, although suspending a lease is a disruptive activity which can delay the completion time of a best-effort request, it is still much better than completely cancelling a request and waiting for enough resources to accommodate the entire (uninterrupted) duration of the lease.
 
 Another scheduling option you can modify is whether Haizea should transfer the VM's disk image from an image repository before the lease can start. You can do this by modifying the \texttt{lease-deployment} option:
 
@@ -328,7 +328,8 @@
 Now let's request a best-effort lease:
 
 \begin{wideshellverbatim}
-haizea-request-lease -t best_effort -d 00:10:00 -n 4 --non-preemptible -c 1 -m 512 -i foobar.img -z 600
+haizea-request-lease -t best_effort -d 00:10:00 -n 4 --non-preemptible \
+                     -c 1 -m 512 -i foobar.img -z 600
 \end{wideshellverbatim}
 
 The list of leases will now look like this:

Modified: trunk/doc/manual/simulation.tex
===================================================================
--- trunk/doc/manual/simulation.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/simulation.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -58,7 +58,7 @@
 ...
 \end{wideshellverbatim}
 
-Haizea currently only allows homogeneous resources to be specified. In other words, Haizea will manage a number of simulated physical machines, all with the same resources. The \texttt{resources} specifies the per-node resources using a semicolon-delimited list. Each entry in the list contains a pair: a resource name and its maximum capacity. Haizea currently recognizes the following:
+Haizea currently only allows homogeneous resources to be specified. In other words, Haizea will manage a number of simulated physical machines, all with the same resources. The \texttt{resources} specifies the per-node resources using a semicolon-delimited list. Each entry in the list contains a pair: a resource name and its maximum capacity. Haizea currently recognises the following:
 
 \begin{itemize}
 \item \texttt{CPU}: Number of processors per node.
@@ -68,7 +68,7 @@
 \item \texttt{Disk}: Disk space in MB (not counting space for disk image cache).
 \end{itemize}
 
-These five resources must always be specified, since Haize depends on them for fundamental resource reservations (running VMs, suspension of VMs, etc.) which involve these five types of resources. Additional resource types can be specified, but Haizea's scheduling code would have to be modified for them to be taken into account when scheduling leases. In the future, Haizea it will be possible to specify additional resources in the simulated nodes and in the lease requests with less effort.
+These five resources must always be specified, since Haizea depends on them for fundamental resource reservations (running VMs, suspension of VMs, etc.) which involve these five types of resources. Additional resource types can be specified, but Haizea's scheduling code would have to be modified for them to be taken into account when scheduling leases. In the future, Haizea it will be possible to specify additional resources in the simulated nodes and in the lease requests with less effort.
 
 \section{Scheduling options}
 
@@ -148,7 +148,7 @@
 ...
 \end{wideshellverbatim}
 
-Setting \texttt{what-to-migrate} to \texttt{nothing} means that migration \emph{is} allowed, but does not involve tranferring any files from one node to another.
+Setting \texttt{what-to-migrate} to \texttt{nothing} means that migration \emph{is} allowed, but does not involve transferring any files from one node to another.
 
 
 \subsection{Lease preparation scheduling}
@@ -162,7 +162,7 @@
 ...
 \end{wideshellverbatim}
 
-When disk images are located in a disk image repository, Haizea can schedule the file transfers from the repository to the physical nodes to make sure that images arrive on time (when a lease has to start at a specific time) and to minimize the number of transfers (by reusing images on the physical nodes). To do this, \texttt{lease-preparation} option must be set to \texttt{imagetransfer}, we need to specify the network bandwidth of the image repository (in Mbits per second), and specify several options in the \texttt{[deploy-imagetransfer]} section:
+When disk images are located in a disk image repository, Haizea can schedule the file transfers from the repository to the physical nodes to make sure that images arrive on time (when a lease has to start at a specific time) and to minimise the number of transfers (by reusing images on the physical nodes). To do this, \texttt{lease-preparation} option must be set to \texttt{imagetransfer}, we need to specify the network bandwidth of the image repository (in Mbits per second), and specify several options in the \texttt{[deploy-imagetransfer]} section:
 
 \begin{wideshellverbatim}
 [general]
@@ -183,7 +183,7 @@
 
 \subsubsection{Transfer mechanisms}
 
-The transfer mechanism specifies how the images will be transferred from the repository to the physical nodes. tHaizea currently only supports a multicast transfer mechanism:
+The transfer mechanism specifies how the images will be transferred from the repository to the physical nodes. haizea currently only supports a multicast transfer mechanism:
 
 \begin{wideshellverbatim}
 [deploy-imagetransfer]
@@ -225,7 +225,7 @@
 
 \subsection{The scheduling threshold}
 
-To avoid thrashing, Haizea will not schedule a lease unless all ovrheads
+To avoid thrashing, Haizea will not schedule a lease unless all overheads
 can be correctly scheduled (which includes image transfers, suspensions, etc.).
 However, this can still result in situations where a lease is prepared,
 and then immediately suspended because of a blocking lease in the future.

Modified: trunk/doc/manual/utils.tex
===================================================================
--- trunk/doc/manual/utils.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/utils.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -18,8 +18,8 @@
 \fvset{tabsize=2}
 
 % Creamos un nuevo environment de fancyvrb para los ejemplos enmarcados
-\DefineVerbatimEnvironment{VerbShell}{BVerbatim}{boxwidth=0.8\textwidth,fontsize=\small,samepage=true,commandchars=\\\{\}}
-\DefineVerbatimEnvironment{VerbWideShell}{BVerbatim}{boxwidth=0.96\textwidth,fontsize=\small,commandchars=\\\{\}}
+\DefineVerbatimEnvironment{VerbShell}{BVerbatim}{boxwidth=0.8\textwidth,fontsize=\small,samepage=true,commandchars=@\{\}}
+\DefineVerbatimEnvironment{VerbWideShell}{BVerbatim}{boxwidth=0.96\textwidth,fontsize=\small,commandchars=@\{\}}
 
 \newenvironment{shellverbatim}%
 {\VerbatimEnvironment\begin{Sbox}\begin{VerbShell}}%

Modified: trunk/doc/manual/whatis.tex
===================================================================
--- trunk/doc/manual/whatis.tex	2008-09-26 18:58:54 UTC (rev 524)
+++ trunk/doc/manual/whatis.tex	2008-09-29 10:33:04 UTC (rev 525)
@@ -2,14 +2,14 @@
 
 \begin{description}
 \item[Haizea is a resource manager] (or, depending on who you ask, a "resource scheduler"): Haizea is a software component that can manage a set of computers (typically a cluster), allowing users to request exclusive use of those resources described in a variety of terms, such as "I need 10 nodes, each with 1 GB of memory, right now" or "I need 4 nodes, each with 2 CPUs and 2GB of memory, from 2pm to 4pm tomorrow".
-\item[Haizea uses leases] The fundamental resource provisioning abstraction in Haizea is the lease. Intuitively, a lease is some form of contract where one party agrees to provide a set of resources (an apartment, a car, etc.) to another party. When a user wants to request computational resources from Haizea, it does so in the form of a lease. When applied to computational resources, the lease abstraction is a powerful and general construct with a lot of nuances. \ref{chap:leases}
+\item[Haizea uses leases] The fundamental resource provisioning abstraction in Haizea is the lease. Intuitively, a lease is some form of contract where one party agrees to provide a set of resources (an apartment, a car, etc.) to another party. When a user wants to request computational resources from Haizea, it does so in the form of a lease. When applied to computational resources, the lease abstraction is a powerful and general construct with a lot of nuances. Leases are described in more detail in Chapter~\ref{chap:leases}
 \item[Haizea is VM-based] We hold that the best way of implementing resource leases is using virtual machines (VMs). Therefore, Haizea's scheduling algorithms are geared towards managing virtual machines, factoring in all the extra operations (and overhead) involved in managing VMs. The Globus Virtual Workspaces group, where Haizea was originally developed, has an extensive list of publications that argue how using virtual machines for resource leasing is \textsf{A Good Thing} (and also \textsf{Not A Trivial Thing}).
 \item[Haizea is open source] Haizea is published under the Apache License 2.0, a BSD-like OSI-compatible license.
 \end{description}
 
 \section{What can you do with Haizea?}
 
-Haizea is, primarily, a VM resource management component that can take lease requests and make scheduling decisions, but doesn't actually know anything about how to enact those decisions. For example, Haizea may determine at what times a set of VMs representing a lease must start and stop, but it doesn't actually know how to instruct a virtual machine manager (such as Xen, KVM, etc.) to do these actions. Haizea can, however, delegate these enactment actions to an external component using a simple API. Haizea can currently interface with the OpenNebula (\url{http://www.opennebula.org/}) virtual infrastructure manager to enact its scheduling decisions. Haizea can also simulate enactment actions, which makes it useful for doing scheduling research involving leases or VMs (in fact, the Haizea simulator has been used in a couple of papers).
+Haizea is, primarily, a VM resource management component that takes lease requests and makes scheduling decisions based on those requests, but doesn't actually know anything about how to enact those decisions. For example, Haizea may determine at what times a set of VMs representing a lease must start and stop, but it doesn't actually know how to instruct a virtual machine manager (such as Xen, KVM, etc.) to do these actions. Haizea can, however, delegate these enactment actions to an external component using a simple API. Haizea can currently interface with the OpenNebula (\url{http://www.opennebula.org/}) virtual infrastructure manager to enact its scheduling decisions. Haizea can also simulate enactment actions, which makes it useful for doing scheduling research involving leases or VMs (in fact, the Haizea simulator has been used in a couple of papers).
 
 So, Haizea can be used in three modes: OpenNebula mode, unattended simulation mode, and interactive simulation mode.
 
@@ -19,16 +19,20 @@
 \includegraphics{images/mode_opennebula.png}
 \end{center}
 
-Haizea can be used as a drop-in replacement for OpenNebula's scheduling daemon. OpenNebula is a virtual infrastructure manager that enables the dynamic deployment and re-allocation of virtual machines on a pool of physical resources. OpenNebula and Haizea complement each other, since OpenNebula provides all the enactment muscle (OpenNebula can manage Xen and KVM virtual machines on a cluster, with VMWare support to follow shortly) while Haizea provides all the scheduling brains.
+Haizea can be used as a drop-in replacement for OpenNebula's scheduling daemon. OpenNebula is a virtual infrastructure manager that enables the dynamic deployment and re-allocation of virtual machines on a pool of physical resources. OpenNebula and Haizea complement each other, since OpenNebula provides all the enactment muscle (OpenNebula can manage Xen and KVM virtual machines on a cluster, with VMWare support to follow shortly) while Haizea provides all the scheduling brains. 
 
+Chapter~\ref{chap:opennebula} describes how to use Haizea an OpenNebula together.
+
 \subsection{Unattended simulation mode}
 
 \begin{center}
 \includegraphics{images/mode_unattended_simulation.png}
 \end{center}
 
-In this mode, Haizea takes a list of lease requests (specified in a \emph{tracefile}) and a configuration file specifying simulation and scheduling options (such as the characteristics of the hardware to simulate), and processes them in ``simulated time''. In other words, the goal of this mode is to obtain the final schedule for a set of leases, without having to wait for all those leases to complete in real time (this makes this mode particularly useful to find out what effect a certain scheduling option could have over a period of weeks or months). In fact, the final result of an unattended simulation is a datafile with raw scheduling data and metrics which can be used to generate reports and graphs.
+In this mode, Haizea takes a list of lease requests (specified in a \emph{tracefile}) and a configuration file specifying simulation and scheduling options (such as the characteristics of the hardware to simulate), and processes them in ``simulated time''. In other words, the goal of this mode is to obtain the final schedule for a set of leases, without having to wait for all those leases to complete in real time (this makes this mode particularly useful to find out what effect a certain scheduling option could have over a period of weeks or months). In fact, the final result of an unattended simulation is a datafile with raw scheduling data and metrics which can be used to generate reports and graphs. 
 
+Chapter~\ref{chap:quickstart} provides a quickstart-style introduction to running Haizea in unattended simulation mode, and Chapter~\ref{chap:simulation} explains simulation options in more detail. Analysis of the scheduling data generated by an unattended simulation is covered in Chapter~\ref{chap:analysing} 
+
 \subsection{Interactive simulation mode}
 
 \begin{center}
@@ -37,21 +41,28 @@
 
 In this mode, enactment actions are simulated, but Haizea runs in ``real time''. This means that, instead of having to provide a list of lease requests beforehand, your can use Haizea's command-line interface to request leases interactively and query the status of Haizea's schedule (e.g., to find out the state of lease you've requested). Obviously, this mode is not useful if you want to simulate weeks or months of requests, but it is handy if you want to experiment with leases and track the schedule in a more user-friendly way (since the datafile produced by the unattended simulation is mostly meant for consumption by other programs, e.g., to generate graphs and reports).
 
+Chapter~\ref{chap:quickstart}, the quickstart-style introduction, also includes instructions on how to run Haizea in interactive simulation mode.
+
 \section{Haizea architecture}
 
+\begin{figure}
 \begin{center}
-\includegraphics{images/architecture.png}
+\includegraphics[width=0.4\textwidth]{images/architecture.png}
 \end{center}
+\caption{The Haizea architecture}
+\label{fig:arch}
+\end{figure}
 
-Haizea is divided into the following three layers:
+The Haizea architecture (see Figure~\ref{fig:arch}) is divided into the following three layers:
 
 \begin{description}
-\item[The request frontend] This is where lease requests arrive. Haizea can currently accept requests from OpenNebula or read them from a tracefile (in SWF format or using the Haizea-specific LWF format). A command-line interface is in the works.
+\item[The request frontend] This is where lease requests arrive. Haizea can currently accept requests from OpenNebula, through a command-line interface, or read them from a tracefile (in SWF format or using the Haizea-specific LWF format).
 \item[The scheduling core] This is where the lease requests are processed and scheduled, resulting in enactment actions happening at specific points in time (e.g., "Start VM for lease X in node Y at time T", etc.)
 \item[The enactment modules] These take care of the "dirty work" of carrying out the enactment actions generated by the scheduler. Haizea can currently send enactment actions to OpenNebula, resulting in Haizea being able to manage Xen and KVM clusters (VMWare support coming soon), or to a simulated cluster.
 \end{description}
+
 The Haizea architecture keeps these three layers completely decoupled, which means that adding support for an additional enactment backend only requires writing an enactment module for that backend. The API for enactment modules is still not fully defined, and integration with OpenNebula is currently driving this effort. However, if you'd be interested in using Haizea in another system, please do let us know. We'd be very interested in hearing what your requirements are for the frontend and enactment APIs.
 
 \section{Haizea is still a technology preview}
 
-Haizea started out as research software (and it is still largely meant for research purposes). Although Haizea works and we're getting to the point where it can be used in production systems, it is still a technology preview, so please use it with caution. In particular, although we've produced some documentation and polished up the code, there is still a fair amount of documentation that has to be produced. If you have any trouble using Haizea, or understanding any part of the source code, please don't hesitate to ask for help.
\ No newline at end of file
+Haizea started out as research software (and it is still largely meant for research purposes). Although Haizea works and we're getting to the point where it can be used in production systems, it is still a technology preview, so please use it with caution.If you have any trouble using Haizea, or understanding any part of the source code, please don't hesitate to ask for help on our mailing list (see the Haizea website for details on how to subscribe).
\ No newline at end of file



More information about the Haizea-commit mailing list