Verwalte mehrere KVM Hosts mit Enomalism2 [Ubuntu 8.10]

Version 1.0
Author: Falko Timme


In meiner vorherigen Anleitung über das Thema, wie man Enomalism2 auf Ubuntu 8.10 einsetzt, habe ich mich auf nur einen KVM host konzentriert. Dieses Tutorial ist eine Ergänzung zu dem Artikel, welche zeigt, wie man weiter Ubunut 8.10 KVM hosts hinzufügt welche alle von einem control panal aus gesteuert werden können.

Ich habe es mit 2 Ubuntu hosts getestet(beide x86_64). Ich kann nicht sagen ob es ebenso auf einem i386 system funktioniert, da ich es nicht getestet habe.

Ich gebe keinerlei Garantie, das es bei euch genauso funktioniert!

1 Vorbemerkung

Ich benutze zwei Ubuntu 8.10 server hier al meine KVM hosts:
  • server1.example.com: IP address 192.168.0.100
  • server2.example.com: IP address 192.168.0.101
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.

server1 wird der "master" in diesem Setup sein und server2 der "sklave", z.B., server2 wird die  MySQL Datenbank von server1 nutzen und das Verzeichnis  /opt/enomalism2/repo (über NFS).

2 Setup auf server1

server1:


server1 muss genauso aufgesetzt werden wie auf Seite 1 in dem Tutorial hier: KVM Virtualization With Enomalism 2 On An Ubuntu 8.10 Server
Nachdem du  Enomalism2 eingestellt hast, müssen wir /etc/mysql/my.cnf editieren, sodass MySQL auf allen Interfaces listens (sodass server2 sich später zu diesem MySQL server verbinden kann) - kommenteriere die zeile bind-address = 127.0.0.1 aus:

vi /etc/mysql/my.cnf


[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address [...]
Dann starte MySQL neu:

/etc/init.d/mysql restart


nun kontrolliere, ob das Netzwerk vorhanden ist. Starte

netstat -tap | grep mysql


Die Ausgabe sollte so ähnlich wie das hier ausschauen:

root@server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      6724/mysqld
root@server1:~#

Dann verbinden wir zu MySQL...

mysql -u root -p


... und erstellen einen Datenbankbenutzer, dem es gestattet ist sich mit  enomalism2 Databank zu verbinden (benutze den selben Datenbankbenutzer und das Passwort wie in dem scripts/init-db.sh Schritt, als du  Enomalism2 eingerichtet hast):

grant all on enomalism2.* to enomalism@'%' identified by 'enomalismpassword';
FLUSH PRIVILEGES;
quit

Um einen NFS server zu installieren, starten wir:

aptitude install nfs-kernel-server nfs-common portmap


Wir müssen das /opt/enomalism2/repo Verzeichnis exportieren. Wir müssen modifizieren /etc/exports wo wir unsere NFS shares hinexportieren wollen. Wir spezifizieren /opt/enomalism2/repo als NFS share und sagen NFS soll den zugang /opt/enomalism2/repo als root machen (um mehr über /etc/exports , sein format und die ganzen Optionen zu lernen, schau dort

man 5 exports


)

vi /etc/exports


# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /opt/enomalism2/repo 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
(Die no_root_squash option macht das /opt/enomalism2/repo als root aufrufbar ist.)

immer wenn wir /etc/exports anpassen wollen, müssen wir folgenden Befehl starten

exportfs -a


anschließend um die Änderungen effektiv zu machen

3 Setup von  server2

server2:


server2muss auch wieder wie in dem Tutorial auf Seite 1 beschrieben aufgesetzt werden, aber mit ein paar kleinen Änderungen: KVM Virtualization With Enomalism 2 On An Ubuntu 8.10 Server
Ich werde die unterschiede hier aufführen - der Rest ist genauso wie in dem anderen Tutorial:

Wenn du die Enomalism2 configuration Datei kopiert, stelle sicher, das du den richtigen hostnamen verwendest(server2.example.com anstatt von server1.example.com):

cp server2.example.com.cfg config/server2.example.com.cfg


Wenn du die Datei Editierst, stelle sicher, das die IP adresse richtig ist (192.168.0.101), und noch wichtiger, das du die IP adresse von server1 (192.168.0.100) anstatt von localhost in der sqlobject.dburi Zeile benutzt:

vi config/server2.example.com.cfg


[...]
sqlobject.dburi="mysql://enomalism:enomalismpassword@192.168.0.100:3306/enomalism2" [...] enomalism2.baseurl="http://192.168.0.101:8080/rest/" [...] enomalism2.ip_addr="192.168.0.101" [...] enomalism2.self="c4d87221-debc-44c8-8789-a0170e0b6f15" [...]
Nun nach dem

/etc/init.d/libvirt-bin restart


Teil, müssen wir NFS einrichten. Instalierel den NFS Klienten wie folgt:

aptitude install nfs-common portmap


Dann mounet das entfernte /opt/enomalism2/repo Verzeichnis zu /opt/enomalism2/repo:

mount 192.168.0.100:/opt/enomalism2/repo /opt/enomalism2/repo


Um sicher zu stellen, das NFS share automatisch gemountet wird, wenn der Klient bootet, öffne  /etc/fstab und füge folgende Zeile hinzu:

vi /etc/fstab


[...]
192.168.0.100:/opt/enomalism2/repo /opt/enomalism2/repo/opt/enomalism2/repo nfs rw,sync,hard,intr 0 0
Nachdem NFS eingerichtet ist, kannst du in dem KVM Virtualization With Enomalism 2 On An Ubuntu 8.10 Server Tutorial mit dem Befehl

scripts/enomalism2.sh start


weitermachen.

Schließlich, öffne http://192.168.0.101:8080/install in einem Browser (nicht nur http://192.168.0.101:8080!) - Das wird das cluster setup auf server2 fertig stellen:



Anschließend hast du 2 Control Panels, eines auf server1 (http://192.168.0.100:8080/) und eins auf server2 (http://192.168.0.101:8080/). Es ist egal, welches du benutzt, sie schauen gleich aus und tun auch das gleiche.

Unter Virtual Infrastructure > Infrastructure,solltest du nun beide Cluster sehen,...


... und du kannst mit den virtuellen Maschinen starten (wie in KVM Virtualization With Enomalism 2 On An Ubuntu 8.10 Server gezeigt wird):

4 Links