[haizea-commit] r454 - trunk/html
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Thu Jul 24 07:51:06 CDT 2008
Author: borja
Date: 2008-07-24 07:51:05 -0500 (Thu, 24 Jul 2008)
New Revision: 454
Added:
trunk/html/doc_analysis.html
trunk/html/doc_roadmap.html
trunk/html/features.html
trunk/html/features_leases.html
trunk/html/lease_ar.png
trunk/html/lease_be1.png
trunk/html/lease_be2.png
trunk/html/lease_be3.png
trunk/html/lease_deadline.png
trunk/html/lease_im.png
trunk/html/lease_negotiate.png
Removed:
trunk/html/roadmap.html
Modified:
trunk/html/changelog.html
trunk/html/credits.html
trunk/html/doc_arch.html
trunk/html/doc_install.html
trunk/html/doc_multiple.html
trunk/html/doc_opennebula.html
trunk/html/doc_quickstart.html
trunk/html/documentation.html
trunk/html/download.html
trunk/html/index.html
trunk/html/pubs.html
trunk/html/support.html
trunk/html/whatis.html
Log:
TP 1.1 website
Modified: trunk/html/changelog.html
===================================================================
--- trunk/html/changelog.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/changelog.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,14 +16,22 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html" style="color:black">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Changelog</h1>
+<p><strong>Technology Preview 1.1</strong> (07/24/08)</p>
+<ul>
+ <li>Added <a href="doc_opennebula.html">support for OpenNebula 1.0</a>. You can now use OpenNebula and Haizea together to manage virtual machines on a Xen or KVM cluster.</li>
+ <li>Added support for <a href="features_leases.html">immediate leases</a>.</li>
+ <li>Re-added <a href="doc_analysis.html">accounting and reporting</a> functionality (which had been temporarily removed in TP1.0).</li>
+ <li>Code changes: Decoupled deployment overhead scheduling into a separate "deployment" package (although there's still quite a bit left to do). Cleaned up and documented some of the main modules. Multiple small fixes.</li>
+</ul>
+
<p><strong>Technology Preview 1.0</strong> (07/07/08): First public release.</p>
<table border="0" align="center">
Modified: trunk/html/credits.html
===================================================================
--- trunk/html/credits.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/credits.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<strong>Credits</strong></div>
<h1>Credits</h1>
Added: trunk/html/doc_analysis.html
===================================================================
--- trunk/html/doc_analysis.html (rev 0)
+++ trunk/html/doc_analysis.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -0,0 +1,104 @@
+<!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> |
+<a href="features.html">Features</a> |
+<a href="download.html">Download</a> |
+<a href="documentation.html" style="color:black">Documentation</a> |
+<a href="support.html">Support</a> |
+<a href="pubs.html">Publications</a> |
+<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> </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>
Property changes on: trunk/html/doc_analysis.html
___________________________________________________________________
Name: svn:executable
+ *
Modified: trunk/html/doc_arch.html
===================================================================
--- trunk/html/doc_arch.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/doc_arch.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html" style="color:black">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>The Haizea Architecture</h1>
Modified: trunk/html/doc_install.html
===================================================================
--- trunk/html/doc_install.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/doc_install.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html" style="color:black">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Installing Haizea</h1>
@@ -81,7 +81,7 @@
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.0.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>
Modified: trunk/html/doc_multiple.html
===================================================================
--- trunk/html/doc_multiple.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/doc_multiple.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html" style="color:black">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Running Multiple Simulation Experiments</h1>
Modified: trunk/html/doc_opennebula.html
===================================================================
--- trunk/html/doc_opennebula.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/doc_opennebula.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -24,17 +24,21 @@
<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 queueing 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><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 and Haizea. Start by <a href="http://www.opennebula.org/doku.php?id=documentation">installing OpenNebula</a>, and then <a href="doc_install.html">installing Haizea</a>.</p>
+<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">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">Quickstart Guide</a>, to verify that Haizea is correctly installed.</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>
@@ -94,7 +98,9 @@
<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>
-<p><strong>NOTE</strong>: 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 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>
@@ -153,10 +159,12 @@
<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>
-<p>NOTE: 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>
-
-<p>NOTE (2): 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 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">
@@ -196,7 +204,7 @@
<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 enought resources are not available at that time, the resource is not requested.</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>
@@ -207,7 +215,7 @@
<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">supported lease types</a>:</p>
+<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>
@@ -298,8 +306,17 @@
</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>
Modified: trunk/html/doc_quickstart.html
===================================================================
--- trunk/html/doc_quickstart.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/doc_quickstart.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html" style="color:black">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Quickstart Guide</h1>
@@ -245,17 +245,17 @@
<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>diskimage-transfer</tt> option:</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">
-[scheduling]
+[general]
...
-
-diskimage-transfer: multicast
-
+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">
@@ -272,9 +272,9 @@
<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 install OpenNebula and Haizea to enable your users to request VM-based leases on your cluster. Full OpenNebula support will be released in mid-July, including a guide on how to configure and use both systems together.</li>
-<li><strong>Run complex simulations</strong>: The above show 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 fair amount of raw data to disk with scheduling metrics, utilization information, etc. which can be used to generate reports and graphs. We are in the process of documenting this data format and producing tools that will allow you to easily analyse that data and create graphs.</li>
+<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">
Added: trunk/html/doc_roadmap.html
===================================================================
--- trunk/html/doc_roadmap.html (rev 0)
+++ trunk/html/doc_roadmap.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -0,0 +1,85 @@
+<!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> |
+<a href="features.html">Features</a> |
+<a href="download.html">Download</a> |
+<a href="documentation.html" style="color:black">Documentation</a> |
+<a href="support.html">Support</a> |
+<a href="pubs.html">Publications</a> |
+<a href="credits.html">Credits</a></div>
+<h1>Roadmap</h1>
+
+<p>The next version of Haizea will be TP1.2, due in early August 2008. This version will include the following improvements:</p>
+
+<ul>
+<li>RPC interface so enactment backend can send asynchronous events to Haizea</li>
+<li>Command Line Interface (CLI) to Haizea</li>
+<li>More documentation on how to produce pretty graphs from Haizea simulations</li>
+</ul>
+
+<p>There are several improvements that are planned for upcoming versions (coming out in summer and fall of 2008, exact dates to be determined):</p>
+<ul>
+<li>Support for more types of leases</li>
+<li>Basic server consolidation algorithms</li>
+<li>Decoupling policy decisions from Haizea</li>
+<li>Lease negotiation</li>
+</ul>
+
+<h2>Wish list</h2>
+<ul>
+<li>The slot table data structure is the only part of Haizea that I wish were not implemented in Python. This part of the scheduler becomes a performance bottleneck in the simulations (it's not a problem if you're running Haizea "in real time"). A C/C++ implementation could speed up simulations, and would allow us to more efficiently query the slot table.</li>
+<li>The code to parse the config file is getting unwieldy and should be replaced by something that makes it easier to add new options and document those options.</li>
+<li>Haizea currently saves all the data it collects (accepted/rejected requests, lease statistics, etc.) to a file when Haizea stops running. This is ok for simulations, but not particularly useful when Haizea is running as a daemon. The accounting code has to be rethinked so it can also periodically save information to disk (e.g., with rrdtool)</li>
+<li>Decoupling the notion of "deployment overhead" with "transferring a VM image". Although transferring a VM image is a common way of "setting up" a VM, there are other ways of deploying a VM (such as having a base image installed on all physical nodes and installing packages on them). Ideally, the scheduler should be able to interface with a "deployment overhead" module that will be the "expert" in deployment (however, the scheduler is still in charge of scheduling the overhead, but it consults with the overhead module to determine when the overhead can be scheduled, what nodes are preferable if we want to minimize overhead, etc.). This has been partially done starting with TP 1.1.</li>
+<li>The source code is still in need of some general clean-up and documentation. This is slowly getting done.</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> </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>
Property changes on: trunk/html/doc_roadmap.html
___________________________________________________________________
Name: svn:executable
+ *
Modified: trunk/html/documentation.html
===================================================================
--- trunk/html/documentation.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/documentation.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<strong>Documentation</strong> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Documentation</h1>
@@ -28,10 +28,12 @@
<li><a href="whatis.html">What is Haizea?</a></li>
<li><a href="doc_install.html">Installing Haizea</a></li>
<li><a href="doc_quickstart.html">Haizea Quickstart Guide</a></li>
-<li><strong>Using OpenNebula and Haizea to manage VMs on a cluster</strong><br/>(Coming soon - Mid-july 2008)</li>
+<li><a href="doc_opennebula.html">Using OpenNebula and Haizea to manage VMs on a cluster</a><br/>
<li><a href="doc_multiple.html">Running Multiple Simulation Experiments with Haizea</a></li>
+<li><a href="doc_analysis.html">Analysing data collected during a simulation experiment</a></li>
<li><a href="doc_arch.html">The Haizea Architecture</a></li>
<li><a href="changelog.html">Changelog</a></li>
+<li><a href="doc_roadmap.html">Roadmap</a></li>
<!--<li><a href="doc_extending.html">Extending Haizea</a></li>-->
</ul>
Modified: trunk/html/download.html
===================================================================
--- trunk/html/download.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/download.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -27,22 +27,18 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<strong>Download</strong> |
<a href="documentation.html">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Downloads</h1>
<h2>Haizea</h2>
-<p>The current version of Haizea is Technology Preview 1.0, released on July 7th, 2008. To install, download <a href="downloads/haizea-TP1.0.tar.gz" onClick="javascript: pageTracker._trackPageview('/downloads/haizea-TP1.0.tar.gz');">haizea-TP1.0.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.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>
-<h2>Additional tracefiles</h2>
-
-<p>Additional tracefiles, including those used for the experiments in the paper <a href="pubs.html">Combining Batch Execution and Leasing Using Virtual Machines</a>, will be posted shortly.</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>
@@ -55,6 +51,11 @@
<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>
+<h2>Additional tracefiles</h2>
+
+<p>Additional tracefiles, including those used for the experiments in the paper <a href="pubs.html">Combining Batch Execution and Leasing Using Virtual Machines</a> can be found in the SVN repository (under <tt>trunk/traces/</tt>). They are not included in the distributable version of Haizea because of their size. If you have any questions about using these tracefiles, please don't hesitate to <a href="support.html">contact us</a>.</p>
+
+
<div class="back">
<a href="index.html">
<img src="logo_small.png" width="32" height="35" border="0" alt="haizea"/><br/>
Added: trunk/html/features.html
===================================================================
--- trunk/html/features.html (rev 0)
+++ trunk/html/features.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -0,0 +1,73 @@
+<!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> |
+<a href="features.html" style="color:black">Features</a> |
+<a href="download.html">Download</a> |
+<a href="documentation.html">Documentation</a> |
+<a href="support.html">Support</a> |
+<a href="pubs.html">Publications</a> |
+<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/>
+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>
Added: trunk/html/features_leases.html
===================================================================
--- trunk/html/features_leases.html (rev 0)
+++ trunk/html/features_leases.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -0,0 +1,118 @@
+<!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> |
+<strong>Features</strong> |
+<a href="download.html">Download</a> |
+<a href="documentation.html">Documentation</a> |
+<a href="support.html">Support</a> |
+<a href="pubs.html">Publications</a> |
+<a href="credits.html">Credits</a></div>
+<h1>Supported types of leases</h1>
+
+<p>Haizea supports a variety of resource leases. There's a more detailed description of what a lease is in the <a href="whatis.html">What is Haizea?</a> page, and this page just describes the supported types of leases. Throughout this page, let's assume you have a 4-node cluster, and that you want to lease parts of that cluster over time. We'll represent the four nodes over time like this: </p>
+
+<div class="center">
+<img src="quickstart_leasegraph1.png" width="413" height="153" />
+</div>
+
+
+<h2>"Advance Reservation" lease</h2>
+
+<p>An advance reservation, or AR, lease is a lease that must begin and end at very specific times. For example, the following lease starts at 1pm and ends at 2pm:</p>
+
+<div class="center">
+<img src="lease_ar.png" width="402" height="144" />
+</div>
+
+<p>Haizea can schedule this type of lease, which is particularly useful when you need resources at a specific time (for example, to coincide with a lecture, an experiment, etc.)</p>
+
+<h2>Preemptible best-effort lease</h2>
+
+<p>Sometimes, you know you need resources, but you don't need them at a specific time. In fact, you're perfectly content to wait until there are enough resources available for your lease:</p>
+
+<div class="center">
+<img src="lease_be1.png" width="402" height="162" />
+</div>
+
+<p>When you request a best-effort lease, your request gets placed in a queue, which is processed in a first-come-first-serve basis (the queue uses backfilling algorithms to improve resource management). The downside of this type of lease, of course, is that you may have to wait a while until resources are allocated to your lease:</p>
+
+<div class="center">
+<img src="lease_be2.png" width="402" height="162" />
+</div>
+
+<p>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 <em>preemptible</em> lease, you allow your resources to be preempted by higher-priority leases, like advance reservations:</p>
+<div class="center">
+<img src="lease_be3.png" width="402" height="102" />
+</div>
+
+<p>Preemptible best-effort leases are good for running batch jobs, or any non-interactive work. The Haizea paper <a href="pubs.html">Combining Batch Execution and Leasing Using Virtual Machines</a> showed how using the suspend/resume capability of virtual machines allowed AR and best-effort leases to be scheduled together efficiently, overcoming the utilization problems typically associated with ARs.</p>
+
+<h2>Non-preemptible best-effort lease</h2>
+<p>But what if you're willing to wait for your resources to become available, but don't want them to be preempted? (e.g., if you want to use them interactively). Well, it's as simple as requesting a <em>non-preemptible</em> best-effort lease. Once your request makes it through the queue, and your lease is allocated resources, no one is taking them away. </p>
+
+
+<h2>Immediate lease</h2>
+
+<p>In some cases, you may need resources now. As in <em>right now</em>:</p>
+
+<div class="center">
+<img src="lease_im.png" width="402" height="143" />
+</div>
+<p>Furthermore, if you can't get them right now, you're just not interested in anything else the resource provider has to offer. You're not going to request resources in the future, and you're certainly not going to be put on a queue. This is essentially the type of lease that many cloud systems offer (although the definition of "right now" varies wildly). Take into account that an immediate lease may still take a while to setup (VM image deployment, etc.). This type of lease in Haizea may evolve in the future into an "urgent lease", where "right now" really does mean "right now". </p>
+
+<h2>Coming soon</h2>
+
+<p>The following types of leases are coming soon to a lease manager near you:</p>
+
+<h3>Best-effort with deadlines</h3>
+
+<p>In some cases, when you say "best effort", you really mean "best effort, but be reasonable". Sure, you're willing to wait for your resources, but you may need them before a deadline.</p>
+
+<div class="center">
+<img src="lease_deadline.png" width="438" height="232" />
+</div>
+
+<p>For example, let's say you want a 16-node cluster sometime today to run a test program. You're not particularly picky about when you get the cluster, as long as it happens today and you're given sufficient warning of when your lease will be available. In the future, you will be able to tell Haizea that you have a deadline, and Haizea will either get the resources to you by then, or tell you that the deadline is simply unfeasible.</p>
+
+<h3>Negotiated leases</h3>
+
+<p>If you've ever entered into any sort of non-computational lease agreement, you know that agreeing on the lease terms rarely involves the lessor instantly being on the same page as you. Rather, it involves a fair amount of haggling. Besides, if your computational needs are flexible, so should your lease manager (c'mon, are you sure you mean "exactly at 2pm"? maybe you meant to say "at some point this afternoon"?). In the future, you will be able to negotiate your leases with Haizea:</p>
+
+<div class="center">
+<img src="lease_negotiate.png" width="433" height="143" />
+</div>
+
+<p>So, hey, maybe we can't get you that shiny AR you want at 2pm, but how about I get you twice the resources at an off-peak time? I'll even throw in a discount. And free air conditioning.</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>
Modified: trunk/html/index.html
===================================================================
--- trunk/html/index.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/index.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -7,7 +7,7 @@
<link href="haizea.css" type="text/css" rel="stylesheet"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="keywords" content="haizea, open source, resource manager, scheduler, leases, resource leases, virtual machines, opennebula, virtual infrastructure, xen, kvm"/>
-<meta name="description" content="Haizea is an open-source VM-based lease management architecture, a piece of software that, in combination with the OpenNebula virtual infrastructure manager can be used to manage a Xen or KVM cluster, allowing you to deploy different types of leases 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."/>
+<meta name="description" content="Haizea is an open-source virtual machine-based lease management architecture, a piece of software that, in combination with the OpenNebula virtual infrastructure manager can be used to manage a Xen or KVM cluster, allowing you to deploy different types of leases 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."/>
</head>
<body>
@@ -17,16 +17,19 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<div class="warning">
+<strong>Technology Preview 1.1 has been released</strong> (2008-07-24)<br/> with <a href="doc_opennebula.html">OpenNebula 1.0 support</a> and <a href="features.html">additional features</a>.<br/> See the <a href="changelog.html">changelog</a> for more details, or <a href="download.html">download</a> it now.
+</div>
+<div class="warning">
Haizea is kindly hosted at the University of Chicago's PhoenixForge. Since PhoenixForge is still under construction, some services are not yet available (bug tracking, wiki, etc.). Please bear with us as we migrate to this new home.
</div>
-<p>Haizea is an open-source VM-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 Xen or KVM cluster, allowing you to deploy different types of <a href="whatis.html#leases">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>
+<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>
<p><a href="whatis.html">Learn more</a> about Haizea, or head over to the <a href="download.html">download</a> page to get started with Haizea.</p>
<div class="center">
Added: trunk/html/lease_ar.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_ar.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/html/lease_be1.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_be1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/html/lease_be2.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_be2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/html/lease_be3.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_be3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/html/lease_deadline.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_deadline.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/html/lease_im.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_im.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/html/lease_negotiate.png
===================================================================
(Binary files differ)
Property changes on: trunk/html/lease_negotiate.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/html/pubs.html
===================================================================
--- trunk/html/pubs.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/pubs.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -27,10 +27,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<strong>Publications</strong> |
<a href="credits.html">Credits</a></div>
<h1>Publications</h1>
Deleted: trunk/html/roadmap.html
===================================================================
--- trunk/html/roadmap.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/roadmap.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -1,69 +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> |
-<a href="download.html">Download</a> |
-<a href="documentation.html">Documentation</a> |
-<a href="support.html">Support</a> |
-<strong>Roadmap</strong> |
-<a href="pubs.html">Publications</a> |
-<a href="credits.html">Credits</a></div>
-<h1>Roadmap</h1>
-
-<p>The next version of Haizea will be TP1.1, due mid-July 2008. This version will include the following improvements:</p>
-
-<ul>
-<li>Integration with upcoming OpenNebula 1.0.</li>
-<li>Documentation on how to set up and use OpenNebula 1.0 with Haizea as a scheduling backend.</li>
-<li>Tools to produce reports and pretty graphs based on Haizea runs (both simulation and OpenNebula)</li>
-</ul>
-
-<p>There are several improvements that are planned for upcoming versions (coming out in summer and fall of 2008, exact dates to be determined):</p>
-<ul>
-<li>Support for more types of leases</li>
-<li>Basic server consolidation algorithms</li>
-<li>Decoupling policy decisions from Haizea</li>
-<li>Lease negotiation</li>
-<li>RPC interface so enactment backend can send asynchronous events</li>
-<li>Command Line Interface (CLI) to Haizea</li>
-</ul>
-
-<h2>Wish list</h2>
-<ul>
-<li>The slot table data structure is the only part of Haizea that I wish were not implemented in Python. This part of the scheduler becomes a performance bottleneck in the simulations (it's not a problem if you're running Haizea "in real time"). A C/C++ implementation could speed up simulations, and would allow us to more efficiently query the slot table.</li>
-<li>Decoupling the notion of "deployment overhead" with "transferring a VM image". Although transferring a VM image is a common way of "setting up" a VM, there are other ways of deploying a VM (such as having a base image installed on all physical nodes and installing packages on them). Ideally, the scheduler should be able to interface with a "deployment overhead" module that will be the "expert" in deployment (however, the scheduler is still in charge of scheduling the overhead, but it consults with the overhead module to determine when the overhead can be scheduled, what nodes are preferable if we want to minimize overhead, etc.)</li>
-<li>The source code is still in need of some general clean-up and documentation. This is slowly getting done.</li>
-</ul>
-
-<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>
Modified: trunk/html/support.html
===================================================================
--- trunk/html/support.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/support.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<a href="whatis.html">What is Haizea?</a> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> |
-<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
+<strong>Support</strong> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>Support</h1>
Modified: trunk/html/whatis.html
===================================================================
--- trunk/html/whatis.html 2008-07-24 11:03:14 UTC (rev 453)
+++ trunk/html/whatis.html 2008-07-24 12:51:05 UTC (rev 454)
@@ -16,10 +16,10 @@
</div>
<div class="topbar">
<strong>What is Haizea?</strong> |
+<a href="features.html">Features</a> |
<a href="download.html">Download</a> |
<a href="documentation.html">Documentation</a> |
<a href="support.html">Support</a> |
-<a href="roadmap.html">Roadmap</a> |
<a href="pubs.html">Publications</a> |
<a href="credits.html">Credits</a></div>
<h1>What is Haizea?</h1>
@@ -28,23 +28,26 @@
<ul>
<li><strong>Haizea is a resource manager</strong> (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".</li>
-<li><strong>Haizea uses leases</strong>: The fundamental resource provisioning abstraction in Haizea is the <em>lease</em>. 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. See below for a more detailed definition of leases.</li>
+<li><strong>Haizea uses leases</strong>: The fundamental resource provisioning abstraction in Haizea is the <em>lease</em>. 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. See below for a more detailed definition of leases or read about the <a href="features_leases.html">types of leases supported by Haizea</a>.</li>
<li><strong>Haizea is VM-based</strong>: 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 <a href="http://workspace.globus.org/papers/">Globus Virtual Workspaces</a> group, where Haizea was originally developed, has an <a href="http://workspace.globus.org/papers/">extensive list of publications</a> that argue how using virtual machines for resource leasing is A Good Thing (and also Not A Trivial Thing).</li>
<li><strong>Haizea is open source</strong>: 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.</li>
</ul>
<h2>What can you do with Haizea?</h2>
+<div class="center">
+<img src="what_haizea_does.png" width="650" height="352" alt="Haizea can be used with OpenNebula or in simulation."/>
+</div>
+
<p>You can use Haizea one of two ways. Haizea can be used as a standalone component or as a scheduling backend for a virtual infrastructure manager, such as <a href="http://www.opennebula.org/">OpenNebula</a>. So, if you're...</p>
<ul>
-<li><strong>Using Haizea on its own</strong>: 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 for you 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>). Otherwise, you probably want to be...</li>
-<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 VMs on a cluster, and will support KVM in the upcoming 1.0 release in mid-July 2008, with VMWare support to follow shortly) while Haizea provides all the scheduling brains. Although the current Haizea TP1.0 release has been tested with OpenNebula, this integration has not been properly documented yet. We are working on a detailed guide on how to use OpenNebula and Haizea together, which will be released with the upcoming 1.0 release of OpenNebula in mid-July 2008 (along with Haizea TP1.1). If you want to toy around with OpenNebula and Haizea before then, don't hesitate to <a href="support.html">contact us</a>.</li>
+<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>
</ul>
-<div class="center">
-<img src="what_haizea_does.png" width="650" height="352" alt="Haizea can be used with OpenNebula or in simulation."/>
-</div>
+<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>Leasing as a fundamental abstraction</h2>
@@ -52,7 +55,7 @@
<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 directly 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>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>
@@ -70,18 +73,19 @@
<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>So, Haizea aims to support resource leasing along these three dimension. For now, Haizea supports two types of availability:</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>
</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>In the future, Haizea will support additional lease types, such as immediate leases, urgent leases, periodic leases, deadline-driven leases, etc.</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>
More information about the Haizea-commit
mailing list