VirtualBox

  • Este artículo explica cómo utilizar la interfaz de gestión de línea de comandos de VirtualBox, VBoxManage, para agregar un disco SATA a una máquina virtual.

    Hasta el momento no es posible en VirtualBox agregar un disco a una máquina virtual en caliente (en ejecución). Al igual que con QEMU/KVM es necesario apagar la máquina virtual antes de poder agregar un nuevo disco.

    Como mencioné en otras oportunidades, la interfaz de gestión de línea de comandos VBoxManage provee mayor funcionalidad que la aplicación GUI (como sucede en general con toda herramienta de línea de comandos). Es posible agregar un disco a una máquina virtual desde la herramienta GUI, pero veamos cómo hacerlo completamente desde línea de comandos (útil para aquellos casos en los que necesitamos gestionar un servidor de máquinas virtuales headless).

  • Previamente expliqué cómo utilizar la herramienta zerofree sobre un sistema de archivos raíz. El objetivo era recuperar el espacio en disco (físico) ocupado por bloques libres en el sistema de archivos virtual. Está claro que en un disco virtual (imagen en archivo) asignado dinámicamente (thin en jerga VMware), los bloques libres no contienen información útil y por ende no necesitan ser representados físicamente. De esta forma el archivo que contiene la imagen de disco aumenta su tamaño a medida que es necesario, hasta un límite que es el tamaño máximo asignado.

    A continuación, voy a explicar cómo reducir una imagen de disco virtual (en VMware, VirtualBox y QEMU) para descartar el espacio ocupado por bloques libres rellenos con ceros.

  • Hoy tuve la necesidad de importar un guest corriendo en un host VMware ESXi a una máquina virtual VirtualBox en una workstation con Windows 7. El guest en cuestión se trataba de un servidor Debian 7 de 64 bit.

    El host Windows 7 era la versión Home Premium de 64 bit, por lo que imaginé no habría problemas al intentar ejecutar una máquina virtual corriendo un sistema operativo guest de 64 bit. Instalé la última versión de VirtualBox, copié el disco VMDK (con la máquina virtual original apagada) desde el host corriendo VMware ESXi, y procedí a crear la máquina virtual.

  • Acabo de terminar el appliance para mis alumnos de Organización de Computadoras de este año. Como todo appliance que se comparte a través de Internet, y para que todos los alumnos puedan descargar la máquina virtual lo más rápido posible, es necesario que el sistema operativo junto con las aplicaciones incluidas consuman poco espacio en disco. De esta forma la imagen de disco resulta de tamaño reducido. A su vez necesito un escritorio funcional con un cierto conjunto de herramientas de desarrollo. Para ello opté por Devuan Jessie con LXDE sobre una máquina virtual VirtualBox.

    Pero más allá de que la imagen de disco tenga un tamaño reducido, es necesario compactarla (por ejemplo ZIP) para reducir aún más el tamaño a transmitir por Internet. Y se gana mucha eficiencia durante la compactación si los bloques de disco libres están rellenos con ceros. Para ello existe zerofree. De esta forma, el espacio en disco correspondiente a bloques libres (espacio no utiliza) es directamente ignorado.

  • En este artículo voy a cubrir las tareas de administración básica de un host de máquinas virtuales VirtualBox sin entorno gráfico, desde la creación de máquinas virtuales, hasta la configuración de VNC, creación de discos y encendido/apagado de máquinas virtuales, totalmente desde línea de comandos.

    En artículos anteriores expliqué cómo instalar VirtualBox en GNU/Linux y en FreeBSD. Ahora voy a explica cómo gestionar un hipervisor VirtualBox sin entorno gráfico completamente desde línea de comandos, utilizando como base un host FreeBSD. Mi idea es montar un servidor de máquinas virtuales (comúnmente denominado simplemente como "host") FreeBSD sin entorno gráfico (headless, sin cabeza), utilizando VirtualBox como tecnología de virtualización, y gestionarlo completamente desde línea de comandos (tal como haría con virsh).

  • Este artículo explica cómo compilar e instalar, desde sus fuentes, las Guest Additions de VirtualBox oficiales en un guest (máquina virtual) Linux.

  • VirtualBox es una herramienta de virtualización full de arquitecturas de hardware x86 de propósito general, para uso en servidores, computadoras de escritorio y sistemas embebidos. Es una tecnología similar a KVM, la cual permite crear y gestionar máquinas virtuales con el fin de, por ejemplo, ejecutar varios sistemas operativos al mismo tiempo, verificar instalaciones de software, ejecutar herramientas en un entorno controlado, realizar pruebas de recuperación de desastres, consolidar infraestructura para aprovechar recursos de hardware, entre otros. VirtualBox fue creado originalmente por Sun Microsystems, actualmente es mantenido de Oracle y es liberado bajo la licencia GNU General Public License V2.

  • Desde que instalé FreeBSD 10 en mi workstation le tuve que decir adiós a QEMU/KVM y "welcome back" a VirtualBox. Saber que me iba a quedar sin QEMU/KVM fue una de las decisiones más dificiles al momento de despedirme de CentOS 7. Pero hoy, luego de conocer la noticia de que CentOS deja de ser una distribución estable para pasar a ser rolling (una distro desktop en mis servers, claro que sí, ¡cómo mo!) y además de la incorporación del virus systemd, no me arrepiento en lo más mínimo. QEMU/KVM es una gran tecnología de virtualización, pero lamentablemente está desarrollada por Red Hat. Y desde que utiliza cgroups, Libvirt sólo funciona con el kernel Linux (no encontré forma de deshabilitar el uso de cgroups, a pesar de que probé diferentes configuraciones). Por otro lado, no me sorprendería para nada que en breve pase a depender de systemd.

    Mi pragmatismo característico me llevó a despedirme rápidamente de QEMU/KVM (y también de Dropbox porque el cliente no funciona en FreeBSD) y pasar a la siguiente tecnología disponible, en este caso: el viejo y querido VirtualBox.

  • Este artículo explica paso a paso cómo compilar e instalar VirtualBox en FreeBSD. Compilar VirtualBox es simple, solo que antes es necesario instalar el código fuente del kernel para poder compilar el módulo vboxdrv, necesario para que funcionen las máquinas virtuales.

  • En este artículo voy a demostrar los sencillos pasos necesarios para instalar Devuan GNU+Linux ASCII con entorno el de escritorio (por defecto) XFCE en una máquina virtual VirtualBox.

    XFCE es un entorno de escritorio liviano, rápido y eficiente que apunta a optimizar recurso al mismo tiempo en que es amigable para el usuario.

  • Necesitaba una interfaz host-only para una máquina virtual VirtualBox en mi FreeBSD 10.2, entonces me dispuse a crear un adaptador ejecutando el comando vboxmanage hostonlyif create el cual falló con el error: "failed to open /dev/vboxnetctl".

  • Al intentar instalar una máquina virtual Devuan GNU+Linux sobre un host FreeBSD con VirtualBox, me encontré en reiteradas oportunidades con un fallo de entrada/salida que provocaba la corrupción del sistema de archivos.

  • Luego de actualizar mi estación de trabajo FreeBSD, me encontré con este error al lanzar VirtualBox:

    libGL error: failed to open drm device: Permission denied
    

    Seguido inmediatamente por un segfault. Sin embargo, al lanzar VirtualBox como root este problema no ocurría. Por ende se trataba claramente de un problema de permisos.

  • Luego de compilar VirtualBox en FreeBSD es necesario cargar los módulos del kernel vboxnetflt y vboxnetadp a fin de poder utilizar redes host-only. Para ello simplemente se deben agregar las siguientes líneas en el archivo /boot/loader.conf, que se encarga de indicarle al kernel qué módulos deben ser cargados de forma automática al iniciar el sistema:

    # VirtualBox
    vboxdrv_load="YES"
    vboxnetflt_load="YES"
    vboxnetadp_load="YES"
    

    El problema es que esta configuración no funciona. Al intentar iniciar una máquina virtual con un adaptador en modo host-only, falla con el siguiente error en el log (/home/emi/VirtualBox\ VMs/Devuan/Logs/VBox.log):

    00:00:00.596664 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={8ab7c520-2442-4b66-8d74-4ff1e195d2b6} aComponent={Console} aText={Failed to open/create the internal network 'HostInterfaceNetworking-vboxnet0' (VERR_SUPDRV_COMPONENT_NOT_FOUND)}, preserve=false
    00:00:00.612613 Power up failed (vrc=VERR_SUPDRV_COMPONENT_NOT_FOUND, rc=NS_ERROR_FAILURE (0X80004005))
    

    Esto se debe a una condición de carrera entre los módulos del kernel de VirtualBox. Es necesario cargar los módulos en orden. Primero debe cargarse vboxdvr y luego los restantes.

  • Open Virtualization Format (OVF) es un formato abierto para empaquetar y distribuir virtual appliances (imágenes de máquinas virtuales preconfiguradas y listas para correr en un hipervisor). Este formato fue creado originalmente por VMware, Dell, HP, IBM, Microsoft y XenSource.

    Este artículo explica cómo exportar una máquina virtual en formato OVF desde un host VirtualBox.

  • Las Guest Additions son un conjunto de controladores de dispositivo y aplicaciones de sistema que optimizan el sistema operativo guest (máquina virtual) para lograr un mejor rendimiento y usabilidad. Estas deben instalarse en cada máquina virtual, una vez que el sistema operativo haya sido instalado (algo similar a las VMware Tools en máquinas virtuales VMware).

    Las Guest Additions proveen las siguientes características:

    • Integración con el puntero del mouse.
    • Carpetas compartidas.
    • Mejor soporte de video.
    • Ventanas virtuales en el host.
    • Canales de comunicación genéricos entre host/guest.
    • Sincronización de tiempo.
    • Portapapeles compartido.
    • Login automático.