You are on page 1of 35

CAPITULO 1

INTRODUCCION A LA VIRTUALIZACION

En este primer captulo vamos a ver informacin general sobre el trmino virtualizacin, sus diferentes aproximaciones tericas y sus aplicaciones prcticas hoy en da. Despus de hacer una rpida resea histrica, podemos comprobar como la virtualizacin no es un trmino nuevo y que adems en informtica podemos encontrar muchos mbitos en los que es aplicable la caracterstica virtual. Despus, veremos el paso crucial dado con la creacin de tecnologas hardware como soporte para la virtualizacin, Intel VT y AMD-V, y nos centraremos en qu consiste la virtualizacin en nuestros das bajo el punto de vista de la empresa actual: este es el campo sobre el que desarrollar el Proyecto Fin de Carrera y no es otro que, simplificndolo en una frase, la ejecucin de servicios en mquinas dentro de otras mquinas. Aqu introduciremos los conceptos de mquina virtual e hipervisor, y exploraremos de manera breve la gran variedad de modelos de virtualizacin existentes como lo son la virtualizacin de plataforma, de recursos, aplicaciones y escritorio. Cada uno de los anteriores puede derivar en varios paradigmas y modos de operar que clasificaremos con detenimiento, haciendo especial hincapi en las categoras englobadas dentro del mbito de la virtualizacin de plataforma: virtualizacin completa, paravirtualizacin, virtualizacin a nivel del sistema operativo, a nivel del kernel, emulacin y sistemas invitados. Virtualizar aporta ventajas y posibilidades nicas en la actualidad. Permite reducir costes en prcticamente todos los campos de actuacin de la administracin de sistemas; desde la instalacin y configuracin de equipos hasta los procesos de copias de seguridad, monitorizacin, gestin y administracin de la infraestructura. Disminuye el nmero de servidores fsicos necesarios y el porcentaje de desuso de los recursos de los que disponen, aumentando su eficiencia energtica. Tambin nos brinda la posibilidad de centralizar y automatizar procesos cuya administracin normalmente consume mucho tiempo, pudiendo aprovisionar y migrar mquinas virtuales de una manera rpida y fiable, manteniendo alta la calidad del servicio y bajo el tiempo de respuesta ante una cada del mismo.

16 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Las tcnicas de virtualizacin unidas a otras herramientas disponibles pueden garantizar requerimientos que de otro modo seran difciles de cubrir, al menos de manera tan sencilla, como son por ejemplo alta disponibilidad y alto rendimiento. En nuestro caso sern aplicadas a servicios de telefona IP, por lo que es tambin de vital importancia revisar el estado actual de este tipo de servicios y ms concretamente de Asterisk. Asterisk, desde su aparicin, ha revolucionado por completo el concepto de servicios de telefona IP debido a sus ventajosas prestaciones proporcionando caractersticas telefnicas que lo dotan de un gran potencial, como escalabilidad, portabilidad y flexibilidad, o su integracin con Internet y redes locales. Adems de todo ello, que no es poco, Asterisk supone una gran reduccin en costes fundamentalmente debido al uso de Internet como medio de transporte para las comunicaciones, al mismo tiempo que posee un gran abanico de caractersticas diferenciadoras como gestin y distribucin automtica de llamadas, buzones de voz, salas de conferencias, fax virtuales Tanto la telefona IP en general como Asterisk en particular sern estudiados en el captulo cuarto Introduccin a la telefona IP y Asterisk. La combinacin de virtualizacin y telefona IP puede ofrecer unos resultados realmente espectaculares uniendo las ventajas que derivan del uso de uno y otro. Sin embargo, existen desventajas derivadas de esta asociacin. Sirva este captulo como introduccin terica al primer pilar de esta unin, la virtualizacin, y como anlisis previo y necesario para el resto del desarrollo del proyecto.

Historia de la Virtualizacin

En este primer apartado profundizaremos en el concepto de virtualizacin haciendo un pequeo repaso histrico de la tecnologa, no tan reciente como podramos pensar. Viendo sus orgenes y entendiendo las causas que provocaron que evolucionara como lo ha hecho, llegaremos al punto en el que hoy en da nos encontramos: un amplio abanico de soluciones que encajan perfectamente en las necesidades actuales de las empresas. Esta variedad de soluciones, clasificadas en diferentes modelos, ha provocado que normalmente se confunda el trmino virtualizacin con otras actividades con objetivos similares. Haremos una parada en las tecnologas hardware desarrolladas tanto por Intel (Intel VT) como por AMD (AMD-V), cuya aparicin fue y sigue siendo una referencia muy importante en ciertos casos en los que la solucin de virtualizacin a aplicar requiera de su presencia como soporte fsico y asistir en el proceso. Esto ocurre, por ejemplo, cuando queremos aplicar virtualizacin completa con mquinas virtuales que alojen sistemas operativos invitados sin modificar. Finalmente, estableceremos las bases de porqu la virtualizacin juega hoy da un papel tan importante y porqu lo seguir haciendo en el futuro.

1.1

ANTECEDENTES

Virtualizar ha sido considerado histricamente y de manera general como tomar algo en cierto estado y hacer parecer que se encuentra en otro estado diferente. A partir de ello, dos aproximaciones han ido evolucionando: hacer parecer que un computador se trata de mltiples computadores y no solamente de uno virtualizacin- o lograr que mltiples computadores sean uno slo; esto, ms que virtualizacin, comnmente es llamado Grid Computing o Server Aggregation. La virtualizacin no es un tema novedoso en informtica, de hecho se considera que existe, aproximadamente, desde hace cuatro o cinco dcadas. Por aquel entonces y hasta hace pocos aos era aplicada en mbitos exclusivos, slo prcticamente para los grandes centros de clculo, tanto bancarios como militares y universitarios. Algunos de los usos pioneros de la virtualizacin incluyen al IBM 7044 (en el que la mquina fsica era la M44, que albergaba varias mquinas lgicas 44X para los procesos) el CTSS (Compatible Time Sharing System) Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 17

desarrollado por el MIT (Massachusetts Institute of Technology) en el IBM 7044, y el proyecto Atlas de la Manchester University (uno de los primeros supercomputadores del mundo, operativo en 1962), pionero en el uso de paginacin bajo demanda y llamadas en modo supervisor.

Figura 1.1 Computadores IBM 7040 y 7044 en un centro de computacin en 1964.

El proyecto Atlas tuvo especial importancia ya que Christopher Strachey incluy en l caractersticas novedosas para la poca (aos sesenta) y que venan a solucionar los graves problemas surgidos del uso comn de un nico ordenador por parte de muchos trabajadores a travs de terminales. Bsicamente consista en un mecanismo para el reparto y uso al mismo tiempo de los recursos del computador (fundamentalmente procesador y disco), y la seguridad y fiabilidad de que el trabajo de un empleado no interfiriera en el de los otros. En la poca de los mainframes, estas cuestiones superaban en importancia al rendimiento en la rapidez de los resultados. As es como naci la virtualizacin, con la necesidad de particionar recursos de disco, memoria y capacidad de cmputo. Estas particiones (mquinas virtuales) podran acoger una instancia de un sistema operativo, comunicarse a travs de red, usar sus recursos o utilizar los del resto en el que caso de que no estn ocupados, se podran tomar imgenes de su estado, o incluso ser migradas entre distintos servidores que las alojaran.

Eugenio Villar y Julio Gmez http://www.adminso.es

18 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Figura 1.2 (a) Almacenamiento ROM de Muse (prototipo del computador Atlas), 1960. (b) Unidad aritmtica del computador Atlas, 1967.

IBM reflej la importancia de la virtualizacin en los aos sesenta con el desarrollo de varios sucesores para el IBM 7044. Uno de ellos, el Model 67 virtualiz todas las interfaces hardware a travs del VMM (Virtual Machine Monitor), un monitor de mquinas virtuales, llamado posteriormente en la dcada de los setenta hipervisor debido a la habilidad que posea de correr sistemas operativos dentro de otros, y que era ejecutado encima del hardware subyacente. En estos primeros das de la virtualizacin los sistemas operativos que eran ejecutados en mquinas virtuales eran llamados Conversational Monitor Systems o CMS. Estas primeras mquinas virtuales continuaron desarrollndose y avanzando, e incluso en nuestros das se pueden encontrar corriendo en el mainframe System z9TM, mostrado en la figura 1.3. Esto muestra un detalle importante en la evolucin de la virtualizacin, que es la compatibilidad hacia atrs.

Figura 1.3 (a) Parte frontal e interior del mainframe IBM 2094 System z9, que corre actualmente desarrollos de mquinas virtuales utilizadas en los primeros mainframes con virtualizacin de IBM.

Otro de los primeros usos de la virtualizacin es el uso del procesador simulado, P-code (Pseudo-code). P-Code es un lenguaje mquina que es ejecutado en una mquina virtual ms que en el hardware real, lo que permiti a los programas codificados en P-Code ser altamente Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 19

portables y correr en cualquier lugar en el que est disponible la mquina virtual P-Code. Mquinas virtuales de uso extendido en la actualidad siguieron este mismo modelo, como es el caso de la Java Virtual Machine (JVM). El mismo concepto que en el que se fundament PCode fue usado en los aos sesenta tambin por el Basic Combined Programming Language o BCPL, predecesor de C. Otro aspecto diferente de la virtualizacin y ms reciente es la llamada virtualizacin del juego de instrucciones, o traduccin binaria. Un juego de instrucciones virtual es traducido al conjunto de instrucciones fsico del hardware subyacente, en la mayora de los casos de manera dinmica. Un ejemplo reciente de este modelo fue usado en el Crusoe Central Processing Unit (CPU), diseado por Transmeta, que implement traduccin binaria bajo el nombre comercializado de Code Morphing. Un ejemplo similar es el escaneo de cdigo en tiempo de ejecucin (runtime code scanning) usado por las soluciones de virtualizacin completa (ser vista ms adelante) para encontrar y redirigir instrucciones privilegiadas. Con la llegada de los computadores personales el concepto de acceso al mismo tiempo a los recursos de un nico supercomputador fue desapareciendo, y con l se vio eclipsada la virtualizacin: lo importante era el rendimiento ms que la seguridad y fiabilidad. Al ocaso de la virtualizacin tambin contribuy el que no fuera una buena idea la particin de los recursos de los miniordenadores o computadores personales debido a su escasez; los mainframes quedaron reducidos a lugares crticos y puntuales. La evolucin con los aos sigui la misma lnea, hasta llegar a la situacin que conocemos en la que prcticamente existe un ordenador por persona. Afortunadamente la virtualizacin junto a tecnologas como los sistemas operativos multiusuario y multitarea sobrevivieron en las Universidades y en sectores en los que su uso y fiabilidad eran crticos: grandes empresas, bancos, sistemas militares, etc. Estos sistemas fueron evolucionando y ya no eran los mainframes usados antiguamente, sino que eran sistemas que usaban hardware de miniordenador y con arquitectura mainframe, como la familia IBM AS/400, cuyo primer modelo vio la luz en 1988.

Figura 1.4 Serie B de la familia IBM AS/400. Como se puede ver, los tamaos y configuraciones disponibles muestran una gran evolucin en los mainframes.

Con el aumento de complejidad y potencia de los ordenadores que ya podan ejecutar sistemas multitarea y multiusuario, se pudieron retomar las caractersticas del sistema Unix que fueron eliminadas en sus primeras versiones (reducidas para posibilitar la ejecucin en sistemas de baja potencia); entre ellas la virtualizacin. Surgi de nuevo el trmino de consolidacin de almacenamiento, recorriendo el camino inverso desde un disco duro por persona a un disco duro para todos. Eugenio Villar y Julio Gmez http://www.adminso.es

20 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

En el presente, la virtualizacin ha llegado al escritorio, lo que ha hecho que incremente exponencialmente de nuevo su popularidad y esto provoque que sea una de las tecnologas ms innovadoras del momento debido a las notables ventajas que supone su aplicacin. Uno de los hechos que justifican esto es que prcticamente todas las grandes empresas dentro del mundo informtico han desarrollado productos de virtualizacin o han adquirido empresas que los ofrecan. Hoy en da, las empresas disponen de ordenadores con una potencia de clculo muy superior a la de decenas de servidores de hace varios aos. Ahora que el rendimiento no es problema ste consiste en la seguridad, fiabilidad, y separacin de privilegios necesaria, es decir, como ocurra hace aproximadamente cuarenta aos en bancos, organizaciones militares y universidades. Estos problemas son ahora las nicas razones para seguir manteniendo servicios separados en diferentes servidores en las empresas. A partir de ah queda explorar las innumerables ventajas que ofrece la virtualizacin como solucin, y que mostraremos a lo largo del desarrollo del presente proyecto: planificacin conjunta de servidores, creacin automtica de mquinas, migracin en caliente a travs de distintos equipos para llevar a cabo tareas de mantenimiento, creacin de entornos de prueba, mayor aprovechamiento de los recursos hardware disponibles,

