Asterisk 1.6 en sistemas clusters
Cuando adelantamos las novedades que incorporaría Asterisk 1.6, comentamos que los desarrolladores se habían propuesto varios objetivos entre los que se encontraban:
– Un menor consumo de memoria
– Capacidad para funcionar en entornos realmente grandes
Cualquiera que haya seguido el desarrollo de las versiones betas que hay actualmente y que compruebe el consumo de memoria de Asterisk 1.2, Asterisk 1.4 y las betas de Asterisk 1.6, podría descubrir que Asterisk 1.2 únicamente cargaba en memoria los módulos que utiliza mientras que Asterisk 1.4 los carga todos aunque solo habilita aquellos que utiliza (una prueba de ello podeis tenerla si provocais un crash en algún módulo y con el servicio Asterisk activado, reescribis el módulo en el directorio /usr/lib/asterisk/modules, vereis como de inmediato, el sistema completo explota sin haber cargado a mano el nuevo módulo). Asterisk 1.6 vuelve a sus orígenes en cuanto a la carga de módulos y únicamente consume memoria por los módulos que realmente se utilizan (algo que era evidentemente necesario).
Ahora parece que se están centrando en mejorar la integración de Asterisk en sistemas clusterizados (varios sistemas que virtualmente se comportan como uno solo multiplicando sus capacidades de procesador, memoria, espacio, y un largo etcétera.)
Concretamente, uno de los primeros objetivos en este sentido es el de propagar la información de los usuarios (libres, ocupados, hablando, no disponible, etc.) entre los distintos servidores que forman el cluster.
Para ello, el equipo de desarrolladores de Asterisk están utilizando un framework especial para programar en este tipo de infraestructuras llamada OpenAIS y así han creado un nuevo módulo llamado res_ais que permite controlar el estado de una extensión situada en otro Asterisk perteneciente a uno de los nodos del cluster.
El siguiente paso será propagar esta información a través de Asterisk conectados entre sí por el protocolo DUNDi.
Más información: http://lists.digium.com/pipermail/asterisk-commits/2008-June/023400.html