En modo gráfico:
system-config-cluster
* Vista inicial:
* Definición de los Cluster Nodes:
* Definición de los Fence Devices: (manual fencing es utilizado sólo como laboratorio, nunca para ambientes productivos)
* Volver a seleccionar cada nodo, y luego agregarle el Fence recién creado:
* Agregar los recursos de cluster:
- IP Flotante
- Script de Apache
- Script de DRBD
Nota: el script de DRBD es uno creado sólo para setear el drbd como primary-secondary:
#!/bin/bash
#
# chkconfig: 2345 71 79
# description: Loads and unloads the drbd module
DEFAULTFILE="/etc/default/drbd"
DRBDADM="/sbin/drbdadm"
if [ -f $DEFAULTFILE ]; then
. $DEFAULTFILE
fi
if [ "$#" -eq 2 ]; then
RES="$1"
CMD="$2"
else
RES="all"
CMD="$1"
fi
RES="all"
case "$CMD" in
start)
try=6
while true; do
$DRBDADM primary $RES && break
let "--try" || exit 1 # LSB generic error
sleep 1
done
;;
stop)
$DRBDADM secondary $RES
ex=$?
case $ex in
0)
exit 0
;;
11)
echo >&2 "$DRBDADM secondary $RES: exit code $ex, mapping to 1"
exit 1 # LSB generic error
;;
*)
echo >&2 "$DRBDADM secondary $RES: exit code $ex, mapping to 0"
exit 0
;;
esac
;;
status)
#if [ "$RES" = "all" ]; then
# echo "A resource name is required for status inquiries."
# exit 10
#fi
ST=$( $DRBDADM role $RES )
STATE=${ST%/*}
case $STATE in
Primary)
echo "running (Primary)"
exit 0 # LSB status "service is OK"
;;
Secondary|Unconfigured)
echo "stopped ($STATE)" ;;
"")
echo "stopped" ;;
*)
# unexpected. whatever...
echo "stopped ($ST)" ;;
esac
exit 3 # LSB status "service is not running"
;;
*)
echo "Usage: drbddisk {start|stop|status}"
exit 1
;;
esac
exit 0
- Punto de montaje (filesystem)
* Crear un nuevo servicio e ir asociando los recursos creados anteriormente en cascada como dependencia de uno con otro:
Vista final:
Configuración del servicio Apache, en donde se observa la dependencia de los recursos: en primer lugar se levanta la IP flotante, luego de eso se ejecuta el script de DRBD que setea el disco como Primary, a continuación se monta el disco DRBD, y finalmente se levanta el servicio Apache.
Archivo de configuración final (laboratorio): /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="8" name="cluster_daniel">
<fence_daemon post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode name="nodo1.domain.com" nodeid="1" votes="1">
<fence>
<method name="1">
<device name="manual_nodo1" nodename="nodo1.domain.com"/>
</method>
</fence>
</clusternode>
<clusternode name="nodo2.domain.com" nodeid="2" votes="1">
<fence>
<method name="1">
<device name="manual_nodo2" nodename="nodo2.domain.com"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_manual" name="manual_nodo1"/>
<fencedevice agent="fence_manual" name="manual_nodo2"/>
</fencedevices>
<rm>
<failoverdomains/>
<resources>
<ip address="192.168.11.81" monitor_link="1"/>
<script file="/etc/init.d/httpd" name="Apache"/>
<script file="/etc/init.d/drbddisk" name="DRBD"/>
<fs device="/dev/drbd0" force_fsck="0" force_unmount="1" fsid="62307" fstype="ext3" mountpoint="/var/www/html" name="data" options="" self_fence="1"/>
</resources>
<service autostart="1" exclusive="1" name="apache" recovery="relocate">
<ip ref="192.168.11.81">
<script ref="DRBD">
<fs ref="data">
<script ref="Apache"/>
</fs>
</script>
</ip>
</service>
</rm>
</cluster>
0 Comentarios