Por que não consigo criar esse volume gluster?

9

Estou configurando minha primeira instalação do Gluster 3.4 e tudo fica bem até que eu queira criar um volume replicado distribuído.

Eu tenho 4 servidores 192.168.0.11, 192.168.0.12, 192.168.0.13 e 192.168.0.14.

A partir do 192.168.0.11, executei:

gluster peer probe 192.168.0.12
gluster peer probe 192.168.0.13
gluster peer probe 192.168.0.14

Em cada servidor, tenho um volume de armazenamento montado em / export / brick1

Em seguida, executei o 192.168.0.11

volume de gluster criar réplica gv02 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Mas eu recebo o erro:

volume create: gv0: failed: Host 192.168.0.11 is not in 'Peer in Cluster' state

Com certeza, se você executar o status de gluster peer, ele mostra 3 pontos com os outros hosts conectados. ie Número de pares: 3

Nome do host: 192.168.0.12 Porta: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 Estado: Ponto no Cluster (conectado)

Nome do host: 192.168.0.13 Porta: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 Estado: Ponto no Cluster (conectado)

Nome do host: 192.168.0.14 Porta: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 Estado: Ponto no Cluster (conectado)

Mas, a partir de 192.168.0.12, o mesmo comando também mostra 3 hosts e 192.168.0.11 faz parte dele. ie

Number of Peers: 3

Hostname: 192.168.0.11
Port: 24007
Uuid: 09a3bacb-558d-4257-8a85-ca8b56e219f2
State: Peer in Cluster (Connected)

Hostname: 192.168.0.13
Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199
State: Peer in Cluster (Connected)

Hostname: 192.168.0.14
Uuid: f6f326eb-0181-4f99-8072-f27652dab064
State: Peer in Cluster (Connected)

Portanto, 192.168.0.11 é definitivamente parte do cluster.

A questão é: por que não consigo criar o volume no primeiro servidor gluster ao executar o comando gluster? Esse comportamento é normal ou algum tipo de bug?

Matt
fonte

Respostas:

15

Eu estava vendo uma mensagem de erro obscura sobre um soquete não conectado com o ponto 127.0.0.1.

[2013-08-16 00: 36: 56.765755] W [socket.c: 1494: __ socket_proto_state_machine] 0-socket.management: falha na leitura do soquete. Erro (o terminal de transporte não está conectado), ponto (127.0.0.1:1022)

Acontece que o problema que eu estava tendo era devido ao NAT. Eu estava tentando criar servidores gluster que estavam atrás de um dispositivo NAT e usar o IP público para resolver os nomes. Isso simplesmente não vai funcionar corretamente para a máquina local.

O que eu tinha era algo como o seguinte em cada nó.

Um arquivo de hosts contendo

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

A correção foi remover primeiro os pares confiáveis

sudo gluster peer detach gluster2
sudo gluster peer detach gluster3
sudo gluster peer detach gluster4

Em seguida, altere o arquivo hosts em cada máquina a ser

# Gluster1
127.0.0.1     gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4


# Gluster2
192.168.0.11  gluster1
127.0.0.1     gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

etc

Em seguida, faça uma análise por pares e, finalmente, crie o volume que foi bem-sucedido.

Duvido que o uso de endereços IP (os públicos) funcionem neste caso. Deverá funcionar se você usar os endereços privados por trás do seu NAT. No meu caso, cada servidor estava atrás de um NAT na nuvem da AWS.

Matt
fonte
1
No meu caso eu não tenho que tocar 127.0.0.1, trabalhando com endereço IP interno foi o suficiente
arod
1

Tente definir explicitamente a contagem de réplicas como quatro nós usando este formato: -

gluster volume create NEW-VOLNAME [stripe COUNT] [replica COUNT] [transport <tcp | rdma>] NEW-BRICK ...

Presumo que esta réplica pura e sem tarja?

tente isso de 192.168.0.11: -

desanexe tudo primeiro:

sudo gluster peer detach 192.168.0.12
sudo gluster peer detach 192.168.0.13
sudo gluster peer detach 192.168.0.14

próximo adicionar novamente neste formato

gluster volume create gv0 replica 4 transport tcp 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Nota: eu defini explicitamente esse conjunto de réplicas de quatro nós. também defini explicitamente o transporte através do tcp .

caso deseje distribuir dois dispositivos em um conjunto de réplicas, use algo assim: -

gluster volume create gv0 stripe 2 replica 2 transport tcp 192.168.0.11:/export/brick1 192.168.0.12:/export/brick1 192.168.0.13:/export/brick1 192.168.0.14:/export/brick1

Continue assim, descobri recentemente o gluster e estou apaixonada por essa ideologia para sistemas de arquivos distribuídos ... uma verdadeira obra de arte.

Eu uso o gluster para fornecer redundância de alta disponibilidade a um armazenamento de dados virtual KVM. coisas mágicas

AngryWombat
fonte
Infelizmente, recebo exatamente o mesmo erro. Além disso, ao não especificar uma contagem de réplicas e com todos os volumes desanexados no momento, recebo o mesmo erro. Ao remover o bloco 192.168.0.11, ele afirma que o host 192.168.0.12 não está no par no status de cluster, portanto, é necessário analisá-los primeiro. Pelo menos esse é o caso da versão 3.4
Matt
Você pode estar certo ao sugerir que é apenas um truque na versão mais recente. o fato de você estar definindo todos os três pares no conjunto indica que os brinks estão funcionando, independentemente dos erros configurados em 192.168.0.11. O que acontece quando você monta o compartilhamento a partir de um quinto nó de teste e grava no glusterFS. a gravação aparece em todos os tijolos?
AngryWombat
Na verdade, não consigo nem criar um volume distribuído normal em um único bloco. Acabei de receber um erro que diz que não pôde ser criado. Os logs têm informações infrutíferas. Isso me faz sentir como se estivesse jogando fora completamente.
Matt
Eu tive um problema semelhante há 5 semanas, passar para a v3.3 resolveu meu problema. A única outra sugestão nesse estágio seria considerar um papel de volta para 3.3 e testar novamente.
precisa saber é o seguinte
Talvez também comece com os dois nós e trabalhe a partir daí ... Que distro você está usando? I got mine em execução no buntu 12,04 com este repo: - ppa sudo add-apt-repositório: semiose / ubuntu-GlusterFS-3.3
AngryWombat