Newsgroup: it.comp.os.linux.sys
Titolo: heartbeat e ipfail

mi sto scontrando con questi due
e c'è un comportamento che vorrei ribaltare
completamente:
se ipfail rileva che la rete non è disponibile
(vari ping nodes) si autoconvince di essere morto
(e questo mi va più che bene), nello stesso momento
però tenta di contattare l'altro server e,non raggiungendolo,
si impossessa di tutte le risorse.
come posso fare per evitare ciò? se sono morto non devo
prendermi le risorse!
perchè poi se, malauguratamente, il link ritorna mi trovo
con un split-brain!
posso configurare il comportamento di ipfail da qualche parte?

 prendermi le risorse!
auto_failback = on?
http://www.linux-ha.org/ha.cf/AutoFailbackDirective
-- 
Vide

 
http://www.linux-ha.org/ha.cf/AutoFailbackDirective
io l'ho impostato ad off proprio
perchè vorrei che ci sia il mio intervento prima
di ridare i servizi al server originario.
cosa cambia in ipfail se lo imposto ad on?

 cosa cambia in ipfail se lo imposto ad on?
Mi sa che non ci siamo capiti, cioè, io non ho capito quello che volevi ma
rileggendolo credo che tu stia volendo fare qualcosa di strano col concetto
di HA.
Il tuo scenario è, presumibilmente, servizio in HA con due nodi, collegati
solo attraverso della rete (niente cavo crossed/seriale diretto). La rete
in mezzo ai due muore: cosa succede? Il tuo errore (se ti ho capito bene
ora) è pensare che lo slave pensi di essere morto lui. No! Se la rete cade
e lo slave non può più raggiungere il master pensa che il MASTER sia morto,
non lo SLAVE. Quindi si autoelegge nuovo MASTER, fino a non trovare di
nuovo vivo il nodo che ufficialmente è master. Questa è la base del
concetto di HA. Se vuoi che a una caduta della rete (ma non del master
effettivo, solo della rete), lo slave non batta ciglio, collega i due nodi
con un altro cavo dedicato (ethernet crossed su un'altra scheda di rete o
seriale) e dovresti risolvere i tuoi problemi.
-- 
Vide

 seriale) e dovresti risolvere i tuoi problemi.
In realtà no: vai in split-brain comunque se quel cavo, o una delle NIC
cui è collegato, ha problemi, dato che entrambi non sanno che l'altro
non risponde ma è vivo.
Si risolve parzialmente con canali di heartbeat multipli, ma soprattutto
con l'uso di quorum esterni e stonith.
Però anche io ancora non ho capito cosa vuole ottenere l'OP.. :-P

 non risponde ma è vivo.
Beh sì però per esempio un cavo seriale è già più "solido" che usare solo la
rete. 
-- 
Vide

 Però anche io ancora non ho capito cosa vuole ottenere l'OP.. :-P
rispondo ad entrambi:
ho i due nodi collegati fra loro tramite
la rete (ok, questo non va bene ma è cosi :) ).
si rompe il cavo di rete di uno dei due,
ipfail giustamente mi dice che non raggiunge nessun nodo
in giro per la rete, e questo mi sta bene.
allo stesso tempo per HB si accorge che l'altro è morto
e si autoelegge!
io vorrei che HB prima di autoeleggersi verificasse lo stato della
rete (non dell'altro nodo) tramite ipfail.
se ipfail dice che al rete è ok allora si autoelegge, altrimenti
no e rimane dormiente.
si può fare?

 si può fare?
ping e ping_group?
http://www.linux-ha.org/ha.cf/PingDirective
comunque per aiutarti al meglio starebbe bene anche che copiassi qui il tuo
ha.cf
-- 
Vide

 no e rimane dormiente.
"verificare lo stato della rete" è un altro modo per dire "verificare
che un «coso» esterno ai nodi sia raggiungibile".
Quorum-device, appunto.
Vedi
http://www.linux-ha.org/ha.cf/PingDirective
http://www.linux-ha.org/ha.cf/PingGroupDirective
Ovvio che bisogna avere garanzia che questo  device abbia

 Quorum-device, appunto.
esatto, direttive ping_group già impostate!
e funzionano, ipfail si accorge (e logga) che è isolato
dal resto della rete.
ma HB se ne sbatte e si autoelegge!
dove posso dire a HB di verificare lo stato
di ipfail prima di decidere se autoeleggersi?

tutto ok!
ipfail funziona proprio come vorrei,
solo non avevo abilitato le api in modo
che il modulo ipfail potesse segnalare il problema
ad heartbeat.
mea culpa!