Asterisk con alta disponibilidad Parte (1)

[Visto: 6071 veces]

Asterisk con alta disponibilidad Parte (1)

Por Ing. Isaac Fernández Baca

Este tipo de configuración se implementa en centrales IP donde queremos brindar una alta disponibilidad.

Inicialmente necesitamos dos servidores que tengan asterisk instalado.

La herramienta a utilizar es heartbeat en su version 2.1.3, utilizaremos el heartbeat para sensar el servicio del asterisk en ambos servidores, y si se cae alguno de ellos el otro tomara su lugar, como maestro y esclavo, si cae el maestro, el esclavo toma su lugar, y si se levanta el maestro nuevamente lleva el mando.

Estamos usando Centos 4.7, instalamos en ambos servidores el heartbeat.
yum –y install heartbeat

Para este ejemplo el asterisk principal tiene el hostname cusco.com y el backup cuscobk.com

Para todas las configuraciones necesitamos este parámetro así que asegúrense de poner
el nombre de hostname la respuesta al comando
uname –n

[root@cusco /]# uname -n
cusco.com

[root@cuscobk /]# uname -n
cuscobk.com

Ahora debemos de modificar el archivo /etc/hosts de la siguiente forma,
En cusco.com :

[root@cuscobk /]# cat /etc/hosts
127.0.0.1 cuscobk.com cuscobk localhost.localdomain localhost
192.168.254.204 cusco.com cusco
192.168.254.202 cuscobk.com cuscobk

En cusco backup .com

[root@cuscobk /]# cat /etc/hosts
127.0.0.1 cuscobk.com cuscobk localhost.localdomain localhost
192.168.254.204 cusco.com cusco
192.168.254.202 cuscobk.com cuscobk

Notemos que el servidor maestro tiene la ip 192.168.254.204 y el esclavo la ip 192.168.254.202.

Ahora empezamos a configurar en el maestro, copiemos los siguientes archivos
cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/

luego editamos el archivo vi /etc/ha.d/authkeys
auth 2
2 sha1 mipass

Cambiamos los permisos en el archivo authkeys :
chmod 600 /etc/ha.d/authkeys

Editemos el archivo ha.cf el cual es muy importante
vi /etc/ha.d/ha.cf

Agreguemos las siguientes lineas:
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node cusco.com
node cuscobk.com

La parte final de la configuración del hearbeat es seleccionando los demonios que queremos que esten en alta disponibilidad, para nosotros asterisk
vi /etc/ha.d/haresources

Agreguemos la siguiente línea
cusco.com IPaddr::192.168.254.200/24/eth0 asterisk

Notemos que estamos poniendo la IP 192.168.254.200, esta nos servira como una ip virtual, que sera utilizada para la comunicación de asterisk, ya sea con los anexos sip iax, u otra comunicación voip que realice con asterisk.

Finalmente debemos de copiar los archivos de configuración del heartbeat del maestro al esclavo

scp -r /etc/ha.d/ root@192.168.254.202:/etc/

y con ello ya tenemos listo.
Para que siempre se inicie el heartbeat al prender el servidor agregamos en ambos

chkconfig heartbeat on

Reiniciamos el servicio en ambos servidores.

service heartbeat restart

Si no te tomaron bien los hostname, revisa todos los archivos donde se declara el hostname, que son básicamente tres
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-e
th0

Si tienes algún problema prueba reiniciando tus servidores, para que te tome bien el hostname.

Si todo esta bien, entonces desde otra maquina prueba haciendo ping a la ip virtual 192.168.254.200, y en el maestro deberas tener ambas ip, veamos con un ipconfig

[root@cusco /]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:7D:E2:3E
inet addr:192.168.254.204 Bcast:192.168.254.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe7d:e23e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16653 errors:0 dropped:0 overruns:0 frame:0
TX packets:14789 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2564095 (2.4 MiB) TX bytes:3349104 (3.1 MiB)
Interrupt:177 Base address:0x1400

eth0:0 Link encap:Ethernet HWaddr 00:0C:29:7D:E2:3E
inet addr:192.168.254.200 Bcast:192.168.254.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:177 Base address:0x1400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1283 errors:0 dropped:0 overruns:0 frame:0
TX packets:1283 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:148184 (144.7 KiB) TX bytes:148184 (144.7 KiB)

[root@cusco /]#

Parte (2 ) continua en el siguiente post

Referncias
[1]http://www.howtoforge.com/high_availability_heartbeat_centos
[2]http://www.linux-ha.org/Heartbeat

Puntuación: 5.00 / Votos: 1

3 pensamientos en “Asterisk con alta disponibilidad Parte (1)

  1. javier

    Hola! como hago para configurar la ultima versión de heartbeat? ya que los archivos que aqui espcifican no están en la ultima versión. Gracias de antemano

    Responder
  2. carlos

    hola amigo una pregunta no deberian tener los 2 cluster el ip virtual cuando hago un ifconfig al cluster esclavo no me muestra el ip virtual solo me muestra en cluster maestro como en tu ejemplo eso esta bien ?? los 2 cluster no deberian mostrar el ip virtual .. espero su respuesta gracias..

    Responder
  3. carlos

    amigo sobre la pregunta de arriba era un error mio ya lo solucione ….una pregunta con que haces la sincronizacion de datos osea que cuando configure en el cluster maestro se copia directamente al esclavo eh visto en tu otro blog que lo haces con rsync … tambien eh visto q se puede hacer con el drbd cual es mejor o mas facil de configurar y tendra configuracion sobre drbd espero su respuesta gracias..

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *