Servidor de Virtualización con Virtualbox

[notice]Desde que este post fue creado han pasado 9 años así que puede que hayan cambiado cosas.[/notice]

VMVirtualboxServer_Logo

 

Después de instalar un servidor VMWare ESXI como se comenta en posts anteriores ( aquí y aquí ), me he propuesto buscar información e intentar montar algo similar con Virtualbox, de forma que si alguna empresa esta mirándose licencias de VMWare ESXI pueda valorar si con Virtualbox le es suficiente.

 

¿Que diferencias hay entre Virtualbox y VMWare ESXI?

VMWare ESXI es un hipervisor del tipo Baremetal (unhosted) mientras que Virtualbox es un hipervisor del tipo Hosted. Esto significa que Virtualbox trabaja sobre un sistema operativo y ESXI directamente sobre el hardware.

VMVirtualboxServer_TiposVM

Hosted: El hipervisor se instala sobre un sistema operativo que hace de mediador para hablar con el hardware real. No se pueden aprovechar todos los recursos de la máquina física para la virtualización puesto que el sistema host consume también recursos. Se puede instalar sobre casi cualquier sistema operativo.

Baremetal: El hipervisor se instala directamente sobre la máquina física, sin necesidad de un sistema operativo (el propio hipervisor actúa como tal). Esto garantiza que se podrá usar casi el 100% de los recursos físicos a las máquinas virtuales, pero solo es posible instalarlo en un hardware selecto (servidores y hardware de pc compatible).

Resumiendo, con Virtualbox (a causa del sistema operativo) estamos restando bastantes recursos al hardware que se podrían usar para nuestras maquinas virtuales. Esto podemos minimizarlo si en vez de instalarlo sobre un sistema operativo Windows, lo realizamos sobre un sistema Linux. Y si queremos consumir todavía menos recursos podemos quitar la interfaz gráfica del sistema Linux.

De esto, es de lo se va a tratar en este post (obviamente VMWare ESXI dispone de muchas funcionalidades adicionales, previo pago, que no nombraremos aquí).

 

Instalando sistema Linux

Para realizar el servidor de virtualizacion he elegido Ubuntu Server LTS 14.04 el cual da soporte durante 5 años, pero elegir cualquier linux que pueda ejecutar Virtualbox. Para la instalación podéis seguir la instalación de Debian que hay en este mismo blog ya que no se diferencia mucho.

Una vez se haya finalizado la instalación, recomiendo ponerle ip estática, así no tendremos que estar buscando mediante ARP (si sabemos la mac) o con un Network Scanner.

 

Instalando software necesario

Antes de proceder a instalar Virtualbox, para evitar que nos de errores de dependencias ejecutaremos los siguientes comandos.

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install libqt4-network libqt4-opengl libqtcore4 libqtgui4 libsdl1.2debian 
sudo apt-get install xorg chromium-browser openbox build-essential

Los primeros paquetes que instalamos, son dependencias necesarias para Virtualbox. El segundo pack de paquetes es la interfaz gráfica (xorg openbox), un navegador web y librerías de compilación necesarias. Openbox es una interfaz gráfica muy liviana que nos permitirá hacer las instalaciones de las maquinas virtuales, por defecto no inicia con el sistema así que cuando queramos usarla deberemos encenderla.

Una vez se haya instalado todo, iniciamos Openbox mediante el comando startx en la consola.

openbox-driverlandiaAccedemos al menú de aplicaciones pulsando en el clic derecho en cualquier parte del escritorio y elegimos Web Browser. Se abrirá la ventana del navegador que hayamos instalado. Desde este navegador nos descargamos el instalador de Virtualbox desde su web oficial.

Una vez lo hayamos descargado lo instalamos con el comando (para Ubuntu, Debian, Mint…)

sudo dpkg -i virtualbox-*.deb

Si indicara algún error de dependencias, podemos forzar la instalación usando el comando

sudo apt-get install -f

Podemos comprobar si inicia correctamente Virtualbox, abriendo un terminal en la interfaz gráfica y ejecutando el comando

virtualbox &

que nos abrirá la ventana de Virtualbox.

vbox-openbox

Ahora ya podemos instalar todas las maquinas virtuales que queramos (y que el hardware pueda soportar). Una vez hayamos terminado la instalación de las maquinas virtuales, configurado el tipo de conexión de red que queremos y habilitado los controles remotos pertinentes (TerminalServer, SSH, Teamviewer…), apagamos las maquinas virtuales y cerramos openbox desde el menu > exit.

