Моя виртуальная машина (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 прямо сейчас, пока не будет найдено решение.
Я видел некоторые возможные проблемы в интернете, но до сих пор не смог решить
- https://getsatisfaction.cumulusnetworks.com/cumulus/topics/cumulus-vx-virtualbox-virtio-nic-slow
- https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1079212
- https://forums.virtualbox.org/viewtopic.php?f=7&t=26783
Редактировать:
Мой проект обновился до новой 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
virbr0
моста. Известно, что libvirt его создает.
virbr0
Интерфейс не создаются VirtualBox или Virtio внутрисетевого водителем. Вероятно, это результат установки libvirt. Кроме того, я бы не рассчитывал, что virtio-net сделает вещи быстрее. Реализация VirtualBox может быть просто дерьмом.