Heartbeat · 2 min read · Oct 21, 2025
Consiguiendo Altura Con Lenny - Página 5
Después de que los 2 archivos anteriores estén configurados, haresources es donde queremos estar para controlar el comportamiento de Heartbeat. Este es un ejemplo para 1 Vserver que configuraremos más adelante.
nano /etc/ha.d/haresourcesnode1 drbddisk::r1 LVM::drbdvg1 Filesystem::/dev/drbdvg1/web::/VSERVERS/web::ext3 vserver-web SendArp::123.123.123.125/eth0Lo anterior establecerá por defecto el Vserver llamado web en node1 y especificará los puntos de montaje, el script vserver-web iniciará y detendrá el heartbeat, el sendarp es para notificar a la red que esta IP se puede encontrar en otro lugar que no sea antes. (He añadido el SendArp una vez más a continuación para un mejor resultado.)
El script vserver-web es básicamente una versión demolida del agente original estilo R2 de Martin Fick de aquí: http://www.theficks.name/bin/lib/ocf/VServer. Lo que hice fue eliminar la parte superior sensible y reemplazar “$OCF_RESKEY_vserver” con el nombre específico del Vserver, también añadí un extra /etc/ha.d/resource.d/SendArp 123.123.123.126/eth0 start a la parte de inicio porque tuve varios resultados cuando lo hizo Heartbeat.
nano /etc/ha.d/resource.d/Vserver-web#!/bin/sh
#
# Licencia: Licencia Pública General de GNU (GPL)
# Autor: Martin Fick <[email protected]>
# Fecha: 04/19/07
# Versión: 1.1
#
# Este script gestiona una instancia de VServer
#
# Puede iniciar o detener un VServer
#
# uso: $0 {start|stop|status|monitor|meta-data}
#
#
# Los parámetros OCF son los siguientes
# OCF_RESKEY_vserver
#
#######################################################################
# Inicialización:
#
#. /usr/lib/heartbeat/ocf-shellfuncs
#
#USAGE="uso: $0 {start|stop|status|monitor|meta-data}";
#
#######################################################################
#
#
#meta_data() {
# cat <
#
#
# 1.0
#
#Este script gestiona una instancia de VServer.
#Puede iniciar o detener un VServer.
#
# Script de agente de recursos OCF compatible con VServer.
#
#
#
#
#
#El nombre del vserver es el nombre que se encuentra bajo /etc/vservers
#
# Nombre del VServer
#
#
#
#
#
#
#
#
#
#
#
#
#
#END
#}
vserver_reload() {
vserver_stop || return
vserver_start
}
vserver_stop() {
#
# ¿Está el VServer ya detenido?
#
vserver_status
[ $? -ne 0 ] && return 0
/usr/sbin/vserver "web" "stop"
vserver_status
[ $? -ne 0 ] && return 0
return 1
}
vserver_start() {
vserver_status
[ $? -eq 0 ] && return 0
/usr/sbin/vserver "web" "start"
vserver_status
/etc/ha.d/resource.d/SendArp 123.123.123.125/eth0 start
}
vserver_status() {
/usr/sbin/vserver "web" "status"
rc=$?
if [ $rc -eq 0 ]; then
echo "corriendo"
return 0
elif [ $rc -eq 3 ]; then
echo "detenido"
else
echo "desconocido"
fi
return 7
}
vserver_monitor() {
vserver_status
}
vserver_usage() {
echo $USAGE >&2
}
vserver_info() {
cat - <