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

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

Las opciones son

  • Ninguna
  • Por defecto
  • Legado
  • mínimo
  • Hyper-V
  • KVM

Esta página sugiere que la selección se base únicamente en el sistema huésped:

El mayor cambio en VirtualBox 5.0 es la introducción de

soporte de paravirtualización, aportando mayor rendimiento y precisión en el mantenimiento del tiempo a los sistemas operativos invitados soportados (Hyper-V en Windows y KVM en Linux).

¿Es esto correcto?

Solución

El Manual de VirtualBox, en la sección titulada Proveedores de virtualización explica muy claramente cuándo debe utilizarse cada uno de ellos (énfasis añadido):

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

X invitados.**

KVM: Presenta una interfaz de hipervisor KVM de Linux que es reconocida por los kernels de Linux a partir de la versión 2.6.25. La implementación de VirtualBox'actualmente soporta relojes paravirtualizados y spinlocks SMP. Este proveedor se recomienda para los huéspedes de Linux.

Hyper-V: Presenta una interfaz de hipervisor de Microsoft Hyper-V que es reconocida por Windows 7 y los sistemas operativos más recientes. La implementación de VirtualBox admite actualmente relojes paravirtualizados, informes de frecuencia APIC, depuración de huéspedes, informes de fallos de huéspedes y comprobaciones de temporizadores relajadas. **Este proveedor se recomienda para los huéspedes de Windows.

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

Ninguno: Especificar none explícitamente desactiva la exposición de cualquier interfaz de paravirtualización.

Por defecto: La opción default, elegirá una interfaz apropiada dependiendo del tipo de sistema operativo invitado mientras se inicia la VM. Esta es la opción por defecto que se elige al crear nuevas VMs.

Legado: La opción legacy se elige para las VMs que fueron creadas con versiones anteriores de VirtualBox y escogerá una interfaz de paravirtualización al iniciar la VM con VirtualBox 5.0 y más recientes.

Comentarios (4)

Vamos a ser más precisos, porque yo tenía 4.3 migrado VMs, y esos son "legado", también estaba interesado en lo que la configuración a utilizar, 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.

  • Especificando none explícitamente desactiva la exposición de cualquier interfaz de paravirtualización.
  • La opción por defecto, elegirá una interfaz apropiada dependiendo del tipo de sistema operativo invitado al iniciar la VM. Esta es la opción por defecto elegida al crear nuevas VMs.
  • La opción legacy se elige para las VMs que fueron creadas con versiones anteriores de VirtualBox y escogerá una interfaz de paravirtualización al iniciar la VM con VirtualBox 5.0 y más recientes.
  • El proveedor minimal es obligatorio para los huéspedes de Mac OS X,
  • kvm - recomendado para huéspedes de Linux
  • y hyperv - recomendado para huéspedes Windows

Estas opciones se explican en detalle en la Sección 10.4, "Proveedores de Paravirtualización".

Del capítulo 8 del manual.

Así que si has actualizado VirtualBox a la versión 5 en Linux, sólo tienes que seleccionar kvm o default, iniciar la VM y comprobar si funciona correctamente. Si es así, deja la nueva configuración.

Si está migrando/moviendo VMs de Linux a Windows, recomiendo tener la opción default, que hace la selección automática de la mejor interfaz de virtualización.

Comentarios (0)

Sólo mu to cents, basado en mis propias pruebas.

Yo había probado con un invitado de Windows 10, que se ejecuta en un host de Windows 10 y en un host de Linux (o al menos yo había intentado).

Por no hablar, todos los discos virtuales que utilizo son inmutables (para asegurar pruebas idénticas).

En el host de Windows 10, el invitado se ejecuta normalmente (tal vez un poco lento), pero se inicia y se muestra el escritorio ... paravirtualización es "por defecto".

Si pruebo la misma máquina virtual en un host Linux con paravirtualización "por defecto" el invitado de Windows 10 no arranca, arranca hasta que los puntos se mueven en un círculo, a continuación, después de un tiempo se congela ... no hay manera de llegar a la entrada, ni el escritorio ... recordar todos los discos son inmutables.

Pero en cuanto pongo la paravirtualización en "Heredada" arranca y llega al escritorio, pero a veces (recordemos que todos los discos son inmutables) se reinicia, mientras que otras veces puedo usarlo (muy, muy lento)... así que debe haber una contienda de carrera en algún lugar, ya que con los discos inmutables no siempre hace lo mismo.

Ah, por cierto, el invitado de Windows no tiene acceso a Internet para estar seguro de que ninguna conexión a Internet puede hacer que las cosas funcionen de manera diferente entre los arranques en frío.

Recuerde:

  • Todos los discos son inmutables
  • Todos son revertidos en cada arranque en frío
  • Windows guest no siempre funciona
  • Con la paravirtualización en "default" ni siquiera arranca en el host de Linux, pero arranca bien en el host de Windows.
  • Con la paravirtualización en "Heredada" sí arranca en el host de Linux (pero no siempre es estable para permitir su uso)

También he probado a activar/desactivar 2D & 3D (también PAE/NX) porque quiero que el mismo huésped (discos duros virtuales copiados de un host a otro) sea estable en dos hosts diferentes; también quiero poder copiar los discos duros virtuales de un host a otro después de hacer cualquier actualización (antes de hacer un arranque en frío, fusionar el disco inmutable con su padre para que los cambios sean permanentes y no se pierdan, también conocido como usar CloneVDI); no uso instantáneas, sólo discos inmutables.

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

VERSION: Windows 10 guest es HOME 64Bits y la versión es 1809.17763.379

¡¡¡Espero que esto ayude a los demás, probar & probar & volver a probar (mejor con discos inmutables) cualquier combinación de valores hasta encontrar una combinación que funcione, parece que es la única manera de hacer que un huésped funcione en diferentes tipos de hosts (Windows/Linux) !!!

Comentarios (0)