1.2 V

VIRTUALIZACION ASISTIDA POR HARDWARE: INTEL VT Y AMD-

El origen de las actuales tecnologas de virtualizacin por hardware est en los problemas creados en la arquitectura x86 por algunas de sus instrucciones cuando tcnicas de virtualizacin quieren ser aplicadas: hay instrucciones pertenecientes al modo privilegiado que no pueden ser capturadas y que incluso pueden devolver diferentes valores dependiendo del nivel de privilegios de quien origin la llamada. La arquitectura x86 dispone de cuatro anillos de proteccin, desde el nivel 0 (el de mayor privilegio) donde se ejecuta normalmente el sistema operativo al nivel 3 (menos privilegios) el cual soporta las aplicaciones, pasando por los niveles 1 y 2 en los que corren los servicios del sistema operativo. El problema fue entonces identificado por las empresas fabricantes de hardware las mquinas virtuales no trabajaran adecuadamente si no eran ejecutadas con suficientes privilegios- y produjeron diseos que soportaran eficientemente y aceleraran la virtualizacin. La virtualizacin asistida por hardware, disponible desde dcadas atrs en los mainframes IBM y los servidores Sun y otras mquinas, viva as su gran relanzamiento en 2004 con la presentacin de la tecnologa VT de Intel, seguida despus de la correspondiente AMD-V de AMD en 2006. Tanto Intel como AMD disponen de estndares que definen caractersticas implementadas en muchos de sus procesadores ms usados en mbitos empresariales que permiten que tecnologas o soluciones de virtualizacin que hacen uso de la paravirtualizacin (como Xen, por ejemplo) puedan virtualizar tal y como lo hacen los procesadores instalados en los mainframes, pudiendo realizar virtualizacin completa y usar como sistema operativo invitado en las mquinas virtuales cualquier sistema. En trminos generales, la virtualizacin asistida por hardware hace uso de circuitera en la CPU y chips controladores que mejoran la ejecucin y rendimiento de mltiples sistemas operativos en mquinas virtuales. Las tecnologas que implementan virtualizacin con soporte hardware especfico suelen tratar con funcionalidades y funciones como el almacenamiento y recuperacin del estado de la CPU en transiciones entre el sistema operativo invitado (que corre en la mquina virtual) y el VMM (Virtual Machine Monitor), capa de virtualizacin que acta como medio entre stos y el sistema operativo anfitrin y el hardware real disponible, gestionando los recursos y llamadas. Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 21

As, con virtualizacin soportada por hardware, podemos implementar virtualizacin pura, sin necesidad de modificar los sistemas operativos invitados como hace Xen en la paravirtualizacin, y sin necesidad de emular las instrucciones cuyo procesamiento es problemtico como hace VMware. El rendimiento es notablemente mejorado como consecuencia. Intel La tecnologa diseada e implementada por Intel, y que incluye en sus procesadores de gamas media y alta es Intel VT Virtualization Technology-. Intel introduce mejoras en sus procesadores x86 (VT-x) e Itanium (VT-i). Intel VT permite al VMM (Virtual Machne Monitor o Monitor de Mquina Virtual) correr en modo privilegiado habiendo otro modo disponible para los sistemas invitados-, optimizando y acelerando las transiciones entre los sistemas operativos invitados de las mquinas virtuales y el VMM. Captura las llamadas al hardware desde el sistema operativo invitado, almacena el estado de la CPU y lo restaura despus de que el VMM maneje el evento. Intel tambin sigue ampliando la funcionalidad de su tecnologa de virtualizacin con los aos, por ejemplo, en 2008 lanzando VT-d, VT para E/S Directa (VT for Directed I/O), que permite transferencias de acceso directo a memoria (DMA) entre dispositivos y la memoria de los sistemas operativos invitados sin el uso del VMM como un paso intermedio. Esto es muy importante porque permite a los adaptadores de red y grficos ser asignados de manera exclusiva a mquinas virtuales especficas para incrementar el rendimiento.

Figura 1.5 Pgina Web de Intel VT en Intel http://www.intel.com/technology/virtualization.

Intel VT proporciona un complemento ideal y necesario para implementar en nuestra infraestructura virtualizacin completa asistida por hardware. Maximiza las ventajas del uso de la virtualizacin, optimizando su rendimiento y reduciendo sobre todo el consumo de potencia. Como complemento, Intel proporciona otras tecnologas como Intel vProTM para equipos de sobremesa y porttiles permitiendo la administracin remota de sistemas virtualizados. Todo esto, sumado a la confianza que imprime una empresa en el mundo informtico como Intel, hace que Intel VT sea ampliamente usada en entornos de virtualizacin y que sea una opcin siempre considerada a la hora de afrontar la implantacin de consolidacin de servidores. AMD

Eugenio Villar y Julio Gmez http://www.adminso.es

22 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Por su parte, AMD dispone de una tecnologa anloga a la de Intel denominada AMD-V o AMD-SVM originalmente bajo el nombre Pacfica- que incluye tambin igualmente en sus procesadores tanto de gama media como de gama alta. La tecnologa de virtualizacin de AMD proporciona entornos robustos y escalables de virtualizacin mientras que mantiene la eficiencia en consumo de potencia. Las capacidades y funcionalidades que proporciona esta tecnologa en la virtualizacin x86 permiten por ejemplo alojar un mayor nmero de mquinas virtuales, ms usuarios y ms transacciones por mquina virtual (Direct Connect Architecture), acelerar las aplicaciones que se ejecutan en las mquinas virtuales (RVI o Rapid Virtualization Indexing), mejoras en los cambios de una mquina virtual a otra, o migracin en caliente de mquinas virtuales. AMD-V por ejemplo incluye opciones de configuracin que permiten al VMM adaptar los privilegios de cada una de las mquinas virtuales. La tecnologa de virtualizacin AMD-V est ntimamente relacionada con la familia de procesadores AMD OpteronTM. Los efectos de la arquitectura Direct Connect, que proporciona un manejo rpido y eficiente de la memoria, combinados con el controlador de memoria integrado el cual compensa la prdida en rendimiento en la traduccin de instrucciones-, la tecnologa HyperTransportTM, y el uso de RVI ayudan a reducir el consumo de potencia, permiten soportar un mayor nmero de usuarios, ms transacciones, y ms aplicaciones que demanden un uso intensivo de recursos, alcanzando altos niveles de eficiencia y utilizacin en los entornos virtuales.

Figura 1.6 Pgina web de AMD-V en AMD http://www.amd.com/us/products/technologies/virtualization/Pages/amd-v.aspx.

Ambos estndares son prcticamente idnticos y equivalentes en cuanto a funcionalidad ofrecida a las soluciones software de virtualizacin que quieran hacer uso de sus caractersticas. As, por ejemplo, Xen emplea la tecnologa HVM (Hardware Virtual Machine) desarrollada por IBM para la creacin y uso de mquinas virtuales con virtualizacin completa (pudiendo ejecutar sistemas operativos no modificables), que dispone de la posibilidad de acceder y tomar ventaja de las caractersticas tanto de AMD-V como Intel VT haciendo uso de una interfaz comn, accediendo a ambas de la misma forma. Existen grandes diferencias en las implementaciones de ambas tecnologas fundamentalmente debido a razones tcnicas, casi siempre relacionadas con la gestin de la memoria. La memoria es muy importante, ya que la virtualizacin necesita enmascarar la organizacin de la memoria a las mquinas virtuales: los procesadores AMD disponen de la Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 23

gestin de la memoria integrada en el chip del procesador, mientras que los procesadores Intel la tienen fuera del chip. As, AMD lo tuvo ms fcil para ofrecer virtualizacin, mientras que Intel sufre la penalizacin en la gestin de la memoria cuando la virtualizan. Otras diferencias de ndole comercial han provocado por ejemplo que AMD se posicione mejor para ser usada en consolidacin de servidores, mientras que Intel ofrece mayor seguridad evitando intrusiones y ataques en ordenadores de sobremesa y porttiles. Todo esto, de todas formas, no implica que los procesadores Intel no puedan ser usados para consolidar servidores ni que los procesadores AMD no sean seguros, simplemente es lo que histricamente los desarrollos realizados por cada empresa y la manera en que han sido gestionados han tenido como consecuencia.

1.3

PRESENTE Y FUTURO

Que hoy da la virtualizacin es uno de los puntos calientes del sector informtico a nivel mundial nadie lo duda. Las cifras, con un creciente, cada vez ms, nmero de empresas que virtualizan a prcticamente todos los niveles posibles la infraestructura de sus servicios y servidores, data centers, y los buenos resultados obtenidos tras su implantacin en la mayora de ellas lo pone de manifiesto. Lo ms sorprendente de todo es que se trate de una tecnologa disponible desde hace ms de cuarenta aos, aunque no explotada en todos los estratos fundamentalmente en grandes centros de clculo- y mucho menos en el mbito ms interesante en la actualidad: la consolidacin de servidores y la virtualizacin de sistemas operativos. La virtualizacin proporciona muchas mejoras en rendimiento, portabilidad y flexibilidad; caractersticas insignia tambin de GNU/Linux, por lo que la eleccin de soluciones de virtualizacin en sistemas que hacen uso de GNU/Linux hace que tengamos un abanico enorme de posibilidades para virtualizar segn nuestras necesidades con la mayor libertad. Ms an ahora que vivimos un perodo de recesin econmica, las empresas ven la virtualizacin sobre todo con soluciones de virtualizacin software libre y GNU/Linux como teln de fondo- como una solucin que les permitir a medio plazo un gran ahorro de costes en prcticamente todos los mbitos relacionados con las tecnologas de la informacin, desde la energa consumida por los servidores de la empresa hasta los costes de mantenimiento, pasando por la administracin, soporte, recuperacin del servicio y aumentando la calidad del mismo. En el futuro aparece la virtualizacin como una de las claves en la explotacin ptima de las actuales tendencias tecnolgicas en informtica. Tendencias actuales como por ejemplo el direccionamiento de 64 bits, CPUs multicore (ms de 16 cores/CPUs por servidor), el tratamiento de manera importante de la refrigeracin y ahorro de energa en los servidores, la convergencia de las interfaces de E/S mediante el uso de interfaces de red y almacenamiento de alta velocidad compartidas, o el almacenamiento virtualizado basado en red, y teniendo en cuenta las caractersticas que hemos estudiado a lo largo del presente captulo, hacen ver que la virtualizacin en un futuro juegue sin duda un papel de suma importancia en el aprovechamiento de todos estos avances tecnolgicos. Todo ello hace presagiar que vamos encaminados a la implantacin de datacenters complemente virtuales. Todo esto apoyado por hechos en la industria informtica:

Las nuevas tecnologas del hardware proporcionan soporte de manera explcita a la virtualizacin, como hemos visto han hecho Intel (con Intel VT) y AMD (con AMD-V) mejor captura de instrucciones, ocultamiento de la memoria al hipervisor o VMM- o como se est viendo con el desarrollo de las MMUs (Memory Management Units) de E/S y dispositivos de E/S que aceleran la virtualizacin.

Eugenio Villar y Julio Gmez http://www.adminso.es

24 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Los sistemas operativos comienzan a ser conscientes de la virtualizacin: mejora de la comunicacin con el hipervisor o VMM, trminos de licencia ms amables, reduccin de las operaciones costosas para la virtualizacin Evolucin de la gestin de E/S hacia el uso directo de los dispositivos por parte de los sistemas operativos de las mquinas virtuales invitadas (Passthrough I/O Virtualization).

Con la virtualizacin por todas partes, se puede empezar a pensar en nuevos modelos en la distribucin del software, instancias de mquinas virtuales:

Todos los beneficios de las tradicionales mquinas computacionales pero sin su coste y complejidad. Mquinas con dispositivos virtuales pre configurados, construidas con un propsito especfico. Sistemas operativos y aplicaciones instalados/as y configurados/as de antemano. Personalizacin y configuracin limitada al usuario. Instalacin y configuracin simple y fcil. No requieren hardware dedicado para su ejecucin.

En definitiva, la virtualizacin es la clave para la gestin completa de los data centers en el futuro y el mximo aprovechamiento de las grandes posibilidades tecnolgicas que nos ofrece la industria del hardware: es necesaria para incrementar la eficiencia. El soporte por parte de toda la comunidad a la virtualizacin es total, por lo que se puede decir que estamos viviendo una revolucin en la informtica a todos los niveles (adems conjuntamente con tcnicas como el Grid Computing, Cloud Computing) como se puede ver en la transformacin de modelos de todo tipo: econmicos, de diseo, de los servicios ofrecidos, de gestin de las infraestructuras informticas, del desarrollo de software, que ocasiona su aplicacin.

Terminologa sobre Virtualizacin

Vista la evolucin seguida por la virtualizacin en los ltimos cuarenta aos, es necesario definir los conceptos que resultan fundamentales en la actualidad y que actan como base a los distintos modelos de virtualizacin existentes. Es por ello que este segundo apartado comienza con la introduccin a los conceptos imprescindibles de mquina virtual e hipervisor. El primero porque, aunque haya tipos de virtualizacin en los que no sea necesario su uso es imposible entender el fundamento de las principales tcnicas de virtualizacin sin saber en qu consiste una mquina virtual, tanto si es de sistema como si es de aplicacin. El segundo, por ser el aspecto ms importante y diferenciador de las tcnicas de virtualizacin completa y paravirtualizacin, los dos modelos ms extendidos actualmente en el uso de infraestructuras virtuales. Conociendo ambos trminos estaremos en disposicin de presentar la clasificacin de las diferentes tcnicas de virtualizacin en cuatro modelos fundamentales: virtualizacin de plataforma, virtualizacin de recursos, de aplicaciones y de escritorio. Se apreciar que no es sencillo a priori distinguir unos de otros, ya que en ocasiones las caractersticas que los diferencian pueden ser mnimas. Tras haber estudiado los distintos modelos y la forma de operar

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 25

de las soluciones que los componen nos ser ms fcil finalmente ver las ventajas y desventajas derivadas de virtualizar en la ltima seccin del presente apartado.

2.1 DOS CONCEPTOS FUNDAMENTALES: MAQUINA VIRTUAL E HIPERVISOR


Veamos con mayor detalle los que han sido considerados los dos conceptos ms importantes en la terminologa de la virtualizacin: mquina virtual e hipervisor. Es fundamental comprender con claridad el papel que juegan cada uno de ellos ya que ello nos permitir acercarnos un poco ms al nivel de abstraccin impuesto por la virtualizacin y su funcionamiento interno. Comenzamos hablando de mquinas virtuales. Es conveniente distinguir entre dos contextos muy importantes en los que en la actualidad se ubica el concepto de mquina virtual. Segn las caractersticas y funcionalidad de la propia mquina podemos hablar bien de mquinas virtuales de hardware o de sistema o bien de mquinas virtuales de proceso o de aplicacin. Las mquinas virtuales de hardware o de sistema, que son las que conforman el corazn del modelo de virtualizacin que ser aplicado en el desarrollo del proyecto (virtualizacin de plataforma), son las que corren paralelamente sobre una mquina fsica anfitrin o host, de manera que tienen acceso y hacen uso de los recursos hardware que son abstrados de l. Cada mquina virtual es engaada ya que cree que posee de forma exclusiva los recursos hardware de los que dispone cuando en realidad lo hace de manera virtual, ejecuta una instancia de sistema operativo sobre el que corren determinados servicios o aplicaciones tal y como consideremos necesario (vase la figura 1.7 en contraposicin a la figura 1.8, que recoge un servidor sin virtualizacin y por tanto sin mquinas virtuales).

Figura 1.7 Arquitectura general de Virtualizacin sobre un servidor, en el que se puede apreciar como corren cuatro mquinas virtuales.

Eugenio Villar y Julio Gmez http://www.adminso.es

26 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Figura 1.8 Arquitectura general de un servidor sin Virtualizacin.

La funcionalidad de este tipo de mquinas virtuales es muy amplia, aunque algunas de las caractersticas ms destacables son la coexistencia de diferentes sistemas operativos, la consolidacin de servidores (virtualizacin de servidores), y la prueba o testeo de proyectos tanto software, como hardware ya que pueden proporcionar arquitecturas de instrucciones (ISA) diferentes a las que implemente la mquina fsica anfitriona. stas son las mquinas virtuales que componen la base de la virtualizacin que estudiaremos, junto a la capa software existente debajo de ellas y que permite esta distribucin y administracin de los recursos, el hipervisor (hypervisor en ingls) tambin llamado habitualmente monitor, ya que una de sus funciones fundamentales es la monitorizacin de las mquinas virtuales-. Esta capa, que puede correr directamente sobre el hardware de la mquina fsica anfitriona o sobre un sistema operativo anfitrin tambin como otra mquina virtualser presentada en este mismo apartado a continuacin y estudiada en mayor profundidad en posteriores captulos. De esta acepcin de mquina virtual brotan todos los proyectos desarrollados que se presentarn bajo el modelo de virtualizacin de plataforma, como Xen, VMware, Hiper-V, Linux V-Server, User-mode Linux, KVM u OpenVZ. Al otro lado se encuentran las mquinas virtuales de proceso o de aplicacin. La primera diferencia es que stas no representan una mquina completa al uso. Son ejecutadas como un nico proceso sobre el sistema operativo y como lo hacen habitualmente los procesos, y adems soportan la ejecucin de tan slo un proceso sobre ellas. Su objetivo fundamental es proporcionar un entorno de ejecucin independiente del hardware y del propio sistema operativo para las aplicaciones que ejecutarn; stas arrancan la mquina a su inicio y de igual manera la apagan cuando finalizan. Las dos mquinas virtuales de proceso o de aplicacin de mayor importancia en la actualidad son JVM (Java Virtual Machine, entorno de ejecucin para lenguaje Java de Sun Microsystems) y CLR (Common Language Runtime, entorno de ejecucin para la plataforma .NET de Microsoft, ya citadas anteriormente). Tras haber realizado esta pequea distincin inicial entre ambos tipos de mquinas virtuales, ms adelante ambas sern presentadas con mayor detalle y apreciaremos mejor sus caractersticas estudiando las soluciones ms relevantes en cada categora. Es turno de introducir el concepto hipervisor. El hipervisor o hypervisor es un pequeo monitor de bajo nivel de mquinas virtuales que se inicia durante el arranque, antes que las mquinas virtuales, y que normalmente corre justo sobre el hardware (denominado en alguna bibliografa como native o baremetal) como podemos observar en la figura 1.9, aunque tambin lo puede hacer sobre un sistema operativo (llamado en este caso hipervisor hosted):

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 27

Figura 1.9 El hipervisor corre justo sobre el hardware del servidor. Sobre l, a su vez, encontramos un sistema operativo/mquina virtual monitor/a.

Como podemos imaginar esta capa adicional de virtualizacin no es usada en todos los modelos y soluciones existentes: es incluida en tcnicas de virtualizacin completa y paravirtualizacin ambas pudiendo adems apoyarse en hardware con soporte de virtualizacin-, aunque tradicionalmente ha sido identificado ms con soluciones de paravirtualizacin. Proporciona dos funcionalidades bsicas: Identifica, capta, maneja y responde a operaciones de CPU e instrucciones privilegiadas o protegidas emitidas por las mquinas virtuales. Maneja el encolado, envo y devolucin de resultados de peticiones de acceso a los recursos hardware instalados en el host anfitrin por parte de las mquinas virtuales.

Como se muestra en la figura 1.9, el sistema operativo corre sobre el hipervisor tal y como lo hacen las mquinas virtuales, el cual puede comunicarse con el hipervisor y cuyo objetivo fundamental es la gestin y administracin de las instancias de las mquinas virtuales, por lo que lo habitual es que incluya diversas herramientas de gestin y monitorizacin, funcionalidad que puede ser tambin extendida con otras que deseemos instalar por cuenta propia. El hipervisor es utilizado como capa de virtualizacin en los modelos virtualizacin completa y paravirtualizacin independientemente de la existencia y uso de hardware con soporte de virtualizacin especfico. La paravirtualizacin es el modelo basado en hipervisor ms popular debido a que introduce cambios en los sistemas operativos invitados permitindoles la comunicacin directa con el hipervisor, mejorando as el rendimiento ofrecido y no introduciendo penalizaciones adicionales a la emulacin usada en otros modelos como la virtualizacin completa. Cualquiera de los modelos basado en hipervisor slo podr gestionar mquinas virtuales con sistema operativo, libreras y utilidades compiladas para el mismo hardware y juego de instrucciones que el de la mquina fsica. El que el sistema operativo de la mquina virtual deba ser modificado o no ya depender de si hablamos de paravirtualizacin o virtualizacin completa.

2.2

MODELOS DE VIRTUALIZACION

En nuestros das muchos conceptos y tecnologas son englobados bajo el paradigma de la virtualizacin, en ocasiones de manera errnea y en otras acertada. Y es que comparando Eugenio Villar y Julio Gmez http://www.adminso.es

28 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

todos en ocasiones o son prcticamente iguales o no tienen ninguna similitud, lo que puede provocar en el usuario confusin y que no llegue a comprender fielmente qu es lo que puede ofrecer cada solucin. No es correcto mezclar por ejemplo los conceptos emulacin, simulacin, virtualizacin o paravirtualizacin en el mismo paquete. A continuacin se intentar arrojar un poco de luz en este aspecto y plantear todo el entramado con mayor claridad. De manera general se puede decir que virtualizacin es el efecto de abstraer los recursos de un computador, proporcionar acceso lgico a recursos fsicos. La virtualizacin separa de manera lgica la peticin de algn servicio y los recursos fsicos que realmente proporcionan el servicio. Dependiendo del recurso que se abstraiga, que puede ser un recurso individual almacenamiento, red- o bien una plataforma - un servidor, mquina- completa, y de por quin sea usado ese recurso, atenderemos entonces a distintos modelos de virtualizacin. Por ejemplo, en el caso de que mediante algn mecanismo un sistema hardware completo sea abstrado de forma que pueda ser usado por diferentes instancias de sistemas operativos (y sus respectivas aplicaciones) de forma que stas tengan la ilusin de que poseen los recursos de manera exclusiva y no compartida, estaremos hablando de un tipo de virtualizacin concreto, virtualizacin de plataforma, en el que el recurso que se abstrae es un servidor completo hardware y estamos virtualizando (disponen de algn tipo de recurso de forma virtual, aunque no sean conscientes) diferentes instancias de diferentes sistemas operativos. Por lo tanto, es importante distinguir para entender con mayor claridad la virtualizacin entre dos conceptos como son el recurso virtual que se abstrae y el ente (aplicacin, sistema operativo, mquina) que, virtualizado, dispone de ese recurso. Dependiendo de ambos trminos, al unirse, hablaremos de un modelo de virtualizacin distinto. Teniendo en mente todo esto, podemos distinguir cuatro modelos principales de virtualizacin:

Virtualizacin de plataforma. El recurso abstrado es un sistema completo, por ejemplo un sistema o servidor. En trminos generales consiste en la abstraccin de todo el hardware subyacente de una plataforma de manera que mltiples instancias de sistemas operativos puedan ejecutarse de manera independiente, con la ilusin de que los recursos abstrados les pertenecen en exclusiva. Esto es muy importante, ya que cada mquina virtual no ve a otra mquina virtual como tal, sino como otra mquina independiente de la que desconoce que comparte con ella ciertos recursos. Este es un modelo especialmente a tener en cuenta, ya que es el aplicado para lo que se llama consolidacin de servidores. La virtualizacin o consolidacin de servidores puede verse como un particionado de un servidor fsico de manera que pueda albergar distintos servidores dedicados (o privados) virtuales que ejecutan de manera independiente su propio sistema operativo y dentro de l los servicios que quieran ofrecer, haciendo un uso comn de manera compartida y aislada sin ser conscientes del hardware subyacente. La consolidacin de servidores ser tratada en mayor profundidad en el captulo segundo, donde podremos apreciar y diferenciar los distintos tipos y paradigmas de virtualizacin de plataforma existentes, que son los siguientes: o Sistemas operativos invitados. Sobre una aplicacin para virtualizacin no hace uso de hipervisor u otra capa de virtualizacin- que corre sobre la instancia de un sistema operativo sistema operativo host- se permite la ejecucin de servidores virtuales con sistemas operativos independientes. Si la aplicacin de virtualizacin implementa traduccin del juego de instrucciones o emulacin podrn ser ejecutadas mquinas virtuales cuyo sistema operativo, utilidades y

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 29

aplicaciones hayan sido compiladas para hardware y juego de instrucciones diferentes al de la mquina fsica anfitriona, en caso contrario no. Algunos ejemplos de soluciones de este tipo son VMware Workstation, Parallels Desktop, Sun xVM VirtualBox, VMware Player, y Microsoft Virtual PC. o Emulacin. Un emulador que replica una arquitectura hardware al completo procesador, juego de instrucciones, perifricos hardware- permite que se ejecuten sobre l mquinas virtuales. Por lo tanto se permite la ejecucin de sistemas operativos y aplicaciones distintos al instalado fsicamente en la mquina que ejecuta el emulador. Los emuladores ms importantes actualmente son Bochs, MAME, DOSBox, Hercules, MESS, VirtualPC, y Qemu.

