Como habilitar o virtio no Virtualbox?

3

Minha VM (Ubuntu 12.04) tem duas interfaces de rede conectadas, que são reconhecidas como eth0 e eth1 .

Agora eu quero mudar as placas para o virtio para melhorar o desempenho, então eu abro configurações da VM e altero os tipos de ambos os adaptadores para Paravirtualized Network (virtio-net)

Mas após a reinicialização, o desempenho parece ser o mesmo, para não dizer muito mais lento, e quando eu verifiquei o ifconfig output, há outra interface virbr0 além de eth0 e eth1 .

Eu achei que mudar o tipo no VirtualBox fará com que eth0 e eth1 se tornem um adaptador de virtio. Isso foi posteriormente confirmado por algumas páginas que encontrei na internet. Eles disseram que apenas mudar o tipo de adaptador é suficiente e a velocidade será melhorada imediatamente. Mas no meu caso não é.

Como configurar os adaptadores para que funcione?

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 como virtio_net

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

O atual kernel Linux vmdev 3.2.0-124-generic #167-Ubuntu SMP Fri Mar 3 15:26:21 UTC 2017 i686 i686 i386 GNU/Linux . Existe alguma opção que eu preciso 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 regenerar o endereço MAC do adaptador

Eu fiz muitos testes com iperf e os resultados com o adaptador Intel PRO / 1000 variam em torno de 250-350Mbps, enquanto os resultados com virtio-net card sempre ficam entre 100-150Mbps, muito abaixo das minhas expectativas. Então eu estou voltando para o cartão e1000 agora até que uma solução seja encontrada.

Eu vi alguns possíveis problemas relacionados na internet, mas não há como resolver até agora

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 o Intel 1000

    
por phuclv 17.03.2017 / 12:52

1 resposta

0

Manual Capítulo 6. Rede virtual :

The "Paravirtualized network adapter (virtio-net)" is special. If you select this, then VirtualBox does not virtualize common networking hardware (that is supported by common guest operating systems out of the box). Instead, VirtualBox then expects a special software interface for virtualized environments to be provided by the guest, thus avoiding the complexity of emulating networking hardware and improving network performance. Starting with version 3.1, VirtualBox provides support for the industry-standard "virtio" networking drivers, which are part of the open-source KVM project.

    
por 17.03.2017 / 12:54