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

11

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
pupeno
fonte
Você usa apenas 2 servidores no seu cluster?
Orphans

Respostas:

8

O que é um cérebro dividido?

Conforme mencionado na documentação oficial sobre gerenciamento de cérebro dividido , fornecida pela RedHat, cérebro dividido é um estado em que inconsistências de dados ou disponibilidade originam da manutenção de dois conjuntos de dados separados com sobreposição de escopo, seja por causa de servidores em um design de rede, ou uma condição de falha baseada em servidores que não se comunicam e sincronizam seus dados entre si. E é um termo aplicável para replicar a configuração.

Preste atenção ao dizer "uma condição de falha baseada em servidores que não se comunicam e sincronizam seus dados entre si" - devido a qualquer probabilidade -, mas isso não significa que seus nós possam perder a conexão. O par ainda pode estar em cluster e conectado.

Tipos de cérebro dividido:

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

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

  • Metadados de cérebro dividido:, 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.

  • Cérebro dividido da entrada: acontece quando um arquivo tem gfids diferentes em cada um dos pares de réplicas.


O que é GFID?

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


Como resolver a entrada de cérebro dividido?

Existem vários métodos para impedir que o cérebro dividido ocorra, mas para resolvê-lo, os arquivos de link gfid correspondentes devem ser removidos. Os arquivos gfid-link estão presentes no diretório .glusterfs no diretório de nível superior do bloco. A propósito, lembre-se de que, antes de excluir os links gfid, você deve garantir que não haja links físicos para os arquivos presentes nesse bloco. Se existirem links físicos, você também deve excluí-los. Em seguida, você pode usar o processo de autocorreção executando os seguintes comandos.

Enquanto isso, para exibir a lista de arquivos em um volume que está em um estado de cérebro dividido, você pode usar:

# gluster volume heal VOLNAME info split-brain

Você também deve estar atento ao fato de que, para volumes replicados, quando um bloco fica offline e volta a ficar on-line, a autocura é necessária para ressincronizar todas as réplicas.

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

# gluster volume heal VOLNAME info

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

  • Somente nos arquivos que requerem recuperação:

    # gluster volume heal VOLNAME

  • Em todos os arquivos:

    # gluster volume heal VOLNAME full

Espero que isso ajude você a resolver seu problema. Leia os documentos oficiais para obter mais informações. Felicidades.

FarazX
fonte
2

Eu acho que o documento é suficientemente claro, até deu um exemplo semelhante.

E para os comandos de cura de Gluesterfs, como

recuperação de volume de gluster ** VOLNAME ** última hora de cérebro dividido ** ARQUIVO **

FILE pode ser o nome completo do arquivo, visto da raiz do volume (ou), a representação gfid-string do arquivo

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

E como converter GFID para path, diz:

O identificador de arquivo interno (GFID) do GlusterFS é um uuid exclusivo para cada arquivo em todo o cluster.

esse script pode indicar qual nome de arquivo pertence a qual gfid, mas ocorreu a divisão do cérebro; talvez ele não tenha um nome de arquivo.

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

pingz
fonte
Minha versão do Gluster não parece ter esse comando, caso contrário, sim, isso é direto. Além disso, não tenho nomes de arquivos, tenho uuids.
pupeno
2

Como faço para corrigir isso?

A resolução do cérebro dividido pode ser encontrada aqui . Caso isso não ajude muito, o manual de instruções aqui deve fazer o trabalho. Para o caso, 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 quorum. Caso um host falhe ou haja um cenário de cérebro dividido em que os nós continuem sendo executados, mas não possam mais se comunicar, o nó ou nós restantes no cluster correm para colocar uma reserva SCSI na unidade testemunha. No caso de um cérebro dividido, a testemunha ajudará a decidir qual dos hosts que estão segurando uma cópia dos dados deve assumir o controle.

Alguns exemplos.

O VMware VSAN permite executar um cluster de 2 nós com a unidade testemunha em um terceiro host ou na nuvem. Fonte

O StarWind Virtual SAN é executado na configuração de apenas 2 nós, usando o serviço Microsoft Failover Cluster, que também contém mecanismo de votação de quorum para evitar o problema do cérebro dividido. Fonte

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

Mr. Raspberry
fonte
1

o cérebro dividido ocorre quando dois nós de um cluster são desconectados. Cada nó acha que o outro não está funcionando.

cérebro dividido

Para corrigi-lo, você precisa entender por que seus dois nós não estão mais conversando.

bgtvfr
fonte