Wie aktiviere ich Virtio in Virtualbox?

Wie aktiviere ich Virtio in Virtualbox?

An meine VM (Ubuntu 12.04) sind 2 Netzwerkschnittstellen angeschlossen, die als eth0und erkannt werden eth1.

Jetzt möchte ich die Karten auf Virtio umstellen, um die Leistung zu verbessern, also öffne ichVM-Einstellungenund ändern Sie die Typen beider Adapter inParavirtualisiertes Netzwerk (virtio-net)

Aber nach dem Neustart scheint die Leistung dieselbe zu sein, um nicht zu sagen, dass sie sogar viel langsamer ist, und als ich ifconfigdie Ausgabe überprüft habe, gab es neben und eine andere virbr0Schnittstelle .eth0eth1

Ich dachte, dass durch Ändern des Typs in VirtualBox ein Virtio-Adapter erstellt wird eth0. eth1Dies wurde später durch einige Seiten bestätigt, die ich im Internet fand. Dort hieß es, dass es ausreicht, nur den Adaptertyp zu ändern, und die Geschwindigkeit sofort verbessert wird. In meinem Fall ist das aber nicht der Fall.

Wie konfiguriere ich die Adapter, damit es funktioniert?

Die Konfiguration sieht folgendermaßen aus: eth0ist eine Brücke zum externen Netzwerk. eth1ist ein Host-Only-Adapter

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:62:0d:bd
          inet addr:10.184.130.70  Bcast:10.184.130.255  Mask:255.255.240.0
          inet6 addr: fe80::a00:27ff:fe64:dbd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:411321 errors:0 dropped:2 overruns:0 frame:0
          TX packets:118875 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:298154310 (298.1 MB)  TX bytes:65017532 (65.0 MB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:9d:6b:df
          inet addr:172.17.0.6  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fe8d:6bdf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12445 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13566 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1275663 (1.2 MB)  TX bytes:8705940 (8.7 MB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8538 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8538 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2286738 (2.2 MB)  TX bytes:2286738 (2.2 MB)

virbr0    Link encap:Ethernet  HWaddr 76:ee:57:37:78:7c
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Ich habe es versucht lsmod | grep virt, aber es wird kein Ergebnis angezeigt. insmodzeigt nichts wie virtio_netentweder

$ insmod virt<tab><tab>
virtio_balloon  virtio_console  virtio_mmio     virtio-rng      virtual

Der aktuelle Kernel Linux vmdev 3.2.0-124-generic #167-Ubuntu SMP Fri Mar 3 15:26:21 UTC 2017 i686 i686 i386 GNU/Linux. Gibt es Optionen, die ich brauche, um das Laden des Virtio-Treibers zu aktivieren?

Die Datei /etc/udev/rules.d/70-persistent-net.ruleszeigt auch nichts im Zusammenhang mit Virtio, außer im Kommentar, wenn ich die MAC-Adresse des Adapters neu generiere

Ich habe viele Tests durchgeführt iperfund die Ergebnisse mit dem Intel PRO/1000-Adapter schwanken um 250-350 Mbit/s, während die Ergebnisse mit der Virtio-Net-Karte immer zwischen 100-150 Mbit/s liegen, weit unter meinen Erwartungen. Daher wechsle ich jetzt wieder zur e1000-Karte, bis eine Lösung gefunden ist.

Ich habe im Internet einige mögliche verwandte Probleme gesehen, aber bisher keine Möglichkeit, sie zu lösen


Bearbeiten:

Mein Projekt wurde auf eine neue 64-Bit Ubuntu 14.04 VM () aktualisiert, 3.13.0-86-generic #131-Ubuntu SMP Thu May 12 23:33:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linuxaber die Ergebnisse sind immer noch dieselben. Virtio ist immer noch viel langsamer als Intel 1000

Antwort1

HandbuchKapitel 6. Virtuelle Netzwerke:

Der „Paravirtualisierte Netzwerkadapter (virtio-net)“ ist etwas Besonderes. Wenn Sie diesen auswählen, virtualisiert VirtualBox keine gängige Netzwerkhardware (die von gängigen Gastbetriebssystemen standardmäßig unterstützt wird). Stattdessen erwartet VirtualBox dann, dass vom Gast eine spezielle Softwareschnittstelle für virtualisierte Umgebungen bereitgestellt wird. Dadurch wird die Komplexität der Emulation von Netzwerkhardware vermieden und die Netzwerkleistung verbessert. Ab Version 3.1 bietet VirtualBox Unterstützung für die branchenübliche „virtio“-Netzwerktreiber, die Teil des Open-Source-KVM-Projekts sind.

verwandte Informationen