IDS: Alta disponibilidad con Heartbeat + iSCSI
| 2010/08/01 | Posted by tripledes under Base de datos, Debian, Informix, Linux, Sistemas Operativos |
Después del último post IDS: Replicación de datos con alta disponibilidad me quedé con muy buen sabor de boca ya que después de varios años trabajando con Oracle veo que Informix tiene muchas posibilidades integradas en el propio motor, como p.e. una muy importante es la de failover.
El problema de la solución de failover integrada en Informix es que tu aplicación debe soportar “grouping”, es decir, representar un servicio con un nombre lógico pero que en realidad por debajo dicho servicio lógico está formado por varias instancias físicas, con HDR u otras técnicas de replicación.
Por este motivo decidí que estaría bien poder integrar el servicio de base de datos con sistemas de failover ya existentes en el mundo Linux, Heartbeat. Esto que os presentaré aquí tan solo es una prueba de concepto, para nada esta todo super optimizado y super bien configurado…mostraremos el camino y luego cada uno que le saque el jugo que pueda!!! ![]()
¿Cuál es la idea?
Como se dice siempre, mejor una imagen que 1000 palabras….
Para configurar el cliente iSCSI recordaremos un post que hicimos hace ya algún tiempo, CentOS: como configurar un dispositivo iSCSI, en princpio nos debería servir para cualquier distribución de Linux, lo único a tener en cuenta es que en Debian instalaremos el paquete open-iscsi para disponer del software necesario para el cliente iSCSI.
Una vez con el disco iSCSI configurado, procedemos a preparar el storage creando un VG y un LV, éste nos servirá parar asignarlo como ROOTDBS en la configuración de Informix:
root@ids1:~# pvcreate /dev/sdb
root@ids1:~# vgcreate -A y vgids /dev/sdb
root@ids1:~# lvcreate -A y -n lvrootdbs -L 5G vgids
Una vez con el storage preparado, pasamos a instalar heartbeat:
root@ids1:~# apt-get install heartbeat-2
....
root@ids2:~# apt-get install heartbeat-2
....
Esto nos instalará todo lo que necesitamos para hacer el failover de Informix, pero antes de que empiece a funcionar necesitaremos configurar unos mínimos:
root@ids1:~# cat /etc/ha.d/ha.cfg
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 20
warntime 10
initdead 120
udpport 694
ucast eth0 192.168.122.113
auto_failback off
node ids1
node ids2
root@ids2:~# cat /etc/ha.d/ha.cfg
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 20
warntime 10
initdead 120
udpport 694
ucast eth0 192.168.122.112
auto_failback off
node ids1
node ids2
Con esta configuración básica lo que conseguimos es definir los dos nodos (ids1 e ids2) y el canal de comunicación entre ellos via la red heartbeat (192.168.122.0/24). Además definimos el comportamiento de failback, en nuestro caso no haremos failback…y porqué? Principalmente para evitar matar sesiones activas inecesariamente.
Ahora pasamos a parametrizar la instalación de Informix para que cuando levante el servicio este identico en los dos nodos. La instalación la podemos seguir desde el post Debian: Instalación de IDS 11.50 , la realizamos sobre el nodo principal y la copiamos al secundario ya que serán identicos.
Los cambios que debemos realizar son, en el fichero que usemos para el SQLHOSTS:
demo_on onipcshm on_hostname on_servername
ol_demo_on onsoctcp 192.168.1.114 sqlexec
Y para el ONCONFIG:
ROOTPATH /dev/mapper/vgids-lvrootdbs
DBSERVERNAME demo_on
DBSERVERALIASES ol_demo_on
Lo demás es todo por defecto…recordad la prueba de concepto!! ![]()
Una vez realizados los cambios, tendremos que incializar el ROOTDBS como se comentaba en el post de instalación con oninit -vi y la volvemos parar con onmode -uky la parte de Informix está lista.
Para finalizar…editaremos el fichero /etc/ha.d/haresources de la siguiente manera en el nodo1 y nodo2 respectivamente:
ids1 IPaddr2::192.168.1.114/24/eth1 open-iscsi LVM::vgids ids::/home/informix::demo_on::onconfig.demo_on
ids2 IPaddr2::192.168.1.114/24/eth1 open-iscsi LVM::vgids ids::/home/informix::demo_on::onconfig.demo_on
De esta manera le decimos a heartbeat que en caso de adquisición de los recursos, deberá levantar la IP alias 192.168.1.114 (virtual IP address), levantar el servicio open-iscsi, configurar el VG vgids y finalmente levantar Informix server demo_on con INFORMIXDIR /home/informix y ONCONFIG onconfig.demo_on.
Y bien, creo que no me dejo nada….realizamos la prueba de que todo funciona??? Aqui vamos, reiniciamos las máquinas y nos encontramos con lo siguiente:
Los servicios están en el primer nodo, es decir…al menos un nodo está haciendo lo que toca…ahora vamos a reiniciar dicho nodo y veremos si el segundo coge el servicio como debe:
Efectivamente, ahi los tenemos en el segundo nodo y para verificar realmente lo que ha pasado:
root@ids2:~# tail -50f /var/log/ha-log
.....
ResourceManager[4690]: 2010/08/01_14:50:59 info: Running /etc/ha.d/resource.d/LVM vgids start
....
ResourceManager[4690]: 2010/08/01_14:51:00 info: Running /etc/ha.d/resource.d/ids /home/informix demo_on onconfig.demo_on start
ids[5603]: 2010/08/01_14:51:11 INFO: Success
....
Ahí se pueden ver parte de los mensajes que heartbeat loggea, donde vemos que empieza a ejecutar los scripts necesarios para levantar los servicios y los mensajes de éxito.
Bien, llegados a este punto solo quedaría llevarlo a un escenario de producción y hacer las pruebas necesarias con las aplicaciones y clientes varios que accedan a nuestras bases de datos! ![]()
Espero no haberme dejado nada, que lo dudo! después del royazo que he soltado…
si veis algo incorrecto los comentarios estarán abiertos unos días!
More From tripledes
- IDS: Replicación de datos con alta disponibilidad.
- IDS: Cluster, balanceo de carga + Alta disponibilidad II
- IDS: Cluster, balanceo de carga + Alta disponibilidad
tripledes Recommends
- bajar de peso (stanfieldsk)
- OMEGA 3. Auxiliar en problemas cardiacos, colesterol y triglicridos..flv (stanfieldsk)







[...] http://sexylinux.net/2010/08/01/ids-alta-disponibilidad-con-heartbeat-iscsi/ August 3, 2010 // Informix // No Comments // [...]