o Virtualizacin completa. Tambin llamada nativa. La capa de virtualizacin, un hipervisor, media entre los sistemas invitados y el anfitrin, la cual incluye cdigo que emula el hardware subyacente si es necesario- para las mquinas virtuales, por lo que es posible ejecutar cualquier sistema operativo sin modificar, siempre que soporte el hardware subyacente. El cdigo de emulacin puede provocar prdida en el rendimiento. Puede hacer uso de soporte hardware especfico para virtualizacin y as mejorar su rendimiento. Sin duda dentro de esta categora podemos encontrar algunas de las soluciones ms importantes sobre virtualizacin junto a las correspondientes a pararvirtualizacin- como VMware Server, XenServer, z/VM, Oracle VM, Sun xVM Server, Virtual Server, VMware ESX Server, VMware Fusion, Xen, Hyper-V (en algunos casos solo es posible si existe hardware con soporte de virtualizacin). o Paravirtualizacin. Similar a la virtualizacin completa porque introduce hipervisor como capa de virtualizacin, pero adems de no incluir emulacin del hardware, introduce modificaciones en los sistemas operativos invitados que por consiguiente estn al tanto del proceso (deben poder ser modificables). stos cooperan as en la virtualizacin eliminando la necesidad de captura de instrucciones privilegiadas o conflictivas por parte del hipervisor, mejorando el rendimiento hasta obtenerlo casi similar a un sistema no virtualizado (supone ms una ventaja que una desventaja la modificacin de los sistemas operativos invitados). Las libreras y utilidades ejecutadas por las mquinas virtuales deben estar compiladas para el mismo hardware y juego de instrucciones que el de la mquina fsica anfitriona. Puede hacer uso de soporte hardware especfico para virtualizacin y as mejorar su rendimiento, adems de para la ejecucin de sistemas operativos no modificados ya que este soporte hardware puede manejar operaciones privilegiadas y protegidas y peticiones de acceso al hardware, adems de comunicarse con y gestionar las mquinas virtuales. Las soluciones ms extendidas e importantes dentro del paradigma de la paravirtualizacin son Xen, Logical Domains, Oracle VM, y Sun xVM Server.

o Virtualizacin a nivel del sistema operativo. Virtualiza los servidores sobre el propio sistema operativo, sin introducir una capa intermedia de virtualizacin. Por lo tanto, simplemente asla los servidores independientes, que comparten el mismo sistema operativo. Aunque requiere cambios en el ncleo del sistema operativo, ofrece rendimientos prximos al sistema sin virtualizar. Compartiendo el mismo ncleo, entonces las mquinas no pueden correr Eugenio Villar y Julio Gmez http://www.adminso.es

30 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

sistemas operativos diferentes (s distintas distribuciones Linux o versiones del sistema operativo dependiendo de la solucin utilizada), y adems las libreras y utilidades ejecutadas deben estar compiladas para el mismo hardware y juego de instrucciones que el de la mquina fsica Como ejemplos representativos de este modelo podemos citar OpenVZ, Linux V-Server, Virtuozzo, FreeBSDs chroot jails, Free VPS, Solaris Containers y Solaris Zones. o Virtualizacin a nivel del kernel. Convierte el ncleo Linux en hipervisor utilizando un mdulo, el cual permite ejecutar mquinas virtuales y otras instancias de sistemas operativos en el espacio de usuario del ncleo Linux anfitrin. Las libreras, aplicaciones y sistemas operativos de las mquinas virtuales deben ser soportados por el hardware subyacente del anfitrin. Dos soluciones destacan en esta categora: KVM y User-mode Linux. Virtualizacin de recursos. En este segundo caso el recurso que se abstrae es un recurso individual de un computador, como puede ser la conexin a red, el almacenamiento principal y secundario, o la entrada y salida. Existe un gran nmero de ejemplos dentro de la virtualizacin de recursos, como por ejemplo el uso de memoria virtual, los sistemas RAID (Redundant Array of Independent Disks), LVM (Logical Volume Manager), NAS (Network-Attached Storage) o la virtualizacin de red. Veamos con mayor detenimiento los distintos modelos de virtualizacin de recursos, los recursos que abstraen y las tecnologas y aplicaciones ms notables a clasificar dentro de cada uno: o Encapsulacin. Se trata de la ocultacin de la complejidad y caractersticas del recurso creando una interfaz simplificada. Es el caso ms simple de virtualizacin de recursos, como se puede ver. o Memoria virtual. Permite hacer creer al sistema que dispone de mayor cantidad de memoria principal y que se compone de segmentos contiguos. Como sabemos, es usada en todos los sistemas operativos modernos. Por lo tanto, en este caso el recurso individual que es abstrado es la memoria y disco. Ejemplos conocidos por todos son el espacio Swap utilizados por los sistemas operativos Unix, o las tcnicas de paginado de memoria usadas en sistemas operativos Microsoft. o Virtualizacin de almacenamiento. Abstraccin completa del almacenamiento lgico sobre el fsico (disco y almacenamiento son el recurso abstrado). Es completamente independiente de los dispositivos hardware. Como ejemplos de virtualizacin de almacenamiento tenemos soluciones tan extendidas como RAID (Redundant Array of Independent Disks), LVM (Logical Volume Manager), SAN (Storage Area Network), NAS (Network-Attached Storage), NFS (Network File Systems), AFS, GFS, iSCSI (Internet SCSI), AoE (ATA over Ethernet). o Virtualizacin de red. La virtualizacin de red consiste en la creacin de un espacio de direcciones de red virtualizado dentro de otro o entre subredes. Es fcil ver que el recurso abstrado es la propia red. Ejemplos bien conocidos de virtualizacin de red son OpenVPN y OpenSwarm, que permiten crear VPNs. o Unin de interfaces de red (Ethernet Bonding). Combinacin de varios enlaces de red para ser usados como un nico enlace de mayor ancho de banda. El recurso abstrado son por tanto los enlaces de red. Soluciones ejemplo de Ethernet Bonding son vHBA (Virtual Host Bus Adapter), y vNIC (Virtual Network Interfaces Card). Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 31

o Virtualizacin de Entrada/Salida. Abstraccin de los protocolos de capas superiores de las conexiones fsicas o del transporte fsico. En este caso, los recursos que se abstraen son las conexiones de entrada/aalida y transporte. Ejemplo(s): Xsigo Systems, 3Leaf Systems, y en el futuro lo ser: Cisco Systems, Brocade. o Virtualizacin de memoria. Virtualizaremos bajo este modelo cuando unamos los recursos de memoria RAM de sistemas en red en una memoria virtualizada comn. Virtualizacin de aplicaciones. Las aplicaciones son ejecutadas encapsuladas sobre el sistema operativo -recurso usado en este tipo de virtualizacin- de manera que aunque creen que interactan con l y con el hardware- de la manera habitual, en realidad no lo hacen, sino que lo hacen bien con una mquina virtual de aplicacin o con algn software de virtualizacin. Este tipo de virtualizacin es usada para permitir a las aplicaciones de caractersticas como portabilidad o compatibilidad, por ejemplo para ser ejecutadas en sistemas operativos para los cuales no fueron implementadas. Debe quedar claro que la virtualizacin es solamente de las aplicaciones, lo que no incluye al sistema operativo anfitrin. Un ejemplo bien conocido es Wine, que permite la ejecucin de aplicaciones de Microsoft Windows virtualizadas correr sobre GNU/Linux, dentro de lo que son llamadas tcnicas de simulacin. Otros ejemplos muy importantes son JVM (Java Virtual Machine, entorno de ejecucin para lenguaje Java de Sun Microsystems) y CLR (Common Language Runtime, entorno de ejecucin para la plataforma .NET de Microsoft). Podemos diferenciar adems entre los dos siguientes tipos de virtualizacin de aplicaciones: o Virtualizacin de aplicaciones limitada. Aplicaciones Portables. Aplicaciones que pueden correr desde dispositivos de almacenamiento extrables. Tambin se incluyen dentro de esta categora las aplicaciones heredades que son ejecutadas como si lo hicieran en sus entornos originales. Lo normal es que en este caso, en virtualizacin de aplicaciones limitada, no medie ninguna capa de virtualizacin o software con las mismas prestaciones y que la portabilidad se encuentre limitada al sistema operativo sobre el que correr la aplicacin. El recurso abstrado es el sistema operativo sobre el que son ejecutadas las aplicaciones virtualizadas. o Virtualizacin de aplicaciones completa. En este segundo tipo de virtualizacin de aplicaciones, una capa intermedia o software de virtualizacin es introducido para mediar entre la aplicacin virtualizada y el sistema operativo y hardware subyacentes. Portabilidad Multiplataforma (Cross-platform). Permite a aplicaciones compiladas para una CPU y sistema operativo especficos ser ejecutadas en diferentes CPUs y sistemas operativos sin ser modificadas, usando una traduccin binaria dinmica y mapeado de llamadas del sistema operativo. No requiere recompilacin o porting al correr en un entorno virtualizado, normalmente una mquina virtual de proceso o aplicacin. Por tanto, el recurso abstrado en este caso es la CPU y el sistema operativo. Ejemplos utilizados en la mayora de los sistemas son Java Virtual Machine, Common Language Runtime, Mono, LLVM, Portable .NET, Perl Virtual Machine, Citrix XenApp, Eugenio Villar y Julio Gmez http://www.adminso.es

32 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Novell ZENworks Application Virtualizacion, VMware ThinApp, Microsoft Application Virtualization Simulacin. Reproduccin del comportamiento de una aplicacin concreta o una funcionalidad especfica de una aplicacin. Ahora, el recurso que se abstrae es la API (Application Program Interfaces) del sistema operativo, o cualquier interfaz. Antes ya se coment Wine como ejemplo de este modelo de virtualizacin de aplicaciones, adems disponemos de Crossover office, coLinux, Zebra, o Quagga. Virtualizacin de escritorio. Consiste en la manipulacin de forma remota del escritorio de usuario (aplicaciones, archivos, datos), que se encuentra separado de la mquina fsica, almacenado en un servidor central remoto en lugar de en el disco duro del computador local. El escritorio del usuario es encapsulado y entregado creando mquinas virtuales. De esta forma, es posible permitir al usuario el acceso de forma remota a su escritorio desde mltiples dispositivos, como pueden ser computadores, dispositivos mviles, etc. Por lo tanto, en este caso el recurso que se abstrae es el almacenamiento fsico del entorno de escritorio del usuario como usuarios, no somos conscientes del lugar fsico en el que se encuentra nuestro escritorio, simplemente tenemos acceso a l-. Ejemplos muy importantes de soluciones que trabajan con virtualizacin de escritorio son Wyse Technology, VMware View, Sun VDI, vDesk de Ring Cube, XenDesktop de Citrix, vWorkspace de Quest Software, o ThinLinc de Cendio.

Como resumen de lo anteriormente expuesto se presenta a continuacin la tabla 1.1 que recoge los distintos modelos de virtualizacin comentados, el recurso o recursos que abstrae y los ejemplos comentados.
Tabla 1-1. Modelos de virtualizacin en funcin del recurso que se abstrae Modelo Submodelo Recurso abstrado Ejemplo(s) Virtualizacin Sistemas operativos invitados Plataforma hardware VMware Workstation, Parallels completa Desktop, Sun xVM VirtualBox, de Plataforma VMware Player, Microsoft Virtual PC Emulacin Plataforma hardware Bochs, MAME, DOSBox, completa Hercules, MESS, VirtualPC, Qemu Virtualizacin Completa Plataforma hardware VMware Server, XenServer, completa z/VM, Oracle VM, Sun xVM Server, Virtual Server, VMware ESX Server, VMware Server, VMware Fusion, Xen, Hyper-V (en algunos casos solo es posible si existe hardware con soporte de virtualizacin) Paravirtualizacin Plataforma hardware Xen, Logical Domains, Oracle completa VM, Sun xVM Server Virtualizacin a nivel del Plataforma hardware OpenVZ, Linux V-Server, Sistema Operativo completa Virtuozzo, FreeBSDs chroot jails, Free VPS, Solaris Zones y Solaris Containers Virtualizacin a nivel del Plataforma hardware KVM, User-mode Linux kernel completa Virtualizacin Encapsulacin Recurso individual de Recursos Memoria virtual Memoria y disco Espacio Swap, tcnicas de

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 33

Virtualizacin de almacenamiento Virtualizacin de red Unin de interfaces de red (Ethernet Bonding) Virtualizacin de E/S

Disco, almacenamiento Red Enlaces de red

Virtualizacin de aplicaciones

Conexiones de entrada/salida y transporte Virtualizacin de memoria Memoria RAM Virtualizacin Aplicaciones Sistema operativo de Portables aplicaciones limitada Virtualizacin Portabilidad CPU y sistema Multiplatafo operativo de rma (Crossaplicaciones platform) completa

paginado de memoria RAID, LVM, SAN, NAS, NFS, AFS, GFS, iSCSI, AoE OpenVPN, OpenSwarm, que permiten crear VPNs vHBA (Virtual Host Bus Adapter), vNIC (Virtual Network Interfaces Card) Xsigo Systems, 3Leaf Systems, en el futuro: Cisco Systems, Brocade

Simulacin Virtualizacin de escritorio

