KVM Virtualisierung mit Enomalism 2 auf einem Ubuntu 8.10 Server

Version 1.0
Author: Falko Timme


Enomalism ECP (Elastic Computing Platform) bietet ein Web-basiertes control panal an, welches dir die möglichkeit gibt virtuelle maschinen aud einem oder mehreren hosts zu erstellen, verwalten und einzusetzen (in Fall von mehreren systemen sprechen wir von Wolken oder Clustern).Dieser Arikel zeigt, wie du Enomalism(auch bekannt als Enomaly) benutzen kannst um KVM guests auf einem Ubuntu 8.10 server zu verwalten.

Ich gebe keinerlei Garantie, das dies genauso bei dir funktioniert!

1 Vorwort

Ich benutze einen Ubuntu 8.10 Server mit dem hostnamen server1.example.com und der IP addresse 192.168.0.100 hier als meinen KVM host.

Die Server liegen in einem privaten Netzwerk mit DHCP (mit dem Router, IP 192.168.0.1). Die Benutzung von Enomalism könnte in einem öffentlichen Netzwerk anders sein.

Ich mache alle Schritte in diesem Tutorial mit Root-Rechten, deswegen logge dich bitte als root ein:

sudo su


Bitte Prüfe, ob dein  CPU  hardware virtualisierung Unterstützt -Wenn das der fall ist, sollte das Kommando

egrep '(vmx|svm)' --color=always /proc/cpuinfo


etwas wie das hier anzeigen:

root@server1:~# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
root@server1:~#

wenn du nichts angezeigt bekommst unterstützt dein Prozessor keine Hardware Virtualisierung und du musst hier aufhören.

2 Installation von Enomalism 2

Als erstes installieren wir ein paar Grundprogramme (einschließlich KVM):

aptitude install ssh build-essential python-dev libxen3.1-dev kvm mysql-server mysql-client libmysqlclient15-dev python-libvirt python-mysqldb libvirt-bin python-setuptools qemu bridge-utils


Du wirst nach einem root Passwort für  MySQL gefragt werden:

New password for the MySQL "root" user: <-- deinrootsqlpasswort Repeat password for the MySQL "root" user: <-- deinrootsqlpasswort
Dann gehe in das /opt Verzeichnis...

mkdir -p /opt
cd /opt

... und lade die neuste version des Enomalism .deb package von http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675,z.B wie folgt:

wget http://dfn.dl.sourceforge.net/sourceforge/enomalism/enomalism2-2.2.3.deb


Nach dem Erfolgreichen Download installieren wir Enomalism:

dpkg -i enomalism2-2.2.3.deb


Nun müssen wir Enomalism konfigurieren. Starte

cd enomalism2/
scripts/init-db.sh yourrootsqlpassword enomalism enomalismpassword

Ersetze yourrootsqlpassword mit dem MySQL root passwort welches du am Anfang von diesem Tutorial festgelegt hast. enomalism ist der Name des Benutzers der Datenbank welchen Enomalism benutzen wird um sich mit der MySQL Datenbank zu verbinden, und  enomalismpassword ist das Passwort für den Datenbankbenutzer enomalism.Ersetze beide durch den Benutzernamen und das Passwort deiner Wahl.

In dem /opt/enomalism2 Verzeichnis, sollte eine Datei namens server1.example.com.cfg erstellt worden sein.Wir kopieren diese Datei in das Verzeichnis /opt/enomalism2/config:

cp server1.example.com.cfg config/server1.example.com.cfg


Starte

uuidgen


und schreibe die ID auf, welche das Kommando erzeugt hat (wir brauchen sie im nächsten schritt, wenn wir/opt/enomalism2/config/server1.example.com.cfg anpassen):

root@server1:/opt/enomalism2# uuidgen
ad152057-eb8f-4f8b-9744-c33ca44522d0
root@server1:/opt/enomalism2#

nun editieren wir /opt/enomalism2/config/server1.example.com.cfg:

vi config/server1.example.com.cfg


Bitte passe die folgenden 4 Werte an:
[...]
sqlobject.dburi="mysql://enomalism:enomalismpassword@localhost:3306/enomalism2" [...] enomalism2.baseurl="http://192.168.0.100:8080/rest/" [...] enomalism2.ip_addr="192.168.0.100" [...] enomalism2.self="ad152057-eb8f-4f8b-9744-c33ca44522d0" [...]
Stelle sicher, das du das richtige Datenbankpasswort und den richtigen Benutzernamen für die MySQL Datenbank benutzt und die korrekte IP Adresse für die folgenden 2 Einstellungen. In der Zeile enomalism2.self , solltest du die von  uuidgen erzeugte ID benutzen.

