Por que não consigo criar este volume gluster?

9

Estou configurando minha primeira instalação do Gluster 3.4 e tudo está funcionando 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 & 192.168.0.14.

De 192.168.0.11 eu corri:

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

Eu então corri em 192.168.0.11

gluster volume create gv0 replica2 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 recebo o erro:

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

Com certeza, se você for gluster peer status Mostra 3 peers com os outros hosts conectados. isto é 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 é parte dele. ou seja,

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 quando estiver executando o comando gluster. Isso é um comportamento normal ou algum tipo de bug?

    
por Matt 15.08.2013 / 23:49

2 respostas

12

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

[2013-08-16 00:36:56.765755] W [socket.c:1494:__socket_proto_state_machine] 0-socket.management: reading from socket failed. Error (Transport endpoint is not connected), peer (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 por trás de um dispositivo NAT e usar o IP público para resolver os nomes. Isso simplesmente não 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 os pares confiáveis primeiro

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 para 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, pesquise por ponto e, finalmente, crie o volume que obteve sucesso.

Eu duvido que usar endereços IP (os públicos) funcionará neste caso. Deve 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.

    
por 16.08.2013 / 02:52
0

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 ...

Eu assumo essa réplica pura e sem listra?

tente isso em 192.168.0.11: -

separe 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

em seguida, adicione 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

Observação defini explicitamente um conjunto de réplicas de quatro nós. também defini explicitamente o transporte em tcp .

Se você quiser 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 com isso, descobri o gluster recentemente e estou apaixonada por essa ideologia para sistemas de arquivos distribuídos ... uma verdadeira obra de arte.

Eu uso gluster para fornecer redundância de alta disponibilidade a datastores virtuais KVM. coisas mágicas

    
por 16.08.2013 / 00:31