para obtener mayor potencia. Ej. mas MIPS (millones de instrucciones por segundo)
puede ser para datos o para obtener (HA) una alta disponibilidad
Las Super computadoras son costosas, Beowulf es un proyecto de construir cluster
con "off-the-shelf" hardware (e.g., Pentium PCs) corriendo linux.
En este cluster cuando nodo 0 (el server primario) tiene un fallo y se cae,
el nodo 1 toma el control de todos los servicios de nodo 0 empezando por el mismo
alias de ip (192.168.1.7) y toda su subsecuencia de servicios. De echo los servicios
deven co-existir entre nodo 0 y nodo 1 (FTP, HTTPD, IRCD...)
Como montar un cluster rebundnante de datos, de alta avialibilidad (HA)
con DRBD y heartbeat
- con esto conseguiremos que los datos esten duplicados en ambas makinas, pero solo uno sera activo
por eso se llama Activo/Pasi
Código: Seleccionar todo
/-- 192.168.1.3 (HD-DRBD) <---\
192.168.1.7. (HA-DATA) NIC ---< |
\---- 192.168.1.5 (HD-DRBD) <---/
Para ello necesitamos dos particiones o discos duros
con el mismo tamaño en ambas computadoras del cluster
Instalacion
#urpmi drdb-utils
#apt-get install drbd-utils
#yum install drdb drbd-utils
El modulo es opcional de otra forma tenemos que compilar el kernel
el fichero de configuracion /etc/drbd.conf
debe ser identico en ambas computadoras
Código: Seleccionar todo
resource clusti {
protocol C;
handlers {
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
}
startup {
degr-wfc-timeout 60; # 1 minutes.
}
disk {
on-io-error detach;
#size 80G;
}
net {
timeout 60; # 6 seconds (unit = 0.1 seconds)
connect-int 10; # 10 seconds (unit = 1 second)
ping-int 10; # 10 seconds (unit = 1 second)
ping-timeout 5; # 500 ms (unit = 0.1 seconds)
max-buffers 2048;
max-epoch-size 2048;
ko-count 20;
cram-hmac-alg "sha1";
shared-secret "ClusterFanFactory";
}
syncer {
# Note that on 100Mbit ethernet, you cannot expect more than
# 12.5 MByte total transfer rate.
# Consider using GigaBit Ethernet.
#
rate 100M;
al-extents 257;
}
on clusti1.belchi.org {
disk /dev/sdb1; device /dev/drbd0; meta-disk internal;
address 192.168.1.3:7790;
}
on clusti2.belchi.org {
disk /dev/sdb1; device /dev/drbd0; meta-disk internal;
address 192.168.1.5:7790;
}
}
con la particion desmontada la limpiamos
# dd if=/dev/zero of=/dev/sdb1 bs=1M count=50
creamos el dispositivo
# drbdadm create-md clusti
levantamos el servicio en las dos computadoras
#/etc/init.d/drbd start
con estas ordenes podemos ver en todo momento el estado del drbd
#cat /proc/drbd
#/etc/init.d/drbd status
Código: Seleccionar todo
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r----
ns:0 nr:3262752 dw:3262720 dr:0 al:0 bm:199 lo:2 pe:16674 ua:1 ap:0 ep:1 wo:b oos:28193564
[=>..................] sync'ed: 10.4% (27532/30716)M queue_delay: 18.5 ms
finish: 0:37:02 speed: 12,660 (5,456) want: 40,960 K/sec
(syncronizando)
le decimos que nuestro server en el que estamos trabajando es el primario
#drbdadm primary clusti
y formateamos el disco en el caso que no tenga datos
mkresiserfs -l clusdrb /dev/drbd0
en el caso de tener datos en un disco en el computador que tenga los datos debmos ejecutar
#drdbadm -- --overwrite-data-of-peer primary clusti
creamos el directorio replydata para montar el disco compartido
mkdir /replydata
MODIFICACION DE HEARTBEAT
en /etc/ha.d/hardresources tomara los servicios de /etc/ha.d/resorce.d
por lo que tendremos que hacer unas modificaciones x ej. soft-links
#cd /etc/ha.d/resorce.d
#ln -sf /etc/init.d/httpd ./httpd
#ln -sf /etc/init.d/ircd ./ircd
#ln -sf /etc/init.d/pure-ftpd ./pure-ftpd
y con este sencillo script montamos los discos cuando toma el control
fichero /etc/ha.d/resorce.d/mountd
Código: Seleccionar todo
#!/bin/bash
RETVAL=0
start() {
drbdadm primary clusti
mount -t ocfs2 /dev/drbd0 /replydata
}
stop() {
sleep 1
}
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
RETVAL=1
esac
exit $RETVAL
con lo que /etc/ha.d/haresources queda asi
clustiX.belchi.org IPaddr::192.168.1.7 mountd httpd pure-ftpd ircd
y ya podemos ponener nuestro cluster en marcha
/etc/init.d/drbd restart
http://www.linuxjournal.com/article/9074?page=0,0
http://systemadmin.es/2011/04/cluster-c ... -pacemaker
http://www.sherin.co.in/drbd-heartbeat- ... y-cluster/
SysOp