Benutze ich virtio für meinen KVM-Gast?


7

Wenn ich in einem meiner KVM-Gäste den folgenden Befehl eingegeben habe, wird Folgendes angezeigt

/sbin/lsmod | grep vi
virtio_balloon          3692  0 

Bedeutet das also, dass ich virtio benutze?

Aktualisieren:

Wenn ich tippe

cat "/boot/config-`uname -r`" | grep -i vir

Ich kann es sehen

CONFIG_PARAVIRT_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_PARAVIRT_CLOCK=y
# CONFIG_PARAVIRT_DEBUG is not set
CONFIG_VIRT_TO_BUS=y
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
# CONFIG_FB_VIRTUAL is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_VIRTUALIZATION=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=m

Hört sich so an, als würde ich bereits Virtio verwenden?

Antworten:


6

KVM bietet Paravirtualisierungstreiber für mehrere Hardware-Bits. Dieser besondere ist der Memory-Ballon-Treiber.

Insbesondere sollten Sie sehen, virtio_netwann Sie die virtio-Netzwerktreiber und virtio_blkden Blockgerätetreiber (Festplattentreiber) verwenden. Und im letzteren Fall wäre Ihre Festplatte /dev/vdastattdessen /dev/sda.

In Ihrem Fall werden die virtio-Festplatten- und Netzwerktreiber im Kernel kompiliert und nicht als Module, sodass Sie sie nicht sehen würden lsmod.

CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y

Einige andere weniger wichtige virtio-Treiber sind ebenfalls auf Ihrem System vorhanden und werden direkt in den Kernel kompiliert (z. B. VIRTIO_PCI, der paravirtualisierte PCI-Bus).


Aus irgendeinem Grund weiß ich nicht, dass der Speicherballon eines der wenigen (3?) Geräte ist, die Teil einer KVM-Konfiguration sein müssen. Daher ist es sinnvoll, dass das Modul immer geladen ist.
Hauke ​​Laging

7

Wie Sie sehen können, haben Sie:

CONFIG_VIRTIO_BALLOON=m

Dies bedeutet, dass es als Modul kompiliert und somit über lsmod sichtbar ist. Darüber hinaus haben Sie:

CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y

Dies bedeutet, dass sie im Kernel kompiliert werden und daher von lsmod nicht gemeldet werden.

Ihr Gast hat also die virtio-Treiber für:

  • blk: Geräte blockieren, auch bekannt als Festplatten;
  • Netz: Netzwerkgeräte;
  • Ballon: Speicherballon, die Tatsache, dass Sie Ihrem gesamten Gast einen maximalen Gesamtspeicher zuweisen können, der größer ist als der physische Hostspeicher. Dies funktioniert natürlich, solange nicht alle Gäste ihr gesamtes Gedächtnis verbrauchen. KVM verwendet den ungenutzten Speicher eines Gastes, um einen anderen anspruchsvolleren Gast, auch bekannt als Ballon, zu füttern.
  • pci: Ich denke, PCI-Passthrough-Unterstützung, obwohl ich nicht sicher bin. Mit VirtualBox verwenden Ethernet-Controller, die dem Gast ausgesetzt sind, diesen Treiber anstelle des virtio_net-Treibers.
  • Konsole: Sie können eine serielle Konsole in KVM konfigurieren. Dies kann über eine virsh concole-Domäne erfolgen. Eine großartige Funktion (für Linux-Gäste). Sie haben auch ohne VNC (also mit minimaler Bandbreite und verfügbarem C & P) nahezu vollständigen Zugriff auf die VM, wenn das Netzwerk abgestürzt ist, wodurch der SSH-Zugriff verhindert wird.
  • Ring: Ich weiß nicht was das ist

1
Ich habe meine Antwort zu einem Community-Wiki gemacht, damit Sie Informationen über den virtio_console-Treiber hinzufügen können :) und andere könnten das für den Rest tun.
Huygens
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.