KVM
Installation
Vorbereitung
Testen ob VT Unterstützung der CPU vorhanden ist
egrep -c '(vmx|svm)' /proc/cpuinfo
0 bedeutet keine Unterstützung 1 (oder mehr) Unterstützung vorhanden
Basis Pakete
aptitude install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virtinst
Verifizieren der Installation
virsh -c qemu:///system list Id Name Status ----------------------------------
Installation des Virtmanagers(GUI)
apt-get install virt-manager
Installation des qemu Pakets
apt-get install qemu
Installation des Linux capabilities tools
apt-get install libcap2-bin
Vergeben der CAP_NET_ADMIN Fähigkeit
setcap cap_net_admin=ei /usr/bin/qemu-system-*
Erlauben der Beerchtigung für den Adminuser
echo cap_net_admin xinux >> /etc/security/capability.conf
Netzwerk mit Bridgefunktion
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.240.101 netmask 255.255.240.0 gateway 192.168.240.100 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
Damit libvirt-bin automatisch start muss man in der Datei /etc/default/libvirt-bin die Option start_libvirtd auf "yes" setzen.
vi /etc/default/libvirt-bin start_libvirtd="yes"
Domain-Installation
virt-install --connect qemu:///system --name orion --ram 1024 --disk path=/dev/data/orion \ --cdrom /isos/ubuntu-10.04-server-amd64.iso --vnc --noautoconsole --os-type linux --accelerate --network=bridge:br0
--name Name der Domain
--disk Diese Images werden in die Domain eingebunden. Es können mehrere Disks eingebunden werden, sowie weitere Optionen getrennt mit Leerzeichen gemacht werden.
--ram Zu Verfügung stehender Arbeitspeicher der Domain
--os-type linux, windows, solaris etc.
--os-variant ubuntukarmic, winxp etc.
--hvm Gebraucht full virtualization.
--accelearte Benutze kvm oder KQEMU, wenn vorhanden.
--import Die Installation ist bereits im Disk-Image enthalten.
--vnc Aktiviert VNC-Display und öffnete einen beliebigen Port >5000, falls nicht --vncport angegeben ist.
--vncport Setzt den Port für VNC fest.
Domain-Administration
virsh
- help Hilfe ausgeben
- attach-device Gerät aus einer XML-Datei anhängen
- attach-disk Plattengerät anhängen
- attach-interface Netzwerkschnittstelle verbinden
- autostart Eine Domain automatisch starten
- capabilities Fähigkeiten
- cd change the current directory
- connect (Wieder)verbinden mit Hypervisor
- console Verbindung mit der Gast-Konsole
- cpu-baseline compute baseline CPU
- cpu-compare compare host CPU with a CPU described by an XML file
- create Eine Domain aus einer XML-Datei erstellen
- start Eine (zuvor definierte) inaktive Domain starten
- destroy Domain löschen
- detach-device Gerät von einer XML-Datei lösen
- detach-disk Plattengerät abtrennen
- detach-interface Netzwerkschnittstelle abhängen
- define Definiere (aber starte keine) Domain aus einer XML-Datei
- domid Einen Domain-Namen oder -UUID in Domain-ID konvertieren
- domuuid Einen Domain-Namen oder -ID in Domain-UUID konvertieren
- dominfo Domain-Informationen
- domjobinfo domain job information
- domjobabort abort active domain job
- domname Eine Domain-ID oder UUID in Domain-Namen konvertieren
- domstate Domain-Status
- domblkstat Geräteblockstatistiken für eine Domain abrufen
- domifstat Statistiken der Netzwerkschnittstelle für eine Domain abrufen
- dommemstat get memory statistics for a domain
- domblkinfo domain block device size information
- domxml-from-native Convert native config to domain XML
- domxml-to-native Convert domain XML to native config
- dumpxml Domain-Informationen in XML
- edit edit XML configuration for a domain
- find-storage-pool-sources discover potential storage pool sources
- find-storage-pool-sources-as find potential storage pool sources
- freecell NUMA freier Speicher
- hostname Hypervisor-Hostname ausgeben
- list Domains auflisten
- migrate Domain auf anderen Host migrieren
- migrate-setmaxdowntime set maximum tolerable downtime
- net-autostart Ein Netzwerk automatisch starten
- net-create Netzwerk aus einer XML-Datei erstellen
- net-define Definiere (aber starte kein) Netzwerk aus einer XML-Datei
- net-destroy Netzwerk löschen
- net-dumpxml Netzwerk-Informationen in XML
- net-edit edit XML configuration for a network
- net-list Netzwerke auflisten
- net-name Eine Netzwerk-UUID in einen Netzwerk-Namen konvertieren
- net-start Ein (zuvor definiertes) inaktives Netzwerk starten
- net-undefine Ein inaktives Netzwerk undefinieren
- net-uuid Einen Netzwerk-Namen in eine Netzwerk-UUID konvertieren
- iface-list list physical host interfaces
- iface-name convert an interface MAC address to interface name
- iface-mac convert an interface name to interface MAC address
- iface-dumpxml interface information in XML
- iface-define define (but don't start) a physical host interface from an XML file
- iface-undefine undefine a physical host interface (remove it from configuration)
- iface-edit edit XML configuration for a physical host interface
- iface-start start a physical host interface (enable it / "if-up")
- iface-destroy destroy a physical host interface (disable it / "if-down")
- managedsave managed save of a domain state
Migration zu neuem Host
virsh migrate --live <GuestName> <DestinationURL>
Beispiel:
# virsh migrate --live galactica qemu+ssh://test2.example.com/system
Autostart
virsh atutostart <domain> virsh atutostart <domain> --disable