Cos'è Split-Brain?
Come menzionato nella documentazione ufficiale sulla gestione di Split-Brain fornita da RedHat, split-brain è uno stato in cui le incongruenze di dati o disponibilità originate dalla manutenzione di due set di dati separati con ambito di sovrapposizione, sia a causa di server in un progetto di rete, o una condizione di errore basata su server che non comunicano e non sincronizzano i loro dati tra loro. Ed è un termine applicabile per replicare la configurazione.
Prestare attenzione al fatto che si dice "una condizione di errore basata su server che non comunicano e non sincronizzano i dati tra loro" - a causa di una probabilità - ma ciò non significa che i nodi potrebbero perdere la connessione. Il peer potrebbe essere ancora nel cluster e connesso.
Tipi di cervello diviso:
Abbiamo tre diversi tipi di split-brain e, per quanto posso vedere, il tuo è split-brain. Per spiegare tre tipi di split-brain:
Dati split-brain: i contenuti del file in split-brain sono diversi nelle diverse coppie di repliche e la guarigione automatica non è possibile.
Metadata split-brain :, I metadati dei file (esempio, attributo esteso definito dall'utente) sono diversi e la guarigione automatica non è possibile.
Voce split-brain: succede quando un file ha gfid diversi su ciascuna coppia di repliche.
Che cos'è GFID?
L'identificatore di file interno (GFID) GlusterFS è un uuid univoco per ciascun file nell'intero cluster. Questo è analogo al numero di inode in un normale filesystem. Il GFID di un file è memorizzato nel suo xattr denominato trusted.gfid
. Per trovare il percorso da GFID, consiglio vivamente di leggere questo articolo ufficiale fornito da GlusterFS.
Come risolvere l'ingresso split-brain?
Esistono diversi metodi per prevenire il verificarsi di split-brain, ma per risolverlo è necessario rimuovere i file gfid-link corrispondenti. I file gfid-link sono presenti nella directory .glusterfs nella directory di livello superiore del brick. A proposito, fai attenzione che prima di eliminare i collegamenti gfid, devi assicurarti che non ci siano collegamenti fissi ai file presenti su quel mattone. Se esistono collegamenti fisici, è necessario eliminarli entrambi. Quindi è possibile utilizzare il processo di auto-guarigione eseguendo i seguenti comandi.
Nel frattempo, per visualizzare l'elenco di file su un volume in uno stato di divisione del cervello, è possibile utilizzare:
# gluster volume heal VOLNAME info split-brain
Bisogna anche tenere presente che per i volumi replicati, quando un mattone si disconnette e ritorna online, è necessaria l'autoguarigione per risincronizzare tutte le repliche.
Per verificare lo stato di guarigione di volumi e file è possibile utilizzare:
# gluster volume heal VOLNAME info
Poiché stai usando la versione 3.5, non hai la guarigione automatica. Quindi, dopo aver eseguito i passaggi indicati in precedenza, è necessario attivare l'autoguarigione. Fare così:
Solo sui file che richiedono la guarigione:
# gluster volume heal VOLNAME
Su tutti i file:
# gluster volume heal VOLNAME full
Spero che questo ti possa aiutare a risolvere il tuo problema. Si prega di leggere i documenti ufficiali per ulteriori informazioni. Saluti.