Dieser Artikel beschreibt die Installation von Haizea auf einem Unix System. Die Installation erfolgt in vier Schritten, welche im Folgenden erklärt werden.
Abhängigkeiten
Für die Installation von Heizea müssen folgende Software-Abhängigkeiten erfüllt werden.
- Python 2.5. (http://www.python.org/)
- mxDateTime 3.1.0 (http://www.egenix.com/products/python/mxBase/mxDateTime/)
- Mako Templates for Python 0.2.2 (http://www.makotemplates.org/). Ist optional und wird benötigt, wenn parallel mehrere Simulationen automatisiert ausgeführt werden sollen.
- Psyco 1.6 (http://psyco.sourceforge.net/). Ist optional und optimiert das Ausführen des Python Code. Simulationen können dadurch deutlich beschleunigt werden.
Haizea herunterladen
Haizea kann unter http://haizea.cs.uchicago.edu/download.html als Tarball (haizea-XXX.tar.gz > XXX entspricht der Versionsnummer) heruntergeladen werden. Für den Rest dieser Installationsanleitung gehen wir davon aus, dass sich der Speicherort der Datei unter $HAIZEA_INST befindet!
Haizea installieren
Nach dem Download wechseln wir in das Verzeichnis $HAIZEA_INST und entpacken die TAR-Datei.
tar xvzf haizea-XXX.tar.gz
Wir erhalten damit ein weiteres Verzeichnis mit dem Namen haizea-XXX. Wir wechseln als Root in dieses Verzeichnis und führen das folgende Kommando aus.
python setup.py install
Falls kein Root Zugriff vorhanden sein sollte oder Haizea in das eigene Home Verzeichnis installiert werden soll nehmen wir diesen Befehl:
python setup.py install --home=$HOME
Achtung!!! Sollte bisher noch nie ein Python Package in das Home Verzeichnis installiert worden sein, sollte sichergestellt werden, das die Umgebungsvariable PYTHONPATH gesetzt ist.
export PYTHONPATH=$HOME/lib/python
Nachdem das Setup-Skript ausgeführt wurde, sollten wir eine Liste mit Installations- und Build Messages und die folgende Ausgabe sehen:
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-XXX.egg-info
Erscheint diese Ausgabe, war die Installation erfolgreich.
Überprüfen der Installation
Haizea beinhaltet einige Beispiel Konfigurationsdateien, Leasing-Anfragen und Tracefiles mit denen die Installation getestet werden kann.
Wurde Haizea mit Root installiert, kann dazu das folgende Kommando verwendet werden:
haizea -c /usr/share/haizea/etc/sample_trace.conf
Damit wird eine Beispiel Konfigurationsdatei für die Simulation des Scheduler ohne Leasing-Anfragen verwendet, die folgende Ausgabe erzeugt:
[2006-11-25 13:00:00.00] RM Starting resource manager
[2006-11-25 13:00:00.00] TFILE Loading tracefile /usr/share/haizea/traces/sample.lwf
[2006-11-25 13:00:00.00] TFILE Loaded workload with 0 requests ()
[2006-11-25 13:00:00.00] CLOCK Starting simulated clock
[2006-11-25 13:00:00.00] CLOCK Simulated clock has stopped
[2006-11-25 13:00:00.00] RM Stopping resource manager gracefully...
[2006-11-25 13:00:00.00] RM --- Haizea status summary ---
[2006-11-25 13:00:00.00] RM Number of leases (not including completed): 0
[2006-11-25 13:00:00.00] RM Completed leases: 0
[2006-11-25 13:00:00.00] RM Completed best-effort leases: 0
[2006-11-25 13:00:00.00] RM Queue size: 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
[2006-11-25 13:00:00.00] RM Accepted IM leases: 0
[2006-11-25 13:00:00.00] RM Rejected IM leases: 0
[2006-11-25 13:00:00.00] RM ---- End summary ----
Damit ist sichergestellt, das die grundlegenden Operationen funktionieren.
Achtung!!! Wurde Haizea im Home Verzeichniss installiert, wird das folgende Kommando benötigt.
haizea -c $HOME/share/haizea/etc/sample_trace.conf
Weiterhin macht es an dieser Stelle dann Sinn, die Option für das Tracefile in der Beispielkonfiguration anzupassen, damit es auf das Beispiel Tracefile unter $HOME/share/haizea/traces/sample.lwf anstatt /usr verweist.