서버 관리 · 2 min read · Oct 21, 2025
Lenny와 함께 높은 곳에 - 페이지 5
위의 2개 파일이 설정된 후, haresources는 Heartbeat의 동작을 제어하기 위해 우리가 원하는 위치입니다. 이는 나중에 설정할 1개의 Vserver에 대한 예입니다.
nano /etc/ha.d/haresourcesnode1 drbddisk::r1 LVM::drbdvg1 Filesystem::/dev/drbdvg1/web::/VSERVERS/web::ext3 vserver-web SendArp::123.123.123.125/eth0위의 내용은 web이라는 이름의 Vserver를 node1으로 기본 설정하고 마운트 지점을 지정합니다. vserver-web 스크립트는 Heartbeat를 시작하고 중지하며, sendarp는 이 IP가 이전과 다른 곳에서 발견될 수 있음을 네트워크에 알리기 위한 것입니다. (더 나은 결과를 위해 아래에 SendArp를 추가했습니다.)
vserver-web 스크립트는 기본적으로 여기에서 Martin Fick의 원래 R2 스타일 에이전트의 축소된 버전입니다: http://www.theficks.name/bin/lib/ocf/VServer. 제가 한 일은 합리적인 상단 부분을 제거하고 “$OCF_RESKEY_vserver”를 특정 Vserver 이름으로 교체한 것이며, Heartbeat로 수행할 때 다양한 결과가 있었기 때문에 시작 부분에 /etc/ha.d/resource.d/SendArp 123.123.123.126/eth0 start를 추가했습니다.
nano /etc/ha.d/resource.d/Vserver-web#!/bin/sh
#
# 라이센스: GNU 일반 공용 라이센스 (GPL)
# 저자: Martin Fick <[email protected]>
# 날짜: 04/19/07
# 버전: 1.1
#
# 이 스크립트는 VServer 인스턴스를 관리합니다.
#
# VServer를 시작하거나 중지할 수 있습니다.
#
# 사용법: $0 {start|stop|status|monitor|meta-data}
#
# OCF 매개변수는 아래와 같습니다.
# OCF_RESKEY_vserver
#
#######################################################################
# 초기화:
#
#. /usr/lib/heartbeat/ocf-shellfuncs
#
#USAGE="사용법: $0 {start|stop|status|monitor|meta-data}";
#
#######################################################################
#
#meta_data() {
# cat <
#
#
# 1.0
#
#이 스크립트는 VServer 인스턴스를 관리합니다.
#VServer를 시작하거나 중지할 수 있습니다.
#
# OCF 리소스 에이전트 준수 VServer 스크립트.
#
#
#
#
#Vserver 이름은 /etc/vservers 아래에서 찾을 수 있는 이름입니다.
#
# VServer 이름
#
#
#
#
#
#
#
#
#
#
#
#
#END
#}
vserver_reload() {
vserver_stop || return
vserver_start
}
vserver_stop() {
#
# VServer가 이미 중지되었습니까?
#
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 "running"
return 0
elif [ $rc -eq 3 ]; then
echo "stopped"
else
echo "unknown"
fi
return 7
}
vserver_monitor() {
vserver_status
}
vserver_usage() {
echo $USAGE >&2
}
vserver_info() {
cat - <