Java Virtual Machine, Common Language Runtime, Mono, LLVM, Portable .NET, Perl Virtual Machine, Citrix XenApp, Novell ZENworks Application Virtualizacion, VMware ThinApp, Microsoft Application Virtualization API del Sistema Wine, Crossover office, coLinux, Operativo, Interfaz Zebra, Quagga Sistema completo - Wyse Technology, VMware View, localizacin fsica Sun VDI, vDesk de Ring Cube, del escritorio, que se XenDesktop de Citrix, encuentra en un vWorkspace de Quest Software, o servidor remotoThinLinc de Cendio

Viendo el amplio abanico de soluciones de virtualizacin disponibles una de las empresas lderes en el sector como es VMware propuso en 2006 el desarrollo de una Interfaz de Mquina Virtual o VMI (del ingls Virtual Machine Interface) genrica que permitiera el acceso mltiple de tecnologas de virtualizacin basadas en hipervisor para usar una interfaz comn a nivel del kernel. Esto inicialmente no le pareci buena idea a Xen, aunque finalmente en la reunin USENIX de 2006 tanto Xen como VMware decidieron trabajar junto a otras tantas empresas en el desarrollo de una interfaz genrica conocida como paravirt_ops que est siendo desarrollada por IBM, VMware, Red Hat, XenSource y coordinada por Rusty Russel. Este proyecto permitir a las tecnologas de virtualizacin basadas en hipervisor competir ms en lo que respecta a sus mritos tcnicos y administrativos.

2.3

VENTAJAS Y DESVENTAJAS DE LA VIRTUALIZACION

Ya hemos visto recorriendo un poco la historia de la virtualizacin como en los aos sesenta se hizo necesaria su implantacin, cmo despus sufri una poca de ocaso en la que permaneci olvidada, para finalmente en nuestros das regresar con fuerzas debido a la eclosin del hardware, su llegada a escritorio y en general las enormes posibilidades que puede proporcionar. Busquemos y revisemos el porqu hoy en da las tecnologas de virtualizacin han cobrado tanta importancia en el sector empresarial hasta llegar a ser uno de los sectores punteros en cuanto a uso y proyeccin dentro de la ingeniera informtica.

Eugenio Villar y Julio Gmez http://www.adminso.es

34 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Vamos a ver algunas de las razones y causas que han motivado que la virtualizacin resulte fundamental en nuestros tiempos, cmo despus de ms de cuarenta aos ha surgido la necesidad de emplear la virtualizacin en los CPDs (Centros de Procesado de Datos): Hardware de los Servidores Infrautilizado

Hoy es habitual que los servidores que se ubican en los data centers de las empresas utilicen apenas un 15% o 20% de su capacidad de computacin. Esto nos conduce lgicamente a uno 80% o 85% de capacidad que no es utilizada y por lo tanto desaprovechada. An as, con este uso tan bajo, el espacio que ocupan los servidores es el mismo y el consumo elctrico que conllevan es el mismo que si se encontraran con usos cercanos al 100%. Como se puede concluir fcilmente, esto es un desperdicio de recursos computacionales. Las caractersticas del hardware en cuanto a rendimiento y capacidad se duplican prcticamente cada ao, lo que lleva a buscar soluciones que nos permitan aprovechar de mejor forma estos avances hardware con una carga de trabajo mayor. Es aqu donde surge el rol de la virtualizacin permitiendo que en un solo equipo o servidor almacenemos mltiples sistemas. Por lo tanto, usando virtualizacin en sus servidores las empresas pueden elevar las tasas de utilizacin de los mismos haciendo un uso ms eficiente de los recursos y capital de la empresa. Ante este crecimiento sinfn de la potencia computacional proporcionada por la industria del chip, no hay ms remedio que usar virtualizacin. Se agota el Espacio en los Data Centers

Como todos sabemos durante las ltimas dcadas el imponente crecimiento de las tecnologas de la informacin ha llevado a casi todas las empresas a reconducir sus actividades para adaptarse a los nuevos modelos de negocio, basado en software y automatizado, pasando del almacenamiento fsico en papel al almacenamiento masivo de la informacin de forma electrnica. Toda esta transformacin, si cabe, ha experimentado incluso un incremento y aceleracin mucho mayor en los ltimos aos. Como es lgico, para soportar todos estos cambios las empresas han ido aumentando tambin el nmero de servidores de los que disponen en sus data centers, llegando a la situacin en la que se les agota el espacio disponible para los mismos. As, esta situacin requiere nuevos mtodos de almacenamiento, como son los ofrecidos por la virtualizacin de almacenamiento, que permite el manejo del almacenamiento independientemente de cualquier dispositivo particular hardware, logrando una abstraccin completa del almacenamiento lgico sobre el fsico. Con el uso de la virtualizacin, alojando mltiples sistemas invitados en un nico servidor fsico, se permite a las empresas recoger el espacio en el que se ubica su data center y as evitar los costes de la ampliacin de su espacio. Este es un beneficio muy importante que aporta la virtualizacin, ya que la construccin de un data center puede llegar a costar del orden de unos 7 millones de euros. Demanda de una mejor Eficiencia Energtica

Hace aos pareca que cualquier coste energtico en actividades empresariales era totalmente asumible, barato y que los recursos estaran disponibles sin dificultad. Desde hace un tiempo, aunque en la mayora de los casos instanciados por iniciativas de grupos ecolgicos y no por propia iniciativa, las empresas empezaron a considerar y darse cuenta que la energa es finita y que quizs habra que buscar nuevas estrategias en su forma de operar para llegar a situaciones en las que dependieran mucho menos de los recursos energticos y potencia, y en los que su consumo fuera muchsimo menor. Lgicamente, el primer lugar en el que se fijaron para reducir todo este consumo fueron los data centers.

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 35

Para poder apreciar mejor el impacto del consumo que existe hoy da en los data centers veremos un ejemplo extrado de [4]: Un estudio comisionado por AMD y ejecutado por un cientfico del Lawrence Berkeley National Laboratory mostr que la cantidad consumida de energa por los data centers en Estados Unidos se duplic entre los aos 2000 y 2005. Adems, ste consumo de energa se espera que aumente otro 40% para el final de la dcada. El consumo actual de energa de los servidores de los data centers y los costes asociados de refrigeracin representa el 1.2% de la energa total consumida en Estados Unidos. Basado, en parte, en los resultados de este estudio, el United States Environmental Protection Agency (EPA) form un grupo de trabajo para establecer estndares para el consumo de energa de los servidores y planear establecer una nueva clasificacin Energy Star para los servidores eficientes. Viendo este ejemplo es fcil reflexionar y llegar a la conclusin que en el momento histrico en el que nos encontramos es de vital importancia gestionar de manera eficiente el consumo de energa de los servidores que instalamos en los data centers, reduciendo al mximo su consumo en pro del ahorro energtico tan necesario. El coste de los servidores que estn dispuestos en los data centers sumado al bajo porcentaje de utilizacin de los mismos hacen muy necesario el usar tcnicas de virtualizacin para reducir el nmero de servidores fsicos funcionando, y de sta manera el consumo energtico que conllevan. Costes de la Administracin de Sistemas

Como sabemos, las tareas de administracin de sistemas pueden llegar a ser muy intensas y laboriosas, adems en la mayora de los casos los administradores de sistemas deben estar ubicados juntos a los servidores en los data centers porque necesitan tener acceso al hardware fsico para realizar muchas de sus actividades. Entre las actividades que suelen realizar podemos destacar como principales la monitorizacin de los servidores, tanto de los servicios como del hardware reemplazando hardware defectuoso cuando sea necesario- y sus recursos de CPU y memoria as como uso de disco y trfico de red, instalacin de sistemas operativos y aplicaciones, la realizacin de copias de seguridad peridicas de los datos que almacenan los servidores para recuperacin en posibles prdidas, seguridad y redundancia. El uso de la virtualizacin ofrece una gran reduccin en costes de administracin en prcticamente todas las actividades que la componen. Por ejemplo proporcionando una monitorizacin simplificada y centralizada, provisin de mquinas de forma automatizada, simplificacin en el proceso de copia de seguridad y restauracin, dando ms seguridad a nivel de mquina al aislarlas, redundancia y replicacin de servidores para lograr alta disponibilidad y alto rendimiento Aunque algunas de las tareas pueden permanecer prcticamente iguales, es decir, permanecen inalteradas en los entornos virtualizados, otras desparecen ya que los servidores que antes eran fsicos pasan a ser instancias de mquinas virtuales. Necesidad de alto rendimiento y alta disponibilidad

Cada da ms el modelo de negocio actual provoca que una mejor calidad de servicio y prestaciones sean requeridas a las empresas, a las que en la mayora de los casos se les exige que sus servicios se encuentren disponibles las 24 horas al da los 365 das del ao, y al mismo tiempo que su fiabilidad y rendimiento se mantengan elevados e inalterables. En un escenario as, sumado al hecho de que dispongamos servidores cuyos recursos se encuentran infrautilizados, se hace an ms patente la necesidad de aplicar alguna tcnica de virtualizacin. Por ejemplo, en los casos ms habituales en los que caractersticas de alto rendimiento y/o alta disponibilidad son implementadas son necesarias mquinas o servidores adicionales, bien para situar servicios a la espera la cada de otros o bien para la distribucin de carga, por ejemplo. Eugenio Villar y Julio Gmez http://www.adminso.es

36 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Como se puede intuir, tanto las mquinas primarias que sirven los servicios como estas mquinas adicionales pueden ser integradas en una infraestructura virtual de forma que no necesitemos adquirir nuevos sistemas ni hardware adicional, al mismo tiempo que consolidamos los servidores en un nico servidor fsico anfitrin cuyo porcentaje de utilizacin aumentar. Resumiendo, usando consolidacin de servidores nos otorga la posibilidad de cambiar el modelo de gestin de nuestros data centers reduciendo costes en todos los sentidos, nmero de servidores fsicos, la infrautilizacin de su capacidad y recursos, energa, espacio, y administracin asociada. Adems, y como vamos a ver a continuacin, la virtualizacin adems aade una serie de funcionalidades en la administracin de sistemas cuyas ventajas son innumerables, como por ejemplo la migracin en caliente de mquinas virtuales, la cual bien por motivos de mantenimiento, o balanceo de carga, alta disponibilidad y alto rendimiento, nos permite migrar una mquina virtual su memoria, sistema operativo, y aplicaciones- de un servidor fsico de un clster a otro servidor fsico dentro del mismo clster o incluso a otros data centers incluso, situados en continentes distintos-. Como veremos en el desarrollo de este proyecto se le ha otorgado gran importancia a la migracin de las mquinas virtuales, por lo que se ha realizado un estudio ms profundo de esta funcionalidad y diversas pruebas de rendimiento que podremos ver en los prximos captulos del presente documento. Adems la virtualizacin tambin es muy importante para los desarrolladores ya que permite crear entornos de prueba virtualizados exactamente iguales a los reales, que pueden ser usados para desarrollo y depuracin con todas las ventajas que ello supone. Por ejemplo, un ncleo Linux ocupa un solo espacio de direcciones, lo que quiere decir que si hubiera algn fallo en el ncleo o en los drivers provocara la cada del sistema operativo al completo. Al usar virtualizacin, estamos ejecutando varias instancias de sistemas operativos, luego si falla uno de ellos, tanto el hipervisor como el resto de los sistemas operativos que tengamos en funcionamiento lo seguirn haciendo. As, esto supone que depurar el ncleo de Linux sea lo ms parecido a depurar cualquier otra aplicacin en el espacio de usuario. Si fuera poco, existen numerosas soluciones de virtualizacin con distintos paradigmas de trabajo, ofreciendo distintas soluciones de rendimiento, portabilidad y flexibilidad que los administradores de sistemas pueden explotar para su beneficio segn sus necesidades. A continuacin se exponen las ventajas derivadas del uso de la virtualizacin, tanto las comentadas anteriormente como otras. Como se puede apreciar, la lista es considerablemente extensa: Consolidacin de servidores. Quizs una de las caractersticas ms notables del uso de la virtualizacin y el hecho por el cual se encuentra en continua expansin en el mundo empresarial informtico. En s, consolidar servidores consiste en reducir el nmero de los mismos al mismo tiempo que aumenta el porcentaje de su utilizacin. Al consolidar servidores, se permitir usar despliegues ms modulares y escalables y centralizar su administracin, notablemente simplificada. Como veremos, muchas de las ventajas restantes de la virtualizacin derivan del hecho de consolidar servidores. Administracin de sistemas simplificada. Puede simplificar prcticamente todas las actividades relacionadas con la administracin, sobre todo las que suelen ejecutarse de manera estandarizada (como las copias de seguridad), aunque por otro lado introduzca nuevas como el establecimiento de polticas de recuperacin mediante migracin o clonacin de mquinas virtuales, mantenimiento de repositorios. Por ejemplo, la instalacin y despliegue de nuevos sistemas es una tarea que se ve enormemente simplificada al introducir virtualizacin gracias a tcnicas como la clonacin de mquinas o las virtual appliances (instancias de mquinas virtuales ya preconfiguradas). Otro ejemplo: la virtualizacin de escritorio puede simplificar enormemente el despliegue de nuevos sistemas reduciendo la cantidad de software que Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 37

