CLUSTER HA ELASTIX+DRBD+HEARBEAT+REDFONE?

Discussion in 'General' started by macsinternet, May 6, 2009.

  1. macsinternet

    Joined:
    Apr 19, 2009
    Messages:
    16
    Likes Received:
    0
    Saludos a todos...

    Estoy montando un cluster de alta disponibildad para un call center y necesito algo de asistencia.

    Tengo dos workstations HP XW4300 con dos tarjetas de red, ambos son exactamente iguales, un switch netgear y un REDFONE con soporte para dos E1.

    La idea es la de cualquier cluster HA, tener un servidor secundario como plan de contigencia en caso de algo fallase y que el redfone conmute entre el servidor primario y el secundario en caso de presentarse esta situación.

    La implementación la estoy haciendo en base al documento de REDFONE para cluster HA con elastix 1.3 + DRBD + Heartbeat el link del pdf es este:

    http://support.red-fone.com/downloads/e ... luster.pdf

    El diagrama de mi arreglo actual es este:

    [​IMG]

    Con respecto al documento tengo algunos cambios importantes que quiero que tengan en cuenta.

    1. En mi implementación estoy usando Elastix 1.5.
    2. Estoy usando 2 tarjetas de red en vez de tres como sugiere el documento, una para el servicio DRBD y el heartbeat(ETH1) y otra conectada al switch para el redfone y los endpoints que son computadores con x-lite como softphones.

    He logrado configurar el servicio DRBD exitosamente, los servers se ven, se sincronizan y todo marcha como debe.

    Estoy en el punto 22 donde ya habiendo montado el disco drbd en la carpeta /replica debo copiar las carpetas de los servicios que va a controlar el heartbeat que son el asterisk , el mysqld, el httpd, despues de copiados debo remover eliminar las carpetas y enlazar las rutas de los servicios con la nueva ruta de la carpeta /replica.

    En el punto 22 dice que esto solo debe hacerse en el servidor primario, la pregunta es?

    No es necesario ir al servidor secundario, declararlo primario en el drbd, montar la carpeta /replica, remover las carpetas de los servicios asterisk, httpd, mysqld (/etc/asterisk, var/lib/asterisk ...) y enlazar las rutas de los servicios a la nueva ruta dentro de la carpeta /replica del servidor secundario? o solo con hacerlo en el servidor primario el heartbeat sabe que debe usar el disco drbd para correr los servicios.

    Estoy confundido en esta parte, he visto otros tutoriales y hacen esto en ambos servidores, quisiera tener la certeza de como es antes de configurar el heartbeat.


    Les agradezco mucho su tiempo y su ayuda.


    Gracias.
     
  2. ramoncio

    Joined:
    May 12, 2010
    Messages:
    1,663
    Likes Received:
    0
    Efectivamente es como crees. Tienes que mover los servicios a /replica en los 2 equipos. De todas maneras, pregunta a RedBridge, que son los que más experiencia tienen con clusters y ya que tienes un equipo de ellos. Ese pdf que comentas es algo antiguo, a lo mejor ya lo hacen con heartbeat v2, que es mucho más potente.

    Yo hice uns pruebas con un cluster hace tiempo, pero no llegó a funcionar perfectamente, porque me basé en un tutorial que hicieron los chicos de Palo Santo que estaba incompleto y no movían todo lo necesario a réplica, como por ejemplo /var/www/db/ que es fundamental para Elastix. Si buscas por aqui en el foro seguramente encuentres unos scripts que hice cuando lo intenté que igual te pueden servir de ayuda.
    Hace un par de meses empecé a leer tutoriales de heartbeat 2 y aunque me gustaron mucho las posibilidades que ofrecía, no llegue a llevarlo a la práctica.
    Suerte, y espero que si lo consigues pongas por aqui tus configuraciones para que nos puedan servir a todos.
     
  3. macsinternet

    Joined:
    Apr 19, 2009
    Messages:
    16
    Likes Received:
    0
    hola a todos de nuevo, gracias ramoncio por tu aporte...

    Ok, aunque en el manual no lo especificaba me suponía lo que me confirmaste, debia ser necesario configurar las rutas de los servicios en ambos servidores.

    Resulta que configure el heartbeat, inicie el servicio y el heartbeat es incapaz de controlar el status del drbd de los servidores. Ambos se quedan en secondary/secondary no se como hacer para que el heartbeat configure automaticamente los estados y le diga al servidor primario que el es primario.

    Mis preguntas son:

    Como veo el log del heartbeat para ver que es lo que pasa con este servicio?

    Alguna idea de lo que puede estar pasando.

    Post. Hable con el soporte de redfone pero estos manes no dan soporte ni a drbd ni a heartbeat solo problemas de los redbridges... que tal la cosa?

    Gracias por sus aportes nuevamnete

    Miguel Celis
     
  4. Redfone

    Joined:
    Jul 12, 2007
    Messages:
    177
    Likes Received:
    0
    Miguel,
    Intenta esto para declarar tu servidor primario (punto 18).

    18. Initially, both servers will be
     
  5. Redfone

    Joined:
    Jul 12, 2007
    Messages:
    177
    Likes Received:
    0
  6. macsinternet

    Joined:
    Apr 19, 2009
    Messages:
    16
    Likes Received:
    0
    Gracias Redfone...

    Al fin he podido poner a andar el DRBD y el heartbeat.
    Quiero participarles algunas cosas que note a partir que empeze a revisar el log. /var/log/ha-log

    En el archivo de configuración haresources del heartbeat el tutorial de redfone nos muestra una configuración tentativa

    primary.yourdomain.com drbddisk::r0
    Filesystem::/dev/drbd0::/replica::ext3
    IPaddr::10.1.1.3/24/eth1/10.1.1.255 fonulator asterisk mysqld httpd

    Primero el heartbeat no acepta saltos de linea en este archivo de configuracion, lo que él espera es algo como esto

    primary.yourdomain.com drbddisk::r0 Filesystem::/dev/drbd0::/replica::ext3 IPaddr::10.1.1.3/24/eth1/10.1.1.255 fonulator asterisk mysqld httpd

    noté tambien que en el archivo haresources el orden de los servicios es importante que es el mismo orden en que el hearbeat va a abrirlos y que por tanto debe hacerse correctamente. Lo que quiero decir es que como está en el tutorial de redfone primero se abre el fonulator despues el asterisk, el mysqld y por ultimo el httpd. Uno de los errores lo encontre en el log del heartbeat cuando trataba de correr el fonulator, como a esta altura a la que voy del manual no habia instalado el fonulator en ninguno de los servidores el heartbeat recibia un error y procedia a reiniciar el drdb y el mismo heartbeat, y como cada vez que se reinicia el drbd quedan ambos servidores secondary/secondary por eso ninguno de los equipos tomaba el control.

    Lo que hice fue borrar el fonulator en esa línea y ejecutar de primero el servicio de mysqld antes de correr asterisk y httpd y quedo entonces así:

    primary.yourdomain.com drbddisk::r0 Filesystem::/dev/drbd0::/replica::ext3 IPaddr::10.1.1.3/24/eth1/10.1.1.255 mysqld asterisk httpd

    Listo reinicie el heartbeat y de vuelta obtuve una gran primary/secondary en el status del drbd del primario y un lindo secondary/primary en el servidor secundario.

    Ok, recuerden que despues de instalar el fonulator entonces si debemos agregar fonulator de primero en la linea de servicios a correr en el haresources.

    Eso fue todo, es el resultado de un proceso logico-estocastico en donde aprendí barbaramente pero sugiero que alguien de redfone explique mejor esto en el proximo tutorial y lo tenga en cuenta para aquellos que como yo tuvieron un parto montando su servidor de alta disponibilidad.

    Gracias a todos por la buena fe y voluntad que soportan esta gran comunidad.

    Miguel Celis Salgado
    Ing. de proyectos
    Enlaces Voip Ltda.
    Cartagena - colombia
     
  7. emadrigal

    Joined:
    Nov 19, 2009
    Messages:
    18
    Likes Received:
    0
    Miguel necesito alguna info acerca de tu experiencia:

    1. Cuanto se demora en tomar el control el slave despues de una falla del master?

    2. Despues de declarar el slave como Primary para hacer todos los pasos con replica, como lo volviste a declarar Secondary?

    de antemanio muchas gracias por tu ayuda.

    saludos desde Medellín-Colombia

    Esteban
     
  8. razametal

    Joined:
    Jul 9, 2007
    Messages:
    33
    Likes Received:
    0
    I was trying with drdb, heartbeat and elastix 1.6 but my implementatino does not work :(

    I'm using now flip1405.sh script from http://www.thiscoolsite.com/?p=6
     
  9. emadrigal

    Joined:
    Nov 19, 2009
    Messages:
    18
    Likes Received:
    0
    i neither could get it working. razametal does flip1405.sh works for you? how's the perfomance of that implementation?
     
  10. Redfone

    Joined:
    Jul 12, 2007
    Messages:
    177
    Likes Received:
    0
    Hola Esteban,

    1. Esto se puede controlar a través del /etc/ha.d/ha.cf. Especificamente los parametros deadtime, warntime, etc. Pero si puede hacer el failover en menos de cinco segundos facilmente.

    2. Tambien esto es algo que se controla en ha.cf. Es la opción de 'auto_failback off|on'.

    Saludos,
    Mark | Redfone
     

Share This Page