Mundo Virtual III: Tecnologías y opciones para virtualizar
Sistema Internet de la Presidencia
SIP.gob.mx
 
Inicio Mundo UNIX Mundo Virtual III: Tecnologías y opciones para virtualizar

Compartir Compartir         

Mundo Virtual III: Tecnologías y opciones para virtualizar

Mundo virtual II

Como recordaremos de los artículos anteriores, primero comenzamos por decidir que sistemas se podían virtualizar, luego ponderamos la infraestructura y condiciones necesarias para hacerlo, considerando que no existe una receta de cocina como tal, sino que las características y necesidades de la organización son las que en realidad determinan los sistemas anfitriones y del alcance de esta tecnología en los centros de cómputo.

Ahora que ya tenemos definido el qué, veremos con qué realizaremos estas implementaciones, pero para ello primero entenderemos la tecnología subyacente a la virtualización y sus variantes, lo que impacta no sólo en la parte de la solución utilizada, sino hasta en el equipamiento y el sistema operativo del anfitrión. De igual forma, veremos brevemente las principales soluciones para la implementación de ambientes virtuales en un entorno Linux, que en su mayor parte pueden utilizarse sin costo de licenciamiento.

La relación entre los sistemas y la solución de virtualización.

Esencialmente tenemos dos tipos de sistemas que conforman cualquier solución de virtualización:

* Anfitrión o host, que es el equipo físico (memoria RAM, espacio físico, procesador) y que accede a los recursos conectados local o remotamente (dispositivos externos, almacenamiento, unidades de red).

* Huesped o guest, sistema virtualizado que reside en el anfitrión y que transfiere sus peticiones al sistema real para atender los servicios que ofrece. En este caso, podemos tener tantos como el anfitrión soporte, lo que depende del dimensionamiento que hayamos realizado previamente.

La selección del sistema operativo del anfitrión dependerán en gran medida del conocimiento del administrador del mismo, además que algunas soluciones de virtualización recomiendan o soportan versiones o sabores específicos, por lo que elegir ambas partes es muy importante.

En medio de estos sistemas tenemos el virtualizador, que controla las peticiones de los huéspedes al anfitrión y por lo tanto, modula el volumen de recursos que asigna a cada huésped, aislándolo al mismo tiempo para evitar que realice acciones que sean perjudiciales al sistema real u otros sistemas virtualizados. Su operación es mucho más compleja de que parece, por lo que debe soportar el mayor número posible de estas características:

* Portabilidad. Importar y exportar los sistemas virtualizados de un equipo a otro, con el mejor soporte posible de sistemas operativos en el anfitrión.

* Adición de recursos al sistema original. Facilidad de ampliar el espacio destinado a la MV, múltiples conexiones de red, comunicadción con equipos remotos u otros sistemas virtualizados. Esto pùede incluir la asignación dinámica de los recursos.

* Soporte a hardware lo más amplio posible. Desde el reconocimiento de diferentes procesadores virtuales, hasta soporte a dispositivos USB, iSCSI, control de energía, PXE (Preboot Execution Environment), etc.

* Generación de imágenes (snapshots) que mantienen una copia del estado de la MV en un momento determinado. * Administración remota, tanto desde una interface gráfica como por línea de comandos.

* Soporte a múltiples sistemas operativos huésped, tanto variaciones de MS Windows como sabores de Linux/Unix.

* Panel de administración de los sistemas virtuales, para evaluar su consumo de recursos y prevenir caídas de los huéspedes.

* Soporte a virtualización por hardware, que veremos más adelante.

A pesar de la gran popularidad que tienen estas soluciones, una crítica generalizada es que las herramientas de administración todavía no han madurado lo suficiente para realizar de forma proactiva correcciones a las MV y en ocasiones, la experiencia del administrador es la que permite controlar el ambiente.

Virtualización mediante software y hardware.

Este no es un punto menor, ya que impacta eventualmente en el desempeño de las MV. Desde hace algunos años los dos principales fabricantes de procesadores han integrado sendas tecnologías para que, cuando se active, ayuden desde el hardware el proceso de virtualizar, lo que supone una forma de eficientar las implementaciones. En el caso de Intel se utiliza VT-x y para AMD tenemos AMD-V, las cuales difieren incluso en el proceso de invocación del sistema operativo.

Las soluciones de virtualización por lo general pueden trabajar sólo desde software, en consideración que se utilice un servidor sin virtualización por hardware, pero esto impacta en el desempeño y de hecho, en diferentes ocasiones el virtualizador requiere alguna de estas tecnologías.

De igual forma, algunos sistemas operativos necesitan de la virtualización por hardware, como es cuando realizan llamadas especiales a las funciones del procesador (existen pocos casos, como OS/2) o en ocasiones, para emular sistemas operativos a 64 bits.

