sadsoft
Administrador
Voy a hacer un repaso del software de virtualización más frecuente disponible para GNU/Linux, pero primero...
¿Qué es la virtualización?
La virtualización es una técnica que permite el uso de máquinas con distintos sistemas operativos funcionando dentro de una máquina real al mismo tiempo.
Al software de virtualización se le llama hypervisor, y es el encargado de "traducir" las instrucciones de la máquina virtual en instrucciones reales que el SO principal ejecuta sobre el hardware.
No me queda claro... ¿ejemplos de uso?
Supongamos que tenemos instalado Windows en el PC, y queremos a la vez ejecutar GNU/Linux sin apagar el Windows, podemos en ese caso instalar un hypervisor y crear una máquina virtual que corra Ubuntu, por ejemplo, todo ello dentro de Windows y sin tener que cambiar entre sistemas, pudiendo ejecutar ambos a la vez.
Suena genial, pero... ¿dónde está la pega?
El principal problema de la virtualización es el equipo en sí. Debemos poseer un equipo capaz de ejecutar ambos sistemas (o más, podemos instalar y ejecutar tantas máquinas virtuales como el PC pueda ejecutar) con suficiente fluidez.
Además, al estar el hypervisor continuamente "traduciendo" las órdenes de la máquina virtual para que ésta crea que esta siendo ejecutada sobre una máquina real y no virtual, obtenemos una penalización de rendimiento de en torno a un 20% con respecto a ese mismo sistema sin virtualizar.
Vale, me he decidido, ¿qué alternativas tengo?
No vayas tan rápido, existe otra opción llamada paravirtualización, las soluciones que usan este sistema son más complicadas de instalar y de ejecutar, pero ofrecen rendimientos superiores a los hypervisores tradicionales.
¿Qué es la paravirtualización?
La paravirtualización permite ejecutar un hypervisor directamente sobre el hardware del equipo, sin pasar por un sistema operativo "huesped".
Las máquinas paravirtualizadas saben que son máquinas virtuales, ya que su kernel es modificado para funcionar sobre el hypervisor directamente, aumentando su rendimiento al no necesitar "intérpretes".
¿Entonces por qué voy a usar un hypervisor normal?
Los hypervisores tradicionales tienen la ventaja de que funcionan sobre todo tipo de sistema y son capaces de correr todo tipo de sistema también.
Además son fáciles de instalar y de usar.
Los software de paravirtualización solo son capaces de virtualizar sistemas GNU/Linux normalmente al requerir un kernel modificado para ello.
Para que un software de paravirtualización permita virtualizar por ejemplo Windows, se necesita un procesador que soporte la virtualización por hardware, de esta manera se puede instalar Windows sin modificar el kernel y ejecutarlo como si fuera una máquina real.
Qué programas puedo instalar?
Los programas que menciono a continuación son de código abierto, por lo que se pueden descargar y usar sin coste.
- VirtualBox
Oracle VM VirtualBox es un software de virtualización para arquitecturas x86, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual.
Entre los sistemas operativos soportados (en modo anfitrión) se encuentran GNU/Linux, Mac OS X, OS/2 Warp , Microsoft Windows, y Solaris/OpenSolaris, y dentro de ellos es posible virtualizar los sistemas operativos FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS y muchos otros.
La aplicación fue inicialmente ofrecida bajo una licencia de software propietario, pero en enero de 2007, después de años de desarrollo, surgió VirtualBox OSE (Open Source Edition) bajo la licencia GPL 2. Actualmente existe la versión propietaria Oracle VM VirtualBox, que es gratuita únicamente bajo uso personal o de evaluación, y esta sujeta a la licencia de "Uso Personal y de Evaluación VirtualBox" (VirtualBox Personal Use and Evaluation License o PUEL) y la versión Open Source, VirtualBox OSE, que es software libre, sujeta a la licencia GPL.
VirtualBox ofrece algunas funcionalidades interesantes, como la ejecución de maquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI, aunque estas opciones no están disponibles en la versión OSE.
En cuanto a la emulación de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los demás software de virtualización.
Otra de las funciones que presenta es la de montar imágenes ISO como unidades virtuales ópticas de CD o DVD, o como un disquete.
Tiene un paquete de controladores que permiten aceleración en 3D, pantalla completa, hasta 4 placas de red Gigabit, integración con teclado y mouse.
A diferencia de otro virtualizadores que utilizan la combinación crtl + alt para volver el teclado y el mouse a la máquina física, VirtualBox utiliza la tecla Ctrl de la derecha como tecla host, por defecto, esta función puede ser personalizada a otra tecla o combinación de teclas por el usuario.
- QEmu
QEMU es un emulador de procesadores basado en la traducción dinámica de binarios (conversión del código binario de la arquitectura fuente en código entendible por la arquitectura huésped). QEMU también tiene capacidades de virtualización dentro de un sistema operativo, ya sea GNU/Linux, Windows, o cualquiera de los sistemas operativos admitidos, (de hecho es la forma más común de uso). Esta máquina virtual puede ejecutarse en cualquier tipo de Microprocesador o arquitectura (x86, x86-64, PowerPC, MIPS, SPARC, etc.). Está licenciado en parte con la LGPL y la GPL de GNU.
El objetivo principal es emular un sistema operativo dentro de otro sin tener que reparticionar el disco duro, empleando para su ubicación cualquier directorio dentro de éste.
El programa no dispone de GUI, pero existe otro programa llamado QEMU manager que hace las veces de interfaz gráfica si se utiliza QEMU desde Windows. También existe una versión para GNU/Linux llamado qemu-launcher. En Mac OS X puede utilizarse el programa Q que dispone de una interfaz gráfica para crear y administrar las máquinas virtuales.
- Xen
Xen utiliza una técnica llamada paravirtualización para alcanzar alto rendimiento (es decir, bajas penalizaciones del rendimiento, típicamente alrededor del 2%, con los peores casos rondando el 8%; esto contrasta con las soluciones de emulación que habitualmente sufren penalizaciones de un 20%).
Con la paravirtualización, se puede alcanzar alto rendimiento incluso en arquitecturas (x86) que no suelen conseguirse con técnicas tradicionales de virtualización. A diferencia de las máquinas virtuales tradicionales, que proporcionan entornos basados en software para simular hardware, Xen requiere portar los sistemas operativos para adaptarse al API de Xen. Hasta el momento hay ports para NetBSD, Linux, FreeBSD y Plan 9.
Intel ha realizado modificaciones a Xen para soportar su arquitectura de extensiones Vanderpool. Esta tecnología permite que sistemas operativos sin modificaciones se ejecuten en máquinas virtuales Xen, si el sistema soporta las extensiones Vanderpool o Pacífica (de Intel y AMD respectivamente, extensiones para soportar virtualización de forma nativa). Prácticamente, esto significa una mejora de rendimiento, y que es posible virtualizar Windows sin tener que modificarlo.
Xen funciona actualmente en sistemas basados en x86. Actualmente se están portando las plataformas AMD64, IA64 y PPC. Los ports de otras plataformas son técnicamente posibles y podrán estar disponibles en el futuro. Plataformas GNU/Linux soportadas:
- Mandriva 2006 incluye Xen 2.6
- Novell's SUSE Linux Enterprise 10 incluye Xen 3.
- Fedora Core 5 incluye la versión 3 de Xen.
- Red Hat Enterprise Linux en su última versión 5, incluye soporte completo de Xen 3.
- Xenophilia es una distribución GNU/Linux que se basa en Xen.
- Xen demo CD es una ISO live CD basada en Debian que permite probar Xen en tu sistema sin instalarla en disco duro.
- Debian La versión 5.0 (lenny) incluye Xen 3.2, además de incluirlo en sus repositorios "testing" y "unstable".
- NetBSD 2.0 incluye soporte para Xen 1.2.
- Oracle VM Oracle basado en Xen
- CentOS CentOS 5
Conclusiones
Tras este breve repaso espero haber despejado algunas dudas de aquellos que no supiesen lo que es la virtualización o tuvieran curiosidad por ella.
Con este post solo quería dar a conocer métodos desconocidos para el usuario común, pero muy extendidos en entornos empresariales, académicos y gubernamentales, la virtualización es algo muy utilizado, que pasa desapercibida para el usuario normal, pero que puede ser muy útil en nuestra vida cotidiana delante del PC.
En la próxima entrega del manual de virtualización explicaré la creación de una máquina virtual con VirtualBox... estad atentos a vuestras pantallas!!
Fuentes:
- Wikipedia
- Mi propia experiencia
Salu2
¿Qué es la virtualización?
La virtualización es una técnica que permite el uso de máquinas con distintos sistemas operativos funcionando dentro de una máquina real al mismo tiempo.
Al software de virtualización se le llama hypervisor, y es el encargado de "traducir" las instrucciones de la máquina virtual en instrucciones reales que el SO principal ejecuta sobre el hardware.
No me queda claro... ¿ejemplos de uso?
Supongamos que tenemos instalado Windows en el PC, y queremos a la vez ejecutar GNU/Linux sin apagar el Windows, podemos en ese caso instalar un hypervisor y crear una máquina virtual que corra Ubuntu, por ejemplo, todo ello dentro de Windows y sin tener que cambiar entre sistemas, pudiendo ejecutar ambos a la vez.
Suena genial, pero... ¿dónde está la pega?
El principal problema de la virtualización es el equipo en sí. Debemos poseer un equipo capaz de ejecutar ambos sistemas (o más, podemos instalar y ejecutar tantas máquinas virtuales como el PC pueda ejecutar) con suficiente fluidez.
Además, al estar el hypervisor continuamente "traduciendo" las órdenes de la máquina virtual para que ésta crea que esta siendo ejecutada sobre una máquina real y no virtual, obtenemos una penalización de rendimiento de en torno a un 20% con respecto a ese mismo sistema sin virtualizar.
Vale, me he decidido, ¿qué alternativas tengo?
No vayas tan rápido, existe otra opción llamada paravirtualización, las soluciones que usan este sistema son más complicadas de instalar y de ejecutar, pero ofrecen rendimientos superiores a los hypervisores tradicionales.
¿Qué es la paravirtualización?
La paravirtualización permite ejecutar un hypervisor directamente sobre el hardware del equipo, sin pasar por un sistema operativo "huesped".
Las máquinas paravirtualizadas saben que son máquinas virtuales, ya que su kernel es modificado para funcionar sobre el hypervisor directamente, aumentando su rendimiento al no necesitar "intérpretes".
¿Entonces por qué voy a usar un hypervisor normal?
Los hypervisores tradicionales tienen la ventaja de que funcionan sobre todo tipo de sistema y son capaces de correr todo tipo de sistema también.
Además son fáciles de instalar y de usar.
Los software de paravirtualización solo son capaces de virtualizar sistemas GNU/Linux normalmente al requerir un kernel modificado para ello.
Para que un software de paravirtualización permita virtualizar por ejemplo Windows, se necesita un procesador que soporte la virtualización por hardware, de esta manera se puede instalar Windows sin modificar el kernel y ejecutarlo como si fuera una máquina real.
Qué programas puedo instalar?
Los programas que menciono a continuación son de código abierto, por lo que se pueden descargar y usar sin coste.
- VirtualBox
Oracle VM VirtualBox es un software de virtualización para arquitecturas x86, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual.
Entre los sistemas operativos soportados (en modo anfitrión) se encuentran GNU/Linux, Mac OS X, OS/2 Warp , Microsoft Windows, y Solaris/OpenSolaris, y dentro de ellos es posible virtualizar los sistemas operativos FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS y muchos otros.
La aplicación fue inicialmente ofrecida bajo una licencia de software propietario, pero en enero de 2007, después de años de desarrollo, surgió VirtualBox OSE (Open Source Edition) bajo la licencia GPL 2. Actualmente existe la versión propietaria Oracle VM VirtualBox, que es gratuita únicamente bajo uso personal o de evaluación, y esta sujeta a la licencia de "Uso Personal y de Evaluación VirtualBox" (VirtualBox Personal Use and Evaluation License o PUEL) y la versión Open Source, VirtualBox OSE, que es software libre, sujeta a la licencia GPL.
VirtualBox ofrece algunas funcionalidades interesantes, como la ejecución de maquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI, aunque estas opciones no están disponibles en la versión OSE.
En cuanto a la emulación de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los demás software de virtualización.
Otra de las funciones que presenta es la de montar imágenes ISO como unidades virtuales ópticas de CD o DVD, o como un disquete.
Tiene un paquete de controladores que permiten aceleración en 3D, pantalla completa, hasta 4 placas de red Gigabit, integración con teclado y mouse.
A diferencia de otro virtualizadores que utilizan la combinación crtl + alt para volver el teclado y el mouse a la máquina física, VirtualBox utiliza la tecla Ctrl de la derecha como tecla host, por defecto, esta función puede ser personalizada a otra tecla o combinación de teclas por el usuario.
- QEmu
QEMU es un emulador de procesadores basado en la traducción dinámica de binarios (conversión del código binario de la arquitectura fuente en código entendible por la arquitectura huésped). QEMU también tiene capacidades de virtualización dentro de un sistema operativo, ya sea GNU/Linux, Windows, o cualquiera de los sistemas operativos admitidos, (de hecho es la forma más común de uso). Esta máquina virtual puede ejecutarse en cualquier tipo de Microprocesador o arquitectura (x86, x86-64, PowerPC, MIPS, SPARC, etc.). Está licenciado en parte con la LGPL y la GPL de GNU.
El objetivo principal es emular un sistema operativo dentro de otro sin tener que reparticionar el disco duro, empleando para su ubicación cualquier directorio dentro de éste.
El programa no dispone de GUI, pero existe otro programa llamado QEMU manager que hace las veces de interfaz gráfica si se utiliza QEMU desde Windows. También existe una versión para GNU/Linux llamado qemu-launcher. En Mac OS X puede utilizarse el programa Q que dispone de una interfaz gráfica para crear y administrar las máquinas virtuales.
- Xen
Xen utiliza una técnica llamada paravirtualización para alcanzar alto rendimiento (es decir, bajas penalizaciones del rendimiento, típicamente alrededor del 2%, con los peores casos rondando el 8%; esto contrasta con las soluciones de emulación que habitualmente sufren penalizaciones de un 20%).
Con la paravirtualización, se puede alcanzar alto rendimiento incluso en arquitecturas (x86) que no suelen conseguirse con técnicas tradicionales de virtualización. A diferencia de las máquinas virtuales tradicionales, que proporcionan entornos basados en software para simular hardware, Xen requiere portar los sistemas operativos para adaptarse al API de Xen. Hasta el momento hay ports para NetBSD, Linux, FreeBSD y Plan 9.
Intel ha realizado modificaciones a Xen para soportar su arquitectura de extensiones Vanderpool. Esta tecnología permite que sistemas operativos sin modificaciones se ejecuten en máquinas virtuales Xen, si el sistema soporta las extensiones Vanderpool o Pacífica (de Intel y AMD respectivamente, extensiones para soportar virtualización de forma nativa). Prácticamente, esto significa una mejora de rendimiento, y que es posible virtualizar Windows sin tener que modificarlo.
Xen funciona actualmente en sistemas basados en x86. Actualmente se están portando las plataformas AMD64, IA64 y PPC. Los ports de otras plataformas son técnicamente posibles y podrán estar disponibles en el futuro. Plataformas GNU/Linux soportadas:
- Mandriva 2006 incluye Xen 2.6
- Novell's SUSE Linux Enterprise 10 incluye Xen 3.
- Fedora Core 5 incluye la versión 3 de Xen.
- Red Hat Enterprise Linux en su última versión 5, incluye soporte completo de Xen 3.
- Xenophilia es una distribución GNU/Linux que se basa en Xen.
- Xen demo CD es una ISO live CD basada en Debian que permite probar Xen en tu sistema sin instalarla en disco duro.
- Debian La versión 5.0 (lenny) incluye Xen 3.2, además de incluirlo en sus repositorios "testing" y "unstable".
- NetBSD 2.0 incluye soporte para Xen 1.2.
- Oracle VM Oracle basado en Xen
- CentOS CentOS 5
Conclusiones
Tras este breve repaso espero haber despejado algunas dudas de aquellos que no supiesen lo que es la virtualización o tuvieran curiosidad por ella.
Con este post solo quería dar a conocer métodos desconocidos para el usuario común, pero muy extendidos en entornos empresariales, académicos y gubernamentales, la virtualización es algo muy utilizado, que pasa desapercibida para el usuario normal, pero que puede ser muy útil en nuestra vida cotidiana delante del PC.
En la próxima entrega del manual de virtualización explicaré la creación de una máquina virtual con VirtualBox... estad atentos a vuestras pantallas!!
Fuentes:
- Wikipedia
- Mi propia experiencia
Salu2
Última edición: