Para eso se suele configurar lo que se denomina un «sistema redundante», es decir dos o más sistemas configurados de forma que uno de ellos sea el que está en funcionamiento, y en el caso en que deje de funcionar por cualquier motivo, se active otro de los sistemas que hasta ese momento estaba «en espera» o «inactivo» tan rápidamente como sea posible. Mediante este sistema, incluso en el peor de los casos (la rotura de un disco duro, un desbordamiento de memoria que mate un proceso vital, o incluso que alguien le pegue una patada al cable) puede seguir funcionando gracias al siguiente equipo hasta entonces «dormido».
Linux ya cuenta con muchas herramientas de este tipo, y seguramente cualquier usuario que trabaje con Asterisk o con cualquier otro servicio importante ya conocerá algunas herramientas como Heartbeat, Corosync, PeaceMaker, etc… son las más utilizadas. No obstante, hay quien prefiere utilizar virtualización para dotar al sistema de una «seguridad», por lo menos a nivel lógico (poco se puede hacer si el servidor que hospeda las máquinas virtuales se quema por una subida de tensión), pero aún así siempre se puede poner un servidor de máquinas virtualizadas en modo redundante (la cosa se empieza a complicar… pero es muy, muy seguro).
Sea como fuere, suele ser necesario al menos dos sistemas y los resultados son muy interesantes. No es un servicio digamos «intuitivo», pero siguiendo cualquier tutorial que se puede encontrar en Internet, es bien sencillo hacer tu primera prueba. Con el tiempo, configurar un sistema redundante es algo que se hace ya casi de forma automática.
En sistemas de comunicaciones basados en Asterisk es muy interesante esta técnica de redundancia, ya que (por ejemplo) un callcenter basado en un único sistema, en caso de que la tarjeta de red deje de funcionar, tendríamos a varias personas completamente paradas y todo el tiempo en que se encuentran paradas, son pérdidas de todo tipo: económica, productivas, tiempo, etc… por lo que un callcenter que dependa de una única máquina es realmente un riesgo muy, muy grande.
No obstante, si aún así contamos con dos máquinas configuradas en modo redundante (por si a alguna le da por dejar de funcionar), nos encontramos con un problema extra: las líneas de comunicaciones.
Si utilizamos proveedores IP, o gateways, igual el problema no es tan grande pero viene por otro lado (pérdidas de la conexión a internet, dependencia del tráfico del proveedor, latencia, necesidad de más ancho de banda,…), pero si utilizamos líneas de primarios, analógicas o RDSI básicas, la complejidad es diferente… ¿cómo conectamos las líneas a ambas máquinas de forma que, en caso de una parada del sistema principal, se conecte automáticamente al siguiente sistema? Vamos a ver qué soluciones encontramos…
Alta Disponibilidad de Redfone
Página del producto: http://www.red-fone.com/products-new/67.html
Failover de Junghanns
Página del producto: http://www.junghanns.net/en/ISDNguard_produkt.html
Failover de Beronet
Página del producto: http://www.beronet.com/product/failover-switch/
Failover de Digium
Hace unos días Digium ha hecho público el lanzamiento de dos dispositivos nuevos, dos sistemas de «Failover» similares a los de Junghanns y Beronet, llamados Series R 800 para líneas analógicas y Series R 850 para líneas RDSI Básicas y Primarios E1/T1. El funcionamiento es prácticamente igual que el de Junghanns y Beronet pero con unas ligeras diferencias:
- Soportan hasta 8 líneas (analógicas/RDSI Básicas/RDSI Primarias) en lugar de las 4 que soportan los failovers de Junghanns y Beronet.
- La señal Watchdog que informa de que el servidor principal está funcionando correctamente, viaja por USB (en lugar de por puerto serie o de red)
- El mismo puerto USB que envía la señal Watchdog, se encarga de alimentar el Failover (no es necesario un cable externo de alimentación).
Para más información: http://www.digium.com/en/products/failover/r800/#overview