Ebenso wirst du die Einstellungen enomalism2.drivestorage='file' und enomalism2.storagetarget='file:///xen/' in der Datei finden.Derzeit unterstüzt  Enomalism, LVM nicht,deswegen solltest du diese einstellungen auch nicht ändern!

Als nächstes passe /etc/libvirt/qemu.conf an...

vi /etc/libvirt/qemu.conf


... und entferne das # vor der Zeile vnc_listen = "0.0.0.0":
[...]
vnc_listen = "0.0.0.0" [...]
(Ansonsten ist es nciht möglich über VPN auf die KVM guests zuzugreifen!)

Starte libvirt-bin neu und anschließend:

/etc/init.d/libvirt-bin restart


Nun können wir Enomalism starten(du solltest immernoch in dem Verzeichnis/opt/enomalism2 sein):

scripts/enomalism2.sh start


Wenn du möchtest, das Enomalism immer startet, wenn das system bootet, kannst du folgende Zeile in die  /etc/rc.local hinzufügen:

vi /etc/rc.local


[...]
cd /opt/enomalism2 && scripts/enomalism2.sh start [...]
Nun öffne einen Browser und gehe auf  http://192.168.0.100:8080. Das sollte die Installation von Enomalism abschließen:


Klicke auf  Click here to use Enomalism2!:


3 Benutzung von Enomalism

Du solltest nun beim Einloggbildschirm von Enomalism sein. Der Standard Benutzername ist  admin, und das ist  password (nach dem ersten einloggen, solltest du es ändern):


So schaut das Enomalism control panal aus.Das Dashboard listet alle transaktionen auf und sagt dir ob diese Erfolgreich waren oder nicht :


Um KVM guests zu starten, kannst du entweder deine eigenen Virtuellen Maschinen erstellen oder vorkonfigurierte virtuelle Madchinenen aus den öffentlichen Repositorys von Enomalism nehmen. In diesem Tutorial werde ich beide Methoden beschrieben.Zuerst werde ich jetzt zeigen, wie man vorkonfigurierte virtuelle Maschinen von den Enomalism repositorys benutzt.

Da sind ein oder 2 Dinge, die du über vorkonfigurierte Geräte wissen solltest. Erstens, sie haben nur einen Speicherplatz von 1GB, sodass sie nicht unbedingt zur Prokuktion dienen und 2. ist es möglich, das sie das interface  eth0 nicht ansprechen, was zur folge hat, das du kein Netzwerk hast, (das ist mir passiert, als ich mir die Ubuntu 8.04 KVM runtergeladen habe; wie auch immer mit der CentOS5.2 KVM anwendung, funktioniert das netzwerk einwandfrei).

3.1 Benutzung von Vorkonfigurierten Anwendungen

Gehe zu Repository > REMOTE APPLIANCES. Finde die virtuelle maschine, welche du benutzen möchtest und klicke auf das Plus Zeichen vor ihr (Ich lade den CentOS 5.2 KVM guest -stelle sicher, das du einen KVM guest und nicht einen Xen guest ausgewählt hast ):


Bestätige deine Ausw:ahl


Das ganze wird nun im Hintergrund runtergelade.Das kann einige Minuten dauern aber du kannst den Status im  Dashboard sehen (klicke auf den blauen Seite neu laden Pfeil um den aktuellen Status zu sehen):


So schaut es aus, wenn der Download fertig ist:


Du solltest die Anwendung nun unter Repository > LOCAL APPLIANCES finden:


Bevor wir die Anwendung starten, müssen wir sie erstmal Einrichten( das meint, die Anwendung ist nur eine Vorlage von welcher wir den KVM guest erstellen). Gehe zu Virtual Infrastructure > ELASTIC VALET und wähle die CentOS 5.2 KVM Anwendung. In dem Anderen drop-down Menus wähle  default, dann Scrolle runter:


Jetzt gerade wollen wir nur einen guest erstellen, deswegen wählen wir 1  in dem  Number of machines to provision drop-down menu. Klicke auf Provision anschliessend:


Die Vorlage wird nun unzippt.Das kann wieder einige Minuten dauern und du kannst dir den Status im  Dashboard anschauen:



