Como seleccionar a interface de paravirtualização no VirtualBox?

Dado um sistema anfitrião Windows 8 (Intel Core i5) e um anfitrião Linux Fedora, gostaria de determinar a configuração ideal para a interface paravirtual.

As opções são

  • nenhum
  • Default
  • Legado
  • mínimo
  • Hyper-V
  • KVM

Esta página sugere que a selecção se baseia apenas no sistema de convidados:

A maior alteração no VirtualBox 5.0 é a introdução de apoio à paravirtualização, trazendo maior desempenho e precisão na manutenção do tempo para suportar os sistemas operativos dos hóspedes (Hyper-V on Windows e KVM no Linux).

Será isso correcto?

Solução

O Manual VirtualBox, na secção intitulada Provedores de Paravirtualização explica muito claramente quando cada um deles deve ser utilizado (ênfase acrescentada):

  • Minimal: Anuncia a presença de um ambiente virtualizado. Adicionalmente, relata a frequência do TSC e APIC ao sistema operativo convidado. Este fornecedor é obrigatório para a execução de qualquer sistema operativo Mac X convidados.

  • KVM: Apresenta uma interface KVM hipervisor Linux que é reconhecida pelos kernels Linux a partir da versão 2.6.25. A implementação VirtualBox's suporta actualmente relógios paravirtualizados e spinlocks SMP. Este fornecedor é recomendado para convidados Linux.

  • Hyper-V: Apresenta uma interface hipervisor Microsoft Hyper-V que é reconhecida pelo Windows 7 e por sistemas operativos mais recentes. A implementação VirtualBox's suporta actualmente relógios paravirtualizados, relatórios de frequência APIC, depuração de convidados, relatórios de crash de convidados e verificações de temporizadores relaxados. Este fornecedor é recomendado para convidados Windows.

As outras opções no drop down fazem o seguinte, como explicado nos vboxmanage docs:

  • **Nenhum***: Especificar none desliga explicitamente a exposição de qualquer interface de paravirtualização.

    • **Padrão***: A opção "por defeito", escolherá uma interface apropriada dependendo do tipo de SO convidado enquanto se inicia a VM. Esta é a opção por defeito escolhida durante a criação de novas VMs.
  • **Legacy***: A opção legacy é escolhida para VMs que foram criadas com versões mais antigas da VirtualBox e irá escolher uma interface de paravirtualização ao iniciar a VM com a VirtualBox 5.0 e mais recente.

Comentários (4)

Let's be more precise, porque eu tinha 4,3 VMs migrados, e esses são "legacy", também estava interessado em que configuração usar, se copio VM do Linux para o Windows ou vice versa:

--paravirtprovider none|default|default|legacy|minimal|hyperv|kvm: Esta configuração especifica qual a interface de paravirtualização a fornecer ao sistema operativo convidado.

  • Especificar nenhuma** explicitamente expõe qualquer interface de paravirtualização.
  • A opção default, escolherá uma interface apropriada dependendo do tipo de SO convidado enquanto se inicia o VM. Esta é a opção por defeito escolhida durante a criação de novas VMs. A opção legacy é escolhida para VMs que foram criadas com versões mais antigas da VirtualBox e escolherá uma interface de paravirtualização enquanto inicia a VM com a VirtualBox 5.0 e mais recente. O minimal fornecedor é mandatório para convidados Mac OS X, kvm - recomendado para convidados do Linux e hyperv - recommended para Convidados do Windows

Estas opções são explicadas em pormenor na Secção 10.4, "Paravirtualização de fornecedores".

Do capítulo 8 do manual.

Assim, se tiver actualizado o VirtualBox para a versão 5 no Linux, basta seleccionar kvm ou default, iniciar o VM e verificar se funciona correctamente. Se sim, basta deixar uma nova configuração.

Se migrar/movendo VMs de Linux para Windows, recomendo ter a opção default, o que faz uma selecção automática da melhor interface de virtualização.

Comentários (0)

Apenas mu a cêntimos, com base nos meus próprios testes.

Tinha testado com um convidado Windows 10, a correr num anfitrião Windows 10 e num anfitrião Linux (ou pelo menos eu tinha tentado).

Para não mencionar que todos os discos virtuais que utilizo são inmutáveis (para assegurar testes idênticos).

No windows 10 host, o hóspede corre normalmente (talvez um pouco lento), mas é mostrada a paravirtualização é "default".

Se eu tentar a mesma máquina virtual num host Linux com paravirtualização "default" o convidado do Windows 10 não arranca, arranca até os pontos se moverem em círculo, depois de algum tempo congela... não há forma de chegar ao login, nem ao desktop... lembre-se que todos os discos são inmutáveis.

Mas assim que eu colocar a paravirtualização no "Heredada" (está em espanhol) ele arranca e alcança a área de trabalho, mas às vezes (lembre-se que todos os discos são imutáveis) ele reinicia, enquanto outras vezes posso usá-lo (muito, muito lentamente)... por isso deve haver uma contição racial em algum lugar, sinve com discos imutáveis que não faz sempre o mesmo.

Ah, a propósito, o convidado do Windows não tem acesso à Internet para ter a certeza de que nenhuma ligação à Internet pode fazer as coisas funcionarem de forma diferente entre botas frias.

Lembre-se:

  • Todos os discos são inmutáveis
  • Todos são revertidos de volta em cada bota fria
  • O Windows guest não funciona sempre
  • Com paravirtualização no " por defeito" nem sequer arranca no anfitrião Linux, mas arranca bem no anfitrião Windows.
  • Com paravirtualização no "Heredada" arranca no anfitrião Linux (mas não é sempre estável para o deixar utilizar)

Também tinha tentado activar/desactivar 2D & 3D (também PAE/NX) porque quero que o mesmo convidado (discos rígidos virtuais copiados de um anfitrião para o outro) seja estável em dois anfitriões diferentes; também quero ser capaz de copiar discos rígidos virtuais de um anfitrião para outro anfitrião depois de fazer qualquer actualização (antes de fazer um arranque a frio, fundir disco inmutável com o seu pai para fazer alterações permanentes e não se perder, também conhecido como CloneVDI); não uso instantâneos, apenas discos inmutáveis.

É o que eu tinha visto, tenho de fazer mais testes com outros valores de paravirtualização, para o caso de qualquer um trabalhar melhor no anfitrião Linux. Eu não uso MAC, nem OS/2, apenas Windows host e Linux host (ambos host estão em hardware físico diferente).

VERSÃO: Windows 10 guest é HOME 64Bits e a versão é 1809.17763.379

Espero que isto ajude outros, teste & teste & volte a testar (melhor com discos inmutáveis) qualquer combinação de valores até encontrar uma combinação que funcione, parece ser a única maneira de fazer um convidado correr em diferentes tipos de anfitriões (Windows/Linux)!!!

Comentários (0)