Heartbeat Configuration · 2 min read · Oct 21, 2025
Alzarsi con Lenny - Pagina 5
Dopo che i 2 file sopra sono stati impostati, haresources è dove vogliamo essere per controllare il comportamento di Heartbeat. Questo è un esempio per 1 Vserver che configureremo più avanti.
nano /etc/ha.d/haresourcesnode1 drbddisk::r1 LVM::drbdvg1 Filesystem::/dev/drbdvg1/web::/VSERVERS/web::ext3 vserver-web SendArp::123.123.123.125/eth0Quello sopra imposterà di default il Vserver chiamato web su node1 e specificherà i punti di montaggio, lo script vserver-web avvierà e fermerà heartbeat, il sendarp è per notificare la rete che questo IP può essere trovato da qualche altra parte rispetto a prima. (Ho aggiunto il SendArp un’altra volta qui sotto per un risultato migliore.)
Lo script vserver-web è fondamentalmente una versione demolita dell’agente originale in stile R2 di Martin Fick da qui: http://www.theficks.name/bin/lib/ocf/VServer. Quello che ho fatto è stato rimuovere la parte superiore sensibile e sostituire “$OCF_RESKEY_vserver” con il nome specifico del Vserver, ho anche aggiunto un extra /etc/ha.d/resource.d/SendArp 123.123.123.126/eth0 start alla parte di avvio perché ho avuto vari risultati quando fatto da Heartbeat.
nano /etc/ha.d/resource.d/Vserver-web#!/bin/sh
#
# Licenza: GNU General Public License (GPL)
# Autore: Martin Fick <[email protected]>
# Data: 04/19/07
# Versione: 1.1
#
# Questo script gestisce un'istanza di VServer
#
# Può avviare o fermare un VServer
#
# utilizzo: $0 {start|stop|status|monitor|meta-data}
#
#
# I parametri OCF sono come sotto
# OCF_RESKEY_vserver
#
#######################################################################
# Inizializzazione:
#
#. /usr/lib/heartbeat/ocf-shellfuncs
#
#USAGE="utilizzo: $0 {start|stop|status|monitor|meta-data}";
#
#######################################################################
#
#
#meta_data() {
# cat <
#
#
# 1.0
#
#Questo script gestisce un'istanza di VServer.
#Può avviare o fermare un VServer.
#
# Script VServer conforme all'agente di risorse OCF.
#
#
#
#
#
#Il nome del vserver è il nome trovato sotto /etc/vservers
#
# Nome VServer
#
#
#
#
#
#
#
#
#
#
#
#
#
#END
#}
vserver_reload() {
vserver_stop || return
vserver_start
}
vserver_stop() {
#
# Il VServer è già fermo?
#
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 "in esecuzione"
return 0
elif [ $rc -eq 3 ]; then
echo "fermo"
else
echo "sconosciuto"
fi
return 7
}
vserver_monitor() {
vserver_status
}
vserver_usage() {
echo $USAGE >&2
}
vserver_info() {
cat - <