Anschliessend gehe zu Virtual Infrastructure > INFRASTRUCTURE. Klicke auf den Neuladen Buttom im linken Frame. Du solltest da sehen, dass server1.example.com ein Mitglied des Clusters default ist, und das da eine virtuelle Maschine aufvserver1.example.com ist(genannt 814f4b... in diesem Beispiel). KLick auf die virtuelle Maschine im linken Frame und die zusammenfassung der virtuellen Maschine sollte sich im Hauptfenster laden:


Es ist eine gute idee die Virtuelle maschine umzubenennen in etwas, was nciht so Kryptisch aussieht, so klicke auf den Stift, links von deiner Virtuellen Maschine...


... und gib der Virtuellen Maschine einen neunen Namen:


Du kannst nun die virtuelle Maschine starten indem du auf start this virtual machine klickst:


Bestätige, das du die vrituelle Maschine starten willst:


In der Zusammenfassung der virtuellen Maschine, sollten nun ein paar neue links sein(z.B. suspend, poweroff, reboot).Der interessante link ist der eine der  VNC to this VM (via the parent) heisst. Das wird einen  Enomalism's built-in VNC Klienten öffnen (geschrieben in JAVA). (Natürlich kannstd u auch andere VNC Klienten benutzen um dich mit der virtuellen Maschine zu verbinden, z.B. TightVNC. In der unteren rechten Ecke von der Zusammenfassung wirst du Details finden um wie du das machst(IP und Port).)


So sieht der JAVA VNC Klient aus (der standard login für die öfftnlichen Enomalism Anwendungen ist root:password):


3.2 Erstellen von eigenen virtuellen Maschinen

Anstatt die vorkonfigurierten zu verwenden, könen wir uns ebenso eigene virtuelle Maschinen erstellen. Gehe auf Repository > VM CREATOR. Klicke auf den Browse... Button...


...wähle ein ISO image von deiner Lokalen Festplatte aus (Ich werde einen Debian Lenny guest installieren, deswegen wähle ich debian-500-amd64-netinst.iso von meiner eigenen Festplatte):


Als nächstes wähle KVM Machine in dem VM Type drop-down menu gib die größe von deinem guest image an(z.B. 4048MB) genauso wie den Speicherort, an dem du deinen guest haben willstt:


Falls dein host System mehr als einen CPU Kern besitzt, kannst du engeben, wie viele virtuelle CPU's der guest Benutzen darf. Klicke auf Create anschließend:


Das ISO image wird nun auf den Ubuntu 8.10 host hochgeladen:



Anschliessend kannst du das ISO image unter Repository > LOCAL APPLIANCES finden. Auch das solltest du auf Grund des kyptischen Namens umbenennen:




Um eine virtuelle Maschine von dem ISO image zu erstellen, gehe zu  Virtual Infrastructure > ELASTIC VALET, wähle das ISO image und Klicke Provision:


Das ISO image wird nun entpackt - das kann einige Minuten dauer und du kannst den ststus im Dashboard verfolgen:


Anschliessend gehe zu Virtual Infrastructure > INFRASTRUCTURE und klicke auf den neuladen Button im rechten Frame. Da sollte nun ein neuer guest sein:


Benenne ihn in einen normalen nicht so kryptischen Namen um:


In der Zusammenfassung der virtuellen Maschinen,klicke auf Select boot device...


... und wähle DVD/CD-ROM:


Dann starte die vrituelle Maschine:


klicke auf VNC to this VM (via the parent)um Enomalism's built-in JAVA VNC klienten zu benutzen (oder benutze deinen eigenen VNC klienten)...


... und installiere das guest Betriebssystem, wie du es immer auf deinem Pc tust:


bitte beachte, das der Debian guest am ende der installetion einen Neustart benötigtt:


Das guest system wird versuchen von CD-Rom zu booten, was fehlschlagen wird:


Um das Problem zu beheben,  power down den guest (benutze poweroff this virtual machine ):



Dann klick auf Select boot device nochmal...


... und wähle  Hard drive:


Nun starte das guest system erneut indem du start this virtual machine benutzt:


Du kannst dich nun über VNC zu dem guest system verbinden, und das booten sollte ohne Probleme möglich sein:


Wenn du irgendwelche Probleme mit Enomalism hast, kannst du in das  /opt/enomalism2/logs Verzeichnis schauen, welches alle logdateien beinhaltet.

4 Links