VirtualBox: Importar y clonar una máquina virtual
En los ordenadores del instituto está instalada una popular herramienta de virtualización: VirtualBox.
Con esta herramienta resulta muy sencillo trabajar con máquinas virtuales que se pueden importar y clonar para realizar las actividades didácticas.
En esta dirección, en el directorio VirtualBox, se pueden encontrar varias máquinas virtuales que se utilizan en mi asignatura. Cada fichero .ova corresponde a una máquina que se puede descargar e importar en VirtualBox.
La manera habitual de trabar en clase será:
- Descargar la MV indicada por el profesor.
- Importar la máquina en VirtualBox.
- Realizar un clon enlazado de la máquina virtual.
- Fijar el modo deseado de la interfaz de red en la máquina virtual y encenderla para trabajar.
- Opcionalmente activar el parámetro
hostiocache
.
De este modo cuando se complete la actividad se podrá borrar el clon para liberar espacio y comenzar la siguiente actividad con un nuevo clon.
Importar una máquina virtual en VirtualBox
El proceso de importación de una máquina virtual es trivial. Es suficiente con intentar abrir el archivo descargado para que VirtualBox comience la importación o seleccionar la opción Importar servicio virtualizado en el menú Archivo de VirtualBox.
En cualquier caso cuando se importa una máquina virtual convendrá reiniciar las direcciones físicas de sus interfaces de red. De este modo evitaremos problemas si hay varias personas en el aula trabajando con la misma máquina virtual en modo puente.
Clon de la máquina virtual
Normalmente la máquina que ha entregado el profesor sirve como copia maestra de la que se realizarán clones para utilizar en las prácticas. Así, cuando se complete la actividad o se quiera volver a comenzar, será suficiente con realizar un clon nuevo.
En el momento de realizar el clon hay que prestar atención a dos detalles:
- Reiniciar la dirección MAC de todas las interfaces de red
- Seleccionar la opción de clonación enlazada
Modos de red: NAT y puente
VirtualBox soporta diferentes modos para cada interfaz de red, los dos más básicos son NAT y puente. El primer modo mantendrá a la interfaz detrás de un router virtual en una red privada, así que la máquina virtual podrá acceder al exterior pero desde el exterior no se podrá acceder a la máquina virtual. En el segundo modo la interfaz de red estará conectada en un puente con una de las interfaces de red de la máquina física.
Modo NAT
En modo NAT VirtualBox recrea un pequeño router con un servidor DHCP y capaz de hacer traducción de direcciones de red conectado a la interfaz de red.
En este modo la interfaz podrá obtener una configuración automática a través de una concesión DHCP. El router proporcionará habitualmente la IP 10.0.2.15 a la interfaz de red, además de la dirección del gateway y servidor DNS. La máquina virtual podrá acceder al exterior pero desde el exterior no se podrá acceder a la máquina virtual por encontrarse en una red privada destrás de un NAT.
Modo puente
Cuando se configura la interfaz de red en modo puente, se conectará a un puente virtual con una de las interfaces de red de la máquina anfitriona. Así será como si la máquina virtual estuviera al lado de la máquina anfitriona y conectada al mismo switch de red. En este modo la máquina virtual podrá acceder a la red en la que se encuentre el ordenador anfitrión y desde dicha red se podrá acceder a la máquina virtual.
Activar el parámetro hostiocache
Normalmente queremos que la MV modele una máquina física con la mayor fidelidad posible. Esto incluye que las escrituras en disco no se den por completadas hasta que no lo estén en el disco del anfitrión.
Sin embargo, ya que se trata de una MV y que en ocasiones nos interesa más conseguir un buen rendimiento que la máxima integridad posible, es posible configurar la MV de manera que se utilice la memoria principal del anfitrión como cache y que las escrituras del huésped en la MV se den por completadas tan pronto como llegan a la memoria del anfitrión.
Esta opción viene desactivada por defecto porque en caso de que el anfitrión se detenga de manera abrupta nos encontraremos ante una pérdida de información. Pero en entornos didácticos puede valer la pena activar la opción para conseguir un mejor rendimiento y, en caso de que una MV se estropee, pues bastará con clonarla de nuevo y listo.
La opción hostiocache
se puede activar en la interfaz gráfica de VirtualBox de manera independiente para cada controlador.
Y también se puede modificar en la línea de comandos:
VBoxManage storagectl "VM name" --name "controllername" --hostiocache on
Podremos valorar los cambios de rendimiento con el test fio
habitual:
fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=64k --size=256m --numjobs=16 --iodepth=16 --runtime=60 --time_based --fsync=1 --end_fsync=1 --group_reporting
Los resultados obtenidos son:
Equipo | IOPS | BW |
Anfitrión con disco nvme | 1581 | 98.9MiB/s (104MB/s) |
MV (hostiocache=off ) |
457 | 28.6MiB/s (30.0MB/s) |
MV (hostiocache=on ) |
12.1k | 755MiB/s (791MB/s) |