¿Cómo seleccionar la interfaz de paravirtualización en VirtualBox?

89

Dado un sistema host de Windows 8 (Intel Core i5) y un host Linux Fedora, me gustaría determinar la configuración óptima para la interfaz paravirtual.

Las opciones son

  • ninguna
  • Defecto
  • Legado
  • mínimo
  • Hyper-V
  • KVM

Esta página sugiere que la selección solo se basa en el sistema invitado:

El mayor cambio en VirtualBox 5.0 es la introducción del soporte de paravirtualización, que brinda un mayor rendimiento y una mayor precisión de tiempo para los sistemas operativos invitados compatibles (Hyper-V en Windows y KVM en Linux).

¿Es eso correcto?

Principiante
fuente

Respuestas:

98

El Manual de VirtualBox , en la sección titulada Proveedores de paravirtualización, explica muy claramente cuándo debe usarse cada uno (énfasis agregado):

  • Mínimo: anuncia la presencia de un entorno virtualizado. Además, informa la frecuencia de TSC y APIC al sistema operativo invitado. Este proveedor es obligatorio para ejecutar cualquier invitado de Mac OS X.

  • KVM: presenta una interfaz de hipervisor KVM de Linux que los núcleos de Linux reconocen a partir de la versión 2.6.25. La implementación de VirtualBox actualmente admite relojes paravirtualizados y spinlocks SMP. Este proveedor se recomienda para invitados de Linux.

  • Hyper-V: presenta una interfaz de hipervisor Hyper-V de Microsoft que es reconocida por Windows 7 y sistemas operativos más nuevos. La implementación de VirtualBox actualmente admite relojes paravirtualizados, informes de frecuencia APIC, depuración de invitados, informes de fallos de invitados y comprobaciones de temporizador relajado. Este proveedor se recomienda para invitados de Windows.

Las otras opciones en el menú desplegable hacen lo siguiente, como se explica en los vboxmanagedocumentos :

  • Ninguno : la especificación nonedesactiva explícitamente cualquier interfaz de paravirtualización.

  • Valor predeterminado : la opción defaultelegirá una interfaz adecuada según el tipo de sistema operativo invitado al iniciar la VM. Esta es la opción predeterminada elegida al crear nuevas máquinas virtuales.

  • Legado : la legacyopción se elige para máquinas virtuales que se crearon con versiones anteriores de VirtualBox y elegirá una interfaz de paravirtualización al iniciar la máquina virtual con VirtualBox 5.0 y versiones posteriores.

pesado
fuente
66
Al probar el modo KVM en mi invitado Ubuntu (usando OSX como host), hubo varios problemas relacionados con el tiempo, incluido el reloj funcionando aproximadamente el doble de lento. (Establecería el tiempo usando ntp y en 10 minutos, el reloj tardaría unos 5 minutos). El sistema en realidad estaba ejecutando todo más lentamente, por ejemplo, llamar "dormir 5" tomaría más de 5 segundos. Actualmente estoy de vuelta en el modo "Legacy"
JBernardo
@JBernardo ¿Has probado el modo predeterminado ?
Léo Léopold Hertz 준영
@ LéoLéopoldHertz 준영 ¿No sería el modo predeterminado igual al KVM que ya probaron?
endolito
@JBernardo Normalmente no debería usar ntp dentro de una VM ya que las utilidades de invitado sincronizan con el host. Podría interferir.
Bachsau
9

Seamos más precisos, porque tenía 4.3 máquinas virtuales migradas, y esas son "heredadas", también estaba interesado en qué configuración usar, si copio VM de Linux a Windows o viceversa:

