Volume replicado de GlusterFS - problema de montagem

3

Estou executando o GlusterFS usando 2 servidores (ST0 e ST1) e 1 cliente (STC), e o nome do volume é rep-volume.

Eu naveguei na Internet e li todos os artigos explicando como corrigir problemas de montagem, mas infelizmente nada poderia me ajudar.

A primeira vez que usei o seguinte comando, funcionou perfeitamente e eu tinha acesso de gravação:

$ mount.glusterfs ST0:/rep-volume /mnt/replica/

Mas depois de reiniciar o cliente, não consigo montá-lo novamente, aqui está o resultado:

$ mount.glusterfs ST0:/rep-volume /mnt/replica/
Mount failed. Please check the log file for more details.

O arquivo de log é mostrado abaixo:

$ cat /var/log/glusterfs/mnt-replica.log 

[2016-09-25 04:54:12.438020] I [MSGID: 100030] [glusterfsd.c:2408:main] 0-/usr/sbin/glusterfs: Started running /usr/sbin/glusterfs version 3.8.4 (args: /usr/sbin/glusterfs --volfile-server=ST0 --volfile-id=/rep-volume /mnt/replica)
[2016-09-25 04:54:12.444256] I [MSGID: 101190] [event-epoll.c:628:event_dispatch_epoll_worker] 0-epoll: Started thread with index 1
[2016-09-25 04:54:12.449300] I [MSGID: 101190] [event-epoll.c:628:event_dispatch_epoll_worker] 0-epoll: Started thread with index 2
[2016-09-25 04:54:12.449704] I [MSGID: 114020] [client.c:2356:notify] 0-rep-volume-client-0: parent translators are ready, attempting connect on transport
[2016-09-25 04:54:12.451504] I [MSGID: 114020] [client.c:2356:notify] 0-rep-volume-client-1: parent translators are ready, attempting connect on transport
[2016-09-25 04:54:12.451861] I [rpc-clnt.c:1947:rpc_clnt_reconfig] 0-rep-volume-client-0: changing port to 49152 (from 0)
Final graph:
+------------------------------------------------------------------------------+
  1: volume rep-volume-client-0
  2:     type protocol/client
  3:     option ping-timeout 42
  4:     option remote-host ST0
  5:     option remote-subvolume /replica1
  6:     option transport-type socket
  7:     option transport.address-family inet
  8:     option send-gids true
  9: end-volume
 10:  
 11: volume rep-volume-client-1
 12:     type protocol/client
 13:     option ping-timeout 42
 14:     option remote-host ST1
 15:     option remote-subvolume /replica2
 16:     option transport-type socket
 17:     option transport.address-family inet
 18:     option send-gids true
 19: end-volume
 20:  
 21: volume rep-volume-replicate-0
 22:     type cluster/replicate
 23:     subvolumes rep-volume-client-0 rep-volume-client-1
 24: end-volume
 25:  
 26: volume rep-volume-dht
 27:     type cluster/distribute
 28:     option lock-migration off
 29:     subvolumes rep-volume-replicate-0
 30: end-volume
 31:  
 32: volume rep-volume-write-behind
 33:     type performance/write-behind
 34:     subvolumes rep-volume-dht
 35: end-volume
 36:  
 37: volume rep-volume-read-ahead
 38:     type performance/read-ahead
 39:     subvolumes rep-volume-write-behind
 40: end-volume
 41:  
 42: volume rep-volume-readdir-ahead
 43:     type performance/readdir-ahead
 44:     subvolumes rep-volume-read-ahead
 45: end-volume
 46:  
 47: volume rep-volume-io-cache
 48:     type performance/io-cache
 49:     subvolumes rep-volume-readdir-ahead
 50: end-volume
 51:  
 52: volume rep-volume-quick-read
 53:     type performance/quick-read
 54:     subvolumes rep-volume-io-cache
 55: end-volume
 56:  
 57: volume rep-volume-open-behind
 58:     type performance/open-behind
 59:     subvolumes rep-volume-quick-read
 60: end-volume
 61:  
 62: volume rep-volume-md-cache
 63:     type performance/md-cache
 64:     subvolumes rep-volume-open-behind
 65: end-volume
 66:  
 67: volume rep-volume
 68:     type debug/io-stats
 69:     option log-level INFO
 70:     option latency-measurement off
 71:     option count-fop-hits off
 72:     subvolumes rep-volume-md-cache
 73: end-volume
 74:  
 75: volume meta-autoload
 76:     type meta
 77:     subvolumes rep-volume
 78: end-volume
 79:  
