{{tag> kvm virtualisierung}}
====== Virtualisierung mit KVM und ConVirt als web-GUI (in Arbeit) ======
KVM ist ein Hypervisor, der auf einem Linux-Kernel aufsetzt. Dieser Kernel muss zunächst auf der Hardware installiert werden.
==== 1. Zuerst ubuntu-server 10.04 LTS installieren ====
**Hinweis:** Unter ubuntu 12.04 verläuft die Installation anders als hier beschrieben!
* Den Server z.B. den Namen "ubuntuserver" geben, so dass die paedML später problemlos "server" genannt werden kann.
* Zusätzlich das Paket "**''openSSH Server''**" bei der Installation auswählen.
* Den Server mit LVM installieren, so dass später für jede virtuelle Maschine eine Logical-Volume-Disk verwendet werden kann: ''**Geführt -> ganze Platte + LVM**''
* ''**Nutzender Anteil: 50 GB von insgesamt 500 GB**'' (diese 50GB sind für den ubuntuserver selbst)
Nach Installation empfiehlt es sich dem user root ein Passwort zu geben, so dass man sich danach als root direkt anmelden kann:
# sudo passwd root
Nach der Installation kann man prüfen, ob der Prozessor Virtualisierungsbefehle unterstützt:
# egrep -c '(vmx|svm)' /proc/cpuinfo
Dieser Befehl sollte als Ausgabe die Zahl 1 oder größer liefen, so dass ein oder mehrere Prozessorkerne mit Virtualisierungserweiterungen vorhanden sind.
Die externe IP des ubuntu-Servers im DSL-Router-Netz ist im Folgenden 192.168.200.110. Mit dieser IP kann man nun den Ubuntu-Server per ssh oder später per Web-Interface von ConVirt kontaktieren.
==== 2. KVM installieren ====
Zunächst als root anmelden.
# apt-get update
# apt-get dist-upgrade
# apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
# apt-get install kvm-pxe
Eingaben:
* Emailserver: nur lokal
Dabei wird neben KVM auch qemu und PXE für LINBO installiert. Qemu stellt die gesamte virtuelle Hardware zur Verfügung.
==== 3. ConVirt installieren ====
Quellen in der Datei **''/etc/apt/sources.list''** freigeben:
deb http://archive.canonical.com/ubuntu lucid partners
deb-src http://archive.canonical.com/ubuntu lucid partners
und dann die Pakete installieren:
# apt-get update
# apt-get install convirt2 convirture-tools
# apt-get install ssh kvm socat dnsmasq uml-utilities lvm2 expect
Eingaben:
* kein neues mysql-root-Passwort (mehrfach)
==== 4. ConVirt setup ====
ConVirt im Webbrowser aufrufen. Benutzer und Erst-Kennwort lauten beide "admin".
http://192.168.200.110:8081
Nun einen Server hinzufügen mit "Add Server" und folgenden Punkten:
* Platform: KVM
* Host: 192.168.200.110
Für die Netzwerkeinrichtung sollte man nachfolgende Datei passend editieren und __nicht__ ein automatisches Setuptool verwenden wie z.B. **''"convert-tool"''**.
==== 5. Netzwerk einrichten ====
Das Netzwerk wird in der Datei **''/etc/network/interfaces''** eingerichtet.\\ Unser Ubuntu-Server hatte drei Netzwerkkarten:
| eth0 | Verbunden mit DSL-Router | Management-Interface für den ubuntuserver |
| eth1 | Verbunden mit internem Switch | für grünes Netz des IPCop |
| eth2 | Verbunden mit DSL-Router | für rotes Netz des IPCop |
Weitere Netzwerkkonfigurationen und Hinweise siehe -> [[anwenderwiki:vlan:kvm-virtuelles-netzwerk|KVM virtuelle Netzwerke]]
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.200.110
netmask 255.255.255.0
network 192.168.200.0
broadcast 192.168.200.255
gateway 192.168.200.1
# IPCop Green
auto eth1
iface eth1 inet manual
auto br1
iface br1 inet manual
bridge_ports eth1
bridge_fd 0
bridge_stp yes
bridge_maxwait 0
# IPCop Red
auto eth2
iface eth2 inet manual
auto br2
iface br2 inet manual
bridge_ports eth2
bridge_fd 0
bridge_stp yes
bridge_maxwait 0
Die Namensgebung "br1" bzw "br2" ist dabei frei.\\ "br1" ist dann eigentlich ein Switch, an dem die Netzwerkkarte "eth1" eingesteckt ist. In den Switch "br1" werden schließlich auch alle Netzwerkinterfaces der virtuellen Maschinen "eingesteckt", die mit dem grünen Netz verbunden werden sollen.
==== 6. Virtuelle Maschinen erzeugen ====
Im folgenden arbeitet man am besten an einem PC, an dem man sowohl per Browser-Web-Gui Convirt konfiguriert als auch mit einem VNC-Viewer auf die Konsolen der virtuellen Maschinen Zugriff hat. Dieser PC muss sich im Netz des DSL-Routers 192.168.200.0 befinden.
Zunächst muss das Iso der paedML-Installations-CD auf den Ubuntu-Server am besten unter **''/var/cache/convirt/''** abgelegt werden.
Als virtuelle Festplatten werden hier aus Performancegründen LVs verwendet, die Convirt in der Volume-Group (hier "ubuntu") selbst anlegt.
Das Web-Interface von ConVirt ist erreichbar unter:
http://192.168.200.110:8081/
Nun den Punkt "Provision Virtual Machine" aufrufen.\\ **Achtung:** Alle Optionen am Stück konfigurieren, da das nachträgliche Verändern der Settings nicht bei allen Optionen möglich ist.
=== Unsere Einstellungen: ===
^ IPCop ^ Guest OS | Linux - Debian | | |
^ ^ Speicher | 512 MB | | |
^ ^ Storage | **Festplatte** | Options | Create New Disk |
^ ^ | | Type | Logical Volume |
^ ^ | | Location | /dev/ubuntu/$VM_NAME.disk.xm |
^ ^ | | VM-Device | hda (ide) |
^ ^ | **CD-Rom** | Options | Use Iso File |
^ ^ | | Type | Select Iso |
^ ^ | | Location | /var/cache/convirt/paedML.iso |
^ ^ | | VM-Device | hdc: CD-Rom |
^ ^ Netzwerk | eth0 | verbunden mit br1 - für green | |
^ ^ | eth1 | verbunden mit br2 - für red | |
^ ^ Miscellaneous | apic, acpi | 0, 0 | |
^ paedML ^ Guest OS | Linux - Debian | | |
^ ^ Speicher | 3072 MB | | |
^ ^ Storage | **Festplatte** | Options | Create New Disk |
^ ^ | | Type | Logical Volume |
^ ^ | | Location | /dev/ubuntu/$VM_NAME.disk.xm |
^ ^ | | VM-Device | vda (virtio) |
^ ^ | **CD-Rom** | Options | Use Iso File |
^ ^ | | Type | Select Iso |
^ ^ | | Location | /var/cache/convirt/paedML.iso |
^ ^ | | VM-Device | hdc:CD-Rom |
^ ^ Netzwerk | eth0 | verbunden mit br1 - für green | virtio |
^ ^ Miscellaneous | apic,acpi | 1, 1 | |
==== 7. Virtuelle Server-Maschinen installieren ====
=== IPCop ===
IPCop auf Booten von CD-Rom umstellen und die Maschine starten. Das Grüne Interface wird dabei automatisch auf die ersten Netzwerkarte gesetzt, dies ist leider im Setup nicht umzukonfigurieren. Das Rote Interface so konfigurieren, als wäre es direkt mit dem DSL-Router verbunden, z.B. mit static - IP 192.168.200.111. Ansonsten alles wie im Administrator-Handbuch beschrieben.\\
Ggf. ein notwendiges Vertauschen der Netzwerkkarten-Zuordnung (br0 <-> br1) mit dem Web-Interface von ConVirt durchführen.
=== paedML Server ===
paedML auf Booten von CD-Rom umstellen und die Maschine starten. Installation wie im Administrator-Handbuch. Dabei die "gesamte Platte" verwenden und __kein__ LVM, das ist in einer virtuellen Maschine nicht notwendig.
==== 8. Virtuelle Client-Maschinen ====
Die Installations-Iso von WinXP, Ubuntu, Win7 ... unter **''/var/cache/convirt/''** ablegen.
^ Win7 ^ Guest OS | Windows - Windows 7 | | |
^ ^ Speicher | 3072 MB | | |
^ ^ Storage | Options | Create New Disk | |
^ ^ | Type | Logical Volume | |
^ ^ | Location | /dev/ubuntu/$VM_NAME.disk.xm | |
^ ^ | VM-Device | hda | Win7 bootet nicht von vda,\\ spätere Umstellung ist aber möglich\\ dazu muss vitio-Treiber installiert werden |
^ ^ Netzwerk | rtl8139 | verbunden mit br1 - für green | |
^ ^ Miscellaneous | apic,acpi | 1, 1 | notwendig |
^ ^ | boot | n | |
==== 9. Erweiterungen ====
Auf dem Ubuntu-Server kann ein NFS-Share gemountet werden (z.B. /abc vom nasserver), das man dann an die virtuellen Maschinen weiterreicht:
# apt-get install nfs-client
# mount -t nfs nasserver:/abc /mnt/abc
Genaues Vorgehen ??? ... bin noch am testen ...
==== 10. Fehlersuche ====
Status der Bridges abrufen:
# brctl show
Virtuell laufende Maschine aufrufen: **PROBLEM:** die ConVirt-Maschinen erscheinen hier nicht!
# virsh list
\\
----
Volume Group auflisten:
# vgscan
Ausgabe:
Found Volume Group "ubuntu".
\\
----
Logical-Volume auflisten:
# lvscan
Ausgabe:
ACTIVE /dev/ubuntu/root 50GB inherit
ACTIVE /dev/ubuntu/swap_1 2GB inherit
ACRIVE /dev/ubuntu/ipcop.disk.xm 10GB inherit
ACTIVE /dev/ubuntu/paedml.disk.xm 300GB inherit
\\