GlusterFS divide o cérebro sem caminho, o que isso significa?

12

Eu estava apenas verificando o status dos meus volumes glusterfs e tenho um com entradas de cérebro dividido que não têm caminho:

# 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

O que isso significa? Como faço para corrigir isso?

Estou executando o 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
    
por pupeno 31.12.2016 / 14:41

4 respostas

8

O que é o cérebro dividido?

Como mencionado na Documentação oficial sobre o gerenciamento de divisão -Brain fornecido pelo RedHat, split-brain é um estado em que uma inconsistência de dados ou disponibilidade se origina da manutenção de dois conjuntos de dados separados com sobreposição no escopo, seja por causa de servidores em uma rede design, ou uma condição de falha com base em servidores não se comunicando e sincronizando seus dados entre si. E é um termo aplicável para replicar a configuração.

Tenha em atenção que se diz "uma condição de falha com base na não comunicação e sincronização dos dados entre os servidores" - devido a qualquer probabilidade - mas isso não significa que os nós podem perder a conexão. O Peer pode ainda estar em cluster e conectado.

Tipos de cérebro dividido:

Temos três tipos diferentes de cérebro dividido e, até onde eu posso ver, o seu é o cérebro dividido. Para explicar três tipos de cérebro dividido:

  • Cérebro dividido de dados: O conteúdo do arquivo no cérebro dividido é diferente em diferentes pares de réplicas e a correção automática não é possível.

  • Metadados split-brain: , Os metadados dos arquivos (por exemplo, atributo estendido definido pelo usuário) são diferentes e a recuperação automática não é possível.

  • Entrada do cérebro dividido: Acontece quando um arquivo tem gfids diferentes em cada par de réplicas.

O que é o GFID?

O identificador de arquivo interno do GlusterFS (GFID) é um uuid exclusivo de cada arquivo em todo o cluster. Isso é análogo ao número de inode em um sistema de arquivos normal. O GFID de um arquivo é armazenado em seu xattr chamado trusted.gfid . Para encontrar o caminho do GFID, eu recomendo que você leia este artigo oficial fornecido por GlusterFS.

Como resolver a divisão do cérebro dividido?

Existem vários métodos para evitar a ocorrência de um cérebro dividido, mas para resolvê-lo, os arquivos de link do gfid correspondentes devem ser removidos. Os arquivos de link do gfid estão presentes no diretório .glusterfs no diretório de nível superior do bloco. By the way, cuidado que antes de excluir o gfid-links, você deve garantir que não há links para os arquivos presentes no tijolo. Se existirem links físicos, você também deverá excluí-los. Então você pode usar o processo de auto-cura executando os seguintes comandos.

Enquanto isso, para visualizar a lista de arquivos em um volume que está em um estado de divisão de cérebro, você pode usar:

# gluster volume heal VOLNAME info split-brain

Você também deve ter cuidado com o fato de que, para volumes replicados, quando um tijolo fica offline e volta a ficar on-line, a autocorreção é necessária para ressincronizar todas as réplicas.

Para verificar o status de recuperação de volumes e arquivos que você pode usar:

# gluster volume heal VOLNAME info

Como você está usando a versão 3.5, não tem recuperação automática. Então, depois de seguir as etapas mencionadas anteriormente, você precisa ativar a autocura. Para fazer isso:

  • Apenas nos arquivos que precisam ser corrigidos:

    # gluster volume heal VOLNAME

  • Em todos os arquivos:

    # gluster volume heal VOLNAME full

Espero que isso ajude você a solucionar seu problema. Por favor, leia os documentos oficiais para mais informações. Felicidades.

    
por 12.01.2017 / 11:18
2

Acho que documento é claro o suficiente, até lhe deu um exemplo semelhante.

E para os comandos de cura do Gluesterfs, como

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

FILE can be either the full file name as seen from the root of the volume (or) the gfid-string representation of the file

Então você não precisa se preocupar com isso.

E como converter GFID para caminho diz:

GlusterFS internal file identifier (GFID) is a uuid that is unique to each file across the entire cluster.

este script pode indicar qual arquivo pertence a qual gfid, mas ocorreu uma divisão do cérebro, pode não ter um nome de arquivo.

Você está executando o 3.5 e não possui um cmd de recuperação semi-automática, portanto, talvez seja necessário corrigir o conflito manualmente, o que normalmente significa decidir qual arquivo do gfid precisa ser excluído.

    
por 12.01.2017 / 10:24
2

How do I fix it?

A resolução do cérebro dividido pode ser encontrada aqui . No caso de não ajudar muito, o manual como fazer aqui deve fazer o trabalho. Para o caso, eu vejo o artigo também útil.

Como evitar o cérebro dividido.

A proteção contra partições de rede é feita através de um algoritmo de votação de quórum. Caso um host falhe ou haja um cenário de divisão de cérebro em que os nós continuem sendo executados, mas não possam mais se comunicar entre si, o nó ou nós restantes no cluster competirão para inserir uma reserva SCSI na unidade da testemunha. No caso de um cérebro dividido, a testemunha ajudará a decidir qual dos hosts que está segurando uma cópia dos dados deve assumir o controle.

Alguns exemplos.

O VMware VSAN permite a execução de cluster de dois nós com a unidade testemunha sendo executada em um terceiro host ou na nuvem. Source

O StarWind Virtual SAN é executado na configuração de apenas dois nós usando o serviço de cluster de failover da Microsoft, que também contém o mecanismo de votação de quorum para evitar o problema de divisão do cérebro. Fonte

Para ambos, a rede Heartbeat é usada para servir / monitorar a comunicação entre nós e quorum. Para evitar um cérebro dividido, vejo que é obrigatório usar canais de Heartbeat redundantes.

    
por 16.01.2017 / 17:44
1

O split-brain ocorre quando dois nós de um cluster são desconectados. Cada nó acha que o outro não está funcionando.

Para consertar isso, você tem que entender porque seus dois nós não estão mais falando um com o outro.

    
por 12.01.2017 / 10:43

Tags