Está en la página 1de 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

Disco,
almacenamiento
Red

Unin de interfaces de red


(Ethernet Bonding)

Enlaces de red

Virtualizacin de E/S

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

Simulacin
Virtualizacin
de escritorio

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

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

También podría gustarte