se requiere sea instalado localmente; sin duda incrementando la centralizacin de recursos compartidos y estandarizando el proceso de despliegue de sistemas puede proporcionar grandes ventajas a los administradores. Siempre hay que recordar que el nmero de mquinas de las que es responsable el administrador siempre ser el mismo; sean fsicas o sean virtuales. Para aprovechar al mximo las ventajas derivadas del uso de la virtualizacin es fundamental mantener la infraestructura lo ms independiente posible de los sistemas fsicos; el propsito de las mquinas fsicas que alojan mquinas virtuales no deber ser otro que exclusivamente ese, y no deben proporcionar servicios externos por ellas mismas. Alta disponibilidad y recuperacin ante desastres. Al tener reduccin en los tiempos de parada de los servicios y datos crticos del negocio. Podemos disponer de varias instancias de un servidor en espera de posibles fallos del que est en funcionamiento (simplemente son ficheros de configuracin). Sin virtualizacin, se requieren mltiples sistemas fsicos en espera sin ser utilizados para implementar esto mismo. Es posible la recuperacin efectiva ante desastres y el mantenimiento de niveles de disponibilidad del servicio acordados gracias a mecanismos como la migracin de mquinas. Si un sistema fsico falla, los sistemas lgicos contenidos en l pueden ser migrados o distribuidos en caliente o dinmicamente a otros sistemas. La migracin puede ser usada tambin para aplicar actualizaciones en la mquina, o en sistemas que alojan las mquinas, que vuelven a ser migradas a su localizacin original tras la culminacin de las operaciones planificadas. Por lo tanto, si adoptamos una estrategia para deteccin automtica de problemas y migracin de mquinas virtuales ello nos llevar a reducir los costes asociados con recuperacin de fallos y aumentar la disponibilidad de los servicios. Alto rendimiento y redundancia. Es muy fcil mantener una serie de servidores virtuales redundantes esparcidos en varios servidores fsicos. Crear, instalar, configurar y mantener estas rplicas tambin es extremadamente sencillo, sin costes adicionales. A ello ayuda mucho el hecho de la posibilidad de aprovisionamiento de instancias preconfiguradas de mquinas virtuales. Operando de esta forma resulta sencillo disponer de mecanismos para balancear la carga de trabajo entre los servidores virtuales disponibles. Reduccin de costes. La aplicacin de tcnicas de virtualizacin supone el ahorro de costes en prcticamente todos los mbitos, pudiendo destinar esfuerzos y recursos a otros aspectos como la innovacin. Se ahorrar en costes de instalacin, configuracin, monitorizacin, administracin y soporte del servicio, asociados a licencias, del software -usando soluciones software libre como Xen con unos grandes beneficios en rendimiento y un bajo coste-, copias de seguridad, recuperacin, consumo energtico, seguridad tanto a corto como largo plazo, al disponer de escalabilidad y agilidad sostenible. Tambin nos permite ahorrar costes en la adquisicin de nuevo hardware combinando la consolidacin de servidores con una planificacin adecuada de las capacidades para hacer un mejor uso del hardware existente. La virtualizacin tambin puede ayudar en la reduccin de los costes en nuestra infraestructura informtica en cuanto a potencia y requerimientos de refrigeracin; aadir mquinas virtuales a un anfitrin existente no aumentar su consumo. Otros aspectos en los que es posible ahorrar son: costes de acceso remoto y fiabilidad (menos equipos con teclado, video y ratn necesarios), menos conexiones a aparatos suministradores de potencia ininterrumpible los cuales se encontrarn ms liberados y disponibles en tiempos de Eugenio Villar y Julio Gmez http://www.adminso.es

38 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

fallo en el suministro de potencia-, y relacionados con la infraestructura de red: si dependiendo de cmo sea configurado el acceso a la red por parte de las mquinas virtuales, es posible simplificar el cableado de la red y reducir el nmero de hubs y switches necesarios. Mejora de las polticas de puesta en marcha, copias de seguridad y recuperacin. Por ejemplo mediante el establecimiento de puntos de control en las mquinas virtuales y el uso de almacenamiento centralizado como SAN, iSCSI, AoE, NAS, NFSs. Nuestros servidores pasarn a ser simplemente directorios y archivos de configuracin, fcilmente replicables en copias de seguridad. En muchos casos la recuperacin puede ser reducida a copiar y pegar estos directorios y archivos de configuracin de una copia de seguridad o desde una mquina virtual preinstalada. En la mayora de las soluciones de virtualizacin que existen en la actualidad es posible la toma de imgenes del estado de la mquina virtual, posibilitando tambin su posterior recuperacin teniendo a nuestra mano otro sencillo mecanismo adicional relacionado con este tema. Optimizacin del uso y control de los recursos. Derivada de la consolidacin de servidores virtuales en servidores fsicos infrautilizados. De esta manera, recursos como memoria, capacidad de procesamiento, red, disco presentan porcentajes de utilizacin mayores a los habituales ofrecidos por servidores fsicos dedicados, por lo que los servidores fsicos de los que dispongamos son utilizados de manera ptima. Por ejemplo, en sistemas multiprocesador o multi-core las mquinas virtuales pueden correr usando diferentes procesadores o cores, haciendo un uso mejor de los recursos de computacin totales disponibles. Gran escalabilidad. Crecimiento gil soportado y con gran contencin de costes. Una infraestructura virtual proporciona caractersticas de escalabilidad muy superiores a una fsica tradicional, al tratarse de mquinas virtuales lgicas. Un servidor fsico, podr gestionar ms nmero de mquinas virtuales a medida que disponga de mayores recursos. As, por ejemplo, si en nuestra infraestructura de mquinas virtuales quisiramos integrar un nuevo servidor web, slo tendramos que crear y configurar la mquina virtual correspondiente (si dispusiramos de una preconfigurada, bastara slo con copiarla) en un servidor fsico que ya estuviera funcionando salvo que no tuviramos recursos suficientes en alguno- ahorrando tiempo, espacio, costes de administracin, licencias, instalacin, configuracin En cambio, si acturamos como siempre lo han hecho las empresas, habra que adquirir un nuevo servidor o, en el mejor de los casos, integrar el servicio con otros diferentes en uno mismo. Aprovisionamiento de mquinas virtuales. El uso de mquinas virtuales preconfiguradas o virtual appliances es una solucin rpida, flexible y asumible para desarrollar nuevos sistemas. Listas para cargar y funcionar, ahorrando tiempo de administracin, instalacin, configuracin. Incluso preconfiguradas encapsulando mquinas virtuales determinadas aplicaciones o servicios (por ejemplo, centralitas VoIP, un servidor web, un balanceador de carga), que luego pueden ser reutilizadas en la empresa segn las necesidades. Tendremos disponibles la provisin de aplicaciones y sistemas dinmicamente, rpidamente, y justo a tiempo, moviendo mquinas virtuales de un servidor a otro segn la necesidad, en lugar de malgastar tiempo configurando e iniciando nuevos entornos fsicos en servidores. Este aprovisionamiento de mquinas virtuales puede planificarse, e incluso automatizarse, segn la poltica que establezca el departamento TI y el uso de herramientas destinadas para ello. Compatibilidad hacia atrs. La virtualizacin posibilita el uso y mantenimiento de sistemas y aplicaciones heredados que no fueron adaptados a versiones actuales, y por lo tanto sin compatibilidad garantizada con los sistemas en uso hoy da. Usando

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 39

virtualizacin no es necesario crear y establecer sistemas para compatibilidad: con crear una mquina virtual con el entorno clsico de operacin del sistema o la aplicacin que queremos usar ser necesario, eliminando cualquier riesgo de convivencia con las nuevas versiones del entorno. La virtualizacin es sin duda una solucin excelente y simple para estos casos en los que queremos continuar ejecutando software heredado del que las empresas mantienen una fuerte dependencia. Slo podremos ejecutar software heredado que sea soportado por el hardware sobre el que corre la solucin de virtualizacin; en el caso en el que queramos ejecutar uno que necesite otra arquitectura hardware diferentes, haremos uso de una solucin de virtualizacin que integre emulacin, como Qemu. Disminucin del nmero de servidores fsicos. Derivada de la consolidacin de servidores, al integrar mltiples instancias de servidores lgicos dentro de los servidores fsicos, conseguiremos disminuir el nmero de estos ltimos a utilizar en el CPD (Centro de Proceso de Datos) o Data Center. Esta es una ventaja muy importante ya que repercute en muchos aspectos; los ms importantes referidos a la administracin de nuestra infraestructura informtica. Lgicamente, al disminuir el nmero de servidores fsicos se simplificar y reducir sta a la vez que disminuir tambin el espacio fsico requerido en nuestro CPD o data center para ellos, cuestiones que pueden llegar a resultar de gran importancia. Mejora de la eficiencia energtica. Al existir un menor nmero de servidores fsicos el consumo de potencia de los mismos consecuentemente ser menor. Adems, este consumo ser ms eficiente: ahora los servidores no se encontrarn infrautilizados como antes, que consuman la misma potencia con un menor porcentaje de utilizacin. Prueba y depuracin. Fcil establecimiento de entornos virtuales iguales a los reales en los que realizar prueba y depuracin de sistemas operativos, aplicaciones, sin las consecuencias que lgicamente eso tendra en un entorno fsico real. Tambin, por ejemplo, una aplicacin muy importante es la prueba y depuracin de software que se desarrolla para correr sobre sistemas y arquitecturas hardware an no desarrolladas ni fabricadas, y que s estarn disponibles en el futuro, no teniendo que esperar a que ello ocurra para su prueba. Hay que considerar antes qu solucin de virtualizacin es ms apropiada para el conjunto de pruebas y tests que vayamos a desarrollar, por ejemplo soluciones basadas en hipervisor no suelen ser muy recomendadas para la depuracin de drivers de hardware debido al propio hecho de introducir el nivel adicional de operacin y acceso al hardware. Seguridad y aislamiento. La virtualizacin puede proporcionarnos mayores niveles de seguridad y aislamiento, y a un coste menor. Tenemos la posibilidad de proteger aplicaciones y sistemas operativos aislndolos en mquinas virtuales que son totalmente independientes entre s y con el hipervisor o sistema anfitrin. Cada una de las mquinas virtuales tiene un acceso en modo supervisor nico, por lo que un ataque de seguridad que logre acceder a una aplicacin o sistema operativo de una de las mquinas afectar sola y exclusivamente a la mquina en la que ocurri el fallo de seguridad, y no en el resto de mquinas ni en el anfitrin por lo que no los comprometer. Esto es beneficioso tanto para empresas como a nivel de usuario particular. Tipificacin y estandarizacin de plataformas y configuraciones. Es sencillo al aplicar virtualizacin establecer estndares para la configuracin tanto de los servidores anfitriones como de las mquinas virtuales que se alojan en ellos. As, asistiremos a escenarios en los que habr homogeneidad, ahorrando por tanto en administracin y soporte. En cuanto a las mquinas virtuales, y aunque difieran algunas de otras bastante

Eugenio Villar y Julio Gmez http://www.adminso.es

40 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