+------------------------------------------------------------------------------+
[2016-09-25 04:54:12.453806] I [rpc-clnt.c:1947:rpc_clnt_reconfig] 0-rep-volume-client-1: changing port to 49152 (from 0)
[2016-09-25 04:54:12.455009] I [MSGID: 114057] [client-handshake.c:1446:select_server_supported_programs] 0-rep-volume-client-0: Using Program GlusterFS 3.3, Num (1298437), Version (330)
[2016-09-25 04:54:12.455225] W [MSGID: 114043] [client-handshake.c:1111:client_setvolume_cbk] 0-rep-volume-client-0: failed to set the volume [Permission denied]
[2016-09-25 04:54:12.455239] W [MSGID: 114007] [client-handshake.c:1140:client_setvolume_cbk] 0-rep-volume-client-0: failed to get 'process-uuid' from reply dict [Invalid argument]
[2016-09-25 04:54:12.455243] E [MSGID: 114044] [client-handshake.c:1146:client_setvolume_cbk] 0-rep-volume-client-0: SETVOLUME on remote-host failed [Permission denied]
[2016-09-25 04:54:12.455256] I [MSGID: 114049] [client-handshake.c:1249:client_setvolume_cbk] 0-rep-volume-client-0: sending AUTH_FAILED event
[2016-09-25 04:54:12.455270] E [fuse-bridge.c:5318:notify] 0-fuse: Server authenication failed. Shutting down.
[2016-09-25 04:54:12.455278] I [fuse-bridge.c:5793:fini] 0-fuse: Unmounting '/mnt/replica'.
[2016-09-25 04:54:12.456149] W [glusterfsd.c:1286:cleanup_and_exit] (-->/lib64/libpthread.so.0(+0x7dc5) [0x7f039192adc5] -->/usr/sbin/glusterfs(glusterfs_sigwaiter+0xe5) [0x7f0392fbec45] -->/usr/sbin/glusterfs(cleanup_and_exit+0x6b) [0x7f0392fbeabb] ) 0-: received signum (15), shutting down

Aqui está a informação do volume gluster no Servidor1 (ST0):

ST0: ~ root # gluster volume info

Volume Name: rep-volume
Type: Replicate
Volume ID: 566324fc-668b-48cb-a3ee-0f9830cb03e0
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: ST0:/replica1
Brick2: ST1:/replica2
Options Reconfigured:
nfs.disable: on
performance.readdir-ahead: on
transport.address-family: inet
auth.allow: STC

Ficarei muito grato se alguém puder me ajudar. Obrigado.

ATUALIZAÇÃO:

A resposta do @FarazX foi realmente útil e resolveu meu problema, mas ainda estou interessado em descobrir o motivo pelo qual essa condição funcionou enquanto eu fazia o mesmo no servidor do Cliente (sem sucesso) ? Eu li muitas coisas no bugzilla.redhat.com, mas o motivo ainda é um pouco vago para mim.

    
por Parsa Samet 25.09.2016 / 06:32

1 resposta

1

Eu tive o mesmo problema, mas tentei montar os clientes nos mesmos servidores e funcionou perfeitamente.

No seu caso, isso seria feito executando o seguinte comando em ST0 e ST1, respectivamente:

ST0: ~ root # mkdir /mnt/replica
ST0: ~ root # mount.glusterfs ST0:/rep-volume /mnt/replica/
ST0: ~ root # echo 'ST0:/rep-volume      /mnt/replica           glusterfs       _netdev,fetch-attempts=10       0 0' >> /etc/fstab

&

ST1: ~ root # mkdir /mnt/replica
ST1: ~ root # mount.glusterfs ST1:/rep-volume /mnt/replica/
ST1: ~ root # echo 'ST1:/rep-volume      /mnt/replica           glusterfs       _netdev,fetch-attempts=10       0 0' >> /etc/fstab

N.B. Verifique a configuração e as regras do seu firewall.

Espero que isso possa resolver seu problema.

    
por 26.09.2016 / 06:51