Configuração · 2 min read · Oct 21, 2025

Fumando Alto Com Lenny - Página 5

Depois que os 2 arquivos acima estão configurados, o haresources é onde queremos estar para controlar o comportamento do Heartbeat. Este é um exemplo para 1 Vserver que configuraremos mais tarde.

nano /etc/ha.d/haresources
node1 drbddisk::r1 LVM::drbdvg1 Filesystem::/dev/drbdvg1/web::/VSERVERS/web::ext3 vserver-web SendArp::123.123.123.125/eth0

O acima definirá o Vserver nomeado web para node1 e especificará os pontos de montagem, o script vserver-web iniciará e parará o heartbeat, o sendarp é para notificar a rede que este IP pode ser encontrado em outro lugar além de antes. (Adicionei o SendArp uma vez a mais abaixo para um melhor resultado.)

O script vserver-web é basicamente uma versão demolida do agente original estilo R2 de Martin Fick daqui: http://www.theficks.name/bin/lib/ocf/VServer. O que eu fiz foi remover a parte superior sensível e substituir “$OCF_RESKEY_vserver” pelo nome específico do Vserver, também adicionei um extra /etc/ha.d/resource.d/SendArp 123.123.123.126/eth0 start à parte de início porque tive vários resultados quando feito pelo Heartbeat.

nano /etc/ha.d/resource.d/Vserver-web
#!/bin/sh
#
# Licença: Licença Pública Geral GNU (GPL)
# Autor:  Martin Fick <[email protected]>
# Data:    19/04/07
# Versão: 1.1
#
#    Este script gerencia uma instância de VServer
#
#    Ele pode iniciar ou parar um VServer
#
#    uso: $0 {start|stop|status|monitor|meta-data}
#
#
#       Os parâmetros OCF são como abaixo
#       OCF_RESKEY_vserver
#
#######################################################################
# Inicialização:
#
#. /usr/lib/heartbeat/ocf-shellfuncs
#
#USAGE="uso: $0 {start|stop|status|monitor|meta-data}";
#
#######################################################################
#
#
#meta_data() {
#        cat <
#
#
# 1.0
# 
#Este script gerencia uma instância de VServer.
#Ele pode iniciar ou parar um VServer.
# 
# Script VServer compatível com OCF Resource Agent.
#
#
#
#   
#O nome do vserver é o nome encontrado em /etc/vservers
#   
#   Nome do VServer
#    
#   
# 
# 
#  
#  
#  
#  
#  
# 
#
#END
#}
vserver_reload() {
    vserver_stop || return
    vserver_start
}
vserver_stop() {
  #
  #    O VServer já está parado?
  #
    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 - <