¿Por qué no puedo crear este volumen gluster?

9

Estoy configurando mi primera instalación de Gluster 3.4 y todo está bien hasta que quiera crear un volumen replicado distribuido.

Tengo 4 servidores 192.168.0.11, 192.168.0.12, 192.168.0.13 y 192.168.0.14.

Desde 192.168.0.11 corrí:

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

En cada servidor tengo un volumen de almacenamiento montado en / export / brick1

Luego corrí en 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

Pero me sale el error:

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

Efectivamente, si ejecuta el estado de par de Gluster, muestra 3 pares con los otros hosts conectados. es decir, número de pares: 3

Nombre de host: 192.168.0.12 Puerto: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 Estado: igual en el clúster (conectado)

Nombre de host: 192.168.0.13 Puerto: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 Estado: igual en el clúster (conectado)

Nombre de host: 192.168.0.14 Puerto: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 Estado: igual en el clúster (conectado)

Pero, desde 192.168.0.12, el mismo comando también muestra 3 hosts y 192.168.0.11 es parte de él. es decir

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)

Entonces 192.168.0.11 es definitivamente parte del clúster.

La pregunta es, ¿por qué no puedo crear el volumen en el primer servidor Gluster cuando ejecuto el comando Gluster? ¿Es este comportamiento normal o algún tipo de error?

Mate
fuente

Respuestas:

15

Estaba viendo un oscuro mensaje de error sobre un socket no conectado con el par 127.0.0.1.

[2013-08-16 00: 36: 56.765755] W [socket.c: 1494: __ socket_proto_state_machine] 0-socket.management: la lectura del socket falló. Error (el punto final de transporte no está conectado), igual (127.0.0.1:1022)

Resulta que el problema que estaba teniendo era debido a NAT. Intenté crear servidores Gluster que estaban detrás de un dispositivo NAT y usar la IP pública para resolver los nombres. Esto simplemente no funcionará correctamente para la máquina local.

Lo que tenía era algo así como lo siguiente en cada nodo.

Un archivo de hosts que contiene

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

La solución fue eliminar primero a los pares de confianza

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

Luego cambie el archivo de hosts en cada máquina para que sea

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

Luego sondear entre pares y finalmente crear el volumen que tuvo éxito.

Dudo que el uso de direcciones IP (las públicas) funcione en este caso. Debería funcionar si usa las direcciones privadas detrás de su NAT. En mi caso, cada servidor estaba detrás de un NAT en la nube de AWS.

Mate
fuente
1
En mi caso, no tuve que tocar 127.0.0.1, trabajar con una dirección IP interna fue suficiente
arod el
1

Intente definir explícitamente el recuento de réplicas como cuatro nodos con este formato:

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

Supongo que esta réplica pura y sin rayas?

intente esto desde 192.168.0.11: -

separa todo primero:

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

siguiente re-agregar en este 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

Tenga en cuenta que he definido explícitamente este conjunto de réplicas de cuatro nodos. También definí explícitamente el transporte a través de TCP .

si desea dividir en dos dispositivos en un conjunto de réplicas, usaría algo como esto:

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

Siga con esto, descubrí Gluster recientemente y estoy enamorado de esta ideología para sistemas de archivos distribuidos ... una verdadera obra de arte.

Uso gluster para proporcionar redundancia HA a almacenes de datos virtuales KVM. cosas mágicas

AngryWombat
fuente
Lamentablemente me sale exactamente el mismo error. Además, cuando no especifico un conteo de réplicas y con todos los volúmenes actualmente separados, obtengo el mismo error. Al eliminar el ladrillo 192.168.0.11, luego afirma que el host 192.168.0.12 no está en el estado de clúster del mismo nivel, por lo que debe probarlos primero. Al menos este es el caso en la versión 3.4
Matt
Puede que tengas razón al sugerir que es solo una peculiaridad en la última versión. el hecho de que esté configurando los tres pares en el conjunto indica que los bordes están funcionando independientemente de los errores establecidos en 192.168.0.11. Qué sucede cuando monta el recurso compartido desde un quinto nodo de prueba y escribe en el glusterFS. ¿aparece la escritura en todos los ladrillos?
AngryWombat
En realidad, ni siquiera puedo crear un volumen distribuido normal en un solo ladrillo. Acabo de recibir un error que dice que no se pudo crear. Los registros tienen información infructuosa. Me da ganas de tirarlo por completo.
Matt
Tuve un problema similar hace 5 semanas, pasar a la v3.3 resolvió mi problema. La única otra sugerencia en esta etapa sería considerar un rol de regreso a 3.3 y volver a probar.
AngryWombat
También quizás solo comience con los dos nodos y continúe desde allí ... ¿Qué distribución está usando? Obtuve el mío en buntu 12.04 con este repositorio: - sudo add-apt-repository ppa: semiosis / ubuntu-glusterfs-3.3
AngryWombat