En el caso específico de Linux, existe el módulo kvm (kernel virtual machine) a partir del kernel 2.6.6 (no estoy seguro de la versión) que conecta el sistema operativo con la tecnología de virtualización del procesador, por lo que una vez que se activan ambos, la ejecución de máquinas virtuales mejora considerablemente. Frecuentemente se recomienda instalar el framework Dynamic Kernel Module Support (DKMS) para manejar las actualizaciones del kernel sin necesidad de reinstalar el virtualizador.

Tipos de virtualización.

No profundizaremos en este punto, ya que es muy técnico y sale del alcance del presente documento, por lo que se mencionaran exclusivamente los puntos más importantes.

* Emulación ofrece la ejecución de un sistema operativo sin modificar dentro de otro, permitiendo la ejecución en el CPU nativamente en algunas opciones para mejorar el desempeño, sin embargo tienen un desepeño pobre, algunos ejemplos son los productos de VMware, QEmu, Bochs y Parallels.

* Paravirtualización es la técnica para ejecutar múltiples sistemas operativos mediante una capa subyacente llamada hipervisor, algunos ejemplos son Xen y UML.

* Virtualización a nivel de sistema operativo ejecuta múltiples instancias de sistemas operativos aislados el uno del otro, tiene el mejor desempeño (cercano al sistema real) y ofrece administración dinámica de los recursos, algunos ejemplos son FreeBSD Jail, Solaris Zones/Containers, Linux-VServer, OpenVZ y Virtuozzo.

Tipos de soluciones para virtualizar.

En este punto es donde comenzamos a decidir nuestra estrategia y con ello, la solución a utilizar. Nos enfocaremos principalmente en soluciones libres para Linux (aunque la mayoría puede soportar otras plataformas), pero aclaramos que la lista no es exhaustiva y claro está, existen opciones comerciales, frecuentemente basadas en las libres.

Virtualización del escritorio. Con frecuencia se utiliza para probar sistemas operativos o aplicaciones, aunque eso no es impedimento para montar servicios pequeños en producción; por mi parte lo he hecho sin que los usuarios tengan mayores problemas por lo mismo. Las principales opciones son:

* VirtualBox. Solución distribuida libremente por Sun Microsystems y que tiene un conjunto de opciones muy aceptable, es multiplataforma y bastante fácil de usar.

* VMware Player. Producto comercial, se distribuye gratuitamente para usuarios finales y ofrece ventajas que lo colocan como el líder del mercado.

Virtualización del servidor. Cuando nuestro objetivo es consolidar la plataforma informática y montar servicios críticos, lo más probable es que debamos considerar algunas de estas opciones, ya que soportan configuraciones relativamente complejas como clusterización (por ejemplo Heartbeat project), entre otras.

* Xen. Es el más veterano y posiblemente el más sólido, ofrece un método llamado paravirtualización, lo que equivale a que el sistema huésped sabe que está virtualizado y por lo tanto, no es necesario convertir la peticiones al hardware de un sistema al otro, lo que naturalmente ofrece una mejora notable en el rendimiento al usar un módulo propio en el kernel llamado Xen Hypervisor. Su mayor desventaja es que es díficil de configurar y no tiene una interface de administración, Citrix ofrece de forma comercial su Citrix XenServer con muchas mejoras de la operación.

* KVM. En líneas anteriores ya mencionamos al Kernel Virtual Machine Manager, que se incluye en el núcleo, no es tan maduro como Xen pero su facilidad de uso y administración promete mejorar su operación en poco tiempo, Ubuntu Linux tiene opciones de administración por línea de comandos y herramientas gráficas.

* OpenVZ. Es una implementación libre y gratuita a nivel kernel para virtualizar sistemas y aislarlos, con opciones de administración de los recursos para cada uno, generación de imágenes (snapshots) y otras ventajas. En esta solución se basa Parallels Virtuozzo Containers.

Virtualización basada en el contenedor. Una de las opciones menos conocidas pero muy útil para 'clonar' máquinas virtuales en base al sistema operativo del anfitrión; fundamentalmente el sistema operativo del host se ejecuta en el núcleo del anfitrión, siendo OpenVZ el principal distribuidor de esta tecnología, aunque no se vislumbra un uso importante en su futuro, por obvias razones, ya que se limitaría a replicar sistemas Linux, dejando de lado MS Windows, *BSD y otros más.

En este punto, ya debemos estar cerca de realizar implementaciones en producción, por lo que en la siguiente entrega analizaremos las estrategias para lograrlo y algunas de las mejores prácticas al respecto.

Fuente: La Cofradía Digital / mexicoextremo

Ver nota original

Última actualización el Jueves, 03 de Septiembre de 2009 16:29
 
Av. Constituyentes #161, Col. San Miguel Chapultepec, MÉXICO D.F., C.P 11850 - Tel. +52 (55)5093 5300

Comentarios sobre este Sitio de Internet Comentarios y Sugerencias sobre este Sitio de Internet                         McAfee SECURE sites help keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams
 
SISTEMA INTERNET DE LA PRESIDENCIA, MÉXICO - ALGUNOS DERECHOS RESERVADOS © 2010 - POLÍTICAS DE PRIVACIDAD Políticas de Privacidad