GlusterFS ha diviso il cervello senza percorso, cosa significa?


11

Stavo solo controllando lo stato dei miei volumi glusterfs e ne ho uno con voci split-brain che non hanno percorso:

# gluster volume heal private_uploads info
Brick server01:/var/lib/glusterfs/brick01/uploads/
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
Number of entries: 2

Brick server02:/var/lib/glusterfs/brick01/uploads/
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
Number of entries: 2

Cosa significa? Come lo aggiusto?

Sto eseguendo GlusterFS 3.5.9:

# gluster --version
glusterfs 3.5.9 built on Mar 28 2016 07:10:17
Repository revision: git://git.gluster.com/glusterfs.git

Usi solo 2 server nel tuo cluster?
Orfani,

Risposte:


8

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.


2

Penso che il documento sia abbastanza chiaro, ti ha persino dato un esempio simile.

E per i comandi di guarigione di Gluesterfs come

guarigione volume gluster ** VOLNAME ** split-brain latest-mtime ** FILE **

FILE può essere il nome completo del file visto dalla radice del volume (o) la rappresentazione gfid-string del file

Quindi non hai bisogno di preoccupazioni al riguardo.

E come convertire GFID in percorso dice:

L'identificatore di file interno (GFID) GlusterFS è un uuid univoco per ciascun file nell'intero cluster.

questo script potrebbe dirti quale nome di file appartiene a quale gfid, ma si è verificata una divisione del cervello, potrebbe non avere un nome di file.

Stai eseguendo 3.5 e non hai un cmd di guarigione semi-automatico, quindi potresti aver bisogno di correggere manualmente il conflitto, il che normalmente significa decidere quale file gfid deve essere eliminato.


La mia versione di Gluster non sembra avere quel comando, altrimenti sì, è semplice. Inoltre, non ho nomi di file, ho uuidi.
pupeno,

2

Come lo aggiusto?

La risoluzione del cervello diviso può essere trovata qui . Nel caso in cui non sarebbe di grande aiuto, il manuale qui dovrebbe fare il lavoro. Per il caso, vedo anche l'articolo utile.

Come evitare il cervello diviso.

La protezione contro le partizioni di rete viene eseguita tramite un algoritmo di voto quorum. Nel caso in cui un host fallisca o vi sia uno scenario split-brain in cui i nodi continuano a funzionare ma non possono più comunicare tra loro, il nodo oi nodi rimanenti nella corsa del cluster effettuano una prenotazione SCSI sull'unità testimone. Nel caso di un cervello diviso, il testimone aiuterà a decidere quale degli host che detiene una copia dei dati dovrebbe assumere il controllo.

Qualche esempio.

VMware VSAN consente di eseguire cluster a 2 nodi con l'unità testimone in esecuzione su un terzo host o nel cloud. fonte

La SAN virtuale StarWind viene eseguita in una configurazione a soli 2 nodi utilizzando il servizio Microsoft Failover Cluster, che contiene anche un meccanismo di votazione del quorum per evitare il problema del cervello diviso. fonte

Per entrambi, la rete Heartbeat viene utilizzata per servire / monitorare la comunicazione tra nodi e quorum. Al fine di evitare un cervello diviso, vedo che è obbligatorio utilizzare canali Heartbeat ridondanti.


1

split-brain si verifica quando due nodi di un cluster sono disconnessi. Ogni nodo pensa che l'altro non funzioni.

cervello diviso

Per risolverlo, devi capire perché i tuoi due nodi non si parlano più.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.