en cuanto a su funcionalidad y configuracin, todas sern tratadas tambin de manera uniforme por parte del virtualizador que est en uso. Toda esta transformacin puede influir de forma muy positiva en una mejor integracin y simplificacin del negocio en la infraestructura informtica; por ejemplo cambios en el negocio pueden ser direccionados en cambios en las mquinas virtuales los cuales pueden ser llevados a cabos con rapidez. Mejora de la calidad de servicio y fiabilidad. Mediante la prueba y depuracin de aplicaciones, sistemas operativos o nuevas versiones de sistemas operativos y software asociado es posible asegurar niveles de calidad y fiabilidad en ellos (Quality assurance o QA), al poder implementar un testeo fcil de aplicaciones en mltiples sistemas operativos, o de los propios sistemas operativos sin tener que disponer y configurar mltiples entornos hardware dedicados. Esta es, junto a la consolidacin de servidores y la reduccin de costes, una de las grandes ventajas al aplicar virtualizacin, debido a la efectividad mostrada en trminos de tiempo y coste, reduciendo la cantidad de hardware requerido, reduciendo o incluso eliminado la mayora del tiempo requerido para la instalacin de sistemas, reinstalacin en muchas ocasiones es til retomar el estado guardado previamente de una mquina virtual-, configuracin. Clonacin de mquinas virtuales. Asociada a trminos como redundancia, aprovisionamiento de mquinas virtuales o recuperacin ante desastres. Es una de las caractersticas de la virtualizacin que hacen que sea una fantstica solucin en la instalacin, desarrollo y despliegue de nuevos sistemas. Tambin tiene una gran utilidad cuando por ejemplo, queremos aplicar un parche a un sistema operativo de una mquina virtual, clonndola previamente para guardar su estado. En muchas de las soluciones de virtualizacin existentes es posible la toma y recuperacin de imgenes del estado de las mquinas virtuales, algo que puede resultar de gran utilidad. Personalizacin. En el caso de las soluciones de virtualizacin que son software libre, como Xen, KVM, Qemu, stas pueden ser personalizadas y extendidas para alcanzar los requisitos necesarios especficos. Uso en mbitos docentes. Uso como ayuda didctica: se pueden configurar e iniciar entornos para que estudiantes puedan aprender e interactuar con sistemas operativos, aplicaciones o drivers de dispositivos. Por ejemplo, es posible el aprendizaje de conocimientos informticos estudiando en mquinas virtuales configuradas para emular hardware o sistemas operativos particulares. Unido a las capacidades que proporciona la virtualizacin acerca de prueba y depuracin, sta ventaja resulta muy interesante en estos mbitos. Clsteres de servidores virtuales. Creacin de clsteres de servidores virtuales para unificar mltiples servidores en un solo sistema. Proporciona las ventajas de la creacin de clsteres trasladadas al mbito de una infraestructura virtual, pudiendo crear un clster dentro de un solo equipo. Flexibilidad. Las caractersticas hardware y software de las mquinas virtuales son totalmente configurables a nuestro gusto. As, podemos crear servidores virtuales con RAM, CPU, disco, y red que estrictamente necesitemos. Gran flexibilidad en el reparto de recursos del sistema anfitrin entre las mquinas que aloja. Esta flexibilidad se ve aumentada por el hecho de la posibilidad de asignacin de determinados dispositivos de manera exclusiva a ciertas mquinas virtuales segn nuestros intereses. Por ejemplo, si dispondremos de un servidor que deber soportar una gran cantidad de trfico de red podremos asignar a su mquina virtual de manera exclusiva una de las tarjetas de red disponibles fsicamente en el servidor anfitrin.

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 41

Gran agilidad. La creacin de mquinas virtuales es un proceso que se puede llevar a cabo con gran rapidez e incluso se puede automatizar. Disponiendo incluso de mquinas virtuales pre configuradas, podemos poner en funcionamiento servidores con un simple clic o ejecutando tan slo un comando. Esto nos posibilita tambin ganar en rapidez ante cambios bajo demanda, para realizar mejoras, impuestos por el modelo de negocio Portabilidad, migracin. Incrementando el aislamiento de las mquinas virtuales de hardware fsico especfico aumenta la disponibilidad de los sistemas aumentando la portabilidad de las mquinas virtuales, permitindoles ser migradas. La migracin de mquinas virtuales es un proceso transparente al usuario al mismo tiempo que transparente a cualquiera de los procesos que se encuentren corriendo en las mquinas virtuales. Portar mquinas virtuales entre distintos servidores fsicos es muy sencillo. Mecanismos de migracin en parada o en caliente aparte, podemos portar mquinas virtuales simplemente copiando los archivos de configuracin que definen las mismas o los ficheros/imgenes que constituyen sus discos, de un tamao que permite usar dispositivos de almacenamiento USB, discos duros externos, . Automatizacin. Existen herramientas de automatizacin que permiten fijar mtricas comunes (por ejemplo sobre rendimiento) de las mquinas virtuales y que pueden llegar a reconfigurarlas si es necesario para cumplir con las condiciones expuestas. Por ejemplo, se puede asignar dinmicamente mayor CPU a una mquina que lo precise para cumplir unos determinados tiempos de respuesta, tomando CPU de otra mquina que tenga menos carga o migrndola a un servidor con mayor CPU disponible. As, la infraestructura virtual est altamente ligada con el negocio. Cola unificada. Trato de los servidores como una cola unificada de recursos. Tratando de esta forma los servidores de que dispongamos ganaremos en agilidad, consistencia y efectividad en el proceso de administracin de sistemas.

No sera recomendable entrar a valorar solamente las ventajas que puede aportar la adopcin de infraestructuras virtuales en lugar de las usadas tradicionalmente. Antes de aplicar tcnicas de virtualizacin es completamente necesario y debe ser considerado de obligatoriedad tener en cuenta las posibles desventajas que pueden surgir de su implantacin; algunas de ellas podran condicionar el plantear si finalmente llevar a cabo nuestro proyecto de virtualizacin o no. A pesar de ello, no debemos temer el encontrarnos con grandes dificultades y barreras que nos impidan virtualizar; debemos poner en una balanza las ventajas y desventajas que pueden aparecer en nuestro caso particular, teniendo en cuenta la variedad de posibilidades y modelos de virtualizacin disponibles. Presentamos a continuacin las desventajas ms habituales que suelen aparecer cuando virtualizamos: Prdida de rendimiento. Como es normal, la ejecucin de un sistema operativo y de aplicaciones en una mquina virtual nunca ofrecer un rendimiento igual y mucho menos superior al obtenido con la ejecucin directamente sobre el servidor fsico. Como sabemos, algunas soluciones introducen capas intermedias como son los hipervisores, que capturan las llamadas de las mquinas virtuales, gestionan su acceso concurrente a los recursos fsicos y las monitorizan. Por lo general, una aplicacin que corre en una mquina virtual lo hace de maneras ms lenta a como lo hara en una mquina fsica directamente, aunque recientemente se estn obteniendo performances cercanas al rendimiento nativo de los sistemas anfitriones (ms con paravirtualizacin que con virtualizacin completa). La prdida en rendimiento depende por lo general de tres

Eugenio Villar y Julio Gmez http://www.adminso.es

42 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

factores: la aplicacin en s, la tecnologa de virtualizacin utilizada, y la configuracin del hipervisor. Aplicaciones con un gran volumen de operaciones de entrada y salida experimentan peor rendimiento. Comparticin del servidor. Una de las principales ventajas del uso de la virtualizacin puede llegar a ser una desventaja importante si no es gestionada y administrada correctamente. Las capacidades y recursos de los servidores fsicos anfitriones deben ser monitorizadas y controladas en todo momento. El uso de capacidad, memoria, procesador, puede variar considerablemente y de manera dinmica al existir nuevos procesos y procedimientos como por ejemplo migraciones de mquinas virtuales, que al tener lugar permite que mquinas virtuales puedan ubicarse en diferentes servidores en distintos momentos. Lgicamente, visto de esta manera, la comparticin del servidor puede acarrear una mayor complejidad en la administracin, que no llevada a cabo correctamente puede conducir a importantes e impredecibles problemas. Soporte del hardware. Por lo general, no es posible utilizar hardware que no est soportado por el hipervisor. El software de virtualizacin suele imponer una serie de dispositivos hardware (como tarjetas de vdeo y de red) que son las disponibles para las mquinas virtuales. Otras soluciones de virtualizacin pueden emular el hardware necesario, aunque por lo tanto ofreciendo peor rendimiento. Hardware virtual obsoleto. Puede darse la posibilidad de que el hardware virtual est obsoleto. Aunque se suele ir actualizando con nuevas versiones del hipervisor, lo normal es que dispongamos de dispositivos anteriores para virtualizacin como por ejemplo USB 1.0, Firewire 400 o Ethernet 100. Es por ello que es altamente recomendable disponer de un hipervisor actualizado. Aceleracin de video por hardware. No est disponible la aceleracin de vdeo por hardware, por lo que aplicaciones que disponen de efectos 3D no funcionarn en condiciones normales sobre una mquina virtual. Hay alguna excepcin (como puede ocurrir con VMware Fussion o Parallels, que soportan algunas versiones de OpenGL o DirectX), pero conviene comprobar en primer lugar su rendimiento. Riesgo en la organizacin al implantar una infraestructura virtual. La proliferacin de mquinas virtuales puede llegar a ser un inconveniente ya que, no organizada de una manera satisfactoria, puede conllevar un crecimiento en la complejidad de la administracin, gestin de licencias de los servidores, aumento del riesgo en cuestiones de seguridad, todo lo contrario a lo que se pretender llegar cuando implantamos un proyecto de virtualizacin. Nmero inadecuado de mquinas virtuales. La creacin de mquinas virtuales que no son necesarias lleva un consumo mayor y elevado de recursos computacionales, RAM, disco, CPU por lo que puede llegar a desaprovecharse recursos. No es conveniente la creacin sin control de mquinas virtuales para disponer de servidores con mayor porcentaje de utilizacin; el uso de los recursos debe ser el conveniente para la actividad que estemos desarrollando. Anfitrin como nico punto de fallo. Con una nica avera en el servidor anfitrin pueden caer mltiples servidores virtuales con sus respectivos servicios teniendo ello un gran impacto en la organizacin. La solucin de este gran problema de la virtualizacin es sin duda una planificacin detallada que cubra disponibilidad y recuperacin ante desastres siempre que sea posible.

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 43

Algunas aproximaciones para conseguirlo son las siguientes: redundancia de hardware en el sistema host haciendo que el fallo de un componente sea transparente a las mquinas virtuales, la compra y mantenimiento de hardware que replique los sistemas fsicos que alojan mquinas virtuales de gran importancia (en ocasiones este coste es asumible en comparacin con el dao que causara la cada del sistema en funcionamiento), el uso de clustering, redundancia y replicacin de las mquinas virtuales que ofrecen servicios crticos en varios servidores fsicos y as evitar la cada del servicio, y como no la ejecucin de manera centralizada de software de monitorizacin de sistemas que nos alerte de problemas hardware y software emergentes antes de que lleguen a ser crticos. Adems hay que implementar funcionalidades de migracin de mquinas virtuales Xen, por ejemplo puede llegar a eliminar estos puntos de fallo nicos haciendo los servidores virtuales totalmente portables de un host fsico a otro en el momento de deteccin de los problemas-. La importancia del hardware del servidor fsico anfitrin en la virtualizacin es crtica como podemos apreciar. Portabilidad condicionada. La portabilidad de las mquinas entre distintas plataformas est condicionada por el software de virtualizacin que elijamos. Dependiendo si elegimos soluciones sobre GNU/Linux, MacOS, Windows, para nuestro sistema anfitrin tendremos unas posibilidades u otras para esta portabilidad. Puede que en un futuro sea un requisito indispensable esta portabilidad y migracin de las mquinas virtuales, por lo que debe ser planificado y estudiado con antelacin. Disminucin de las ventas del hardware. Como efecto colateral del uso de la virtualizacin, disminuyen en gran porcentaje las ventas de hardware. El nmero de mquinas vendidas ser inferior al actual, a pesar de que el hardware vendido ser de una potencia notablemente superior. A pesar de esta desventaja, las empresas del hardware como Intel y AMD- han apostado fuerte desde el principio por la virtualizacin lanzando tecnologas dotadas de soporte para ello. Dependencia del sistema operativo anfitrin. La eleccin del sistema operativo de la mquina anfitriona es crtica. Todos los sistemas operativos de las mquinas virtuales dependern de la estabilidad y seguridad que ofrezca el anfitrin. Una vez ms en este punto podremos establecer debates sobre qu solucin de virtualizacin y qu sistema operativo deben residir en el servidor fsico anfitrin. Dependencia de la solucin de virtualizacin elegida. Es fundamental elegir la tecnologa y solucin de virtualizacin adecuada en funcin del servicio que ofrezcamos. Hay algunas que ofrecen mejor rendimiento en servidores con servicios crticos o de negocio, y otras que son mejores en servicios no crticos. Por ejemplo, VMware no es la solucin ptima para virtualizar las aplicaciones crticas. El hardware sobre el que se ejecutan las mquinas virtuales VMware (arquitectura x86) no es capaz de direccionar tantos datos de una sola vez como otras arquitecturas (porque no es una arquitectura nativa 64 bits), tiene caractersticas de fiabilidad y disponibilidad medias. Las soluciones ptimas para virtualizar los servidores crticos son las que se ejecutan en servidores de alta gama, por ejemplo HP Integrity Virtual Machines, o Xen. Disponibilidad de recursos suficientes. La disponibilidad de los recursos es una cuestin de gran importancia y es un problema potencial debido al hecho de que las mquinas virtuales comparten los recursos disponibles fsicamente en el servidor anfitrin, muchas veces compitiendo por ellos, otras veces no. Hay que disponer de recursos suficientes para que las mquinas virtuales estn funcionando de manera simultnea, no solamente de forma independiente. Siempre debemos situarnos en el

Eugenio Villar y Julio Gmez http://www.adminso.es

44 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