--paravirtprovider none | default | legacy | minimal | hyperv | kvm: esta configuración especifica qué interfaz de paravirtualización proporcionar al sistema operativo invitado.

  • Al especificar ninguno, se desactiva explícitamente cualquier interfaz de paravirtualización.
  • La opción predeterminada , elegirá una interfaz apropiada según el tipo de sistema operativo invitado al iniciar la VM. Esta es la opción predeterminada elegida al crear nuevas máquinas virtuales.
  • La opción heredada se elige para máquinas virtuales que se crearon con versiones anteriores de VirtualBox y elegirá una interfaz de paravirtualización al iniciar la máquina virtual con VirtualBox 5.0 y versiones posteriores.
  • El proveedor mínimo es obligatorio para los invitados de Mac OS X ,
  • kvm - recomendado para invitados Linux
  • e hyperv : recomendado para invitados de Windows

Estas opciones se explican en detalle en la Sección 10.4, “ Proveedores de paravirtualización ”.

Del manual capítulo 8 .

Entonces, si ha actualizado VirtualBox a la versión 5 en Linux, simplemente seleccione kvm o predeterminado , inicie VM y verifique si funciona correctamente. En caso afirmativo, simplemente deje una nueva configuración.

Si migra / mueve máquinas virtuales de Linux a Windows, le recomiendo tener la opción predeterminada , que realiza la selección automática de la mejor interfaz de virtualización.

Arunas Bartisius
fuente
0

Solo mu a centavos, basado en mis propias pruebas.

Lo había probado con un invitado de Windows 10, ejecutándolo en un host de Windows 10 y en un host de Linux (o al menos lo había intentado).

Sin mencionar que todos los discos virtuales que uso son inmutables (para garantizar pruebas idénticas).

En el host de Windows 10, el invitado se ejecuta normalmente (quizás un poco lento) pero se inicia y se muestra el escritorio ... la paravirtualización es "predeterminada".

Si pruebo la misma máquina virtual en un host Linux con paravirtualización "predeterminada", el invitado de Windows 10 no se inicia, se inicia hasta que los puntos se mueven en un círculo, luego, después de un tiempo, se congela ... no hay forma de acceder, ni el escritorio. .. recuerda que todos los discos son inmutables.

Pero tan pronto como configuro la paravirtualización en "Heredada" (en español) se inicia y llega al escritorio, pero a veces (recuerde que todos los discos son inmutables) se reinicia, mientras que otras veces puedo usarlo (muy, muy lento). Por lo tanto, debe haber una contienda de carrera en algún lugar, sin embargo, con discos inmutables, no siempre hace lo mismo.

Ah, por cierto, el invitado de Windows no tiene acceso a Internet para asegurarse de que ninguna conexión a Internet pueda hacer que las cosas funcionen de manera diferente entre botas frías.

Recuerda:

  • Todos los discos son inmutables.
  • Todos se revierten en cada arranque en frío.
  • El invitado de Windows no siempre funciona
  • Con la paravirtualización en "predeterminado", ni siquiera se inicia en el host de Linux, sino que se inicia bien en el host de Windows.
  • Con la paravirtualización en "Heredada", se inicia en el host de Linux (pero no siempre es estable para permitirle usarlo)

También intenté habilitar / deshabilitar 2D y 3D (también PAE / NX) porque quiero que el mismo invitado (HDD virtuales copiados de un host a otro) sea estable en dos hosts diferentes; También quiero poder copiar discos duros virtuales de un host a otro host después de realizar cualquier actualización (antes de hacer un arranque en frío, fusionar el disco inmutable con su padre para hacer cambios permanentes y no perderse, también conocido como CloneVDI); No uso instantáneas, solo discos inmutables.

Eso es lo que había visto, debo hacer más pruebas con otros valores de paravirtualización, en caso de que alguien funcione mejor en el host de Linux. No uso MAC, ni OS / 2, solo host de Windows y host de Linux (ambos hosts están en hardware físico diferente).

VERSIÓN: Windows 10 invitado es HOME 64 bits y la versión es 1809.17763.379

Espero que esto ayude a otros, pruebe y pruebe y vuelva a probar (mejor con discos inmutables) cualquier combinación de valores hasta encontrar una combinación que funcione, ¡parece que esa es la única manera de hacer que un invitado se ejecute en diferentes tipos de hosts (Windows / Linux)! !!

Laura
fuente