Virtualización. La gran revolución del multiproceso
Virtualización. Un concepto realmente interesante, del que se lleva desarrollando muchos años, pero que parece que por fin esta encontrando sus caminos productivos y no meramente de praxis y de desarrollo para profesionales. Si leemos algunos análisis de carga de servidores, millones a lo largo y ancho del mundo, podemos encontrarnos con estadísticas interesantes de como, y de forma general, tan solo aprovechamos entre un 20-30% de la capacidad de proceso de estos servidores. Es decir, a cualquier servidor a nivel global le sobran el 70% de sus recursos. Las tecnologías de software que os vamos a mostrar, apoyadas por avances a nivel de hardware, Irán cambiando este desaprovechamiento de los recursos mediante la generación de diferentes maquinas virtuales en una única maquina real.
¿En que consiste la virtualización?
La virtualización, para ser concretos, consiste en montar un sistema operativo virtual, o los que nuestra maquina sea capaces de manejar, en base a un sistema operativo "anfitrión" o Host. De este modo podemos cargar diversos sistemas, incluso totalmente diferentes, sobre un mismo hardware y de forma que estén aislados los unos de los otros y también que aprovechen el hardware disponible en el Host como su conexión de Red, sus puertos USB, sus unidades de almacenamiento, etc.
La versatibilidad de la virtualización es evidente a simple vista, luego profundizaremos mas con ejemplos prácticos. Podemos montar un sistema operativo Linux de forma aislada y totalmente funcional sobre una maquina con Windows XP Profesional o también podemos hacer lo contrario. Lo mejor de todo es el limite solo lo pone la capacidad del hardware de la maquina Host y es precisamente aquí donde los últimos avances de Hardware harán que la virtualización sea de uso general, quizás no por manos inexpertas, pero si que todos disfrutaremos de estos avances cuando nos conectemos a Internet o por ejemplo, cada vez que iniciamos nuestra consola Xbox 360.
Hablaremos profundamente como funciona la virtualización pero antes quiero pararme en porque la virtualización a cobrado tanta importancia en los últimos meses. El secreto esta en los sistemas multinúcleo y en el aislamiento de procesos por hardware.
Este es sin duda el principal avance tecnológico que convertirá a la virtualización en algo normal y cotidiano. Ahora tenemos procesador de dos núcleos pero en pocos años, tan solo un par de ellos, estaremos hablando de procesadores de Pc de hasta 8 núcleos y esto tan solo es el principio. El camino del aumento de rendimiento pasa por el multiproceso y también abre nuevas posibilidades donde pequeños servidores o pequeños PCs podrán servir aplicaciones para los que antes se necesitaban varias maquinas individuales. Esto no solo supone un ahorro en hardware sino también un ahorro de energía, una reducción de costes de administración y posibilidades antes inalcanzables como sistemas de seguridad corriendo en paralelo para asegurar nuestro PC de ataques hacker, troyanos o virus.
El trabajo en paralelo de varios procesadores no solo puede aumentar el rendimiento sino que también nos abre el aislamiento de diferentes aplicaciones que hagan uso intensivo de CPU. Ya con dos núcleos podemos correr dos sistemas operativos virtuales con toda una batería de aplicaciones de uso intensivo de CPU dentro de cada uno de ellos imaginaros lo que se puede hacer con 8 procesadores del nivel de rendimiento de los actuales trabajando de forma conjunta o por separado. La forma en que conocemos el PC y la informática esta cambiando rápidamente y ahora comenzamos a ver lo que el futuro nos ofrece. Y parte del futuro pasara sin duda por la virtualización de sistemas operativos y los fabricantes de procesadores empiezan a dar los primeros pasos en dar soporte especifico a este tipo de aplicaciones.
Procesadores con virtualización
Intel ha lanzado toda una serie de procesadores, sobretodo de gama profesional Xeon, con soporte de Virtualización. Esta tecnología que ofrece Intel amplia la capacidad de dichos procesadores con la capacidad de aislar la ejecución de los sistemas operativos virtuales cargados en el sistema. Este aislamiento de procesos favorece notablemente al rendimiento y a la estabilidad de los diferentes sistemas operativos cargados en el sistema anfitrión. Cada sistema operativo funciona como una partición dentro del procesador lo que favorece el funcionamiento de cada sistema operativo aumentando la seguridad y el buen funcionamiento del mismo.
La propia Intel ve en este tipo de procesadores un futuro muy prometedor dentro del mercado profesional y también domestico. Poder disponer de diversos sistemas operativos dentro de un mismo Pc permite a los usuarios aislar sus contenidos del resto, ganar en seguridad, evitar contagios de virus....y para los profesionales el poder, por ejemplo, separar su trabajo del ocio con diversos sistemas operativos cada uno totalmente aislado del otro y en ejecución constante. y en cuanto a servidores, aquí es donde primero notaremos en nuestro bolsillo el no tener que comprar diversos servidores, que luego tienen un mínimo uso, para correr nuestros diferentes servicios. Además correrán de forma aislada del resto de sistema con lo que ganamos en seguridad, tiempos de mantenimiento y sobretodo en hardware.
Intel ya comercializa algunos procesadores, tanto domésticos como profesionales, con tecnología de virtualización. Los procesadores están pero faltan aun las bios con soporte para esta tecnología y también la plataforma de software VMM necesaria para sacar partido a esta tecnología. Quizás según escribo estas líneas estos dos desarrollos de software ya están finalizados pero mis ultimas noticias me sugieren que todavía tardaremos algunos meses en ver soluciones totalmente preparadas para la tecnología de virtualización de Intel. En cuanto a los modelos que soportan esta tecnología encontramos los Pentium 4 de las series 662 y 672 que solamente están siendo integrados por grandes clientes como lenovo o Acer que están montando máquinas de prueba de virtualización solo para algunos de sus mejores clientes. En el caso de los procesadores Xeon toda la nueva gama de doble núcleo integra esta tecnología de serie. Por tanto toda la serie 7000 de procesadores Xeon construidos con proceso de fabricación de 65nm están ya preparados para estas tecnologías.
Existen soluciones las podemos encontrar para cualquier sistema operativo pero nosotros nos centraremos en Windows ya que es sin duda la primera plataforma donde nos iniciamos todos. Hay dos soluciones de virtualización muy extendidas en el mundo Windows, una de ellas comprada no hace mucho por Microsoft e incorporada en Windows 2003 R2, llamada Virtual PC y otra, probablemente la más potente y completa, que es VMWare. Virtual PC tiene ahora mismo una orientación puramente hacia sistema Microsoft, los cuales maneja a las mil maravillas, pero se olvida de otros sistemas alternativos como Linux aun
cuando las versiones de este programa, pre-compra por parte de Microsoft, si que ofrecían este soporte. VirtualPC 2004 tiene versiones de descarga de prueba totalmente gratuitas durante 45 días así que os pego el siguiente enlace para que podáis probarlo vosotros mismos:
Virtual PC 2004.
VMWare es la solución más potente del momento, sus ultimas versiones soportan sistemas operativos de 64-Bit, tanto Windows como Linux, y también ofrece soporte de hasta 2 procesadores por cada maquina virtual. Además también han lanzado en los últimos días un programa cliente que no nos permite generar máquinas virtuales pero si ejecutarlas de forma plena así que podemos usar nuestras máquinas virtuales en cualquier PC sin pagar licencias por usar las maquinas generadas, solo por generarlas. También podemos disponer de versiones de prueba de este programa. La ultima versión es la 5.5 y podéis conseguirla aquí: VMWare 5.5
En estas paginas veréis como generar una maquina virtual con VMWare Workstation pero antes os vamos a dar una idea de lo que podemos hacer con estos programas. Un programa de Virtualización no es un emulador en si mismo. Su funcionamiento es mucho mas natural que el de un emulador ya que establece sus propias capas de funcionamiento como haría el sistema operativo cargado directamente sobre el hardware. Esto lo consiguen estableciendo un "traductor" que usa el hardware de forma directa pero a través del sistema operativo instalado. Es aquí precisamente donde los procesadores con virtualización mejoraran el rendimiento y la estabilidad de estos sistemas ya que permitirán al software acceder al procesador de forma aislada. VMWare 5.5 nos ofrece múltiples posibilidades donde el limite solo lo pone la imaginación del usuario, incluso en esta version 5.5 ya se da cierto soporte a las tecnologías de virtualización de Intel.
Hasta hace poco casi siempre se usaba la virtualización como un medio de prueba y testeo antes de usar cualquier sistema en producción. Cada vez iremos viendo como estos sistemas pasan de ser meras pruebas a soluciones totalmente productivas. Estos programas han evolucionado mucho y el hardware empieza a acompañarlos. Una maquina virtual nos puede permitir disponer de servicios o de sistemas muy variados sin tener que reiniciar nuestro ordenador, además las máquinas virtuales se pueden configurar a medida por lo que no hace falta tener una potente maquina para aprovechar sus ventajas. Si disponemos de un procesador de doble núcleo entonces la carga de grande sistemas no son ningún problema y se pueden combinar con el uso intensivo o multimedia de nuestro PC.
Como ejemplos se me ocurre el montar nuestro propio sistema operativo aislado del uso general del PC para evitar que nuestro correo electrónico o nuestros programas importantes se vean afectados por la manipulación de otros usuarios del ordenador o infecciones de virus y otros programas maliciosos. Esta puede ser una solución adaptada a usuarios domésticos donde el trabajo y el ocio se suelen combinar en el mismo PC y por diversos usuarios que van desde niños hasta los mas mayores de la casa. También es un buen modo de poder aprovechar aplicaciones que no son ejecutables en sistema operativos actuales pero que no son necesarios para realizar nuestra actividad profesional. Es habitual que maquinas antiguas, que nos dan el servicio que necesitamos, se vayan al traste con alguna pieza estropeada que pasado el tiempo es imposible reponer. Si esta maquina corría Windows 98 y teníamos aplicaciones que solo corren bajo este sistema podemos generar una máquina virtual que use el disco duro físico de dicha máquina, sin tocar ni un solo archivo del mismo, y accediendo al hardware de la nueva máquina de forma transparente. Así tendremos una nueva maquina actualizada, con un sistema operativo moderno, pero a la vez ahorraremos costes ya que no tendremos que cambiar nuestras aplicaciones para que funcionen en este nuevo sistema operativo.
Para los usuarios mas avanzados no hay limites, podemos correr Linux sobre Windows, Windows sobre linux, usar servicios como correo, antivirus aislado, proxies, wireless, instalación remota de sistemas operativos y todo lo que se nos ocurra. Disfrutar de esta potencia en un procesador de doble núcleo es muy satisfactorio porque podemos hacer un uso normal de nuestra maquina anfitriona a la vez que aislamos y potenciamos sus servicios con una maquina virtual. Podemos crear cuantas maquinas necesitemos y ejecutar cada una en caliente cuando lo creamos necesario. La virtualización y el multiproceso se dan la mano para que los usuarios disfrutemos de sistemas operativos sin límites.
Podemos hacer una instalación al uso o usar también distribuciones LiveCD o LiveDVD con VMware sin ningún tipo de limitación. Podemos incluso acceder y montar las unidades locales en estos sistemas operativos siempre y cuando las mapeemos en la generación de la maquina virtual. Lo mejor para crear una maquina virtual es seguir las recomendaciones de VMware con sus maquinas típicas ya que si necesitamos realizar algún cambio podremos hacerlo en cualquier momento. Esta es otra de las interesantes funcionalidades de la virtualización, podemos acceder o limitar al sistema virtual según nuestras necesidades. Comencemos con las practica. Nosotros hemos querido probar el LiveDVD de la versión 10 de Suse compatible con sistema de 64-Bit. Para ello creamos una maquina virtual en un Pc host basado en un procesador de doble núcleo Pentium D 820 con 2GB de RAM. Como es una maquina potente configuraremos una máquina con bastantes recursos para una carga rápida.
Instalamos un maquina típica.
Esto elimina buena parte de configuración poco útil para iniciarse
Seleccionamos el sistema operativo que vamos a usar.
En el caso de Linux hay muchas opciones entre las que encontramos,
genéricos según la versión del Kernel.
Otro paso importante es como queremos conectarnos a la red local.
El modo "bridge" hace que la tarjeta virtual funcione como si de una física se
tratase. Si conectamos con un router ADSL este le asignara una IP a la maquina virtual
como si de otro PC se tratase. Es por tanto el modo mas completo para un uso normal.
Por ultimo seleccionamos lo que será el disco duro virtual.
También podemos hacer uso de un disco físico tal cual.
Lo mejor es que podemos albergar el sistema en discos externos,
discos USB y cualquier otro formato que se nos ocurra, como el DVD.
Para cargar el sistema podemos optar por ejecutar directamente la ISO de la distribución
de linux.En nuestro caso es una liveDVD que con la que VMWare genera una unidad virtual
de DVD.
Una vez creada la maquina virtual podemos cambiar las cosas que queramos.
Podemos añadir otras unidades, ampliar la memoria disponible, cambiar el numero
de procesadores, en definitiva cualquier cosa que ajuste la maquina a nuestras necesidades
de cada momento.
Ya solo tenemos que dejar que arranque la ISO con el LiveDVD
como si de tal se tratase.
Cada dia los sistemas operativos toman mas en cuenta a los programas de virtualización
por lo que el soporte es muy bueno. Aquí tenemos a Suse detectando el hardware
de VMware el cual soporta de forma plena.
Igual que montamos Suse en una LiveDVD, podemos montar una versión completa y
trabajar con ella de forma plena. Esta es una forma rápida de conseguir resultados.
Aqui tenemos nuestro Suse 10 en pleno funcionamiento. En apenas 1 minuto
tenemos un linux corriendo bajo Windows XP Profesional. Además podemos hacer
una "foto" del sistema en el momento o momentos que queramos
y volver a ellos en cualquier momento. De forma instantanea.
Konqueror abriendo Hispazone.com en nuestra máquina virtual.
Hay muchas razones para querer montar una maquina virtual Windows sobre un sistema operativo Windows. Ya hemos dado ejemplos de ello en las anteriores paginas. El proceso es el mismo que para crear una maquina Linux y el proceso de instalación es idéntico. Podemos usar un CD con la versión de Windows que queramos o podemos cargarlo a través de una ISO. Seguro que has pensado muchas veces probar algunos de los servicios que ofrecen las versiones de servidor de Windows, Microsoft además te facilita versiones de prueba de bastantes días, así que no tienes excusa, que algo sale mal, vuelves a crear otra maquina o formateas las veces que consideres necesarias, o tomas "snapshots" antes de los cambios, experimentan en definitiva con la seguridad de que tu sistema anfitrión esta aislado de todos estas pruebas. Es muy útil por ejemplo disponer de un servidor de pruebas virtual para todos aquellos que os dedicáis, por profesión o por afición, al mantenimiento de sistemas o a la creación de sitios Web y también nos sirve como un backup funcional de nuestra información y sistemas. Aquí tenéis algunas capturas de un Windows 2003 Server funcionando sobre Windows XP Profesional en una maquina virtual generada por VMWare 5.5 Workstation.
Windows 2003 Server tras una instalación satisfactoria.
Podemos instalar cuantos servicios queramos, aplicaciones que necesitemos,
totalmente como si de un sistema operativo instalado en cualquier maquina se
tratase. Lo mejor, que sabemos que Windows nos cogerá perfectamente todo el hardware
porque esta ampliamente preparado para VMWare.
Ya tenemos nuestro sistema listo para comenzar a trabajar.
Lo mejor de correr estos programas en un doble núcleo es que podemos seguir haciendo
lo que nos plazca con el ordenador anfitrión como jugar, ver video, editar,
trabajar, todo lo que hacemos normalmente mientras que tenemos otro sistema
corriendo con soltura de forma paralela.
Conclusión.
Puede parecer que esto no es necesario salvo para usuarios avanzados o profesionales pero debemos hacernos a la idea de que la virtualización es en parte la gran beneficiada de la amplitud de potencia de los sistemas domésticos y de los nuevos procesadores multinúcleo. Cada día veremos mas sistemas que usar la virtualización como medio de ampliar las posibilidades de nuestras maquinas y sistema operativos domésticos. Es mas, alguna dispositivo de los que ya usamos, como la Xbox 360 ya usa la virtualización como apoyo a su seguridad anti crackeo. Un sistema ligero corre virtualizado en su procesador de triple núcleo para asegurarse que ninguna modificación tiene lugar en su kernel principal y asi evitar ataques de virus o modificaciones del sistema como si ocurre en la Xbox original donde es fácil encontrarse muchas maquinas corriendo Linux.
La virtualización abre caminos dinámicos donde el usuario ya no tiene porque elegir correr en cada momento un sistema operativo, podrá correr los que quiera de forma simultanea aprovechando las ventajas de cada uno de ellos. Estaremos también mas aislados de las inseguridades y mas protegidos frente a la perdida de datos. El único PC de la casa puede convertirse en un PC de ocio pero también seguro para los datos importantes que se alojen en el. En definitiva será compañero de fatigas en este nueva generación de hardware donde el multiproceso será el gran protagonista.