Multi-Sessions auf X11-Xinerama
Dieses Beispiel zeigt die nahtlose Benutzung von Client-, Server- und Desktop-Virtualisierung.
Die Schnittstelle ermöglicht den automatisierten Start von lokalen und entfernten Diensten einschließlich des impliziten Starts der erforderlichen physikalischen und virtuellen Maschienen. Ebenso werden erforderliche interaktive Desktops auf den jeweiligen Maschienen gestartet.
Alle Benutzersitzungen - einschließlich interaktiver Sitzungen - können wahlweise in einem sog. Headless-Modus ohne Konsole gestartet und später mit einem frei gewählten unterstützten Konsolen-Typ verbunden werden.
Der dargestellte Desktop enthält Benutzersitzungen zu verschiedensten Betriebssystemen, die auf physikalischen und virtuellen Maschienen auf Basis von QEMU, Xen und VMware ausgeführt werden.
Physikalische Bildschirm-Sicht
Logisches Xinerama Layout
Verteilte virtualisierte Compile Farm
Dieses Beispiel zeigt anhand der Durchführung der verteilten Cross-Compilierung von Linux Kernel-Paketen mit rpmbuild den automatisierten Einsatz von "Programm-Übersetzungs-Diensten" in virtualiserten Clustern auf Gruppen von physikalischen Maschienen.
Cross Compile oder virtuelle CPU-Emulation?
Grundsätzlich ist jedes System auch innerhalb eines anderen Systems mit Hilfe eines Cross-Compilers übersetzbar. Auch wenn dies für einzelne Pakete gut zu handhaben ist, so hat es z.B. für komplette Systeme mit unterschiedlichen Betriebssystemen und Laufzeitsystemen einige praktische Nachteile.
Ein typisches Anwendungsbeispiel ist hier die Übersetzung des Linux-Kernels innerhalb der x86-Architekturen.
Wenn Cross Compile nicht geht?
Die Übersetzung und Erzeugung einzelner Pakete, namentlich des Linux-Kernels mit rpmbuild, hat jedoch in einem konkreten Fall eine praktische Grenze.
Das Benutzte Werkzeug rpmbuild hat einen Fehler und läßt die Cross-Compile-Übersetzung für ein Embedded-System mit Pentium-CPU nicht zu.
Cross Compile mit virtueller CPU-Emulation.
In diesem Falle ist hier eine "native" Übersetzung erforderlich. Es bietet sich aus verschiedenen Gründen eine Emulierte CPU mit virtueller Maschiene an.
Aus Gründen der mangelden Performanz - ca. 1.5h Übersetzungsdauer - und erforderlicher häufiger Wiederholungen ist eine Parallel-Übersetzung erforderlich.
Es wird hier eine gemischte Lösung auf Basis VMware-Server(TM) mit einer virtuellen 32-bit Installation des Linux-Systems eingesetzt, da dies einwandfrei funktioniert und ohne Zusatzaufwand bereits zur Verfügung steht.
Es werden hierbei mit Hilfe des j-Schalters von "make" automatisiert mehrere Module gleichzeitig übersetzt und mit Hilfe weiterer Tools auf verschiedene Rechner verteilt. In dieser Konfiguration werden ccache und distcc / distcc.org zur Lastverteilung eingesetzt.
Dies reduziert hier beispielsweise die durchschnittliche Übersetzungszeit in der Grund-Konfiguration um deutlich mehr als den Faktor 3.
Der Start, die Durchführung des Übersetzungsvorgans und die Beendigung der kompletten Umgebung wird mit Hilfe des UnifiedSessionsManagers bewerkstelligt. Auch die Tools zur Systemüberwachung werden automatisiert gesteuert. Jeder dargestellte gkrellm representiert hierbei eine eigene virtuelle oder physikalische Maschiene.