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.