Как включить virtio в Virtualbox?

Как включить virtio в Virtualbox?

Моя виртуальная машина (Ubuntu 12.04) имеет 2 подключенных сетевых интерфейса, которые распознаются как eth0и eth1.

Теперь я хочу сменить карты на virtio, чтобы улучшить производительность, поэтому я открываюНастройки ВМи измените типы обоих адаптеров наПаравиртуализированная сеть (virtio-net)

Но после перезагрузки производительность, похоже, осталась прежней, если не сказать, что стала намного медленнее, а когда я проверил ifconfigвывод, то увидел еще один virbr0интерфейс рядом с eth0и eth1.

Я думал, что изменение типа в VirtualBox сделает eth0и eth1станет адаптером virtio. Это позже подтвердилось несколькими страницами, которые я нашел в интернете. Они говорили, что достаточно просто изменить тип адаптера, и скорость сразу же улучшится. Но в моем случае это не так.

Как настроить адаптеры, чтобы все заработало?

Конфигурация выглядит следующим образом. eth0Это мост к внешней сети. eth1Это адаптер, работающий только на хосте.

$ 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)

Я запустил lsmod | grep virt, но никаких результатов не показано. insmodне показывает ничего virtio_netпохожего

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

Текущее ядро Linux vmdev 3.2.0-124-generic #167-Ubuntu SMP Fri Mar 3 15:26:21 UTC 2017 i686 i686 i386 GNU/Linux. Есть ли какие-либо параметры, необходимые для включения загрузки драйвера virtio?

В файле /etc/udev/rules.d/70-persistent-net.rulesтакже нет ничего, связанного с virtio, за исключением комментария, когда я повторно генерирую MAC-адрес адаптера.

Я провел много тестов iperf, и результаты с адаптером Intel PRO/1000 варьируются в пределах 250-350 Мбит/с, в то время как результаты с картой virtio-net всегда лежат в пределах 100-150 Мбит/с, что намного ниже моих ожиданий. Поэтому я сейчас переключаюсь обратно на карту e1000, пока не будет найдено решение.

Я видел в интернете несколько возможных связанных проблем, но пока не нашел способа их решить.


Редактировать:

Мой проект обновился до новой 64-битной виртуальной машины Ubuntu 14.04 ( 3.13.0-86-generic #131-Ubuntu SMP Thu May 12 23:33:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux), но результаты остались прежними. virtio по-прежнему намного медленнее Intel 1000

решение1

РуководствоГлава 6. Виртуальные сети:

"Паравиртуализированный сетевой адаптер (virtio-net)" является специальным. Если вы выберете его, VirtualBox не будет виртуализировать обычное сетевое оборудование (которое поддерживается обычными гостевыми операционными системами из коробки). Вместо этого VirtualBox ожидает, что гость предоставит специальный программный интерфейс для виртуализированных сред, что позволяет избежать сложности эмуляции сетевого оборудования и повысить производительность сети. Начиная с версии 3.1, VirtualBox обеспечивает поддержку стандартных сетевых драйверов "virtio", которые являются частью проекта KVM с открытым исходным кодом.

Связанный контент