qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz | Aktuelle Version

libvirt Virtio-Module virtio virtio_pci virtio_ring virtio_net virtio_blk

(Unterschied zwischen Versionen)(Link zu dieser Seite als [[QEMU-KVM-Buch/ Managementtools/ libvirt-Tools/ Virtio-Module]])

Version vom 17:25, 3. Feb. 2010 (bearbeiten)
Rowa (Diskussion | Beiträge)
K
← Zum vorherigen Versionsunterschied
Version vom 15:43, 11. Feb. 2010 (bearbeiten) (rückgängig)
Rowa (Diskussion | Beiträge)
K
Zum nächsten Versionsunterschied →
Zeile 4: Zeile 4:
=== Virtio-Module === === Virtio-Module ===
-Virtio ist ein Paravirtualisierungs-Interface, mit dem nur ein Satz von Gast-Treiber entwickelt werden muss. 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 ''ubuntu-vm-builder'' eine virtuelle Maschine angelegt. +Virtio ist ein Paravirtualisierungs-Interface, mit dem nur ein Satz von Gast-Treiber entwickelt werden muss. 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 ubuntu-vm-builder kvm intrepid --hostname 'urlaub' \'''+ Host ~$ '''sudo vmbuilder kvm ubuntu --suite jaunty --flavour virtual \'''
- '''--mirror 'http://archive.ubuntu.com/ubuntu' \'''+ '''--arch i386 -o --hostname 'urlaub' -o \'''
- '''--components 'main,universe' --addpkg 'openssh-server' \'''+ '''--mirror 'http://archive.ubuntu.com/ubuntu' \'''
- '''--name 'ich' --user 'ich' --pass 'geheim' \'''+ '''--components 'main,universe' --addpkg 'openssh-server' \'''
- '''--libvirt qemu:///system'''+ '''--name 'ich' --user 'ich' --pass 'geheim' \'''
 + '''--libvirt qemu:///system'''
==== Paravirtualisierte Netzwerkkarten ==== ==== 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 oder KVM 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 ''<nowiki><model type='virtio'/></nowiki>'' zu ergänzen. +Im Gast-System müssen dazu folgende Module geladen werden: ''virtio'', ''virtio_pci'', ''virtio_ring'', ''virtio_net'' und ''virtio_blk''. Dazu muss QEMU oder KVM 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 ''<nowiki><model type='virtio'/></nowiki>'' zu ergänzen, falls diese nicht existiert.
Host ~$ '''sudo vi /etc/libvirt/qemu/urlaub.xml''' Host ~$ '''sudo vi /etc/libvirt/qemu/urlaub.xml'''
Zeile 24: Zeile 25:
Diese Konfiguration muss der Bibliothek ''libvirt'' bekannt gemacht werden. Diese Konfiguration muss der Bibliothek ''libvirt'' bekannt gemacht werden.
- Host ~$ '''sudo virsh -c qemu:///system define \''' + Host ~$ '''sudo virsh -c qemu:///system \'''
- '''/etc/libvirt/qemu/urlaub.xml'''+ '''define /etc/libvirt/qemu/urlaub.xml'''
Connecting to uri: qemu:///system Connecting to uri: qemu:///system
Domain urlaub von /etc/libvirt/qemu/urlaub.xml definiert Domain urlaub von /etc/libvirt/qemu/urlaub.xml definiert
Zeile 41: Zeile 42:
==== Paravirtualisierte Block-Devices ==== ==== Paravirtualisierte Block-Devices ====
-Um ein paravirtualisiertes Block-Devices zu nutzen, ist die Konfigurationsdatei ''/etc/libvirt/qemu/urlaub.xml'' wie folgt anzupassen. Die Zeile ''<nowiki><target dev='hda' bus='ide'/></nowiki>'' ist durch die Zeile ''<nowiki><target dev='vda' bus='virtio'/></nowiki>'' zu ersetzen. +Um ein paravirtualisiertes Block-Devices zu nutzen ist die Konfigurationsdatei ''/etc/libvirt/qemu/urlaub.xml'' wie folgt anzupassen. Die Zeile ''<nowiki><target dev='hda' bus='ide'/></nowiki>'' ist durch die Zeile ''<nowiki><target dev='vda' bus='virtio'/></nowiki>'' zu ersetzen.
<nowiki><disk type='file' device='disk'></nowiki> <nowiki><disk type='file' device='disk'></nowiki>
Zeile 50: Zeile 51:
Diese Konfigurationsänderung muss der Bibliothek ''libvirt'' bekannt gemacht werden. Diese Konfigurationsänderung muss der Bibliothek ''libvirt'' bekannt gemacht werden.
- Host ~$ '''sudo virsh -c qemu:///system define \'''+ Host ~$ '''sudo virsh -c qemu:///system \'''
- '''/etc/libvirt/qemu/urlaub.xml'''+ '''define /etc/libvirt/qemu/urlaub.xml'''
Connecting to uri: qemu:///system Connecting to uri: qemu:///system
Domain urlaub von /etc/libvirt/qemu/urlaub.xml definiert Domain urlaub von /etc/libvirt/qemu/urlaub.xml definiert

Version vom 15:43, 11. Feb. 2010

<<<|###|>>> | English


Virtio-Module

Virtio ist ein Paravirtualisierungs-Interface, mit dem nur ein Satz von Gast-Treiber entwickelt werden muss. 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

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 oder KVM 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-Systems ü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

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-Systems ü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


<<<|###|>>>