[haizea-commit] r524 - trunk/html

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Fri Sep 26 13:58:55 CDT 2008


Author: borja
Date: 2008-09-26 13:58:54 -0500 (Fri, 26 Sep 2008)
New Revision: 524

Added:
   trunk/html/development.html
Removed:
   trunk/html/doc_analysis.html
   trunk/html/doc_arch.html
   trunk/html/doc_install.html
   trunk/html/doc_opennebula.html
   trunk/html/doc_quickstart.html
Modified:
   trunk/html/credits.html
   trunk/html/doc_multiple.html
   trunk/html/documentation.html
   trunk/html/download.html
   trunk/html/features.html
   trunk/html/index.html
   trunk/html/pubs.html
   trunk/html/support.html
   trunk/html/whatis.html
Log:
Website updates for TP1.2

Modified: trunk/html/credits.html
===================================================================
--- trunk/html/credits.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/credits.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -16,11 +16,11 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <strong>Credits</strong></div>
 <h1>Credits</h1>
 

Added: trunk/html/development.html
===================================================================
--- trunk/html/development.html	                        (rev 0)
+++ trunk/html/development.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+
+<title>Haizea - An Open Source VM-based Lease Manager</title>
+<link href="haizea.css" type="text/css" rel="stylesheet"/>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+</head>
+<body>
+
+<div id="content">
+<div id="logo">
+<a href="index.html"><img src="logo.png" width="450" height="86" border="0" alt="Haizea"/></a>
+</div>
+<div class="topbar">
+<a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<strong>Development</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="credits.html">Credits</a></div>
+<h1>Development</h1>
+
+<p>Development of Haizea is managed at the <a href="http://phoenixforge.cs.uchicago.edu/haizea">Haizea project management site</a> at <a href="http://phoenixforge.cs.uchicago.edu/">PhoenixForge</a>. There you will find more developer-oriented information, such as our development roadmap, information on known issues, etc.</p>
+
+<div class="back">
+<a href="index.html">
+<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
+BACK TO<br/>HOME PAGE
+</a>
+</div>
+</div>
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+var pageTracker = _gat._getTracker("UA-4920033-1");
+pageTracker._initData();
+pageTracker._trackPageview();
+</script>
+</body>
+</html>


Property changes on: trunk/html/development.html
___________________________________________________________________
Name: svn:executable
   + *

Deleted: trunk/html/doc_analysis.html
===================================================================
--- trunk/html/doc_analysis.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/doc_analysis.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -1,104 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-
-<title>Haizea - An Open Source VM-based Lease Manager</title>
-<link href="haizea.css" type="text/css" rel="stylesheet"/>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-<body>
-
-<div id="content">
-<div id="logo">
-<a href="index.html"><img src="logo.png" width="450" height="86" border="0" alt="Haizea"/></a>
-</div>
-<div class="topbar">
-<a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="documentation.html" style="color:black">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="credits.html">Credits</a></div>
-<h1>Analysing data collected during a simulation experiment</h1>
-
-<p>While Haizea is running, it collects data that can be analysed offline (accepted/rejected leases, waiting times, etc.). This data is saved to disk when Haizea stops running so, for now, this information is (in practice) only useful for simulation experiments. In the future, Haizea will save data periodically to disk so it can also be analysed online.</p>
-
-<p>The file where the collected data will be saved is specified in the <tt>datafile</tt> option of the <tt>general</tt> section:</p>
-<pre class="shell">
-[general]
-...
-
-datafile: /var/tmp/haizea.dat
-
-...
-</pre>
-
-<p>
-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 <a href="http://docs.python.org/lib/module-pickle.html">pickled</a> <tt>StatsData</tt> object (see module <tt>haizea.resourcemanager.stats</tt>) 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 <tt>haizea_convert_data</tt> in module <tt>haizea.cli.commands</tt>.<p>
-
-<p>The <tt>StatsData</tt> object contains the following information:</p>
-
-<ul>
-<li><strong>Counter lists</strong>: Haizea keeps tracks of several metrics, such as the number of accepted AR leases or the number of best-effort leases completed, and keeps a log of how these metrics varied over time. In particular, it keeps track of the following:
-
-<ul>
-<li><tt>COUNTER_ARACCEPTED</tt>: Number of accepted AR leases.</li>
-<li><tt>COUNTER_ARREJECTED</tt>: Number of rejected AR leases.</li>
-<li><tt>COUNTER_IMACCEPTED</tt>: Number of accepted immediate leases.</li>
-<li><tt>COUNTER_IMREJECTED</tt>: Number of rejected immediate leases.</li>
-<li><tt>COUNTER_BESTEFFORTCOMPLETED</tt>: Number of completed best-effort leases.</li>
-<li><tt>COUNTER_QUEUESIZE</tt>: Queue size (best-effort leases)</li>
-<li><tt>COUNTER_DISKUSAGE</tt>: Total disk space used by VM images in the node pool.</li>
-<li><tt>COUNTER_CPUUTILIZATION</tt>: Percentage of CPUs used in node pool.</li>
-</ul>
-A "counter list" (which should more appropriately be called a "metric log") includes an entry for each time a metric changes. Each entry is a tuple (time, lease_id, value, average). If the metric is not associated with any particular lease, then the lease ID will be <tt>None</tt>. The average is a running average which will be <tt>None</tt> when it does not make sense to keep an average (e.g., the number of accepted AR requests).</li>
-<li><strong>Node state log</strong>: A dictionary with one entry per physical node. Each entry has a list with the state of a physical node at certain points in time. The possible states are:
-<ul>
-<li><tt>DOING_IDLE</tt>: The node is idle.</li>
-<li><tt>DOING_VM_RUN</tt>: The node is running a VM.</li>
-<li><tt>DOING_VM_SUSPEND</tt>: The node is suspending a VM.</li>
-<li><tt>DOING_VM_RESUME</tt>: The node is resuming a VM.</li>
-<li><tt>DOING_TRANSFER_NOVM</tt>: The node is idle, and an image transfer is in progress.</li>
-</ul>
-This information is only useful if you have one VM per physical node. The node state log will be modified in future versions of Haizea to provide more useful utilization data for configurations that have more than one VM per physical node.
-</li>
-<li><strong>Lease descriptors</strong>: The lease descriptors (i.e., <tt>ARLease</tt>, <tt>BestEffortLease</tt>, or <tt>ImmediateLease</tt> objects) of all the leases that have been scheduled are included in the object. The resource reservations are removed, as it would make the datafile too big. However, this still conserves interesting metrics like starting and ending times, waiting times, etc.</li>
-</ul>
-
-<table border="0" align="center">
-<tr>
-<td>
-<div class="back">
-<a href="documentation.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>DOCUMENTATION
-</a>
-</div>
-</td>
-<td>&nbsp;&nbsp;</td>
-<td>
-<div class="back">
-<a href="index.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>HOME PAGE
-</a>
-</div>
-</td>
-</tr>
-</table>
-
-</div>
-<script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-var pageTracker = _gat._getTracker("UA-4920033-1");
-pageTracker._initData();
-pageTracker._trackPageview();
-</script>
-</body>
-</html>

Deleted: trunk/html/doc_arch.html
===================================================================
--- trunk/html/doc_arch.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/doc_arch.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -1,77 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-
-<title>Haizea - An Open Source VM-based Lease Manager</title>
-<link href="haizea.css" type="text/css" rel="stylesheet"/>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-<body>
-
-<div id="content">
-<div id="logo">
-<a href="index.html"><img src="logo.png" width="450" height="86" border="0" alt="Haizea"/></a>
-</div>
-<div class="topbar">
-<a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="documentation.html" style="color:black">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="credits.html">Credits</a></div>
-<h1>The Haizea Architecture</h1>
-
-<p>The following diagram summarizes the Haizea architecture:</p>
-
-<div class="center">
-<img src="haizea_arch_simplified.png" width="388" height="594">
-</div>
-
-<p>Haizea is divided into the following three layers:</p>
-
-<ul>
-<li><strong>The request frontend</strong>: This is where lease requests arrive. Haizea can currently accept requests from <a href="http://www.opennebula.org/">OpenNebula</a> or read them from a tracefile (in <a href="http://www.cs.huji.ac.il/labs/parallel/workload/swf.html">SWF format</a> or using the Haizea-specific LWF format). A command-line interface is in the works.</li>
-<li><strong>The scheduling core</strong>: 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.)</li>
-<li><strong>The enactment modules</strong>: 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.</li>
-</ul>
-
-<p>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 <a href="support.html">let us know</a>. We'd be very interested in hearing what your requirements are for the frontend and enactment APIs.</p>
-
-
-<table border="0" align="center">
-<tr>
-<td>
-<div class="back">
-<a href="documentation.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>DOCUMENTATION
-</a>
-</div>
-</td>
-<td>&nbsp;&nbsp;</td>
-<td>
-<div class="back">
-<a href="index.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>HOME PAGE
-</a>
-</div>
-</td>
-</tr>
-</table>
-
-</div>
-<script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-var pageTracker = _gat._getTracker("UA-4920033-1");
-pageTracker._initData();
-pageTracker._trackPageview();
-</script>
-</body>
-</html>

