miércoles, 9 de abril de 2014

Cluster HA en centos

En varias ocasiones se requiere que algun tipo de servicio como por ejemplo base de datos, peticiones http  esten siempre disponibles, en linux hay varias opciones para poder solventar este problema y mantener al maximo la disponibilidad de servicio, una de ellas es heartbeat.

 A continuacion describire algunos pasos para lograr un cluster de alta disponibilidad en 2 equipos con centos 6.5

Desactivar selinux.

Necesario instalar los repositorios epel.

Se instalan los siguientes paquetes.

yum --enablerepo=epel install heartbeat install cluster-glue resource-agents pacemaker

En archivo /etc/hosts en necesario espeficicar nombre del host e ip

nodo1 ip1
nodo2 ip2

Interfaces de red eth0 y eth1

eth0-> red de configuracion
eth1-> red del cluster

Editar el archivo /etc/ha.d/ha.cf con el siguiente contenido

auto_failback on
bcast eth0
warntime 5
deadtime 15
initdead 60
keepalive 2
node nodo1
node nodo2

Donde:

auto_failback on -> regresar la configuracion de la ip cuando regrese el nodo caido
bcast eth0 -> interface de red por donde se comunica el servicio de hearbeat
warntime 5 -> tiempo minimo de no respuesta
deadtime 15 -> tiempo para activar la ip y nodo inactivo
initdead 60
keepalive 2
node nodo1 -> nombre del host nodo1
node nodo2 -> nombre del host nodo2


Falta generar las llaves de autorizacion entre los nodos

( echo -ne "auth 1\n1 sha1 ";   dd if=/dev/urandom bs=512 count=1 | openssl md5 )   > /etc/ha.d/authkeys

Modificar permisos

chmod 0600 /etc/ha.d/authkeys

Los servicios que iniciara automaticamente el ha, se necesitaran especificar en el archivo /etc/ha.d/haresources

nodo2 192.168.0.50/24/eth1/192.168.0.255 httpd mysqld

Agregar el servicio al incio:

chkconfig heartbeat on

Iniciar el servicio:

/etc/init.d/heartbeat start





martes, 8 de abril de 2014

Configurando gfs2

Existen ocaciones en que se requiere un grupo de sistemas de archivos en el cual se tiene que compartir un conjunto de discos a 2 o mas nodos .


Una posible solucion es utilizar gfs, voy a desscribir a grandes rasgos los pasos para instalarlo en 2 equipos con centos 6.5

Instalar:

yum install -y gfs2-utils lvm2-cluster cman  modcluster rgmanager openais

Agregar en el archivos de cada nodo /etc/hosts

nodo1 ip1
nodo2 ip2

Habilitar en el firewall las ips correspondientes de los nodos y deshabilitar selinux

Crear el esqueto de la configuracion del cluster


ccs_tool create clusterprueba

Estructura que controlara los nodos que no lleguen a responder

ccs_tool addfence nombre_referencia nombre_agente

Agregar los nodos:

ccs_tool addnode  nodo1 -n 1 -v 1 -f nombre_referencia
ccs_tool addnode  nodo2 -n 2 -v 1 -f nombre_referencia


Listar nodos:

ccs_tool lsnode

Validar configuracion:

ccs_config_validate

Si la configuracion no muestra ningun mensaje de error copiar el archivo en los nodos:

/etc/cluster/cluster.conf

Posteriormente en los nodos habilitar los servicios y agregarlos al autoinicio:

service cman start
service rgmanager start
lvmconf --enable-cluster
service clvmd start

chkconfig cman on; chkconfig rgmanager on; chkconfig clvmd on;



A partir de este momento tenemos la configuracion del grupo de sistema de archivos, ahora falta configurar los discos que estaran disponibles en los nodos.

Crear un pv

pvcreate /dev/vdb

Agregar un vg con las opciones de cluster

vgcreate -c y vg_cluster /dev/vdb

Agregar los volumenes logicos al grupo

lvcreate -l PE -n lv_cluster vg_cluster

Formateamos el volumen logico en gfs2

mkfs.gfs2 -p lock_dlm -t clusterprueba:lv_cluster -j <numero_nodos> /dev/vg_cluster/lv_cluster

Crear una carpeta en la cual montaremos nuestro sistema de archivo

mkdir /cluster

Ahora lo montamos

mount -t gfs2 -o noatime,nodiratime /dev/vg_cluster/lv_cluster /cluster/

Autoiniciar el servicio gfs2

chkconfig gfs2 on

Posteriormente en los demas nodos faltaria encontrar los discos:
#Encontrar pvs
pvscan
#Encontrar grupos logicos
vgscan
#Encontrar volumenes logicos
lvscan

La configuracion en el archivo fstab seria:

/dev/mapper/vg_cluster-lv_cluster /cluster gfs2 rw,noatime,nodiratime 0 0

o montar de forma manual.


Saludos.