[Linux-Biella] Sparagli in testa!
andrea ferraris
andrea.ferraris a gmail.com
Sab 25 Apr 2009 20:02:55 CEST
Quando avevo visto queste cose (HA Linux) qualche anno fa, heartbeat con
drbd per evitare situazioni splitted brain (quando i nodi del cluster
non riescono piu` a comunicare tra loro sulle eth tramite cui funziona
drbd) faceva in modo di scegliere sparando in testa (al limite staccando
l'alimentazione) con stoneth a quello che riteneva non piu` attivo per
evitare il rischio di corrompere dei dati con 2 nodi attivi
contemporaneamente o di arrivare comunque a situazioni inconsistenti con
un po' di dati scritti di qua e un po' di la`. Per fare questo poteva
usare la comunicazione alternativa di heartbeat fra gli host (o seriale
o eth dedicata).
Ora il mio problema e` che i due nodi risiederebbero a circa 200 metri
uno dall'altro con possibilita` che una ruspa scriteriatamente guidata
tranci tutte le comunicazioni fra i due. A questo punto mi sembra
impossibile che heartbeat possa riuscire a spegnere uno dei due nodi
perche' non c'e` piu` nessuna comunicazione fra i due. Esistono dei
filesystem distribuiti stabili a livello di produzione per Linux che
permettano di gestire situazioni del genere risincronizzando
correttamente i dati fra i due nodi al ripristinarsi della connessione
fra di loro? So che e` possibile usare il dispositivo o device di
stonith meatware (ovvero intervento umano, che lascia la situazione dei
nodi immutata per cui il secondario non diverrebbe primario alla
mancanza di comunicazione fra i due, ma resterebbe in attesa fino alla
risposta umana), pero` a questo punto mi sembra ridursi l'utilita` di un
cluster HA. Inoltre, per dare la possibilita` di live migration di
macchine virtuali da un nodo all'altro, quando uno fallisce, credo che
drbd debba essere definito primary/primary su entrambi e in questa
situazione comunque la possibilita` di corruzione dei dati (scritti
contemporaneamente dati diversi sui 2 nodi, attivi e scollegati) ci
sarebbe. Qualcuno ha idea se sia possibile usare qualche meccanismo o un
qualche tipo di filesystem in grado di rimediare a situazioni di questo
tipo?
Maggiori informazioni sulla lista
Linux