Deleted: trunk/html/doc_install.html
===================================================================
--- trunk/html/doc_install.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/doc_install.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -1,155 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-
-<title>Haizea - An Open Source VM-based Lease Manager</title>
-<link href="haizea.css" type="text/css" rel="stylesheet"/>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-<body>
-
-<div id="content">
-<div id="logo">
-<a href="index.html"><img src="logo.png" width="450" height="86" border="0" alt="Haizea"/></a>
-</div>
-<div class="topbar">
-<a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="documentation.html" style="color:black">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="credits.html">Credits</a></div>
-<h1>Installing Haizea</h1>
-
-<p>Haizea has been tested only on Unix systems, and these installation instructions are given with a Unix system in mind. However, Haizea includes no platform-specific code, and should run fine on other systems. If there is enough interest, we can produce installers and installation instructions for other platforms.</p>
-
-<p>Installing Haizea can be accomplished in four simple steps:</p>
-
-<h2>1. Install dependencies</h2>
-
-<p>Haizea has a couple of software dependencies. Let's get them out of the way first:</p>
-
-<ul>
-<li><a href="http://www.python.org/">Python</a> 2.5. Haizea should also work with Python 2.4, but all testing has been done on Python 2.5.</li>
-<li><a href="http://www.egenix.com/products/python/mxBase/mxDateTime/">mxDateTime</a> 3.1.0 (part of the eGenix.com mx Base Distribution).</li>
-<li>Optional: <a href="http://oss.itsystementwicklung.de/trac/pysqlite/">pysqlite</a>. This package is only necessary if you want to use the OpenNebula modules.</li>
-<li>Optional: <a href="http://www.makotemplates.org/">Mako Templates for Python</a> 0.2.2. 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).</li>
-<li>Optional: <a href="http://psyco.sourceforge.net/">Psyco</a> 1.6. 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.</li>
-</ul>
-
-<p>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.</p>
-
-<h2>2. Download Haizea</h2>
-
-<p>Go to the <a href="download.html">download page</a> and download the latest version of Haizea. This will be a tarball called <tt>haizea-XXX.tar.gz</tt>, where XXX will be the version number. For the remainder of the instructions, let's assume that you've saved this file in a directory called <tt>$HAIZEA_INST</tt>.</p>
-
-<h2>3. Install Haizea</h2>
-
-<p>Go into directory <tt>$HAIZEA_INST</tt> and un-tar the installation package:</p>
-
-<div class="shell">
-tar xvzf haizea-XXX.tar.gz
-</div>
-
-<p>This will create a directory called <tt>haizea-XXX</tt> in <tt>$HAIZEA_INST</tt>. Go into that directory, and as root, run the following:</p>
-
-<div class="shell">
-python setup.py install
-</div>
-
-<p>If you do not have root access, or want to install Haizea in your home directory, run the following:</p>
-
-<div class="shell">
-python setup.py install --home=$HOME
-</div>
-
-<p>Note: If you have never installed a Python package in your home directory before, make sure you set the environment variable <tt>PYTHONPATH</tt> appropriately so Python will be aware of the Haizea modules.</p>
-
-<div class="shell">
-export PYTHONPATH=$HOME/lib/python
-</div>
-
-<p>After running the setup script, you should see a long list of installation and build messages, ending with the following:</p>
-
-<pre class="shell">
-creating /usr/share/haizea/traces/multi
-copying traces/multi/inj1.lwf -> /usr/share/haizea/traces/multi
-copying traces/multi/inj2.lwf -> /usr/share/haizea/traces/multi
-copying traces/multi/withprematureend.lwf -> /usr/share/haizea/traces/multi
-copying traces/multi/withoutprematureend.lwf -> /usr/share/haizea/traces/multi
-running install_egg_info
-Writing /usr/lib/python2.5/site-packages/haizea-TP1.XXX.egg-info
-</pre>
-
-<p>If you see this, installation has been successful!</p>
-
-<h2>4. Verify installation</h2>
-
-<p>Haizea includes some sample configuration files and lease request tracefiles that you can use to test Haizea. If you installed Haizea as root, you can run the following to test your installation:</p>
-
-<pre class="shell">
-haizea -c /usr/share/haizea/etc/sample.conf
-</pre>
-
-<p>This will use a sample configuration file to simulate running the scheduler with no requests, resulting in the following (somewhat anticlimactic) output:</p>
-
-<pre class="shell">
-[2006-11-25 13:00:00.00] TRACE   Loading tracefile /usr/share/haizea/traces/sample.lwf
-[2006-11-25 13:00:00.00] TRACE   Loaded workload with 0 requests (0 best-effort + 0 AR)
-[2006-11-25 13:00:00.00] RM      Starting resource manager
-[2006-11-25 13:00:00.00] CLOCK   Starting simulated clock
-[2006-11-25 13:00:00.00] CLOCK   Stopping simulated clock
-[2006-11-25 13:00:00.00] RM      Stopping resource manager
-[2006-11-25 13:00:00.00] RM        Completed best-effort leases: 0
-[2006-11-25 13:00:00.00] RM        Accepted AR leases: 0
-[2006-11-25 13:00:00.00] RM        Rejected AR leases: 0
-</pre>
-
-<p>Ok, not terribly exciting, but if you see this then the basic machinery is working fine. To see how to do more elaborate simulations, take a look at the <a href="doc_quickstart.html">Quickstart Guide</a>.</p>
-
-<p>Note: If you installed Haizea in your home directory, you will have to run the following:</p>
-
-<pre class="shell">
-haizea -c $HOME/share/haizea/etc/sample.conf
-</pre>
-
-<p>Additionally, you will have to modify the <tt>tracefile</tt> option in the sample configuration so it will point to the sample tracefile located in <tt>$HOME/share/haizea/traces/sample.lwf</tt> (instead of under the <tt>/usr</tt> directory).</p>
-
-
-<table border="0" align="center">
-<tr>
-<td>
-<div class="back">
-<a href="documentation.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>DOCUMENTATION
-</a>
-</div>
-</td>
-<td>&nbsp;&nbsp;</td>
-<td>
-<div class="back">
-<a href="index.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>HOME PAGE
-</a>
-</div>
-</td>
-</tr>
-</table>
-
-</div>
-<script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-var pageTracker = _gat._getTracker("UA-4920033-1");
-pageTracker._initData();
-pageTracker._trackPageview();
-</script>
-</body>
-</html>

Modified: trunk/html/doc_multiple.html
===================================================================
--- trunk/html/doc_multiple.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/doc_multiple.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -16,11 +16,11 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="documentation.html" style="color:black">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<strong>Documentation</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <h1>The Haizea Manual</h1>
 

