Newsgroup: it.comp.os.linux.sys
Titolo: Heartbeat v1 e risorsa attiva su entrambi i nodi

C'è modo in HB v1 (Debian Etch, per intenderci) di avere una risorsa
condivisa fra i due nodi attiva suentrambi mentre i nodi sono comunque in
attivo/passivo per il resto delle risorse?
In concreto mi serve per tenere attivo su entrambe le macchine (server log)
il syslog, dato che scrive su un volume remoto (su SAN) e per cui non può
stare sempre acceso su entrambi perchè altrimenti quando spengo il nodo
attivo non potrei mai smontare il volume remoto (risulterebbe sempre
occupato).
Stavo pensando come soluzione drastica e abbastanza sporca di fare un
wrapper che quando gli arriva lo "start" da HB lo mette in configurazione
"remota" e quando gli arriva lo stop lo riconfigura in modalità "solo
locale", però se ci fosse un metodo più pulito, lo preferirei.
La documentazione di HB v1 sembra essere scomparsa dalla rete, o almeno io
non la trovo, e in quella locale di Debian non sembra esserci la risposta
al mio quesito..
-- 
Vide

 locale", però se ci fosse un metodo più pulito, lo preferirei.
Fa niente va, ho messo su sto workarond e funziona discretamente bene.
-- 
Vide

 locale", per� se ci fosse un metodo pi� pulito, lo preferirei.
Innanzitutto ovviamente molto meglio se usi rsyslog o syslog-ng che
permettono configurazione "esoteriche".
Io per risolvere il tuo problema ho configurato entrambi i syslog come
normali servizi di macchina in modo che scrivano in locale ed inviino anche
remotamente all'altro nodo tutto quel che è significativo (sul crosscable di
heartbeat). In questo modo ho una copia dei log su entrambi i nodi.
Unica accortezza accertarsi che i dati remoti non vengano riforwardati
all'altro nodo perché altrimenti entri in un loop che ti riempie il disco in
pochi secondi :)
Se invece tu hai la necessità di salvare per forza su storage condiviso
basta che configuri un syslog che ascolta su una risorsa IP del cluster e
salva sullo storage. Poi configuri entrambe le istanze locali delle macchine
per inoltrare i log che ti interessano verso quella risorsa IP; in questo
modo hai sempre 3 istanze attive, con le due dei nodi che sparano su quella
del cluster. Accortezza in questo caso è usare rigorosamente rsyslogd ed
usare il trasporto reliable che non ti fa perdere alcun messaggio in caso di
switch delle risorse.
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 permettono configurazione "esoteriche".
Sì uso syslog-ng ovviamente, syslogd fa "cagare a spruzzo" :P (no scherzo
però syslog-ng è un ordine di magnitudine più flessibile).
Comunque come dicevo nell'altro post ho risolto così:
- file di conf di syslog-ng "solo locale"
- file di conf di syslog-ng che ascolta sulla IP condivisa e scrive sullo storage condiviso
poi ho uno script così, che viene lanciato da heartbeat:
#!/usr/bin/env bash
case "$1" in
"start")
        rm /etc/syslog-ng/syslog-ng.conf
        ln -s /etc/syslog-ng/syslog-ng.conf.remote /etc/syslog-ng/syslog-ng.conf
        /etc/init.d/syslog-ng restart
        [ $? -eq 0 ] && exit 0 || exit 1
        ;;
"stop")
        rm /etc/syslog-ng/syslog-ng.conf
        ln -s /etc/syslog-ng/syslog-ng.conf.local /etc/syslog-ng/syslog-ng.conf
        /etc/init.d/syslog-ng restart
        [ $? -eq 0 ] && exit 0 || exit 1
        ;;
esac
echo "Usage: $0 (start|stop)"
exit 1
-- 
Vide