
Minha VM (Ubuntu 12.04) possui 2 interfaces de rede anexadas, reconhecidas como eth0
e eth1
.
Agora quero mudar as cartas para virtio para melhorar o desempenho, então abroConfigurações de VMe altere os tipos de ambos os adaptadores paraRede Paravirtualizada (virtio-net)
Mas depois de reiniciar o desempenho parece ser o mesmo, para não dizer muito mais lento, e quando verifiquei ifconfig
a saída, há outra virbr0
interface ao lado eth0
de e eth1
.
Achei que mudar o tipo no VirtualBox faria eth0
e eth1
se tornaria um adaptador virtio. Isso foi posteriormente confirmado por algumas páginas que encontrei na internet. Disseram que basta mudar o tipo de adaptador e a velocidade melhorará imediatamente. Mas no meu caso não é.
Como configurar os adaptadores para que funcionem?
A configuração é assim. eth0
é uma ponte para a rede externa. eth1
é um adaptador somente host
$ 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)
Eu corri lsmod | grep virt
, mas nenhum resultado é mostrado. insmod
não mostra nada virtio_net
parecido
$ insmod virt<tab><tab>
virtio_balloon virtio_console virtio_mmio virtio-rng virtual
O kernel atual Linux vmdev 3.2.0-124-generic #167-Ubuntu SMP Fri Mar 3 15:26:21 UTC 2017 i686 i686 i386 GNU/Linux
. Preciso de alguma opção para ativar o carregamento do driver virtio?
O arquivo /etc/udev/rules.d/70-persistent-net.rules
também não mostra nada relacionado ao virtio, exceto no comentário quando eu regenero o endereço MAC do adaptador
Eu fiz muitos testes iperf
e os resultados com o adaptador Intel PRO/1000 variam em torno de 250-350Mbps enquanto os resultados com a placa virtio-net sempre ficam entre 100-150Mbps, muito abaixo das minhas expectativas. Então, estou voltando para o cartão e1000 agora até que uma solução seja encontrada.
Já vi alguns possíveis problemas relacionados na internet mas não há como resolver até agora
- 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
Editar:
Meu projeto foi atualizado para uma nova VM Ubuntu 14.04 de 64 bits ( 3.13.0-86-generic #131-Ubuntu SMP Thu May 12 23:33:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
), mas os resultados ainda são os mesmos. virtio ainda é muito mais lento que Intel 1000
Responder1
ManualCapítulo 6. Rede virtual:
O "adaptador de rede paravirtualizado (virtio-net)" é especial. Se você selecionar esta opção, o VirtualBox não virtualizará hardware de rede comum (que é compatível com sistemas operacionais convidados comuns prontos para uso). Em vez disso, o VirtualBox espera que uma interface de software especial para ambientes virtualizados seja fornecida pelo convidado, evitando assim a complexidade de emular hardware de rede e melhorar o desempenho da rede. A partir da versão 3.1, o VirtualBox fornece suporte para drivers de rede “virtio” padrão da indústria, que fazem parte do projeto KVM de código aberto.