Archivo de la etiqueta: Virtualización

AstriCon 2009: Asterisk Xenified

Tras la tempestad llega la calma. Por fin he podido tranquilizarme y publicar por éstos lares las transparencias para que podáis echarles un ojo y comentar si os molan o si apestan. 🙂

La presentación define un escenario de aplicación de Asterisk sobre una plataforma Xen así como los trucos necesarios para hacer que funcione lo mejor posible.

Enjoy! 🙂


Curso: Virtualización con Xen y KVM

Como cada verano éste también estamos inmersos en los cursillos de julio del E-Ghost 🙂

A continuación podéis ver/descargar la presentación del curso que hemos dado Zefe y yo sobre virtualización con Xen y KVM. La idea del curso es ofrecer una introducción a las distintas técnicas de virtualización existentes, y su uso con Xen y KVM. Asimismo, se contemplan algunos frontends como Enomalism o ConVirt, útiles a la hora de delegar tareas de administración, por ejemplo.

Hope you enjoy it! 😉

PD: También he dejado la presentación en SlideShare.

DAHDI 2.2 mejora el soporte en entornos virtualizados

Ya hemos comentado por aquí que para que Zaptel/DAHDI funcionara correctamente en un entorno virtualizado como Xen era necesario hacer alguna pequeña modificación en el fichero dahdi_dummy.c para deshabilitar el timming por RTC.

Durante el Amoocon Kevin Fleming me comentó que en la nueva versión de DAHDI eso ya so sería necesario y acabo de comprobar que es cierto. 🙂

En DAHDI 2.2 se ha eliminado el RTC como fuente de tiempo para el subsistema DAHDI, ya que su funcionamiento era errático en ocasiones. En su lugar se utiliza el timming del propio kernel. Vamos a verlo:

Tras compilar y cargar dahdi_dummy 2.2 SIN modificar vemos que carga correctamente:

[2548770.332063] dahdi: Telephony Interface Registered on major 196
[2548770.332075] dahdi: Version: 2.2.0-rc5
[2548771.512873] dahdi: Registered tone zone 0 (United States / North America)

Comprobemos la fuente de tiempo:

ast16:/usr/src/asterisk/dahdi-tools-2.2.0-rc3# cat /proc/dahdi/1
Span 1: DAHDI_DUMMY/1 "DAHDI_DUMMY/1 (source: Linux26) 1" (MASTER)

Y un dahdi_test para ver que todo va bien:

ast16:/usr/src/asterisk/dahdi-tools-2.2.0-rc3# dahdi_test
Opened pseudo dahdi interface, measuring accuracy...
99.996% 99.997% 99.998% 99.996% 99.999% 99.996% 100.000% 99.996%
99.999% 99.995% 99.999% 99.997% 99.997% 99.998% 99.999% 99.996%
100.000% 99.999% 99.995% 100.000% 99.614% 99.610% 99.614% 99.612%
99.616% 99.609% 99.614% 100.000% 99.997% 99.612% 99.613% 99.610%
99.614% 99.610% 99.614% 99.610% 99.614% 99.609% 100.000% 99.614%
99.610% 99.613% 99.611% 99.613% 99.610% 99.614% 99.609% 100.000%
99.614% 99.609% 99.614% 99.610% 99.614% 99.998% 99.610% 99.614%
99.611% 99.999% 99.614% 99.610% 99.614% 99.610% 99.613% 99.610%
99.613% 99.609% 99.614% 99.610% 100.000% 99.614% 99.610% ^C
--- Results after 71 passes ---
Best: 100.000 -- Worst: 99.609 -- Average: 99.758634, Difference: 99.998285

DAHDI 2.2 todavía está en estado de release candidate, pero pronto se espera una versión estable.

Podéis descargar dahdi-linux y dahdi-tools aquí.

PD: La foto se la tomo prestada a Elio. 😉

Running Asterisk in virtualized environments

Falta una hora para que de comienzo la charla que daré en el Amoocon 2009. Me intento relajar viendo otras charlas, pero parece que no funciona, los nervios siguen ahí, así que escribo este post 🙂

Todos los materiales expuestos durante los 2 días estarán disponibles en la web del Amoocon con vídeos incluidos tras las pertinentes labores de post-producción, pero por si a alguno le interesa, ya he colgado todos los materiales de “Running Asterisk in virtualized environments” aquí.

En el fichero comprimido podéis encontrar lo siguiente:

  • Presentación en ODP y PDF.
  • Ficheros de configuración de Asterisk
  • Configuración de Xen
  • Configuración de KVM
  • Escenarios de SIPp utilizados
  • Resultados de las pruebas

Espero que os sirva!

Asterisk en “la nube”

Como sabéis una de mis áreas de interés además de la VoIP es la virtualización. En este tema, lo que desde hace algún tiempo está de moda es el Cloud Computing. Amazon EC2 es un servicio que ofrece “la nube” para que las empresas corran sus aplicaciones de manera virtualizada.

Pues ahora le ha tocado el turno a Asterisk. Esto no es algo nuevo, ya que la virtualización de centralitas es algo que ya lleva tiempo dando vueltas, pero hasta ahora no había leído que nadie tuviera un Asterisk en Amazon EC2. Podéis echarle un vistazo al howto aquí: http://voxilla.com/2009/02/13/asterisk-amazon-ec2-1178

Rendimiento en la virtualización con Xen

Hace bastante que tengo montado un server con Xen en casa y a lo largo de este tiempo de experimentación he sacado algunas conclusiones acerca del rendimiento que me gustaría compartir. 🙂

En Xen hay varios factores que pueden determinar el rendimiento tanto de las máquinas virtuales como del sistema completo:

El Kernel
Oficialmente solo se mantiene una versión parcheada del kernel 2.6.18.8 para su uso como dom0. Algunas distros han ido portando hacia adelante estos parches de Xen y por ejemplo Debian Lenny dispone del kernel 2.6.26 para su uso como dom0. Aunque se pueden utilizar los Kernels empaquetados por las distintas distros, algunos usuarios han reportado problemas. Para obtener el mejor rendimiento posible y minimizar los problemas se recomienda utilizar el Kernel oficial (2.6.18.8) siempre que sea posible, al menos hasta que los parches de Xen para el dom0 sean incluidos en el mainline del Kernel (se espera que para la versión 2.6.29).

Red
El rendimiento del sistema de red es otro de los factores que más preocupan a los usuarios de sistemas virtualizados. A la hora de determinar un posible fallo de rendimiento en el rendimiento de red hay varios elementos que pueden estar involucrados: la tarjeta de red, el switch y el driver de la tarjeta de red.

Supongamos un sistema con 10 máquinas virtuales. Esto supone que (si utilizamos bridging en las interfaces de red) que habrá 10 equipos transmitiendo datos y que el switch al que este conectado el servidor tendrá 10 MACs en una de sus bocas.Algunos switches y tarjetas de red pueden no resultar adecuados para soportar una carga tan elevda de tráfico, por lo que no vale usar cualquier switch (no al menos ese Linksys de 8 puertos 😉 ).

La velocidad de transferencia es otro de los mayores problemas de la virtualización. Esto se puede solucionar (si el entorno virtualizado es GNU/Linux) deshabilitando el checksum de los paquetes en transferencia. Al no existir como tal un medio ya que la comunicación es a nivel de Kernel, es seguro deshabilitar esta opción. Para ello ejecutaremos lo siguiente en los domU:

# ethtool -K eth0 tx off

Y en el dom0:

# ethtool -K eth0 tx on

Disco Duro
Supongamos de nuevo que tenemos ese servidor con 10 máquinas virtuales. Utilizar particiones independientes para cada máquina virtual ofrece mayor rendimiento que utilizar ficheros individuales. Utilizar LVM y una partición independiente para cada máquina virtual suele ser lo más adecuado.

Además del esquema de particionado, el hecho de tener 10 máquinas virtuales encendidas supone demasiadas escrituras concurrentes en disco por lo que conviene utilizar un sistema RAID (0 o 5 por ejemplo) para que estos procesos de lectura/escritura  no comprometan el rendimiento del sistema virtualizado.

En el servidor que tengo en casa (procesador QuadCore, 4GB de RAM y 2 discos duros en RAID 0) con 14 máquinas virtuales arrancadas el rendimiento es muy bueno 🙂

Curso de virtualización con Xen

Con todo el lío, al final este año no he podido poner un post comentando los Cursillos de Verano del E-Ghost 🙁

Uno de los cursos en los que me infiltrado 🙂 es en el de Introducción a la Virtualización, en la que se ven OpenVZ y Xen. Zigor Egiguren (Cosmos) se ha encargado de la parte de OpenVZ y yo de la de Xen.

Por si alguno lo encuentra de interés, aquí os dejo la documentación que voy a utilizar el día de hoy, la tenéis descargable en http://www.slideshare.net/saghul

Virtualización con Xen

Aunque ya son más de las 12:00 PM, no he tenido tiempo de postear antes 🙂

Hoy día 26 de marzo se celebraba el primer Document Freedom Day, así que pensé que sería un buen día para publicar este documento que redacté hace poco.

En él se detalla la instalación de un sistema de virtualización Xen, compilándolo desde los fuentes, y utilizando kernels personalizados. También se detalla como montar domUs con soporte para Full Virtualization (HVM) o Paravirtualización (PV).

Espero que os sirvan 🙂

Podéis descargarlo de aquí en ODT y aquí en PDF. (También están en la sección de Documentos)

xen_logo.gif