En el siguiente paso explicaremos como iniciar maquinas virtuales sin necesidad de una interfaz gráfica.

 

Virtualbox sin interfaz gráfica

Virtualbox trae unas utilidades para controlar las maquinas virtuales desde consola, haremos uso de ellas para iniciar y pararlas. La que nos interesa es VBoxManage que permite realizar lo anteriormente dicho, tan solo necesitamos saber el nombre de la maquina virtual que queremos encender (el que se puede ver en la interfaz de Virtualbox, en la imagen anterior «Windows XP»)

Si queremos iniciar una maquina virtual

VBoxManage startvm "Windows XP" --type headless

Si queremos apagarla emulando una señal de pulsación corta del botón

VBoxManage controlvm "Windows XP" acpipowerbutton

Si queremos forzar el apagado (perderemos los datos no guardados)

VBoxManage controlvm "Windows XP" poweroff

Si queremos provocar un reinicio (perderemos los datos no guardados)

VBoxManage controlvm "Windows XP" reset

Si queremos guardar el estado actual de la maquina

VBoxManage controlvm "Windows XP" savestate

Si queremos pausar la maquina virtual

VBoxManage controlvm "Windows XP" pause

Si queremos continuar con una maquina pausada o con estado guardado.

VBoxManage controlvm "Windows XP" resume

Todos estos comandos sirven para gestionar la maquina virtual desde consola.

Para iniciar la maquina virtual cuando nuestro Linux encienda, y enviar una señal de apagado a las maquinas virtuales cuando queramos apagar nuestro sistema Linux, podemos hacer uso de los bootscripts y los comandos mencionados aquí.

 

Comparando resultados

Se ha realizado la comprobacion de consumo del sistema base, habiendo reiniciado ambas maquinas y sin haber encendido ningun servicio adicional a los que arrancan por defecto. En el caso del servidor hosted ( Linux + VBox) el sistema operativo realiza un consumo de 67MB de memoria ram (135MB – 68MB Buffer), y la cpu esta sin casi uso.

vbox-consumo

en VMWare ESXI el consumo de ram es mucho mas bajo (17MB) y el de cpu esta a la par.

vmware-consumo

Pese a que la maquina física de donde se han sacado los datos no es la misma, nos permite ver que en ambos casos hay un consumo bajo por parte del sistema operativo, sin embargo con Virtualbox estamos consumiendo 3.9 veces mas que VMware ESXI.

La pregunta que uno debe hacerse es. ¿Necesito algo de VMWare ESXI que no me proporciona Virtualbox (ya sea por tecnologías, compatibilidades, calidad..)? Por ejemplo con VMWare ESXI se pueden programar copias automáticas de las maquinas virtuales, pero este servicio no es gratuito y se debe pagar la licencia.

¿Se os ocurre alguna manera con Virtualbox de poderlo realizar? A mi personalmente se me ocurre que mediante un script de shell se envíe una señal de apagado (apagado acpipowerbutton) a la maquina virtual y mediante FTP, NFS, SMB, RSYNC, CP, copiarla a la carpeta de copias de seguridad.

Como extra, indicar que Virtualbox dispone de un programa de control llamado Hyperbox que viene a ser una alternativa a VMware vCenter, Citrix XenServer/XenCenter, Microsoft Hyper-V. También existe phpVirtualBox que permite gestionar las maquinas virtuales desde la web.

 

 

5 comentarios

Saltar al formulario de comentarios

  1. Hola!
    Gracias por tu artículo. Ahora me pondré a instalar la solución Ubuntu Server + Virtualbox, ya que la solución Vmware ESXi + máquina virtual es solo para servidores dedicados y yo quiero utilizar mi pc como estación de trabajo con varias má2quina virtuales. Por cierto, he investigado y creo que hay algunas soluciones a la pregunta que planteas al final. Se llama VboxTool http://sourceforge.net/projects/vboxtool/ y aqui están sus características http://vboxtool.sourceforge.net/

    Un saludo!
    Feliciano

    1. Hola Feliciano, gracias por comentar. Al poco de realizar este post hice un script para realizar backups de las maquinas que se desee y copiarlas por sftp a otro servidor (tipico server con backups).

      Tengo un vídeo de como funciona en https://www.youtube.com/watch?v=luYmZihvRSI pero me mirare vboxtool

  2. Muchas gracias

  3. Despues de tres años justo lo que ando buscando, buen proyecto, Muchas gracias.

    1. Me alegro que te sirva!

Responder a Feliciano Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.