Virtualisierung auf dem minad.de Server

Erstellen/Nutzen der Virtuellen Maschinen

auf der Shell

Erstellen einer VM

sudo virt-install -n user-vmname -r 500 --cpu host --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=virtio26 --disk /var/lib/libvirt/images/user-vmname.img,device=disk,bus=virtio,size=2,sparse=false,format=raw -w network=default,model=virtio --graphics spice,listen=127.0.0.1,port=61234 --video qxl --channel spicevmc --noautoconsole --location http://ftp.de.debian.org/debian/dists/unstable/main/installer-amd64/

  • -n -> Name der VM
  • -disk -> Image wird angelegt beim erstellen der VM, die größe ist mit size=1 angegeben, in Gigabyte
  • --graphics vnc,listen=127.0.0.1,port=9999999 -> port immerwieder neu setzen, am besten im hohen 60000er bereich
  • --location -> statt nem iso wird über netz gebootet. Im Beispiel wird Debian testing genommen, andere URLs siehe: Fedora/Red Hat Based http://ftp.uni-kl.de/pub/linux/fedora/linux/releases/16/Fedora/x86_64/os/

Debian/Ubuntu http://ftp.de.debian.org/debian/dists/unstable/main/installer-amd64/

Suse http://download.opensuse.org/distribution/openSUSE-current/repo/oss/

Verbinden mit dem VNC client

  • Den Port der VNC verbindung von minad auf den Rechner leiten ( SSH ;) )
  • Um die Umstände in Zukunft zu vermeiden, Portforwarding nutzen

mit dem virt-manager

Der virt-manager ist eine GUI die sowohl lokale als auch remote laufende Hypervisor verwalten kann.

Einrichten der Verbindung

virtmanager_wiki1

virtmanager_wiki2

Erstellen einer VM

Forwarding für die NAT-Netzwerkverbindung

(iptables -I FORWARD -m state -d 192.168.100.1/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT) wird beim Systemstart automatisch gesetzt. iptables -t nat -I PREROUTING -p tcp --dport 65022 -j DNAT --to-destination 192.168.100.78:22

Das Gastsystem hat in dem Fall die IP 192.168.100.78, Dienst ist in dem Fall ssh :) Die erste Zeile ist für das Forwarding von Paketen auf die virbr0 (hat die IP 192.168.100.1, siehe "ip addr show")

Bisherige Forwards

VM-hostname (IP) Anwendung Port
brot-vgentoo (192.168.100.183) rtorrent 10797-10799 + udp:10797
brot-vgentoo (192.168.100.183) ssh 10722
brot-torvm (192.168.100.190) ssh 59022(->22)
brot-torvm (192.168.100.190) tor 59030,59001
brot-pyhole-ircbot (192.168.100.231) ssh 60022(->22)
brot-owncloud (192.168.100.161) ssh 61022(->22)
brot-owncloud (192.168.100.161) ssh 61080(->61080)
brot-webpy-dev (192.168.100.217) ssh 62022(->22)
brot-webpy-dev (192.168.100.217) http 62080(->80)
brot-webpy-dev (192.168.100.217) https 62443(->443)
## verwendete Software

Zur Virtualisierung wird KVM und die damit zusammenhängenden Tools verwendet :) Das heisst im Endeffekt

  • KVM virtualisiert die CPU
  • Qemu kümmert sich um den Rest der Hardware
  • Libvirt (daemon) als Interface um die VM's zu verwalten

Qemu ist mit SPICE Support kompiliert. Dadurch lassen sich die VMs auch im graphischen Modus recht ordentlich bedienen