Introducción a la virtualización con XEN |
SOFTWARE - Servidores | |
Escrito por Elvira Mifsud | |
Lunes, 17 de Diciembre de 2012 09:55 | |
En este artículo hacemos una introducción a la virtualización en general y comentamos, en particular, las características específicas del software de virtualización XEN. El concepto y la práctica de la virtualización tiene ya un recorrido en el tiempo importante. Fue implementado hace varios años por empresas como IBM, Hewlett Packard (entre otras) en sus sistemas operativos y grandes equipos. Pero la difusión y el uso masivo de esta tecnología es relativamente reciente, siendo especialmente interesantes ámbitos de aplicación como la enseñanza con herramientas de software libre que la implementan.
¿Qué es la virtualización?La virtualización consiste en la creación de un entorno virtual, sobre una máquina real, en el que podemos ejecutar programas sobre otro sistema operativo, de manera independiente. Es decir, la virtualización es un programa que proporciona soporte para instalar otros sistemas operativos sobre la misma máquina, y que funcionarán de manera encapsulada dentro de ese entorno virtual. Habrá por tanto, sistema físico que será máquina real y un sistema virtual o lógico que se ejecutará virtualizado sobre el sistema físico. Y si se dispone de suficientes recursos podríamos tener varios sistemas virtuales ejecutándose sobre un único sistema físico. Y en sentido contrario también, es decir que varios recursos físicos (servidores o dispositivos de almacenamiento) aparecen como un único recurso lógico. Una definición mas sencilla la podemos dejar de la forma siguiente: La virtualización que es un proceso por el cual se pueden crear y trabajar con varios sistemas operativos independientes ejecutándose en la misma máquina. Para ello se utiliza una aplicación de software que permite que un mismo sistema operativo maneje imágenes de los sistemas operativos virtualizados a la vez. Esta tecnología, pues, permite la separación del hardware y el software, lo cual posibilita a su vez que múltiples sistemas operativos, aplicaciones o plataformas se ejecuten simultáneamente en un solo servidor o equipo, según sea el caso de aplicación. El software que implementa la vitualización permite que el hardware ejecute múltiples instancias de diferentes sistemas operativos de forma concurrente sin que interfieran entre sí, ni con las aplicaciones. Por último, definimos el concepto de máquina virtual como software que crea un entorno virtual entre la plataforma utilizada en la máquina real y el usuario final. Tipos de virtualizaciónCuando hablamos de virtualización nos estamos refiriendo básicamente a dos formas de verla o catalogarla:
Ventajas de la virtualización
En consecuencia podemos decir que la virtualización proporciona alta disponibilidad, ahorra costes, optimiza el uso y control sobre los recursos y mejora la seguridad de los sistemas virtualizados. Desventajas de la virtualización
Utilización en el aula TICLa virtualización en el aula puede ser de mucha utilidad en casos como:
Y expuesto así parece que todo son ventajas, pero sabemos que eso no es cierto, ya que cualquier software de virtualización, tanto si es software libre como propietario, consume muchos recursos. Tal y como se ha nombrado, sobre todo relativos a proceso y memoria RAM. En el caso del aula TIC el tipo de virtualización mas utilizada es de plataforma y suelen utilizarse los sistemas operativos invitados (VirtualBox, VirtualPC) o la virtualización completa (VmWare). Pero todas estas ventajas se pueden convertir en inconvenientes si arrancar el software de virtualización supone dejar 'exhausta' la máquina real. Cuando se disponga de un aula TIC con equipamiento potente y RAM generosa la virtualización aporta mucho valor añadido a la práctica docente. ¿Qué es XEN?La Universidad de Cambridge creó un proyecto de investigación cuyo resultado fue, en el año 2003, la liberación de la primera versión de XEN. El proyecto estaba liderado por Ian Pratt, quien mas tarde creó un empresa de soporte, mantenimiento y capacitación sobre XEN en Enero de 2005. La empresa es Xensource Inc., y en la actualidad sigue con XEN (junto con otras empresas y la comunidad de desarrollo), y también se dedica a programar aplicaciones adicionales (no libres) para facilitar el uso, instalación y mantenimiento de XEN. XEN tiene licencia GPL, es código abierto y tanto Xensource como otras empresas importantes como IBM, Sun, HP, Intel, AMD, RedHat, Novell están involucradas en el mantenimiento y desarrollo de XEN. XEN funciona en arquitecturas x86 de 32 y 64 bits. Pero … ¿qué es XEN?XEN es una herramienta de virtualización que se ejecuta por debajo del sistema operativo y actúa como hypervisor del mismo. Es decir, si el sistema operativo actúa como supervisor de los programas que se ejecutan sobre él, XEN supervisa al supervisor y por lo tanto está en una capa inferior. XEN llama también a las máquinas virtuales dominios. Tiene dos forma de trabajar:
El uso HVM tiene la ventaja de que se puede virtualizar Windows, y no es necesario tener un kernel especial para virtualizar sistemas GNU/Linux, aunque su rendimiento es inferior, ya que en ausencia de un kernel adaptado algunos componentes son emulados. Para utilizar HVM el procesador debe tener soporte. Podemos comprobarlo mirando si tiene la instrucción 'vmx':
En el caso de la paravirtualización tiene el inconveniente de necesitar un kernel adaptado, pero el rendimiento es superior. La paravirtualización consiste en la utilización de niveles de privilegios o rings. Los procesadores mas actuales soportan este tipo de ejecución. En condiciones normales el sistema operativo o supervisor se ejecuta en el nivel 0 o root-mode que es el que tiene mas privilegios y las aplicaciones en niveles superiores con menos privilegios. La ejecución de XEN provoca un cambio en este esquema de privilegios, de forma que el sistema operativo pasa al nivel 1 dejando el nivel 0 para el software de virtualización. De esta forma XEN consigue el control total de todos los recursos incluyendo el sistema operativo. Cuando XEN arranca se inicia el hypervisor y automáticamente se arranca el primer dominio llamado 'dominio cero' o 'Dom0'. Este es un dominio especial de carácter administrativo imprescindible para iniciar o administrar otras maquinas virtuales (otros dominios). Dom0, por tanto, es un dominio privilegiado ya que desde allí se pueden administrar los demás dominios que se vayan creando y que se llaman genéricamente 'DomU', donde la U viene de Unprivileged. No hay que confundir este modo de trabajo de XEN con el de otros sistemas de virtualización, como los utilizados por productos como VmWare, VirtualBox, Virtual PC o Virtual Server de Microsoft. En el caso de XEN los sistemas virtualizados corren directamente sobre el procesador, sin emulación, por lo que el rendimiento es mucho mayor. XEN puede funcionar tanto en sistemas libres como propietarios. En el caso de sistemas libres con código abierto directamente, y en el caso de los propietarios empresas como INTEL y AMD han desarrollado procesadores que permiten que el sistema operativo se ejecute a un nivel superior sin necesidad de 'tocar' el código del sistema operativo. Usos e interfaces para XENPodríamos incluirlos como ventajas, pero simplemente los describiremos como posibles campos de utilización de este tipo de virtualización.
Por otro lado y en relación a las diferentes distribuciones GNU/Linux como Debian o Fedora y otras, están sacando versiones de sus distribuciones preparadas para XEN, es decir, con kernels que pueden ser virtualizados o que actúen como host de máquinas virtuales (domain 0). Respecto a las interfaces, una de las ventajas que tiene XEN es que, al ser software libre, aparecen continuamente nuevas interfaces de administración. De ellas las mas conocidas son:
De ellas la más compleja es Enomalism por el sistema utilizado para la autenticación de usuarios. También se puede trabajar con XEN desde la terminal en línea de orden. No es excesivamente complicado. Características de XENEnumeramos sus principales características:
Los archivos de configuración de las máquinas virtuales de XEN son muy simples aunque siempre es mas amigable trabajar sobre interfaz gráfica. Los archivos de kernel y ramdisk residen en el disco del 'domain 0'. Requiere que se especifique la cantidad de memoria en megabytes que se le da inicialmente a la máquina virtual, así como los parámetros de la interfaz de red, la MAC y el nombre que tiene la interfaz (domain 0) que actúa haciendo de 'puente' entre el 'domain 0' y la intefaz de red virtual de la máquina virtual. Por defecto XEN crea un puente para enviarle los paquetes que llegan a la placa física de red que están destinados a la máquina virtual. XEN utiliza LVM (Logical Volumen Manager) para darle más flexibilidad al espacio que puede utilizar la máquina virtual. Permite también simular a la máquina virtual que tiene más procesadores de los que en realidad tiene, detalle que puede ser de mucha utilidad al trabajar con aplicaciones que usen varios procesadores. ConclusiónXEN en la actualidad es ya un software suficientemente probado. Su licencia GPL lo hace muy atractivo para entornos de producción ya que abarata mucho los costes. Y combinado con sistemas de almacenamiento tipo RAID le aseguran una alta disponibilidad. Dejamos para un próximo artículo la utilización de XEN, su configuración y gestión desde una interfaz gráfica como caso práctico en entornos GNU/Linux. |