Zuerst müssen einige Pakete installiert werden:
# yum install libpciaccess-devel device-mapper-devel libxml2-devel python-devel libnl-devel
Libvirt Code runterladen, entpacken, konfigurieren, kompilieren:
cd /usr/src wget http://libvirt.org/sources/libvirt-1.0.6.tar.gz tar xzfv libvirt-1.0.6.tar rm libvirt-1.0.6.tar cd libvirt-1.0.6 ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc make -j9 make install ldconfig
Libvirt kann nun gestartet und zum Autostart hinzugefügt werden:
# service libvirtd start
# chkconfig libvirtd on
Das ganze für Qemu:
yum install glib2-devel autoconf automake libtool cd /usrc/src wget http://wiki.qemu-project.org/download/qemu-1.4.2.tar.bz2 tar xzfv qemu-1.4.2.tar rm qemu-1.4.2.tar.bz2 cd qemu-1.4.2.tar ./configure make make install
Nun können neue VMs erstellt werden. Es muss beachtet werden das als Emulator /usr/local/bin/qemu-system-x86_64 eingetragen wird.
####################
Mögliche Fehler:
1) Sofern libvirtd folgende Fehlermeldung liefert(/var/log/libvirt/libvirtd.log):
error : virJSONValueToString:1150 : internal error No JSON parser implementation is available
muss ein json Parser nachinstalliert werden:
yum install yajl-devel
Danach muss erneut das configure, make und make install für libvirt ausgeführt werden. Beim configue muss man --with-yajl
anhängen.
2) Probleme mit Zugriffsrechten:
sollte man unerklärbare Fehlermeldungen bezüglich Zugriffsrechten bekommen (access denied for /var/…) hilft es libvirt mit einer bestimmten Usergruppe für Qemu zu konfigurieren. Dazu hängt man an den configure Befehl --with-qemu-user=qemu --with-qemu-group=qemu
an.
Nach einem make und make install muss noch ein chown root:kvm /dev/kvm
ausgeführt werden, danach sind die Zugriffsprobleme verschwunden. Damit die Zugriffsrechte auch nach einem reboot passen muss in die Datei /lib/udev/rules.d/65-kvm.rules
mit folgendem Inhalt erstellt werden:
KERNEL=="kvm", GROUP="kvm", MODE="0660"
3) Libvirt kann qemu-kvm nicht finden
Erhalt man beim Befehl virsh version
folgende Ausgabe:
virsh version Compiled against library: libvirt 1.0.6
Using library: libvirt 1.0.6
Verwende API: QEMU 1.0.6
Fehler: Abruf der Hypervisorversion scheiterte
Fehler: Interner Fehler Geeigneter Emulator für x86_64 konnte nicht gefunden werden
liegt es höchstwahrscheinlich daran das neuere Vanilla Versionen von qemu-kvm (die originalen Versionen der Entwickler, ohne Patches irgendwelcher Distributionen) sich unter /usr/local/bin/qemu-system-x86_64
ablegen, libvirt aber unter /usr/bin/qemu-kvm
sucht. Dies lässt sich mit einem Symlink beheben:
ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu-kvm
Danach passt die Ausgabe wieder:
-bash-4.1# virsh version
Compiled against library: libvirt 1.0.6
Using library: libvirt 1.0.6
Using API: QEMU 1.0.6
Running hypervisor: QEMU 1.4.2
-bash-4.1#