{{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 \\