Como habilitar o virtio no Virtualbox?

Como habilitar o virtio no Virtualbox?

Minha VM (Ubuntu 12.04) possui 2 interfaces de rede anexadas, reconhecidas como eth0e 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 ifconfiga saída, há outra virbr0interface ao lado eth0de e eth1.

Achei que mudar o tipo no VirtualBox faria eth0e eth1se 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. insmodnão mostra nada virtio_netparecido

$ 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.rulestambé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 iperfe 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


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.

informação relacionada