Sindrome del cervello diviso

La sindrome del cervello diviso, in un contesto di clustering, è uno stato in cui un cluster di nodi viene diviso (o partizionato) in cluster più piccoli di un numero uguale di nodi, ognuno dei quali ritiene che sia l'unico cluster attivo. 

Ritenendo che gli altri cluster siano morti, ogni cluster può accedere simultaneamente agli stessi dati o dischi dell'applicazione, il che può causare il danneggiamento dei dati. Durante la riforma del cluster si crea una situazione di split brain. Quando uno o più nodi si guastano in un cluster, il cluster si riforma con i nodi disponibili. Durante questa riforma, invece di formare un singolo cluster, possono essere formati più frammenti del cluster con un numero uguale di nodi. Ogni frammento di cluster presume che sia l'unico cluster attivo e che gli altri cluster siano inattivi e inizia ad accedere ai dati o al disco. Poiché più di un cluster sta accedendo al disco, i dati vengono danneggiati.

Ecco come funziona in modo più dettagliato:

  • Diciamo che ci sono 5 nodi A, B, C, D ed E che formano un cluster, X.
  • Ora un nodo (diciamo E) fallisce.
  • Ha luogo la riforma dei cluster. In realtà, i rimanenti nodi A, B, C e D dovrebbero formare il cluster X.
  • Ma può verificarsi una situazione di cervello diviso che porta alla formazione di due cluster X1 (contenente A e B) e X2 (contenente C e D).
  • Entrambi i cluster X1 e X2 pensano di essere l'unico cluster attivo. Entrambi i cluster iniziano ad accedere ai dati o al disco, provocando il danneggiamento dei dati.

I cluster ad alta disponibilità sono tutti vulnerabili alla sindrome del cervello diviso e dovrebbero utilizzare un meccanismo per evitarlo. Gli strumenti di clustering, come Pacemaker, HP ServiceGuard, CMAN e LinuxHA, generalmente includono tali meccanismi.

I metodi comuni per affrontare la sindrome del cervello diviso includono:

  • Quorum o disco di blocco
  • il server  
  • Tie-breakers
  • STONITH (spara all'altro nodo in testa)
  • Scherma I / O