libvirt Virtio-Module virtio virtio_pci virtio_ring virtio_net virtio_blk
(Link zu dieser Seite als [[QEMU-KVM-Buch/ Managementtools/ libvirt-Tools/ Virtio-Module]])
[bearbeiten] Virtio-Module für die Gast-Systeme
Virtio ist ein Paravirtualisierungs-Interface, mit dem nur ein Satz von Treibern für die Gast-Systeme entwickelt werden muss (siehe Abschnitt Paravirtualisierte Gerätetreiber). Diese Treiber können von mehreren Virtualisierungslösungen verwendet werden. Diese paravirtualsierten Gerätetreiber sind für Linux-Gast-Systeme mit einer Kernel-Version ab 2.6.25 verfügbar. Für die folgenden Beispiele wird mit vmbuilder eine virtuelle Maschine angelegt.
Host ~$ sudo vmbuilder kvm ubuntu \ --suite jaunty --flavour virtual \ --arch i386 -o --hostname 'urlaub' -o \ --mirror 'http://archive.ubuntu.com/ubuntu' \ --components 'main,universe' --addpkg 'openssh-server' \ --name 'ich' --user 'ich' --pass 'geheim' \ --libvirt qemu:///system
[bearbeiten] Paravirtualisierte Netzwerkkarten
Im Gast-System müssen dazu folgende Module geladen werden: virtio, virtio_pci, virtio_ring, virtio_net und virtio_blk. Dazu muss QEMU mit der Option -net nic und dem Parameter model=virtio gestartet werden. Die entsprechende Konfigurationsdatei ist anzupassen. In diesem Beispiel ist für die virtuelle Maschine urlaub die Datei /etc/libvirt/qemu/urlaub.xml mit der Zeile <model type='virtio'/> zu ergänzen, falls diese nicht existiert.
Host ~$ sudo vi /etc/libvirt/qemu/urlaub.xml
<interface type='network'>
<mac address='52:54:00:1d:2c:86'/>
<source network='default'/>
<model type='virtio'/>
</interface>
Diese Konfiguration muss der Bibliothek libvirt bekannt gemacht werden.
Host ~$ sudo virsh -c qemu:///system \
define /etc/libvirt/qemu/urlaub.xml
Connecting to uri: qemu:///system
Domain urlaub von /etc/libvirt/qemu/urlaub.xml definiert
Man bootet das Gast-System, zum Beispiel mit dem virt-manager, und loggt sich ein. Im Gast-System überprüft man, ob die Module geladen wurden.
Host ~$ ssh ich@urlaub. ich@urlaub.'s password: geheim Gast ~$ lsmod | grep virtio virtio_blk 16392 0 virtio_net 18432 0 virtio_pci 17668 0 virtio_ring 12928 1 virtio_pci virtio 14336 3 virtio_blk,virtio_net,virtio_pci
[bearbeiten] Paravirtualisierte Block-Devices
Um ein paravirtualisiertes Block-Devices zu nutzen, ist die Konfigurationsdatei /etc/libvirt/qemu/urlaub.xml wie folgt anzupassen. Die Zeile <target dev='hda' bus='ide'/> ist durch die Zeile <target dev='vda' bus='virtio'/> zu ersetzen.
<disk type='file' device='disk'>
<source file='/VMs/test/ubuntu-kvm/disk0.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
Diese Konfigurationsänderung muss der Bibliothek libvirt bekannt gemacht werden.
Host ~$ sudo virsh -c qemu:///system \
define /etc/libvirt/qemu/urlaub.xml
Connecting to uri: qemu:///system
Domain urlaub von /etc/libvirt/qemu/urlaub.xml definiert
Die virtuelle Maschine wird gestartet. Im Gast-System überprüft man, ob die entsprechenden Module geladen wurden.
Host ~$ ssh ich@urlaub. ich@urlaub.'s password: geheim Gast ~$ lsmod | grep virtio virtio_blk 16392 0 virtio_pci 17668 0 virtio_ring 12928 1 virtio_pci virtio 14336 3 virtio_blk,virtio_net,virtio_pci