Perché non riesco a creare questo volume gluster?


9

Sto configurando la mia prima installazione di Gluster 3.4 e tutto va bene finché non voglio creare un volume replicato distribuito.

Ho 4 server 192.168.0.11, 192.168.0.12, 192.168.0.13 e 192.168.0.14.

Dal 192.168.0.11 ho eseguito:

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

Su ogni server ho un volume di archiviazione montato su / export / brick1

Ho quindi eseguito 192.168.0.11

volume gluster creare 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

Ma ottengo l'errore:

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

Abbastanza sicuro se si esegue lo stato peer del gluster mostra 3 peer con gli altri host connessi. cioè Numero di colleghi: 3

Nome host: 192.168.0.12 Porta: 24007 Uuid: bcea6044-f841-4465-88e4-f76a0c8d5198 Stato: Peer in Cluster (connesso)

Nome host: 192.168.0.13 Porta: 24007 Uuid: 3b5c188e-9be8-4d0f-a7bd-b738a88f2199 Stato: Peer in Cluster (connesso)

Nome host: 192.168.0.14 Porta: 24007 Uuid: f6f326eb-0181-4f99-8072-f27652dab064 Stato: Peer in Cluster (connesso)

Ma, da 192.168.0.12, lo stesso comando mostra anche 3 host e 192.168.0.11 ne fa parte. vale a dire

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)

Quindi 192.168.0.11 fa sicuramente parte del cluster.

La domanda è: perché non riesco a creare il volume sul primo server gluster quando eseguo il comando gluster. È un comportamento normale o una specie di bug?

Risposte:


15

Stavo vedendo un oscuro messaggio di errore su un socket non collegato con il peer 127.0.0.1.

[2013-08-16 00: 36: 56.765755] W [socket.c: 1494: __ socket_proto_state_machine] 0-socket.management: lettura dal socket non riuscita. Errore (l'endpoint di trasporto non è collegato), peer (127.0.0.1:1022)

Si scopre che il problema che stavo avendo era dovuto a NAT. Stavo cercando di creare server gluster che si trovavano dietro un dispositivo NAT e utilizzare l'IP pubblico per risolvere i nomi. Questo non funzionerà correttamente per il computer locale.

Quello che avevo era qualcosa di simile al seguente su ciascun nodo.

Un file hosts contenente

192.168.0.11  gluster1
192.168.0.12  gluster2
192.168.0.13  gluster3
192.168.0.14  gluster4

La correzione consisteva nel rimuovere prima i peer attendibili

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

Quindi modificare il file hosts su ogni macchina in modo che sia

# 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

eccetera

Quindi peer probe e infine creare il volume che ha avuto successo.

Dubito che l'utilizzo di indirizzi IP (quelli pubblici) funzionerà in questo caso. Dovrebbe funzionare se usi gli indirizzi privati ​​dietro il tuo NAT. Nel mio caso, ogni server era protetto da un NAT nel cloud AWS.


1
Nel mio caso non ho dovuto toccare 127.0.0.1, lavorare con un indirizzo IP interno era sufficiente
arod

1

Prova a definire esplicitamente il conteggio delle repliche come quattro nodi usando questo formato: -

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

Presumo questa replica pura e nessuna striscia?

prova questo da 192.168.0.11: -

staccare tutto prima:

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

prossima aggiunta in questo 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: ho definito esplicitamente questo set di repliche a quattro nodi. inoltre ho definito esplicitamente il trasporto su tcp .

se desideri eseguire lo striping su due dispositivi in ​​un set di repliche, utilizzeresti qualcosa del genere:

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

Continuate con questo, ho scoperto il gluster di recente e sono innamorato di questa ideologia per i filesystem distribuiti .. un vero pezzo d'arte.

Uso il gluster per fornire ridondanza di HA a un datastore virtuale KVM. roba magica


Purtroppo ricevo esattamente lo stesso errore. Inoltre, quando non si specifica un conteggio delle repliche e con tutti i volumi attualmente staccati, viene visualizzato lo stesso errore. Rimuovendo il mattone 192.168.0.11, afferma che l'host 192.168.0.12 non è nel peer nello stato del cluster, quindi è necessario prima verificarli. Almeno questo è il caso della versione 3.4
Matt,

Potresti aver ragione nel suggerire che è solo una stranezza nell'ultima versione. il fatto che si stiano impostando tutti e tre i peer nel set indica che tutti i bridge stanno funzionando indipendentemente dagli errori impostati su 192.168.0.11. Cosa succede quando si monta la condivisione da un quinto nodo di test e si scrive su glusterFS. la scrittura appare su tutti i mattoni?
AngryWombat,

In realtà non riesco nemmeno a creare un normale volume distribuito su un singolo mattone. Ho appena ricevuto un errore che dice che non è stato possibile crearlo. I registri contengono informazioni inutili. Mi fa venire voglia di buttarlo via del tutto.
Matt,

Ho avuto un problema simile 5 settimane fa, passando alla v3.3 ho risolto il mio problema. L'unico altro suggerimento in questa fase sarebbe quello di considerare un ruolo di nuovo a 3.3 e ripetere il test.
AngryWombat,

Inoltre, forse basta iniziare con i due nodi e lavorare da lì ... Quale distro stai usando? Ho fatto funzionare il mio su buntu 12.04 con questo repository: - sudo add-apt-repository ppa: semiosis / ubuntu-glusterfs-3.3
AngryWombat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.