2006/11/15

Virtualización: ¿el futuro está aquí?

Mucho se ha hablado y se está hablando del término virtualización. Desde hace unos cuantos años este término aparece y se repite habitualmente en los círculos de tecnólogos, administradores de sistemas y otros, aunque hasta hace poco no había pasado más allá de ser un tema más de conversación sobre tecnología puntera que promete pero no acaba de consolidarse.

Aplicado a sistemas de información, la virtualización no es ni más ni menos que, a partir de una plataforma hardware, ejecutar un programa de "virtualización" que oculta el hardware que hay por debajo creando una máquina emulada por software.

Las aplicaciones de la virtualización son inumerables. Por un lado, permite reaprovechar al máximo los recursos hardware de la máquina. Gran parte de la plataforma de servidores instalada hoy en día está la mayor parte del tiempo ociosa, o no se destina el 100% de su potencia a las tareas asignadas porque simplemente la unidad de procesamiento no tiene más que hacer. Esos espacios muertos de tiempo pueden ser empleados para que otra tarea se lleve a cabo. El contar con una plataforma virtualizada implica que podemos tener de forma simultánea varias máquinas virtuales corriendo aplicaciones en nuestra máquina de forma completamente independiente. Esto no sería en sí una gran ventaja (podemos tener un servidor con múltiples aplicaciones instaladas) si no fuera por la seguridad que añadimos a la hora de ejecutar aplicaciones en entornos aislados: si nos falla una máquina virtual las otras permanencen impasibles. También permite asignar recursos bajo demanda a una máquina virtual cuando los necesite: procesador, memoria, etc, permitiendo en nuestra plataforma virtual ir añadiendo recursos o eliminando según se vayan necesitando o desplazando máquinas a o desde nuesta plataforma real según se vaya necesitando.

Esta es la segunda gran ventaja de la virtualización: la seguridad. El mantener entornos completamente estancos e independientes, aun siendo dentro de la misma plataforma, implica que si uno de nuestros servicios sufriera una interrupción por un mal funcionaminto del programa, la caída únicamene afectaría a dicha máquina y no al resto de máquinas virtuales que se ejecuten. Es como tener varios servidores, cuando en realidad solo tenemos uno.

La tercera gran ventaja es la versatilidad. Para determinadas aplicaciones (entornos de desarrollo y pruebas), el estar constantemente instalando, desinstalando y reinstalado sistemas operativos es una tarea común. Las máquinas virtuales nos permiten que, en cuestión de segundos, cambiemos una máquina por otra igual que si cambiáramos un disco duro de nuestro PC con un sistema operativo por otro disco duro completamente distinto. Si a esto añadimos que se nos permite realizar snapshots (fotos de estado en un momento dado), tenemos la posibilidad de volver a un estado anterior en cuestión de segundos. Podemos imaginarnos a un equipo de testing y calidad probando inumerables versiones de un mismo producto y desinstalándolas, sin ni siquiera tocar una tecla, dejando la máquina como estaba minutos antes.

A partir de estas premisas las aplicaciones son innumerables. Desde consolidar diferentes servidores ubicados en máquinas distintas mal aprovechadas dentro de una máquina más potente donde se ejecutan sus respectivas máquinas virtuales hasta que equipos de evaluación de software no requieran de una segunda o incluso tercera máquina para realizar sus pruebas y pueden lenvantar distinas máquinas con distintos sistemas operativos en cuestión de segundos según sus necesidades. Los beneficios cubren distintas y variadas áreas: desarrolladores, centros de proceso de datos, departamentos de sistemas, etc.

En el caso de servicios de alta disponibilidad, en caso de caída o mal funcionamiento de una plataforma hardware, podemos trasladar la máquina virtual en cuestión de minutos (o segundos si utilizamos almacenamiento compartido) a una nueva plataforma hardware completamente distinta y ponerla a funcionar sin tener que reconfigurar absolutamente nada.

Actualmente, la virtualización se está popularizando debido a una serie de avances técnicos, tanto a nivel hardware como software, que hacen que a día de hoy sea una alternativa a los servidores tradicionales a tener muy en cuenta. Por un lado, el desarrollo de los procesadores ha alcanzado un grado de desarrollo muy alto con la intruducción de micros de doble núcleo (Intel acaba de lanzar sus procesadores de cuatro núcleos). Este incremento en el número de unidades de ejecución en los microprocesadores hace que el coste de hardware en relación a su potencia se haya reducido considerablemente. Una máquina de ocho procesadores que hace unos pocos años costaba miles de euros podría reducir su coste al de una máquina de dos procesadores si utiliza pastillas de cuatro núcleos. Por otro lado, la reducción del precio de la memoria RAM y disco duro hace que estén a disposición del consumidor grandes espacios de almacenamiento a precio reducido. Paradójicamente, el tamaño de las aplicaciones y datos a almacenar no ha aumentado a una velocidad tan vertiginosa, por lo que de facto hoy en día sobra mucho espacio en la mayoría de los servidores. Finalmente, los nuevos procesadores que surgen en el mercado vienen preparados específicamente para facilitar al desarrollador de máquinas virtuales mecanismos para mejorar el rendimiento de sus entornos emulados.

Por otro lado, el desarrollo del software de virtualización tampoco se ha quedado atrás, y a los tradicionales productos comerciales como VMWare o Microsoft Virtual Machine se han añadido alternativas opensource, algunas con más éxito que otras, como Xen, Qemu o Boschs.

Evidentemente no todo son ventajas en el área de la virtualización, y sus detractores argumentan que el rendimiento se resiente, especialmente en aplicaciones con muchas operaciones de entrada / salida o que un fallo hardware en un servidor que incluya varias máquinas virtuales haría que todas esas máquinas dejaran de funcionar.

En cualquier caso, recomiendo a cualquiera que esté interesado que evalúe las herramientas que a día de hoy existen en el mercado, experimente y vea la facilidad y versatilidad que un sistema basado en máquinas virtuales pueda aportar. A día de hoy existen alternativas gratuítas (tanto comerciales como opensource) más que de sobra para hacerse una idea.

VMWare Server: http://www.vmware.com
Microsoft Virtual PC: http://www.microsoft.com/spain/windows/virtualpc/default.mspx
Qemu: http://www.qemu.org
Xen: http://www.cl.cam.ac.uk/research/srg/netos/xen/
Bochs: http://bochs.sourceforge.net

2 comentarios:

  1. curioso comentario para alguien cuyos origenes se remontan al Ruiz Gimenez, en el muy taurino barrio de la guindalera.
    Es curioso lo que un MSX puede conseguir, que segun tu, era el mejor ordenador de la fecha,aunque yo siempre sostuve que mi amstrad CPC 6128 con un sistema operativo bastante mas evolucionado que el del MSX, era bastante mejor, aunque en clara desventaja con respecto al commodore AMIGA, y su novedoso sistema de ventanas, saludos IÑIGO, como te gustaba NATALIA jodio.

    ResponderEliminar
  2. Rosa María... del Ruiz Gimenez... :-)
    Recuerdo a María (sin Rosa), muy buena amiga de Natalia que debió entrar ya en cuarto o quinto de EGB y por la que estaba coladito Miguel Angel... ¿eres tú?

    Como no puedo contactar contigo pq tienes el perfil oculto, te propongo que me busques en el Facebook o me mandes un mail inigoml@ dominio de gmail. :)

    ResponderEliminar