martes 30 de diciembre de 2008

Alta Disponibilidad en Linux

Siempre en las empresas, organizaciones u otras entidades, se necesitan servicios Webs, Ftp, Firewalls, etc. Pero que ocurre si uno de nuestros servidores que esta entregando un servicio o mas de uno se cae por cualquier tipo de problema?.......cuack

Hoy les entregare un manual que cree para ustedes, cuando a mi me sucedio esto... solo vasta seguir los pasos y todo estara automatizado para una alta disponibilidad utilizando una hertbeat, ssh, rsync y cron

manual creado en fedora 6 (Kernel 2.6.18-1.2869.fc6)

I.- INSTALACION DE SOFTWARE Y CONFIGURACION


1. INSTALACION

• Instalación mediante Yum

Root@equipo# #yum search heartbeat
Root@equipo# #yum install heartbeat.i386






2. VERIFICACION DE HEARTBEAT

• Verificar si la instalación quedo en buen estado

Root@equipo# yum info heartbeat
Root@equipo# cd /etc/init.d
Root@equipo# ./heartbeat start
Root@equipo# ./heartbeat status



Si se muestra OK se puede continuar, de lo contrario se tienen que volver a realizar los pasos anteriores o instalar otra versión de heartbeat





3.CONFIGURACION DE HEARTBEAT

Ahora se deben de copiar los archivos haresources, authkeys y ha.cf que se encuentran en /usr/share/doc/heartbeat* (dependiendo la versión instalada) hacia /etc/ha.d

Comienza ahora la configuración de los archivos. La configuracion debe quedar mas o menos como estos:


HA.CF

## /etc/ha.d/ha.cf on node1
## This configuration is to be the same on both machines
## This example is made for version 2, comment out crm if using version 1

keepalive 1
deadtime 5
warntime 3
initdead 10
# serial /dev/ttyS0 /*interfaz si es que vamos a salir por Puerto serial-
bcast eth1 /*interfaz por donde salemos*/
auto_failback yes
node testsvr.intranet /*nodos*/
node testsvr2.intranet
crm on # comment out if using version 1.2.3



Después enviar el archivo a el Segundo nodo de esta forma # scp /etc/ha.d/ha.cf root@node2:/etc/ha.d/

HARESOURCE

Este archivo debe de quedar más o menos así:

## /etc/ha.d/haresources
## This configuration is to be the same on both nodes

testsvr.intranet 192.168.1.3 drbddisk Filesystem::/dev/drbd0::/data::ext3 named
testsvr2.intranet 192.168.1.2 drbddisk Filesystem::/dev/drbd0::/data::ext3 named
[servidor ] [ip a demostrar ] [file system] [demonios]

AUTHKEYS

## configuracion de seguridad que pueden se puede variar pueden ser(ssh)
auth 1
1 crc




Después le cambiamos el permiso que este tiene y se lo asignamos a nivel 600 de la siguiente forma:

Root@equipo# chmod 600 /etc/ha.d/authkeys



4. COPIA DE ARCHIVOS EN NODOS

Copiamos los archivos que modificamos en el segundo nodo sin realizarle ningún cambio






6. VERIFICAR LA FUNCIONALIDAD

Verificar primero la hora y fecha en ambos equipos o machines.
Ver si se esta viendo una maquina a la otra con:

Root@equipo# crm_mon -i2





II.- RSYNC


RESPALDOS CON RSYNC (1RA OPCION)

Esta opción sirve para cuando por ejemplo solo se quiere respaldar de una maquina solamente a otra por que se sobrecopían los archivos. Para lograr respaldo de rsynk con heatbeat en forma automatizada he creado un bash que lo puede realizar.

#!/bin/bash
echo "Iniciando Backup desde Secundario a Primario: archivos samba carpeta publico"
rsync -alptvo -delete -e ssh root@secundario.intranet:/usr/publico/ /usr/publico/
#echo "Backup de Publico realizada"




Este se tiene que guardar en una archivo que sea .sh y agregar al CRON de la maquina para que se ejecute cada cierto tiempo. El cron puede quedar como esto (archivo de configuración de cron es /etc/cronttab)


SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#PATH=/usr/local/sbin:/usr/local/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
* * * * * root /root/respaldo.sh /* con esta configuración se ejecuta a cada rato*/



RESPALDOS CON RSYNC (2DA OPCION)

con esta opción puedes llegar a ser que cuando un servidor se encuentre abajo no realice sincronización. Esto es posible mediante el siguiente script en bash de la cual realiza una comprobación de host y procesos de heartbreat. El codigo es el siguiente.


#!/bin/bash
#
#**********************************************************************
# Verificador de servicio Heartbeat para Rsync
#**********************************************************************
#
#
#
var1=primario.intranet
var2=/usr/lib/heartbeat/mgmtd
echo Vigia a la espera . . .

#result= crm_mon -1 | grep heartbeat |awk '/1/ {print $4}' > /root/.a001
result= ps x|grep "mgmtd -v" | awk '/3/ {print $5}'
if [ $var2=$result ]
rsync -alptvo -delete -e ssh root@secundario.intranet:/usr/publico/ /usr/publico/
echo "Backup Realizado .................. [ OK ]"
then
else
echo "Backup en espera .................. [ FALLO ]"
fi

exit



Posteriormente a esto hay que también agregarlo a cron para que lo ejecute dependiendo de el requerimiento quedando mas o menos así:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#PATH=/usr/local/sbin:/usr/local/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
* * * * * root /root/vigia.sh /* con esta configuración se ejecuta a cada rato*/


manual con licencia GPL sobre el blog

0 comentarios:

Publicar un comentario en la entrada