Deleted: trunk/html/doc_opennebula.html
===================================================================
--- trunk/html/doc_opennebula.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/doc_opennebula.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -1,353 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-
-<title>Haizea - An Open Source VM-based Lease Manager</title>
-<link href="haizea.css" type="text/css" rel="stylesheet"/>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-<body>
-
-<div id="content">
-<div id="logo">
-<a href="index.html"><img src="logo.png" width="450" height="86" border="0" alt="Haizea"/></a>
-</div>
-<div class="topbar">
-<a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="documentation.html" style="color:black">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="credits.html">Credits</a></div>
-<h1>Using OpenNebula and Haizea<br/>to manage VMs on a cluster</h1>
-
-<p><a href="http://www.opennebula.org/">OpenNebula</a> 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 (more generally, it allows you to <a href="features_leases.html">lease</a> your resources as VMs, with a variety of lease terms). 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 them together is very simple since Haizea can be installed as a drop-in replacement for OpenNebula's scheduling daemon (i.e., you can use the latest version of OpenNebula, without any modifications).</p>
-
-<p>This document explains how to use OpenNebula and Haizea together, and explains how to submit requests to OpenNebula to use Haizea's scheduling capabilities.</p>
-
-<p>NOTE: Although Haizea supports scheduling multiple VMs in parallel (e.g., 16 VMs which must run at the same time, or not at all), the current 1.0 version of OpenNebula only allows VMs to be managed one at a time (OpenNebula 1.2 will include support for "VM groups"). As such, this document only explains how to schedule individual VMs. There is a "dirty hack" way of scheduling groups of VMs with Haizea and OpenNebula 1.0, but we're not including it here since OpenNebula 1.2 will make this issue moot. However, if you really really really need to schedule VMs as groups and can't wait for OpenNebula 1.2, please don't hesitate to <a href="support.html">contact us</a>.</p>
-
-<div class="warning">
-<strong>CAUTION:</strong> Please remember that, although we have tested Haizea considerably with OpenNebula 1.0, Haizea is still a <em>technology preview</em> 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.
-</div>
-
-<h2>Installing OpenNebula and Haizea</h2>
-
-<p>If you have not already done so, you will need to install OpenNebula 1.0 and Haizea Technology Preview 1.1. Start by <a href="http://www.opennebula.org/doku.php?id=documentation:rel1.0:ig">installing OpenNebula</a>, and then <a href="doc_install.html">installing Haizea</a>.</p>
-
-<p>Before proceeding, you may want to follow the OpenNebula <a href="http://www.opennebula.org/doku.php?id=documentation:rel1.0:qg">quickstart guide</a> to verify that your OpenNebula installation is working fine. The rest of this document assumes that OpenNebula is correctly installed, and that you know what a <em>virtual machine template</em> is ("VM templates" is how VMs are requested to OpenNebula, so we'll be working with them quite a bit). You may also want to follow the Haizea <a href="doc_quickstart.html">Quickstart Guide</a>, to verify that Haizea is correctly installed.</p>
-
-<h2>Configuring Haizea</h2>
-
-<p>Haizea must be configured to run in OpenNebula mode. Haizea includes a sample OpenNebula configuration file that you can use as a starting point. This file is installed, by default, in <tt>/usr/share/haizea/etc/sample_opennebula.conf</tt>.</p>
-
-<p>In OpenNebula mode, Haizea will process requests coming from OpenNebula, and will send all enactment commands to OpenNebula. To activate this mode, the <tt>mode</tt> option of the <tt>general</tt> section in the Haizea configuration file must be set to <tt>opennebula</tt>:</p>
-
-<pre class="shell">
-[general]
-...
-<strong>mode: opennebula</strong>
-...
-</pre>
-
-<p>Next, you need to tell Haizea where the OpenNebula database and <tt>onevm</tt> command are located. This is done in the <tt>opennebula</tt> section:</p>
-
-<pre class="shell">
-[opennebula]
-# The following assumes that $ONE_LOCATION is /opt/nebula/ONE
-# If you used a different $ONE_LOCATION, modify the paths 
-# accordingly
-db: /opt/nebula/ONE/var/one.db
-onevm: /opt/nebula/ONE/bin/onevm
-</pre>
-
-<p>There are some additional options described at the end of this document, but which you do not need to concern yourself with yet.</p>
-
-<h2>Running OpenNebula and Haizea together</h2>
-
-<p>Now that Haizea is configured to run alongside OpenNebula, running them is as simple as starting the OpenNebula daemon:</p>
-
-<pre class="shell">
-oned
-</pre>
-
-<p>Followed by Haizea:</p>
-
-<pre class="shell">
-haizea -c /usr/share/haizea/etc/sample_opennebula.conf
-</pre>
-
-<p>Haizea currently always runs in the foreground (a daemon mode will be added in future versions). If you want Haizea to run in the background, you can run it like this:</p>
-
-<pre class="shell">
-nohup haizea -c /usr/share/haizea/etc/sample_opennebula.conf 2> /var/tmp/haizea.log &amp;
-</pre>
-
-<p>
-When Haizea starts up, it will print out something like this:
-</p>
-
-<pre class="shell">
-[2008-07-21 11:49:00.63] ONE     Fetched <em>N</em> nodes from ONE db
-[2008-07-21 11:49:00.63] RM      Starting resource manager
-[2008-07-21 11:49:00.63] CLOCK   Starting clock
-</pre>
-
-<p>This means that Haizea has correctly started up, accessed OpenNebula's database and detected that there are <em>N</em> physical nodes (the value of N will depend, of course, on how many nodes you have in your system).</p>
-
-<div class="warning">
-<p>Haizea is a drop-in replacement for OpenNebula's default scheduler (<tt>mm_sched</tt>). Do not run Haizea and <tt>mm_sched</tt> at the same time, or funny things will happen.</p>
-</div>
-
-<h2>A quick test</h2>
-
-<p>At this point, OpenNebula and Haizea are both running together, and waiting for you to submit a VM request. From the user's perspective, you will still be submitting your requests to OpenNebula, and Haizea will do all the scheduling work backstage. However, you will be able to add an <tt>HAIZEA</tt> parameter to your OpenNebula request to access Haizea's features.</p>
-
-<p>So, to test that OpenNebula and Haizea are working correctly, start by taking a known-good OpenNebula template. Just to be on the safe side, you may want to try it with the default scheduler first, to make sure that the VM itself works correctly, etc. Then, just add the following parameter to the template:</p>
-
-<pre class="shell">
-HAIZEA = [
-  start        = "+00:00:30",
-  duration     = "00:01:00",
-  preemptible  = "no"
-]
-</pre>
-
-<p>The exact meaning of these parameters is explained later on in this document. In a nutshell, the values specified above tell Haizea to schedule the VM to start exactly 30 seconds in the future, to run for one minute, and to not allow the allocated resources to be preempted by other requests. As we will see later on, this is called an "advance reservation" (or AR) request.</p>
-
-<p>Before you submit your request to OpenNebula, take a look at the Haizea log. You should see something like this repeating every minute:</p>
-
-
-<pre class="shell">
-[2008-07-21 11:49:00.63] CLOCK   Waking up to manage resources
-[2008-07-21 11:49:00.63] CLOCK   Wake-up time recorded as 2008-07-21 11:49:01.00
-[2008-07-21 11:49:00.63] CLOCK   Going back to sleep. 
-                                 Waking up at 2008-07-21 11:50:01.00 
-                                 to see if something interesting has happened by then.
-</pre>
-
-<p>Haizea is configured, by default, to ask OpenNebula if there are any pending requests every minute. Since you haven't submitted anything, Haizea just wakes up every minute and goes right back to sleep. So, go ahead and submit your request (the one where you added the HAIZEA parameter). Assuming you named the template <tt>ar.one</tt>, run the following:</p>
-
-<pre class="shell">
-onevm submit ar.one
-</pre>
-
-<p>If you run <tt>onevm list</tt> to see the VMs managed by OpenNebula, you'll see that the request is in a <tt>pending</tt> state:</p>
-
-<pre class="shell">
-  ID     NAME STAT CPU     MEM        HOSTNAME        TIME
-----------------------------------------------------------
-  42     test pend   0       0                 00 00:00:04
-</pre>
-
-<p>Next time Haizea wakes up, you should see something like this:</p>
-
-<pre class="shell">
-[2008-07-21 11:50:00.99] CLOCK   Waking up to manage resources
-[2008-07-21 11:50:00.99] CLOCK   Wake-up time recorded as 2008-07-21 11:50:01.00
-[2008-07-21 11:50:01.03] SCHED   Received AR lease request #1, 1 nodes 
-                                   from 2008-07-21 11:50:31.00 
-                                     to 2008-07-21 11:51:31.00.
-[2008-07-21 11:50:01.03] SCHED   AR lease request #1 has been accepted.
-[2008-07-21 11:50:01.03] CLOCK   Going back to sleep. 
-                                 Waking up at 2008-07-21 11:50:31.00 
-                                 to handle slot table event.
-</pre>
-
-<p>Notice how Haizea detected that OpenNebula had an AR request, and then scheduled it to start 30 seconds in the future. In fact, Haizea takes care to wake up at that time so the VM can start at exactly that time.</p>
-
-<div class="warning">
-<p>If you run <tt>onevm list</tt>, the request will still be shown as <tt>pending</tt>. OpenNebula doesn't track Haizea's internal states, so it will consider the request "pending" until Haizea starts up the VM. Future versions will provide more information on a VMs state.</p>
-</div>
-<div class="warning">
-<p>Currently, Haizea has to poll OpenNebula every minute to ask if there are any new requests. An upcoming version of Haizea will support an event-based model where OpenNebula can send Haizea a notification as soon as a new request is received (so the user doesn't have to wait until the next time Haizea wakes up to process the request).</p>
-</div>
-<p>When the VM is scheduled to start, you will see the following in the Haizea logs:</p>
-
-<pre class="shell">
-[2008-07-21 11:50:30.99] CLOCK   Waking up to manage resources
-[2008-07-21 11:50:30.99] CLOCK   Wake-up time recorded as 2008-07-21 11:50:31.00
-[2008-07-21 11:50:31.32] SCHED   Started VMs for lease 1 on nodes [1]
-[2008-07-21 11:50:31.32] CLOCK   Going back to sleep. 
-                                 Waking up at 2008-07-21 11:51:31.00 
-                                 to handle slot table event.
-</pre>
-
-<p>Haizea has instructed OpenNebula to start the VM for the advance reservation. If you run <tt>onevm list</tt>, the VM will now show up as running:</p>
-
-<pre class="shell">
-  ID     NAME STAT CPU     MEM        HOSTNAME        TIME
-----------------------------------------------------------
-  42     test runn   2  262144          ursa03 00 00:01:04
-</pre>
-
-<p>You should be able to access the VM (if you configured it with networking and SSH). However, since we requested the VM to run for just a minute, you will soon see the following in the Haizea logs:</p>
-
-<pre class="shell">
-[2008-07-21 11:51:31.00] CLOCK   Waking up to manage resources
-[2008-07-21 11:51:31.00] CLOCK   Wake-up time recorded as 2008-07-21 11:51:31.00
-[2008-07-21 11:51:31.17] SCHED   Stopped VMs for lease 1 on nodes [1]
-[2008-07-21 11:51:31.17] CLOCK   Going back to sleep. 
-                                 Waking up at 2008-07-21 11:52:31.00 
-                                 to see if something interesting has happened by then.
-</pre>
-
-<h2>The HAIZEA parameter in OpenNebula</h2>
-
-<p>The previous section showed how you can add an <tt>HAIZEA</tt> parameter to your OpenNebula VM template to request a simple advance reservation. The three Haizea options (<tt>start</tt>, <tt>duration</tt>, and <tt>preemptible</tt>) can take other values:</p>
-
-<ul>
-<li><tt>start:</tt> This option specifies when the VM will start. Valid values are:
-    <ul>
-<li><tt>best_effort</tt>: The VM will be scheduled as soon as resources are available. If resources are not available right now, the request is put on a queue and it remains there until there are sufficient resources (requests are scheduled on a first-come-first-serve basis).</li>
-<li><tt>now</tt>: The VM will be scheduled right now. If resources are not available right now, the request is rejected.</li>
-    <li>Exact ISO timestamp: i.e., <tt>YYYY-MM-DD HH:MM:SS</tt>. The VM must start at exactly that time. If enough resources are not available at that time, the resource is not requested.</li>
-<li>Relative ISO timestamp: For convenience's sake (and also for testing) this provides an easy way of specifying that a VM must start "at T time after the VM is submitted". The format would be +HH:MM:SS (the "+" is not ISO, but is used by Haizea to determine that it is a relative timestamp)</li>
-    </ul>
-</li>
-<li><tt>duration:</tt> The duration of the lease. Possible values are:
-<ul><li><tt>unlimited</tt>: The lease will run forever, until explicitly stopped </li>
-<li><tt>ISO-formatted time</tt>: i.e., <tt>HH:MM:SS</tt></li></ul>
-</li>
-<li><tt>preemptible</tt>: This option can be either <tt>yes</tt> or <tt>no</tt>. Haizea currently uses a very simple priority scheme where VMs are either preemptible or non-preemptible (furthermore, a non-preemptible VM can preempt preemptible VMs, while preemptible VMs can't preempt anything). If a VM is preemptible, and a preempting VM needs its resources, then the preemptible VM will be suspended while the preempting VM is running. Future versions of Haizea will include better priority schemes.</li>
-</ul>
-
-<p>Usually, you will want to use these options to create one of Haizea's <a href="features_leases.html">supported lease types</a>:</p>
-
-<h3>Advance reservations</h3>
-<p>When you need your VM available at a specific time, this is called an <em>advance reservation</em>, or AR. The VM we used above is an example of an AR:</p>
-
-<pre class="shell">
-HAIZEA = [
-  start        = "+00:00:30",
-  duration     = "00:01:00",
-  preemptible  = "no"
-]
-</pre>
-
-<p>Of course, instead of specifying that you want your VM to start after a certain amount of time has passed (30 seconds, in this case), you can also specify an exact start time:</p>
-
-<pre class="shell">
-HAIZEA = [
-  start        = "2008-11-04 11:00:00",
-  duration     = "03:00:00",
-  preemptible  = "no"
-]
-</pre>
-
-<p>NOTE: Haizea currently only supports non-preemptible ARs.</p>
-
-<h3>Best-effort provisioning</h3>
-
-<p>When you instruct Haizea to determine the start time on a best-effort basis, your request will be allocated resources as soon as they become available. Take into account that your request may be placed on a queue, and you'll have to wait until your turn is up (there is currently no way to query the state of the queue, although this functionality will be added soon).</p>
-
-<pre class="shell">
-HAIZEA = [
-  start        = "best_effort",
-  duration     = "01:00:00",
-  preemptible  = "yes"
-]
-</pre>
-
-<p>A best-effort VM can be preemptible or non-preemptible. If you request a non-preemptible VM, you may still have to wait in the queue until you get your resources but, once you do, no one can take them from you.</p>
-
-
-<h3>Immediate provisioning</h3>
-
-<p>Sometimes, you need a VM right now or not at all. In that case, you can set the starting time to <tt>now</tt>. </p>
-
-<pre class="shell">
-HAIZEA = [
-  start        = "now",
-  duration     = "unlimited",
-  preemptible  = "no"
-]
-</pre>
-
-
-<h2>Additional OpenNebula configuration options</h2>
-
-<p>When running Haizea with OpenNebula, you must specify at least the <tt>db</tt> and <tt>onevm</tt> options in the <tt>[opennebula]</tt> section of the configuration file. However, there are additional options you can tweak:</p>
-
-<h3>Wakeup interval</h3>
-
-<p>This is the interval, in seconds, at which Haizea will wake up to process pending requests in OpenNebula. The default is 60 seconds.</p>
-
-<pre class="shell">
-[opennebula]
-...
-<strong>wakeup-interval: 60</strong>
-...
-</pre>
-
-<h3>Suspend/resume rate interval</h3>
-
-<p>This option provides Haizea with an estimate of how long it takes for OpenNebula to suspend or resume a virtual machine. This is estimated in MB per second, and is largely dependent on the disk read/write transfer speeds on your system (so, if a VM has 1024 MB of memory, and the suspend rate is estimated to be 64MB/s, Haizea will estimate that suspension will take 16 seconds). If you do not specify a value, Haizea will conservatively assume a rate of 32MB/s. A good estimate will allow Haizea to more correctly schedule resources, but an incorrect estimation will <em>not</em> result in an error (although a warning will be noted in the logs).</p>
-
-<pre class="shell">
-[opennebula]
-...
-<strong>suspendresume-rate-estimate: 32</strong>
-...
-</pre>
-
-<h3>Non-schedulable interval</h3>
-
-<p>The minimum amount of time that must pass between when a request is scheduled to when it can actually start (i.e., this makes sure that the scheduling function doesn't make reservations with starting times that will be in the past by the time the scheduling function ends). The default (10 seconds) should be good for most configurations, but may need to be increased if you're dealing with exceptionally high loads.</p>
-
-<pre class="shell">
-[opennebula]
-...
-<strong>non-schedulable-interval: 10</strong>
-...
-</pre>
-
-
-<h2>Known issues and limitations</h2>
-
-<p>Known issues and limitations when using Haizea with OpenNebula:</p>
-
-<ul>
-    <li>As pointed out in this guide, Haizea has to poll OpenNebula every minute to ask if there are any new requests. Additionally, OpenNebula has no way of notifying Haizea of a change of state in a VM (e.g., a VM that died, a suspend operation that finished before expected, etc.). An upcoming version of OpenNebula will add this feature, and Haizea (in turn) will support receiving events from OpenNebula (this includes being instantly notified of new requests, instead of having to poll OpenNebula periodically).</li>
-    <li>If a command sent to OpenNebula fails, Haizea currently ignores this. This will be fixed in Haizea TP 1.3. Nonetheless, OpenNebula commands run from Haizea shouldn't fail unless you're running incredibly heavy loads, or if you manually shutdown a VM managed by Haizea.</li>
-    <li>Haizea currently cannot do any image deployment with OpenNebula, and VM images are assumed to be predeployed on the physical nodes, or available on a shared NFS filesystem. An upcoming version of OpenNebula will allow OpenNebula and Haizea to work with a <em>transfer manager</em> to handle various VM deployment scenarios.</li>
-    <li>Haizea cannot enact cold migrations in OpenNebula (i.e., migrating a suspended VM to a different node if resources become available earlier on a different node than the one where the VM was suspended on). Haizea actually has all the scheduling code for this, and only the enactment "glue" is missing (should be added in TP 1.3 or 1.4)</li>
-</ul>
-
-<table border="0" align="center">
-<tr>
-<td>
-<div class="back">
-<a href="documentation.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>DOCUMENTATION
-</a>
-</div>
-</td>
-<td>&nbsp;&nbsp;</td>
-<td>
-<div class="back">
-<a href="index.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>HOME PAGE
-</a>
-</div>
-</td>
-</tr>
-</table>
-
-</div>
-<script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-var pageTracker = _gat._getTracker("UA-4920033-1");
-pageTracker._initData();
-pageTracker._trackPageview();
-</script>
-</body>
-</html>

Deleted: trunk/html/doc_quickstart.html
===================================================================
--- trunk/html/doc_quickstart.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/doc_quickstart.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -1,313 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
-<head>
-
-<title>Haizea - An Open Source VM-based Lease Manager</title>
-<link href="haizea.css" type="text/css" rel="stylesheet"/>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-</head>
-<body>
-
-<div id="content">
-<div id="logo">
-<a href="index.html"><img src="logo.png" width="450" height="86" border="0" alt="Haizea"/></a>
-</div>
-<div class="topbar">
-<a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="documentation.html" style="color:black">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="credits.html">Credits</a></div>
-<h1>Quickstart Guide</h1>
-
-<p>This guide provides an 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 guide assumes that you've <a href="download.html">downloaded</a> and <a href="doc_install.html">installed</a> Haizea. Also, make sure you've read the <a href="whatis.html">What is Haizea?</a> page before following this guide.</p>
-
-<h2>The <tt>haizea</tt> command</h2>
-
-<p>
-The main command in the Haizea system is, unsurprisingly, the <tt>haizea</tt> command. Running this command starts up the Haizea lease manager, which is then ready to receive and schedule lease requests. When running Haizea in simulation mode, lease requests are read from a <em>tracefile</em>, a text file containing a list of lease requests. Based on these requests, the simulator produces a schedule for those leases, which you will be able to follow through the logging messages printed by Haizea. At the end of the simulation, Haizea also saves a fair amount of raw data and statistics to disk which can be used to produce reports and graphs (a module to do this for you is in the works).
-</p>
-
-<p>
-When not running in simulation, Haizea runs as a daemon that can accept requests (e.g., through a command-line interface) and sends out enactment commands ("start VM", "stop VM", etc.) to the appropriate enactment module. For example, when running OpenNebula with Haizea as a scheduling backend, Haizea is in charge of processing the requests received by OpenNebula, coming up with a schedule, and then instructing OpenNebula on when VMs should be start/stop/suspend/resume on what physical nodes. A document describing how to use Haizea with OpenNebula will be available soon.
-</p>
-
-<p>But, anyway, back to how to run Haizea in simulation. The first thing we need to do is to write a configuration file specifying simulation options (e.g., the characteristics of the simulated cluster) and scheduling options.</p>
-
-<h2>The configuration file</h2>
-
-<p>A sample configuration file is provided with Haizea and is located in <tt>/usr/share/haizea/etc/sample.conf</tt> (or <tt>$HOME/share/haizea/etc/sample.conf</tt> if you installed Haizea in your home directory). For this guide, you may want to make a copy of this file and use that instead (so you can preserve the original sample file). If you look at the contents of the file, you will see that it also includes documentation on every option. For now, take a look at the following three options:</p>
-
-<pre class="shell">
-[simulation]
-starttime: 2006-11-25 13:00:00
-nodes: 4
-resources: CPU,1;Mem,1024;Net (in),100;Net (out),100;Disk,20000
-</pre>
-
-<p>
-These options are used to describe the characteristics of our simulated cluster. In particular, we're using a 4-node cluster, each node with 1 CPU, 1024 MB of memory, 20GB of disk space, and 100Mbps of inbound/outbound network bandwidth. In this document, we will represent this cluster over time like this:
-</p>
-
-<div class="center">
-<img src="quickstart_leasegraph1.png" width="413" height="153">
-</div>
-
-<p>For example, the following figure shows a lease scheduled on Node 1 from 13:00 to 14:00:</p>
-
-<div class="center">
-<img src="quickstart_leasegraph2.png" width="402" height="144">
-</div>
-
-<p>
-The <tt>starttime</tt> option is used to specify the time at which the simulated clock should start. As you will see, the configuration file has an abundance of other options. We will explain some of them in this document.
-</p>
-
-<h2>The tracefile</h2>
-
-<p>As mentioned earlier, the simulator will read trace requests from a tracefile. The location of this tracefile is specified in the configuration file, in the <tt>[tracefile]</tt> section:</p>
-
-<pre class="shell">
-[tracefile]
-tracefile: /usr/share/haizea/traces/sample.lwf
-</pre>
-
-<p>The default value is a sample tracefile included with Haizea. If you copy the file to a different location, make sure to update the <tt>tracefile</tt> option accordingly. The format of this file is LWF (Lease Workload Format), which is particular to Haizea. The sample file includes documentation on the file format, and several sample workloads. For now, we will focus on the first workload, "PREEMPT":</p>
-
-<pre class="shell">
-# 0   -1   3600 3600 1 1 1024 0 foobar.img 1024
-# 900 1800 1800 1800 4 1 1024 0 foobar.img 1024
-</pre>
-
-<p>For now, don't worry about parsing the trace format in detail. The above represents two lease requests:</p>
-
-<ul>
-<li>The first line is a request for a best-effort lease, requested at time 0 (right at the start of the simulation), requiring 1 hour (3600 seconds), and only one node.</li>
-<li>The second line is an advance reservation (AR) lease, requested 15 minutes into the simulation (900 seconds), starting 30 minutes into the simulation (1800 seconds), requiring 30 minutes (1800 seconds), and all four nodes in the cluster. Since the start time of the simulation is set to 13:00, this means the lease request is received at 13:15, and that the lease must run from 13:30 to 14:00.</li>
-</ul>
-
-<p>Both leases require 1 CPU per node, 1024 MB of memory, a disk image called "foobar.img" (which uses up 1024MB of disk space). The <tt>#</tt> characters are used to comment out the lease requests. Do not change this for now.</p>
-<h2>Running the simulator</h2>
-
-<p>Now that we have a configuration file and a tracefile, we can run the simulator. As shown in the installation guide, you can run Haizea with the sample configuration file like this:</p>
-
-<pre class="shell">
-haizea -c /usr/share/haizea/etc/sample.conf
-</pre>
-
-<p>Which results in the following output:</p>
-
-<pre class="shell">
-[2006-11-25 13:00:00.00] TRACE   Loading tracefile /usr/share/haizea/traces/sample.lwf
-[2006-11-25 13:00:00.00] TRACE   Loaded workload with 0 requests (0 best-effort + 0 AR)
-[2006-11-25 13:00:00.00] RM      Starting resource manager
-[2006-11-25 13:00:00.00] CLOCK   Starting simulated clock
-[2006-11-25 13:00:00.00] CLOCK   Stopping simulated clock
-[2006-11-25 13:00:00.00] RM      Stopping resource manager
-[2006-11-25 13:00:00.00] RM        Completed best-effort leases: 0
-[2006-11-25 13:00:00.00] RM        Accepted AR leases: 0
-[2006-11-25 13:00:00.00] RM        Rejected AR leases: 0
-</pre>
-
-<p>Now that you've seen the tracefile, you can see why the simulator starts up and immediately stops: all the lease requests in the tracefile are commented out, and there's nothing to schedule. Go ahead and uncomment <em>only</em> the first lease request and run Haizea again. You should now see the following:</p>
-
-<pre class="shell">
-[2006-11-25 13:00:00.00] TRACE   Loading tracefile /usr/share/haizea/traces/sample.lwf
-[2006-11-25 13:00:00.00] TRACE   Loaded workload with 1 requests (1 best-effort + 0 AR)
-[2006-11-25 13:00:00.00] RM      Starting resource manager
-[2006-11-25 13:00:00.00] CLOCK   Starting simulated clock
-[2006-11-25 13:00:00.00] SCHED   Received (and queueing) best-effort lease request #1, 
-                                 1 nodes for 01:00:00.00.
-[2006-11-25 13:00:00.00] SCHED   Next request in the queue is lease 1. 
-                                 Attempting to schedule...
-[2006-11-25 13:00:00.00] SLOT    Lease #1 has been scheduled on nodes [1] 
-                                 from 2006-11-25 13:00:00.00 
-                                   to 2006-11-25 14:00:00.00
-[2006-11-25 13:00:00.00] SCHED   Started VMs for lease 1 on nodes [1]
-[2006-11-25 14:00:00.00] SCHED   Stopped VMs for lease 1 on nodes [1]
-[2006-11-25 14:00:00.00] CLOCK   Stopping simulated clock
-[2006-11-25 14:00:00.00] RM      Stopping resource manager
-[2006-11-25 14:00:00.00] RM        Completed best-effort leases: 1
-[2006-11-25 14:00:00.00] RM        Accepted AR leases: 0
-[2006-11-25 14:00:00.00] RM        Rejected AR leases: 0
-</pre>
-
-<p>The above corresponds to the following schedule:</p>
-
-<div class="center">
-<img src="quickstart_leasegraph2.png" width="402" height="144">
-</div>
-
-<p>A best-effort request is received at 13:00 and, since the cluster is empty, it is scheduled immediately. Notice how the VMs for the lease start at 13:00 and stop at 14:00. For now, we're assuming that the disk images are predeployed on the physical nodes (we will modify this option in the next section).</p>
-
-<p>So, what would happen if we also added the AR lease? Since it requires all the cluster resources from 13:30 to 14:00, the best-effort lease will be unable to run in that time interval. Since the leases are implemented as VMs, Haizea will still schedule the best-effort lease to start at 13:00, but will suspend it before the AR lease starts, and will resume it one the AR lease has finished. In effect, we want the schedule to look like this:</p>
-
-<div class="center">
-<img src="quickstart_leasegraph3.png" width="402" height="144">
-</div>
-
-<p>Uncomment the AR lease request, and run Haizea again. You should now see the following (for clarity, log messages pertaining to the best-effort lease are highlighted in green, and those pertaining to the AR lease are highlighted in brown):</p>
-
-<pre class="shell">
-[2006-11-25 13:00:00.00] TRACE   Loading tracefile /usr/share/haizea/traces/sample.lwf
-[2006-11-25 13:00:00.00] TRACE   Loaded workload with 2 requests (1 best-effort + 1 AR)
-[2006-11-25 13:00:00.00] RM      Starting resource manager
-[2006-11-25 13:00:00.00] CLOCK   Starting simulated clock
-<span style="color:green">[2006-11-25 13:00:00.00] SCHED   Received (and queueing) best-effort lease request #1, 
-                                 1 nodes for 01:00:00.00.
-[2006-11-25 13:00:00.00] SCHED   Next request in the queue is lease 1. 
-                                 Attempting to schedule...
-[2006-11-25 13:00:00.00] SLOT    Lease #1 has been scheduled on nodes [1] 
-                                 from 2006-11-25 13:00:00.00 
-                                   to 2006-11-25 14:00:00.00
-[2006-11-25 13:00:00.00] SCHED   Started VMs for lease 1 on nodes [1]</span>
-
-<span style="color:brown">[2006-11-25 13:15:00.00] SCHED   Received AR lease request #2, 4 nodes 
-                                 from 2006-11-25 13:30:00.00 
-                                   to 2006-11-25 14:00:00.00.
-[2006-11-25 13:15:00.00] SCHED   Must preempt leases [1] to make room for AR lease #2
-[2006-11-25 13:15:00.00] SCHED   Preempting lease #1...
-[2006-11-25 13:15:00.00] SCHED   ... lease #1 will be suspended 
-                                     at 2006-11-25 13:30:00.00.
-[2006-11-25 13:15:00.00] SCHED   AR lease request #2 has been accepted.</span>
-
-<span style="color:green">[2006-11-25 13:29:39.00] SCHED   Stopped VMs for lease 1 on nodes [1]
-[2006-11-25 13:29:39.00] SCHED   Suspending lease 1...
-
-[2006-11-25 13:30:00.00] SCHED   Lease 1 suspended.</span>
-<span style="color:brown">[2006-11-25 13:30:00.00] SCHED   Started VMs for lease 2 on nodes [2, 3, 4, 1]
-[2006-11-25 13:30:00.00] SCHED   Next request in the queue is lease 1. 
-                                 Attempting to schedule...
-[2006-11-25 13:30:00.00] SLOT    Lease #1 has been scheduled on nodes [1] 
-                                 from 2006-11-25 14:00:21.00 (resuming) 
-                                   to 2006-11-25 14:30:42.00
-
-[2006-11-25 14:00:00.00] SCHED   Stopped VMs for lease 2 on nodes [2, 3, 4, 1]</span>
-<span style="color:green">[2006-11-25 14:00:00.00] SCHED   Resuming lease 1...
-
-[2006-11-25 14:00:21.00] SCHED   Resumed lease 1
-[2006-11-25 14:00:21.00] SCHED   Started VMs for lease 1 on nodes [1]
-
-[2006-11-25 14:30:42.00] SCHED   Stopped VMs for lease 1 on nodes [1]</span>
-[2006-11-25 14:30:42.00] CLOCK   Stopping simulated clock
-[2006-11-25 14:30:42.00] RM      Stopping resource manager
-[2006-11-25 14:30:42.00] RM        Completed best-effort leases: 1
-[2006-11-25 14:30:42.00] RM        Accepted AR leases: 1
-[2006-11-25 14:30:42.00] RM        Rejected AR leases: 0
-</pre>
-
-<p>
-Notice how the above corresponds to the previous figure. In particular, notice the following:
-</p>
-<ul>
-<li>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.</li>
-<li>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.</li>
-</ul>
-
-<h2>The scheduling options</h2>
-
-<p>Haizea has several scheduling options that control how Haizea selects resources and schedules leases. For example, the above example assumed that leases can be suspended (which they generally always can be when running as virtual machines). What would happen if this were not possible? You can modify the <tt>suspension</tt> option in the <tt>[scheduling]</tt> section to find out:</p>
-
-<pre class="shell">
-[scheduling]
-...
-
-suspension: none
-
-...
-</pre>
-
-<p>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:</p>
-<pre class="shell">
-[2006-11-25 13:15:00.00] SCHED   Preempting lease #1...
-[2006-11-25 13:15:00.00] SCHED   ... lease #1 has been cancelled and requeued
-                                     (cannot be suspended)
-</pre>
-
-<p>Now, the best-effort lease can only be scheduled after the AR lease, at 14:00:</p>
-
-
-<pre class="shell">
-[2006-11-25 13:15:00.00] SLOT    Lease #1 has been scheduled on nodes [1] 
-                                 from 2006-11-25 14:00:00.00 
-                                   to 2006-11-25 15:00:00.00
-</pre>
-
-<p>So, the schedule would end up looking like this:</p>
-
-<div class="center">
-<img src="quickstart_leasegraph4.png" width="459" height="144">
-</div>
-
-<p>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.</p>
-
-<p>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 <tt>lease-deployment</tt> option:</p>
-
-<pre class="shell">
-[general]
-...
-lease-deployment: imagetransfer
-...
-</pre>
-
-<p>If you look at the bottom of the sample configuration file, you will find a section called <tt>[deploy-imagetransfer]</tt> with all the image transfer options.</p>
-
-<p>Rerun Haizea again. You should get a schedule similar to the previous one, but with some extra messages indicating that image transfers are taking place:</p>
-
-<pre class="shell">
-[2006-11-25 13:00:00.00] SCHED   Starting image transfer for lease 1
-[2006-11-25 13:01:22.00] SCHED   Completed image transfer for lease 1
-</pre>
-
-<p>As you can see, the best-effort lease can no longer start right at 13:00, since an image transfer has to take place before the starting time. The same is true of the AR lease, but notice how Haizea schedules the image transfer in such a way that the AR lease can still start at 13:30 as planned (instead of delaying the starting time until 13:31:22).</p>
-
-<p>There are several other options you can modify in the <tt>[scheduling]</tt> section, such as what backfilling algorithm to use, whether to allow lease migration or not, etc. See the description of these option in the sample configuration file for more details.</p>
-
-<h2>Other things you can do with Haizea</h2>
-
-<p>At this point, you can run simple simulations with Haizea. However, there is a lot more that you can do with Haizea:</p>
-
-<ul>
-<li><strong>Run on real hardware</strong>: First and foremost, everything you just saw above in simulation can be done on real hardware. This is accomplished by using Haizea with the OpenNebula virtual infrastructure manager. So, if you have a Xen or KVM cluster, you can just <a href="doc_opennebula.html">install OpenNebula and Haizea</a> to enable your users to request VM-based leases on your cluster.</li>
-<li><strong>Run complex simulations</strong>: The above shows only two leases on a 4-node cluster during a span of roughly 2 hours. <em>Boring</em>. Haizea can handle more complex simulations, and also provides the necessary tools for you to easily run multiple simulations with different profiles. For example, in the Haizea paper <a href="pubs.html">Combining Batch Execution and Leasing Using Virtual Machines</a> we simulated running 72 30-day workloads in six different configurations, or 36 years of lease scheduling. To set up this kind of simulations, take a look at the <a href="doc_multiple.html">Running Multiple Simulation Experiments with Haizea</a> document.</li>
-<li><strong>Produce reports and graphs</strong>: The above examples relied on you reading the Haizea log messages, which is ok for a simple simulation, but no fun when you're scheduling thousands of leases. Haizea saves <a href="doc_analysis.html">a fair amount of raw data to disk with scheduling metrics, utilization information, etc.</a> which can be used to generate reports and graphs. We are in the process of producing tools that will allow you to easily analyse that data and create graphs.</li>
-</ul>
-
-<table border="0" align="center">
-<tr>
-<td>
-<div class="back">
-<a href="documentation.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>DOCUMENTATION
-</a>
-</div>
-</td>
-<td>&nbsp;&nbsp;</td>
-<td>
-<div class="back">
-<a href="index.html">
-<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
-BACK TO<br/>HOME PAGE
-</a>
-</div>
-</td>
-</tr>
-</table>
-
-</div>
-<script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-var pageTracker = _gat._getTracker("UA-4920033-1");
-pageTracker._initData();
-pageTracker._trackPageview();
-</script>
-</body>
-</html>

Modified: trunk/html/documentation.html
===================================================================
--- trunk/html/documentation.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/documentation.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -16,11 +16,11 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <strong>Documentation</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <h1>Documentation</h1>
 
@@ -48,6 +48,10 @@
 
 <p>We have a couple publications that talk about the more theoretical concepts behind Haizea. You can read them in our <a href="pubs.html">publications</a> page.</p>
 
+<h2>Development documentation</h2>
+
+<p>Documentation about features in development, known issues, etc. can be found at the <a href="http://phoenixforge.cs.uchicago.edu/haizea">Haizea project management site</a> at <a href="http://phoenixforge.cs.uchicago.edu/">PhoenixForge</a>.</p>
+
 <h2>Still need help?</h2>
 
 <p>Do you have a question that is not answered in the documentation? Just send a message to our <a href="support.html">mailing list</a> and we'll try to help you out.</p>

Modified: trunk/html/download.html
===================================================================
--- trunk/html/download.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/download.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -27,27 +27,27 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <strong>Download</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <h1>Downloads</h1>
 
 <h2>Haizea</h2>
 
-<p>The current version of Haizea is Technology Preview 1.1, released on July 24th, 2008. To install, download <a href="downloads/haizea-TP1.1.tar.gz"  onClick="javascript: pageTracker._trackPageview('/downloads/haizea-TP1.1.tar.gz');">haizea-TP1.1.tar.gz</a> and follow the <a href="doc_install.html">installation instructions</a>. Haizea is published under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a>, a BSD-like <a href="http://www.opensource.org/">OSI</a>-compatible license.</p>
+<p>The current version of Haizea is Technology Preview 1.2, released on September 29th, 2008. To install, download <a href="downloads/haizea-TP1.2.tar.gz"  onClick="javascript: pageTracker._trackPageview('/downloads/haizea-TP1.2.tar.gz');">haizea-TP1.2.tar.gz</a> and follow the <a href="documentation.html">installation instructions</a>. Haizea is published under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a>, a BSD-like <a href="http://www.opensource.org/">OSI</a>-compatible license.</p>
 
 <h2>SVN repository</h2>
 
-<p>Our SVN repository can be found at <strong>http://haizea.cs.uchicago.edu/svn/</strong>. You can checkout the latest version of the code like this:</p>
+<p>You can checkout the latest version of the code like this:</p>
 
 <pre class="shell">
-svn co http://haizea.cs.uchicago.edu/svn/trunk
+svn co http://phoenixforge.cs.uchicago.edu/svn/haizea/trunk
 </pre>
 
-<p>You can also point your web browser to <a href="http://haizea.cs.uchicago.edu/svn/">http://haizea.cs.uchicago.edu/svn/</a> to peruse the code. The current interface is very basic, but a pretty web-based SVN browser will be available further down the road.</p>
+<p>You can also <a href="https://phoenixforge.cs.uchicago.edu/haizea/browser">browse our SVN repository</a> at PhoenixForge.</p>
 
 <p>To keep track of commmits, you can subscribe to the <a href="https://mailman.cs.uchicago.edu/mailman/listinfo/haizea-commit">haizea-commit mailing list</a> to get an e-mail notification every time there is a commit in the SVN repository.</p>
 

Modified: trunk/html/features.html
===================================================================
--- trunk/html/features.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/features.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -24,35 +24,10 @@
 <a href="credits.html">Credits</a></div>
 <h1>Features</h1>
 
-<h2>Resource leases</h2>
 
-<p>Haizea can schedule <strong>resource leases</strong> on a set of physical machines (typically a cluster), and implements those leases as virtual machines. In a nutshell, Haizea supports the following types of leases:</p>
 
-<ul>
-<li>Leases requiring a single VM or groups of VMs that must run in parallel.</li>
-<li><strong>Best-effort leases</strong>, which will wait in a queue until resources become available.</li>
-<li><strong>Advance reservation leases</strong>, which must start at a specific time.</li>
-<li><strong>Immediate leases</strong>, which must start right now, or not at all.</li>
-</ul>
 
-<p>You can find a more detailed description of these types of leases in the <a href="features_leases.html">Supported types of leases</a> page.</p>
 
-<h2>Scheduling features</h2>
-
-<p>Haizea's scheduling algorithms can...</p>
-
-<ul>
-    <li>... explicitly schedule the deployment overhead of virtual machines, instead of having it deducted from a user's allocation. For example, if a lease must start at 2pm, Haizea will schedule the transfer of the necessary VM images to the physical nodes where the virtual machines will be running (and will make sure that the images arrive on time).</li>
-    <li>... leverage the suspend/resume capability of virtual machines to suspend preemptible leases when a higher-priority lease needs resources. It also leverages cold migration of VMs (migrating a suspended VM to a different machine to resume it there). Live migration scheduling is in the works.</li>
-    <li>... schedule best-effort requests using a First-Come-First-Serve queue with backfilling (aggressive, conservative, or with any number of reservations).</li>
-</ul>
-
-<h2>OpenNebula support</h2>
-
-<p>Haizea can be used as a scheduling backend for the OpenNebula virtual infrastructure manager to do all the above in a Xen or KVM cluster. More details in <a href="doc_opennebula.html">"Using OpenNebula and Haizea to manage VMs on a cluster"</a>.</p>
-
-
-
 <div class="back">
 <a href="index.html">
 <img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>

Modified: trunk/html/index.html
===================================================================
--- trunk/html/index.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/index.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -17,14 +17,14 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <div class="warning">
-<strong>Technology Preview 1.2 has been released</strong> (2008-09-29)<br/> with a <a href="documentation.html">new Haizea manual</a>, command-line and RPC interfaces, support for managing groups of VMs with OpenNebula, <a href="http://phoenixforge.cs.uchicago.edu/haizea">project management at PhoenixForge</a>, and lots of other changes. See the <a href="changelog.html">changelog</a> for more details, or <a href="download.html">download</a> it now.
+<strong>Technology Preview 1.2 has been released</strong> (2008-09-29)<br/> with a <a href="documentation.html">new Haizea manual</a>, command-line and RPC interfaces, support for managing groups of VMs with OpenNebula, <a href="http://phoenixforge.cs.uchicago.edu/haizea">project management at PhoenixForge</a>, and lots of other changes. See the <a href="https://phoenixforge.cs.uchicago.edu/haizea/wiki/Changelog">changelog</a> for more details, or <a href="download.html">download</a> it now.
 </div>
 
 <p>Haizea is an open-source virtual machine-based lease management architecture (if that sounds like a mouthful, take a look at our <a href="whatis.html">What is Haizea?</a> page). In a nutshell, Haizea is a piece of software that, in combination with the <a href="http://www.opennebula.org/">OpenNebula virtual infrastructure manager</a>, can be used to manage a <a href="http://www.xen.org/">Xen</a> or <a href="http://kvm.qumranet.com/">KVM</a> cluster, allowing you to deploy different types of <a href="features_leases.html">leases</a> that are instantiated as virtual machines (VMs). Haizea can also be run in simulation, providing a platform for experimenting with scheduling algorithms that depend on VM deployment or on the leasing abstraction.</p>

Modified: trunk/html/pubs.html
===================================================================
--- trunk/html/pubs.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/pubs.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -27,11 +27,11 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<strong>Publications</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<strong>Publications</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <h1>Publications</h1>
 

Modified: trunk/html/support.html
===================================================================
--- trunk/html/support.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/support.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -16,11 +16,11 @@
 </div>
 <div class="topbar">
 <a href="whatis.html">What is Haizea?</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <strong>Support</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <h1>Support</h1>
 
@@ -28,6 +28,8 @@
 <div align="center">
 <p>Support is provided through the Haizea mailing list.</p>
 <p>[<a href="https://mailman.cs.uchicago.edu/mailman/listinfo/haizea">Subscribe to mailing list</a>]&nbsp;&nbsp;&nbsp;&nbsp;[<a href="https://mailman.cs.uchicago.edu/pipermail/haizea/">View mailing list archives</a>]</p>
+
+<p>If you would like to report a bug or request a feature, please <a href="https://phoenixforge.cs.uchicago.edu/haizea/ticket?action=new">open a ticket</a> at the <a href="http://phoenixforge.cs.uchicago.edu/haizea">Haizea project management site</a>.</p>
 </div>
 <div class="back">
 <a href="index.html">

Modified: trunk/html/whatis.html
===================================================================
--- trunk/html/whatis.html	2008-09-26 18:58:11 UTC (rev 523)
+++ trunk/html/whatis.html	2008-09-26 18:58:54 UTC (rev 524)
@@ -16,11 +16,11 @@
 </div>
 <div class="topbar">
 <strong>What is Haizea?</strong>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="features.html">Features</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="download.html">Download</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="documentation.html">Documentation</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
-<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="pubs.html">Publications</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="development.html">Development</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
+<a href="support.html">Support</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
 <a href="credits.html">Credits</a></div>
 <h1>What is Haizea?</h1>
 
@@ -44,53 +44,30 @@
 <ul>
 <li><strong>Using Haizea with OpenNebula</strong>: Haizea can be used as a drop-in replacement for <a href="http://www.opennebula.org/">OpenNebula</a>'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. The document <a href="doc_opennebula.html">"Using OpenNebula and Haizea to manage VMs on a cluster"</a> provides more details on how to use OpenNebula 1.0 and Haizea together.</li>
 
-<li><strong>Using Haizea on its own</strong>: In this case, you actually can't do all that much :-) 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 <em>enact</em> 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 to do these actions. Haizea can, however, simulate those enactment actions so, on its own, Haizea might be useful if you're doing scheduling research involving leases or VMs (in fact, the Haizea simulator has been used in <a href="pubs.html">a couple of papers</a>).</li>
+<li><strong>Using Haizea on its own</strong>: 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 <em>enact</em> 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 to do these actions. Haizea can, however, simulate those enactment actions so, on its own, Haizea can be useful if you're doing scheduling research involving leases or VMs (in fact, the Haizea simulator has been used in <a href="pubs.html">a couple of papers</a>).</li>
 </ul>
 
-<p>You can find a couple (more specific) details about what you can do with Haizea in our <a href="features.html">list of features</a>.</p>
+<h2>Features</h2>
 
-<h2>Leasing as a fundamental abstraction</h2>
+<p>Haizea can schedule <strong>resource leases</strong> on a set of physical machines (typically a cluster), and implements those leases as virtual machines. In a nutshell, Haizea supports the following types of leases:</p>
 
-<p>Let's say you need computational resources...</p>
-
-<p>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 <a href="http://en.wikipedia.org/wiki/Job_scheduling">job scheduler</a>, and a compute cluster, would probably be a good fit for you.</p>
-
-<p>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 <em>right now</em>. One option could be to install a <a href="http://en.wikipedia.org/wiki/Virtual_machine">virtual machine</a> (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 <a href="http://www.amazon.com/ec2/">Amazon EC2</a> or the <a href="http://workspace.globus.org/clouds/">Science Clouds</a>) 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.</p>
-
-<p>Or perhaps you're a run-of-the-mill geek who wants his or her own web/mail/DNS/etc server. This server will presumably be running for months or even years with high availability: your server has to be running all the time, with no interruptions. There's a whole slew of hosting providers who can give you a dedicated server or a virtual private server. The latter are typically managed with VM-based datacenter managers.</p>
-
-<p>
-As you can see, there are a lot of resource provisioning scenarios in nature. However, the solutions that have emerged tend to be specific to a particular scenario, to the exclusion of other ones. For example, while job-based systems are exceptionally good at managing complex batch workloads, they're not too good at provisioning resources at specific times (some job-based systems do offer advance reservations, but they have well-known utilization problems) or at giving users unfettered access to provisioned resources (forcing them, instead, to interact with the resources through the job abstraction).
-</p>
-
-<p>A <em>lease</em> is a general resource provisioning abstraction that could be used to satisfy a variety of use cases, such as the ones described above. In <a href="pubs.html">our work</a>, we've defined a lease as "a negotiated and renegotiable agreement between a resource provider and a resource consumer, where the former agrees to make a set of resource available to the latter, based on a set of lease terms presented by the resource consumer". In our view, the lease terms must include the following dimensions:</p>
-
 <ul>
-<li><strong>Hardware</strong>: The hardware resources (CPU, memory, etc.) required by the resource consumer.</li>
-<li><strong>Software</strong>: The software environment that must be installed in those resources.</li>
-<li><strong>Availability</strong>: The period during which the hardware and software resources must be available. It is important to note that the availability period can be specified in a variety of ways, like "just get this to me as soon as you can", "I need this from 2pm to 4pm on Mondays, Wednesdays, and Fridays (and, if I don't get <em>exactly</em> this, I will be a very unhappy resource consumer)", or even "I need four hours sometime before 5pm tomorrow, although if you get the resources to me right now I'll settle for just two hours". A lease-based system must be able to efficiently combine all these different types of availability.</li>
+<li>Leases requiring a single VM or groups of VMs that must run in parallel.</li>
+<li><strong>Best-effort leases</strong>, which will wait in a queue until resources become available.</li>
+<li><strong>Advance reservation leases</strong>, which must start at a specific time.</li>
+<li><strong>Immediate leases</strong>, which must start right now, or not at all.</li>
 </ul>
 
-<p>Furthermore, if you don't get any of these dimensions, then you're being shortchanged by your resource lessor. For example, Amazon EC2 is very good at providing exactly the software environment you want, and reasonably good at providing the hardware you want (although you're limited to a few hardware configurations), but not so good at supporting a variety of availability periods.</p>
+<p>Haizea's scheduling algorithms can...</p>
 
-<p>So, Haizea aims to support resource leasing along these three dimension. For now, Haizea supports three types of availability:</p>
-
 <ul>
-<li><strong>Best-effort lease</strong>: Resources are provisioned as soon as they are available.</li>
-<li><strong>Advance reservation-style leases</strong> (or "AR leases"): Resources are provisioned during a strictly defined time period (e.g., from 2pm to 4pm).</li>
-<li><strong>Immediate leases</strong>: Resources must be provisioned right now, or not at all.</li>
+    <li>... explicitly schedule the deployment overhead of virtual machines, instead of having it deducted from a user's allocation. For example, if a lease must start at 2pm, Haizea will schedule the transfer of the necessary VM images to the physical nodes where the virtual machines will be running (and will make sure that the images arrive on time).</li>
+    <li>... leverage the suspend/resume capability of virtual machines to suspend preemptible leases when a higher-priority lease needs resources. It also leverages cold migration of VMs (migrating a suspended VM to a different machine to resume it there). Live migration scheduling is in the works.</li>
+    <li>... schedule best-effort requests using a First-Come-First-Serve queue with backfilling (aggressive, conservative, or with any number of reservations).</li>
 </ul>
 
-<p>
-Although there are many systems (particularly job-based systems) that support these two types availability, Haizea differs in that it efficiently schedules heterogeneous workloads (combining best-effort and AR leases), overcoming the utilization problems typically resulting from using ARs. Haizea does this by using virtual machines to implement leases. Virtual machines also enable Haizea to provide exactly the hardware and software requested by the user. Additionally, Haizea also manages the overhead of preparing a lease, to make sure that any deployment operations (such as transferring a VM disk image) are taken care of before the start of a lease, instead of being deducted from the lessee's allocation.
-</p>
+<p>Haizea can be used as a scheduling backend for the OpenNebula virtual infrastructure manager to do all the above in a Xen or KVM cluster. More details in <a href="doc_opennebula.html">"Using OpenNebula and Haizea to manage VMs on a cluster"</a>.</p>
 
-<p>In the future, Haizea will support additional lease types, such as urgent leases, periodic leases, deadline-driven leases, etc.</p>
-
-<h2>Haizea is extensible</h2>
-
-<p>The Haizea architecture has been designed so it can be used as a scheduling component that can be plugged into other systems by implementing a set of extra modules in Haizea using a well-defined API (i.e., without having to modify the core of Haizea). Right now, Haizea depends on OpenNebula to perform enactment actions on real systems (and, in turn, OpenNebula can use Haizea as its scheduling backend), but Haizea could be made to work with other systems with relative ease. See the <a href="doc_arch.html">Haizea architecture</a> page for more details.</p>
-
 <h2>Haizea is still a technology preview</h2>
 
 <p>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 <a href="support.html">ask for help</a>.</p>



More information about the Haizea-commit mailing list