VServer Konfiguration · 2 min read · Oct 21, 2025
High mit Lenny - Seite 5
Nachdem die oben genannten 2 Dateien eingerichtet sind, ist haresources der Ort, an dem wir das Verhalten von Heartbeat steuern möchten. Dies ist ein Beispiel für 1 Vserver, den wir später einrichten werden.
nano /etc/ha.d/haresourcesnode1 drbddisk::r1 LVM::drbdvg1 Filesystem::/dev/drbdvg1/web::/VSERVERS/web::ext3 vserver-web SendArp::123.123.123.125/eth0Das obige wird den Vserver mit dem Namen web standardmäßig auf node1 setzen und die Einhängepunkte angeben. Das vserver-web-Skript wird Heartbeat starten und stoppen, das Sendarp dient dazu, das Netzwerk zu benachrichtigen, dass diese IP woanders als zuvor gefunden werden kann. (Ich habe SendArp unten ein weiteres Mal hinzugefügt, um ein besseres Ergebnis zu erzielen.)
Das vserver-web-Skript ist im Grunde eine vereinfachte Version des ursprünglichen R2-Stil-Agenten von Martin Fick, hier zu finden: http://www.theficks.name/bin/lib/ocf/VServer. Was ich gemacht habe, ist, den sensiblen oberen Teil zu entfernen und “$OCF_RESKEY_vserver” durch den spezifischen Vserver-Namen zu ersetzen. Außerdem habe ich einen zusätzlichen /etc/ha.d/resource.d/SendArp 123.123.123.126/eth0 start zum Startteil hinzugefügt, da ich verschiedene Ergebnisse hatte, wenn dies von Heartbeat durchgeführt wurde.
nano /etc/ha.d/resource.d/Vserver-web#!/bin/sh
#
# Lizenz: GNU General Public License (GPL)
# Autor: Martin Fick <[email protected]>
# Datum: 19.04.07
# Version: 1.1
#
# Dieses Skript verwaltet eine VServer-Instanz
#
# Es kann einen VServer starten oder stoppen
#
# Verwendung: $0 {start|stop|status|monitor|meta-data}
#
#
# OCF-Parameter sind wie unten
# OCF_RESKEY_vserver
#
#######################################################################
# Initialisierung:
#
#. /usr/lib/heartbeat/ocf-shellfuncs
#
#USAGE="Verwendung: $0 {start|stop|status|monitor|meta-data}";
#
#######################################################################
#
#
#meta_data() {
# cat <
#
#
# 1.0
#
#Dieses Skript verwaltet eine VServer-Instanz.
#Es kann einen VServer starten oder stoppen.
#
# OCF Resource Agent konformes VServer-Skript.
#
#
#
#
#
#Der Vserver-Name ist der Name, der unter /etc/vservers gefunden wird
#
# VServer-Name
#
#
#
#
#
#
#
#
#
#
#
#
#
#END
#}
vserver_reload() {
vserver_stop || return
vserver_start
}
vserver_stop() {
#
# Ist der VServer bereits gestoppt?
#
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 "laufend"
return 0
elif [ $rc -eq 3 ]; then
echo "gestoppt"
else
echo "unbekannt"
fi
return 7
}
vserver_monitor() {
vserver_status
}
vserver_usage() {
echo $USAGE >&2
}
vserver_info() {
cat - <