peor de los casos a la hora de planificar el uso futuro de los recursos por parte de las mquinas virtuales. Debemos pensar dinmicamente, ya que el uso de los recursos ser cambiante: por temas de carga de trabajo, al disponer de un mayor o menor nmero de mquinas, si las mquinas son portadas entre distintos servidores al implementar migraciones, hacen que sea extremadamente importante la monitorizacin de los recursos de procesamiento, memoria, red, capacidad. Congestin de red por servidor. Si el servidor fsico que aloja a diversas mquinas virtuales dispone de una o pocas interfaces de red y las mquinas virtuales ejecutan operaciones con una carga intensiva en la red ello puede provocar que la demanda del hardware de red sea excesiva y exista congestin, dando lugar a problemas de rendimiento para el host anfitrin o para las mquinas virtuales que comparten la (s) interfaz (interfaces) de red. Una solucin trivial a este problema es la instalacin de un mayor nmero de tarjetas de red en el anfitrin as como la asignacin de manera exclusiva de algunas de ellas a las mquinas virtuales que demande un mayor trfico. Sin embargo, estas asignaciones de recursos a las mquinas pueden provocar que aumenten la complejidad de procesos como la migracin de mquinas virtuales. Incremento de la complejidad y tiempo de depuracin de las actividades de Networking. La administracin de red de mquinas virtuales, cada una con sus respectivas interfaces de red (ya sean fsicas o virtuales) y configuraciones asociadas (MAC, direccin IP, encaminamiento) puede llegar a ser ms compleja que la administracin de red de mquinas fsicas con las mismas caractersticas, debido no slo a la capa software de red virtual introducida en las mquinas sino tambin a la configuracin que debe ser establecida en cortafuegos, filtrados, y otros mecanismos de control. Una prctica extendida en este aspecto es la creacin de subredes de mquinas virtuales, cada una de las cuales con su propio servidor DHCP para as controlar el rango de direcciones de red que se asignan a las mquinas virtuales, simplificando de manera notable las actividades de filtrado, encaminamiento y cortafuegos al trabajar con bloques de direcciones de red. Adems hay que tener en cuenta las configuraciones de las interfaces de red cuando clonamos y caracterizamos nuevas mquinas virtuales, ya que algunos de los parmetros pueden dar problemas (como por ejemplo la direccin MAC de la tarjeta de red) al existir duplicados en la red, dificultando las actividades de networking. Posible aumento de complejidad en la administracin. A pesar de que en la mayora de los casos las actividades de administracin se vern simplificadas, hay configuraciones en las que es posible que el efecto al presentar virtualizacin sea el contrario del esperado. Por ejemplo, esto ocurrir si usamos utilidades de administracin y/o monitorizacin de sistemas de forma distribuida que no pueden trabajar con mquinas virtuales no pueden comunicarse con ellas-, o puede que ocurra tambin si usamos al mismo tiempo diferentes soluciones de virtualizacin. Aunque no sea un problema de gran importancia, siempre es bueno tenerlo en mente. Nuevas problemticas. Se introducen nuevas problemticas que no existan en los entornos fsicos al virtualizar: por ejemplo, debemos conocer en cada momento qu mquinas se encuentran arrancadas en cada servidor fsico de las que aloja, o si hay mquinas que pueden ejecutarse en varios servidores fsicos en cual se encuentran en funcionamiento en cada momento, si es necesario migrar mquinas para balanceo de carga, Otra problemtica es la convivencia en la monitorizacin tanto de servidores fsicos habituales como de servidores virtuales. Lo mismo ocurre si disponemos de

Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 45

diversas tecnologas de virtualizacin: deben ser gestionadas centralizadamente y de una manera transparente, lo ms homognea posible. Licencias del software. Siempre que apliquemos virtualizacin debemos considerar temas relacionados con licencias del software. Cuando almacenaremos mltiples cuentas de usuarios en un nico servidor, cuando repliquemos mquinas virtuales En el caso de que no pudisemos permitirnos nuevas licencias al aplicar virtualizacin, siempre podemos buscar esquemas de licencias flexibles, lo que en ocasiones es crtico para servidores que alojan un gran nmero de usuarios. Otro posible problema relacionado con licencias es el causado por vendedores de software los cuales no apoyan el uso de sus productos en entornos virtualizados hay que comprobar la licencia del producto para estar seguros de ello.

En la tabla 1.2 podemos ver de manera resumida las ventajas y desventajas comentadas en las pginas anteriores. Aunque se trate de una muestra de las principales ventajas y desventajas, no por ello se debe pasar por alto el detalle de que el nmero de desventajas es menor al mismo tiempo que generalmente tienen lugar en casos especficos. La importancia y facilidad de obtencin de las ventajas que han sido expuestas hace que da a da las tcnicas de virtualizacin cobren mayor fuerza, y sin duda compensa aplicarlas a pesar de las posibles y menores desventajas que puedan surgir.
Tabla 1-2. Ventajas y desventajas derivadas del uso de tcnicas de virtualizacin Ventajas Desventajas Consolidacin de servidores Prdida de rendimiento Administracin de Sistemas simplificada Comparticin del servidor Alta disponibilidad y recuperacin ante desastres Soporte del hardware Alto rendimiento y redundancia Hardware virtual obsoleto Reduccin de costes Aceleracin de vdeo por hardware Mejora de las polticas de puesta en marcha, copias Riesgo en la organizacin al implantar una de seguridad y de recuperacin infraestructura virtual Optimizacin del uso y control de los recursos Nmero inadecuado de mquinas virtuales Gran escalabilidad Anfitrin como nico punto de fallo Aprovisionamiento de mquinas virtuales Portabilidad condicionada Compatibilidad hacia atrs Disminucin de las ventas del hardware Disminucin del nmero de servidores fsicos Dependencia del sistema operativo anfitrin Mejora de la eficiencia energtica Dependencia de la solucin de virtualizacin elegida Prueba y depuracin Disponibilidad de recursos suficientes Seguridad y aislamiento Congestin de red por servidor Tipificacin y estandarizacin de plataformas y Incremento de la complejidad y tiempo de configuraciones depuracin de las actividades de Networking Mejora de la calidad y fiabilidad Posible aumento de complejidad en la administracin Clonacin de mquinas virtuales Nuevas problemticas Personalizacin Licencias del software Uso en mbitos docentes Clsteres de servidores virtuales Flexibilidad Gran agilidad Portabilidad, Migracin Automatizacin Cola unificada

Como podemos ver, casi todas las ventajas que nos ofrece la virtualizacin son aplicables en el campo de la consolidacin de servidores en las empresas, quienes estn Eugenio Villar y Julio Gmez http://www.adminso.es

46 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

obteniendo el mayor beneficio de sta tecnologa y que a su vez impulsan. Casi observando todo lo descrito anteriormente podemos llegar a responder la siguiente pregunta: por qu consolidar, y no seguir con el modelo de servidores independientes? Hasta hace unos aos, la instalacin de servidores en las empresas se rega por las necesidades que tuviera, y dependiendo del servicio que se quisiera configurar se adquira un servidor optimizado en hardware, sistema operativo, y software para desempear esa funcin. No importaba el hecho de que existieran otros servidores previamente instalados en la empresa, ni el hardware que utilizaban, sistema operativo, y software. Los servidores eran comprados, configurados e instalados porque eran los idneos para soportar el servicio que quisiramos implantar: una base de datos, CRMs, alojamiento web Desarrollando de esta manera los CPDs en las empresas se lleg a una situacin inmanejable llena de una mapa de servidores heterogneos completamente en sus caractersticas: creciente nmero de servidores en la empresa, dificultad de administracin, dificultad en el manejo de cambios, dificultad en la monitorizacin de todos los servidores sumado a los costes de espacio y energticos que implica tal nmero de mquinas. Y adems infrautilizados!! Las estadsticas muestran que los servidores suelen estar usados en torno al 30% como mximo, mientras las empresas desaprovechan el otro 70% por el que pagaron, a lo que hay que sumar licencias, soporte, mantenimiento Otros estudios muestran adems que el 75% del presupuesto de los departamentos de Tecnologas de la Informacin es invertido en operaciones de mantenimiento, mientras que tan slo el 25% del mismo es usado para innovacin. Como hemos visto, el uso de la virtualizacin repercute notablemente en el ahorro de costes en administracin, lo que adems permitira a las empresas dedicar un porcentaje mayor de sus presupuestos a innovacin y gestin del servicio. Virtualizar es una respuesta natural y actual a las necesidades que estn surgiendo en las empresas y CPDs. La virtualizacin permite a las empresas evolucionar de un CPD basado en hardware a otro basado en software, en el cual los recursos compartidos se asignan dinmicamente a las aplicaciones que los precisen. Si no se virtualiza, adems de no frenar todos estos problemas, lo grave es que continan agravndose, afectando a la competitividad de la empresa. La mayora de las empresas adoptan soluciones intermedias, en las que se virtualiza slo una parte de los servicios y aplicaciones, tpicamente los no productivos. De esta forma, incluso, las ventajas y ahorros en costes y agilidad apreciables. Como curiosidad, y ya que hablamos de la gestin de los CPDs actualmente en las empresas, otra tcnica empleada que es considerada opuesta conceptualmente a la virtualizacin es el grid computing o agregacin de servidores, en la que varios servidores son observados como uno slo. Como podemos ver, no se trata ms que de otra forma de virtualizacin. La virtualizacin es el siguiente paso en el modelo de gestin de los servicios, equiparable en forma y contenido al que surgi al pasar de sistemas operativos de una nica tarea a sistemas operativos multitarea, en el sentido de aprovechamiento de recursos y aumento de la eficiencia.

Conclusiones

Como hemos podido ver en los apartados anteriores el mayor campo de aplicacin de la virtualizacin es el de la consolidacin de los servidores que forman la infraestructura de los data centers en cualquier empresa, universidad, institucin En estos equipos corren servicios fundamentales para los productos que ofrezcan, como bases de datos, pginas web, comercio electrnico, hosting, correo electrnico, con presencia cada vez ms importante y creciente. El objetivo principal del presente proyecto es el diseo, implementacin y prueba de una pequea infraestructura virtual, consolidando servidores con servicios de centralita VoIP. Eugenio Villar y Julio Gmez http://www.adminso.es

CAPITULO 1: INTRODUCCION A LA VIRTUALIZACION 47

Dentro de un solo servidor fsico, o si se prefiere un clster de servidores, puede ser desarrollada una completa infraestructura de servidores o centralitas VoIP virtuales (infraestructura virtualizada), manteniendo el servicio ofrecido a prcticamente el mismo nivel de rendimiento y con las considerables ventajas de aplicar virtualizacin. En las mquinas virtuales corrern los servicios VoIP y sus instancias de sistemas operativos independientes, de manera que el hardware del servidor fsico/clster de servidores fsicos es abstrado a las mquinas, creyendo stas que son servidores de telefona IP dedicados. Las centralitas VoIP (Voice over IP) se encuentran en auge actualmente y estn disfrutando de una gran acogida por parte del sector empresarial debido a sus inmejorables prestaciones; la gestin de llamadas por software ofrece unas posibilidades con las que no puede competir la telefona tradicional. La combinacin de virtualizacin y telefona IP puede ofrecer unos resultados realmente excelentes explotando y uniendo las ventajas de uno y otro lado. Sin embargo, existen desventajas derivadas de esta asociacin como el rendimiento final obtenido -muy importante si se quiere dotar al servicio de telefona IP por ejemplo de alta disponibilidad o alto rendimiento, en ocasiones puede resultar dudoso dependiendo del tipo de virtualizacin aplicada-, problemas con el uso del hardware especfico de telefona IP por parte de las mquinas virtuales, o el estado del reloj de la centralita virtualizada. Por tanto, las ventajas y desventajas derivadas del uso combinado de virtualizacin y telefona IP y su exploracin sern objeto de estudio.. As, es la VoIP el servicio elegido para medir sus prestaciones y rendimiento en entornos virtuales, en escenarios simples y de alta disponibilidad, y realizar una comparativa con entornos en los que no hay implantada virtualizacin. De esta forma experimentaremos las ventajas y desventajas de la virtualizacin y telefona IP, siendo testigos de la sencillez de todo el proceso a la par de poder observar los grandes beneficios que reporta al consolidar este tipo de servidores. Finalmente, se realizarn pruebas de migracin en caliente de servidores VoIP entre distintos servidores fsicos de un clster, midiendo tiempos de cada de servicio durante el proceso. El Proyecto Fin de Carrera adems debemos recordar es abordado desde la perspectiva del software libre y GNU/Linux, partiendo de la implementacin libre de centralitas VoIP como es Asterisk, y desarrollando la virtualizacin de servidores de este tipo con soluciones libres de gran potencia sobre GNU/Linux, como desglosaremos en los captulos posteriores. Concluyendo, se trata de unir sobre GNU/Linux la funcionalidad y potencia de la herramienta libre de telefona IP Asterisk y de una solucin de virtualizacin libre a elegir, que ser discutida prximamente.

Eugenio Villar y Julio Gmez http://www.adminso.es

48 VIRTUALIZACION DE SERVIDORES DE TELEFONIA IP EN GNU/LINUX

Figura 1.10 Consolidando servidores de telefona IP Asterisk.

Eugenio Villar y Julio Gmez http://www.adminso.es